📄 44binit.lst
字号:
fresh
104 00000000 00000000
Trp EQU 0x0 ;2clk
105 00000000 00000000
Trc EQU 0x0 ;4clk
106 00000000 00000002
Tchr EQU 0x2 ;3clk
107 00000000 00000591
ARM Macro Assembler Page 5
REFCNT EQU 1425 ;period=15.6us, MCLK=40Mhz
108 00000000 ;************************************************
109 00000000 END
13 00000000
14 00000000 ;Interrupt Control
15 00000000 01E00004
INTPND EQU 0x01e00004
16 00000000 01E00008
INTMOD EQU 0x01e00008
17 00000000 01E0000C
INTMSK EQU 0x01e0000c
18 00000000 01E00020
I_ISPR EQU 0x01e00020
19 00000000 01E0001C
I_CMST EQU 0x01e0001c
20 00000000
21 00000000 ;Watchdog timer
22 00000000 01D30000
WTCON EQU 0x01d30000
23 00000000
24 00000000 ;Clock Controller
25 00000000 01D80000
PLLCON EQU 0x01d80000
26 00000000 01D80004
CLKCON EQU 0x01d80004
27 00000000 01D8000C
LOCKTIME
EQU 0x01d8000c
28 00000000
29 00000000 ;Memory Controller
30 00000000 01C80024
REFRESH EQU 0x01c80024
31 00000000
32 00000000 ;Pre-defined constants
33 00000000 00000010
USERMODE
EQU 0x10
34 00000000 00000011
FIQMODE EQU 0x11
35 00000000 00000012
IRQMODE EQU 0x12
36 00000000 00000013
SVCMODE EQU 0x13
37 00000000 00000017
ABORTMODE
EQU 0x17
38 00000000 0000001B
UNDEFMODE
EQU 0x1b
39 00000000 0000001F
MODEMASK
EQU 0x1f
40 00000000 000000C0
NOINT EQU 0xc0
41 00000000
42 00000000 ;check if tasm.exe is used.
43 00000000 GBLL THUMBCODE
44 00000000 [ {CONFIG} = 16
48 00000000 FALSE
ARM Macro Assembler Page 6
THUMBCODE
SETL {FALSE}
49 00000000 ]
50 00000000
51 00000000 [ THUMBCODE
53 ]
54 00000000
55 00000000 MACRO
56 00000000 $HandlerLabel
HANDLER $HandleLabel
57 00000000
58 00000000 $HandlerLabel
59 00000000 sub sp,sp,#4 ;decrement sp(to store jump
address)
60 00000000 stmfd sp!,{r0} ;PUSH the work register to s
tack(lr does't push because
it return to original addres
s)
61 00000000 ldr r0,=$HandleLabel ;load the address of Ha
ndleXXX to r0
62 00000000 ldr r0,[r0] ;load the contents(service r
outine start address) of Han
dleXXX
63 00000000 str r0,[sp,#4] ;store the contents(ISR) of
HandleXXX to stack
64 00000000 ldmfd sp!,{r0,pc} ;POP the work register and p
c(jump to ISR)
65 00000000 MEND
66 00000000
67 00000000 IMPORT |Image$$RO$$Limit| ; End of ROM code (=s
tart of ROM data)
68 00000000 IMPORT |Image$$RW$$Base|
; Base of RAM to initialise
69 00000000 IMPORT |Image$$ZI$$Base|
; Base and limit of area
70 00000000 IMPORT |Image$$ZI$$Limit| ; to zero initialise
71 00000000
72 00000000 IMPORT Main ; The main entry of mon prog
ram
73 00000000
74 00000000 AREA Init,CODE,READONLY
75 00000000
76 00000000 ENTRY
77 00000000 EA000120 b ResetHandler ;for debug
78 00000004 EA00005D b HandlerUndef ;handlerUndef
79 00000008 EA000062 b HandlerSWI ;SWI interrupt handler
80 0000000C EA00006D b HandlerPabort ;handlerPAbort
81 00000010 EA000066 b HandlerDabort ;handlerDAbort
82 00000014 EAFFFFFE b . ;handlerReserved
83 00000018 EA000052 b HandlerIRQ
84 0000001C EA00004B b HandlerFIQ
85 00000020 ;***IMPORTANT NOTE***
86 00000020 ;If the H/W vectored interrutp mode is enabled, The abov
e two instructions should
87 00000020 ;be changed like below, to work-around with H/W bug of S
3C44B0X interrupt controller.
88 00000020 ; b HandlerIRQ -> subs pc,lr,#4
89 00000020 ; b HandlerIRQ -> subs pc,lr,#4
90 00000020
ARM Macro Assembler Page 7
91 00000020 VECTOR_BRANCH
92 00000020 E59FF0BC ldr pc,=HandlerEINT0 ;mGA H/W interrupt v
ector table
93 00000024 E59FF0BC ldr pc,=HandlerEINT1 ;
94 00000028 E59FF0BC ldr pc,=HandlerEINT2 ;
95 0000002C E59FF0BC ldr pc,=HandlerEINT3 ;
96 00000030 E59FF0BC ldr pc,=HandlerEINT4567 ;
97 00000034 E59FF0BC ldr pc,=HandlerTICK ;mGA
98 00000038 EAFFFFFE b .
99 0000003C EAFFFFFE b .
100 00000040 E59FF0B4 ldr pc,=HandlerZDMA0 ;mGB
101 00000044 E59FF0B4 ldr pc,=HandlerZDMA1 ;
102 00000048 E59FF0B4 ldr pc,=HandlerBDMA0 ;
103 0000004C E59FF0B4 ldr pc,=HandlerBDMA1 ;
104 00000050 E59FF0B4 ldr pc,=HandlerWDT ;
105 00000054 E59FF0B4 ldr pc,=HandlerUERR01 ;mGB
106 00000058 EAFFFFFE b .
107 0000005C EAFFFFFE b .
108 00000060 E59FF0AC ldr pc,=HandlerTIMER0 ;mGC
109 00000064 E59FF0AC ldr pc,=HandlerTIMER1 ;
110 00000068 E59FF0AC ldr pc,=HandlerTIMER2 ;
111 0000006C E59FF0AC ldr pc,=HandlerTIMER3 ;
112 00000070 E59FF0AC ldr pc,=HandlerTIMER4 ;
113 00000074 E59FF0AC ldr pc,=HandlerTIMER5 ;mGC
114 00000078 EAFFFFFE b .
115 0000007C EAFFFFFE b .
116 00000080 E59FF0A4 ldr pc,=HandlerURXD0 ;mGD
117 00000084 E59FF0A4 ldr pc,=HandlerURXD1 ;
118 00000088 E59FF0A4 ldr pc,=HandlerIIC ;
119 0000008C E59FF0A4 ldr pc,=HandlerSIO ;
120 00000090 E59FF0A4 ldr pc,=HandlerUTXD0 ;
121 00000094 E59FF0A4 ldr pc,=HandlerUTXD1 ;mGD
122 00000098 EAFFFFFE b .
123 0000009C EAFFFFFE b .
124 000000A0 E59FF09C ldr pc,=HandlerRTC ;mGKA
125 000000A4 EAFFFFFE b . ;
126 000000A8 EAFFFFFE b . ;
127 000000AC EAFFFFFE b . ;
128 000000B0 EAFFFFFE b . ;
129 000000B4 EAFFFFFE b . ;mGKA
130 000000B8 EAFFFFFE b .
131 000000BC EAFFFFFE b .
132 000000C0 E59FF080 ldr pc,=HandlerADC ;mGKB
133 000000C4 EAFFFFFE b . ;
134 000000C8 EAFFFFFE b . ;
135 000000CC EAFFFFFE b . ;
136 000000D0 EAFFFFFE b . ;
137 000000D4 EAFFFFFE b . ;mGKB
138 000000D8 EAFFFFFE b .
139 000000DC EAFFFFFE b .
140 000000E0 ;0xe0=EnterPWDN
141 000000E0 E59FF064 ldr pc,=EnterPWDN
142 000000E4
143 000000E4 00000438
00000420
00000408
000003F0
000003D8
000003C0
ARM Macro Assembler Page 8
000003A8
00000390
00000378
00000360
00000348
00000330
00000318
00000300
000002E8
000002D0
000002B8
000002A0
00000288
00000270
00000258
00000240
00000228
00000210
000001F8
000001E0
00000574 LTORG
144 00000150
145 00000150 HandlerFIQ
HANDLER HandleFIQ
57 00000150
58 00000150 HandlerFIQ
59 00000150 E24DD004 sub sp,sp,#4 ;decrement sp(to store jump
address)
60 00000154 E92D0001 stmfd sp!,{r0} ;PUSH the work register to s
tack(lr does't push because
it return to original addres
s)
61 00000158 E59F0468 ldr r0,=HandleFIQ ;load the address of Handl
eXXX to r0
62 0000015C E5900000 ldr r0,[r0] ;load the contents(service r
outine start address) of Han
dleXXX
63 00000160 E58D0004 str r0,[sp,#4] ;store the contents(ISR) of
HandleXXX to stack
64 00000164 E8BD8001 ldmfd sp!,{r0,pc} ;POP the work register and p
c(jump to ISR)
146 00000168 HandlerIRQ
HANDLER HandleIRQ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -