?? drawusb.lst
字號:
(0177) ; Set up the clocks
(0178) ;------------------
(0179) ; Configure the external oscillator, EFTB Filter, and clock out
(0180) ; It is configured with an 'OR' in case a USB Bus Reset occurred and
(0181) ; the external oscillator has already been started. This way
(0182) ; it does not get unselected.
(0183) IF XOSC_ENABLE
(0184) MOV REG[XOSCTR], XOSC_XGM_JUST ; Set the external OSC XGM
(0185) OR REG[CLKIOCR], (XOSC_ENABLE_JUST | EFTB_JUST | CLOCK_OUT_JUST)
(0186) ; If the external oscillator has been selected, wait for it to stabilize
(0187) ; then select it
(0188) M8C_SetBank1
(0189) AND REG[OSC_CR0], ~OSC_CR0_SLEEP
(0190) OR REG[OSC_CR0], OSC_CR0_SLEEP_512Hz ; Wait ~2 mSec
(0191) M8C_SetBank0
(0192) M8C_ClearWDTAndSleep ; Restart the sleep timer
(0193) MOV REG[INT_VC], 0 ; Clear all pending interrupts
(0194) .WaitForStableXOSC:
(0195) TST REG[INT_CLR0], INT_MSK0_SLEEP ; Test the SleepTimer Interrupt Status
(0196) JZ .WaitForStableXOSC ; Wait until ~2 mSec has elapsed
(0197)
(0198) OR REG[CLKIOCR], CLKIOCR_XOSC_SELECT ; Now, select the external oscillator
(0199) ELSE
0068: 43 32 00 OR REG[50],0 (0200) OR REG[CLKIOCR], (EFTB_JUST | CLOCK_OUT_JUST)
(0201) ENDIF
(0202)
006B: 55 F8 00 MOV [248],0 (0203) mov [bSSC_KEY1],0 ; Lockout Flash and Supervisiory operations
006E: 55 F9 00 MOV [249],0 (0204) mov [bSSC_KEYSP],0
(0205)
(0206) ;------------------
(0207) ; Set up the stack
(0208) ;------------------
0071: 50 6A MOV A,106 (0209) mov A, __ramareas_end ; Set top of stack to end of used RAM
0073: 4E SWAP SP,A (0210) swap SP, A ; This is only temporary if going to LMM
(0211)
(0212) ;-------------------------------------------------------------------------
(0213) ; All the user selections and UserModule selections are now loaded,
(0214) ; except CPU frequency (CPU is runing at 12 MHz). Load the PSoC
(0215) ; configuration with a 12 MHz CPU clock to keep config time short.
(0216) ;-------------------------------------------------------------------------
0074: 7C 02 25 LCALL 0x0225 (0217) lcall LoadConfigInit ; Configure PSoC blocks per Dev Editor
(0218)
(0219)
(0220) IF (C_LANGUAGE_SUPPORT)
0077: 90 08 CALL 0x0081 (0221) call InitCRunTime ; Initialize for C language
(0222) ENDIF ;(C_LANGUAGE_SUPPORT)
(0223)
(0224) ;-------------------------------------------------------------------------
(0225) ; Global Interrupt are NOT enabled, this should be done in main().
(0226) ; LVD is set but will not occur unless Global Interrupts are enabled.
(0227) ; Global Interrupts should be as soon as possible in main().
(0228) ;-------------------------------------------------------------------------
0079: 62 E2 00 MOV REG[226],0 (0229) mov reg[INT_VC],0 ; Clear any pending interrupts which may
(0230) ; have been set during the boot process.
007C: 7C 0A 4C LCALL _main (0231) lcall _main ; Call main
(0232)
(0233) __Exit:
007F: 8F FF JMP 0x007F (0234) jmp __Exit ; Wait here till power is turned off
(0235)
(0236)
(0237)
(0238) ;-----------------------------------------------------------------------------
(0239) ; C Runtime Environment Initialization
(0240) ; The following code is conditionally assembled.
(0241) ;-----------------------------------------------------------------------------
(0242)
(0243) IF (C_LANGUAGE_SUPPORT)
(0244)
(0245) InitCRunTime:
(0246) ;-----------------------------
(0247) ; clear bss segment
(0248) ;-----------------------------
0081: 50 00 MOV A,0 (0249) mov A,0
0083: 55 20 3A MOV [__r0],58 (0250) mov [__r0],<__bss_start
(0251) BssLoop:
0086: 3C 20 6A CMP [32],106 (0252) cmp [__r0],<__bss_end
0089: A0 05 JZ 0x008F (0253) jz BssDone
008B: 3F 20 MVI [__r0],A (0254) mvi [__r0],A
008D: 8F F8 JMP 0x0086 (0255) jmp BssLoop
(0256) BssDone:
(0257) ;----------------------------
(0258) ; copy idata to data segment
(0259) ;----------------------------
008F: 50 01 MOV A,1 (0260) mov A,>__idata_start
0091: 57 50 MOV X,80 (0261) mov X,<__idata_start
0093: 55 20 00 MOV [__r0],0 (0262) mov [__r0],<__data_start
(0263) IDataLoop:
0096: 3C 20 20 CMP [32],32 (0264) cmp [__r0],<__data_end
0099: A0 0B JZ 0x00A5 (0265) jz IDataDone
009B: 08 PUSH A (0266) push A
009C: 28 ROMX (0267) romx
009D: 3F 20 MVI [__r0],A (0268) mvi [__r0],A
009F: 18 POP A (0269) pop A
00A0: 75 INC X (0270) inc X
00A1: 09 00 ADC A,0 (0271) adc A,0
00A3: 8F F2 JMP 0x0096 (0272) jmp IDataLoop
(0273) IDataDone:
00A5: 7F RET (0274) ret
00A6: 30 HALT
00A7: 30 HALT
00A8: 30 HALT
00A9: 30 HALT
00AA: 30 HALT
00AB: 30 HALT
00AC: 30 HALT
00AD: 30 HALT
00AE: 30 HALT
00AF: 30 HALT
00B0: 30 HALT
00B1: 30 HALT
00B2: 30 HALT
00B3: 30 HALT
00B4: 30 HALT
00B5: 30 HALT
00B6: 30 HALT
00B7: 30 HALT
00B8: 30 HALT
00B9: 30 HALT
00BA: 30 HALT
00BB: 30 HALT
00BC: 30 HALT
00BD: 30 HALT
00BE: 30 HALT
00BF: 30 HALT
00C0: 30 HALT
00C1: 30 HALT
00C2: 30 HALT
00C3: 30 HALT
00C4: 30 HALT
00C5: 30 HALT
00C6: 30 HALT
00C7: 30 HALT
00C8: 30 HALT
00C9: 30 HALT
00CA: 30 HALT
00CB: 30 HALT
00CC: 30 HALT
00CD: 30 HALT
00CE: 30 HALT
00CF: 30 HALT
00D0: 30 HALT
00D1: 30 HALT
00D2: 30 HALT
00D3: 30 HALT
00D4: 30 HALT
00D5: 30 HALT
00D6: 30 HALT
00D7: 30 HALT
00D8: 30 HALT
00D9: 30 HALT
00DA: 30 HALT
00DB: 30 HALT
00DC: 30 HALT
00DD: 30 HALT
00DE: 30 HALT
00DF: 30 HALT
00E0: 30 HALT
00E1: 30 HALT
00E2: 30 HALT
00E3: 30 HALT
00E4: 30 HALT
00E5: 30 HALT
00E6: 30 HALT
00E7: 30 HALT
00E8: 30 HALT
00E9: 30 HALT
00EA: 30 HALT
00EB: 30 HALT
00EC: 30 HALT
00ED: 30 HALT
00EE: 30 HALT
00EF: 30 HALT
00F0: 30 HALT
00F1: 30 HALT
00F2: 30 HALT
00F3: 30 HALT
00F4: 30 HALT
00F5: 30 HALT
00F6: 30 HALT
00F7: 30 HALT
00F8: 30 HALT
00F9: 30 HALT
00FA: 30 HALT
00FB: 30 HALT
00FC: 30 HALT
00FD: 30 HALT
00FE: 30 HALT
00FF: 30 HALT
0100: 30 HALT
0101: 30 HALT
0102: 30 HALT
0103: 30 HALT
0104: 30 HALT
0105: 30 HALT
0106: 30 HALT
0107: 30 HALT
0108: 30 HALT
0109: 30 HALT
010A: 30 HALT
010B: 30 HALT
010C: 30 HALT
010D: 30 HALT
010E: 30 HALT
010F: 30 HALT
0110: 30 HALT
0111: 30 HALT
0112: 30 HALT
0113: 30 HALT
0114: 30 HALT
0115: 30 HALT
0116: 30 HALT
0117: 30 HALT
0118: 30 HALT
0119: 30 HALT
011A: 30 HALT
011B: 30 HALT
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -