comparison compal/sym-fw-disasm @ 282:52d21957bf2e

compal/sym-fw-disasm: initial analysis
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 14 Mar 2019 06:55:02 +0000
parents
children f724d574cff3
comparison
equal deleted inserted replaced
281:b7d93ff628a8 282:52d21957bf2e
1 ; This disassembly is an analysis of the boot path up to Init_Target()
2 ; and AI_InitIOConfig() in the special Mot C11x fw version with symbols
3 ; (R87.2.1.03.m0 and R87.2.1.03.map), made in order to look into these
4 ; critical board-specific init functions and in order to better prepare
5 ; ourselves for doing similar analysis on other Compal fw versions
6 ; for which we don't have any symbols.
7
8 0: ea000225 b 0x89c
9 4: ea000825 b 0x20a0
10 8: ea000825 b 0x20a4
11 c: ea000825 b 0x20a8
12 10: ea000825 b 0x20ac
13 14: ea000825 b 0x20b0
14 18: ea000825 b 0x20b4
15 1c: ea000825 b 0x20b8
16
17 _INT_Bootloader_Start:
18 ; Compal's addition for 26 MHz clock input to Calypso
19 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884
20 8a0: e1d120b2 ldrh r2, [r1, #2]
21 8a4: e51f002c ldr r0, =0x40 ; via 0x880
22 8a8: e1800002 orr r0, r0, r2
23 8ac: e1c100b2 strh r0, [r1, #2]
24 ; matches TI's version from here
25 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888
26 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896
27 8b8: e1c120b0 strh r2, [r1]
28 8bc: e5912000 ldr r2, [r1]
29 8c0: e2022001 and r2, r2, #1
30 8c4: e3520001 cmp r2, #1
31 8c8: 0afffffb beq 0x8bc
32 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884
33 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894
34 8d4: e1c120b0 strh r2, [r1]
35 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c
36 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898
37 8e0: e1d100b0 ldrh r0, [r1]
38 8e4: e1800002 orr r0, r0, r2
39 8e8: e1c100b0 strh r0, [r1]
40 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890
41 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a
42 8f4: e1c120b0 strh r2, [r1]
43 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c
44 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870
45 900: e1c120b0 strh r2, [r1]
46 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872
47 908: e1c120b2 strh r2, [r1, #2]
48 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874
49 910: e1c120b4 strh r2, [r1, #4]
50 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876
51 918: e1c120b6 strh r2, [r1, #6]
52 91c: e15f2abc ldrh r2, =0x281 ; via 0x878
53 920: e1c120ba strh r2, [r1, #10] ; 0xa
54 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a
55 928: e1c120bc strh r2, [r1, #12] ; 0xc
56 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c
57 930: e1c120b8 strh r2, [r1, #8]
58 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e
59 938: e1c120be strh r2, [r1, #14] ; 0xe
60 93c: e59f0020 ldr r0, =0x83e730 ; via 0x964
61 940: e3a01b01 mov r1, #1024 ; 0x400
62 944: e2411004 sub r1, r1, #4
63 948: e0802001 add r2, r0, r1
64 94c: e3c22003 bic r2, r2, #3
65 950: e1a0d002 mov sp, r2
66 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12}
67 958: eb00051e bl 0x1dd8 ; _sta_select_application
68 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12}
69 960: ea0005e4 b 0x20f8 ; _INT_Initialize
70
71 _INT_Initialize:
72 ; beginning matches TI's version
73 20f8: e51f1024 ldr r1, =0xffff9800 ; via 0x20dc
74 20fc: e15f21ba ldrh r2, =0x2002 ; via 0x20ea
75 2100: e1c120b0 strh r2, [r1]
76 2104: e5912000 ldr r2, [r1]
77 2108: e2022001 and r2, r2, #1
78 210c: e3520001 cmp r2, #1
79 2110: 0afffffb beq 0x2104
80 2114: e51f1044 ldr r1, =0xfffffd00 ; via 0x20d8
81 2118: e15f23b8 ldrh r2, =0x1081 ; via 0x20e8
82 211c: e1c120b0 strh r2, [r1]
83 2120: e51f1048 ldr r1, =0xfffffb10 ; via 0x20e0
84 2124: e15f23be ldrh r2, =0xf7ff ; via 0x20ee
85 2128: e1d100b0 ldrh r0, [r1]
86 212c: e0000002 and r0, r0, r2
87 2130: e1c100b0 strh r0, [r1]
88 2134: e51f1058 ldr r1, =0xffffff08 ; via 0x20e4
89 2138: e15f25b0 ldrh r2, =0x0 ; via 0x20f0
90 213c: e1c120b0 strh r2, [r1]
91 2140: e51f107c ldr r1, =0xfffffb00 ; via 0x20cc
92 2144: e15f29b0 ldrh r2, =0x2a1 ; via 0x20bc
93 2148: e1c120b0 strh r2, [r1]
94 214c: e15f29b6 ldrh r2, =0x2a1 ; via 0x20be
95 2150: e1c120b2 strh r2, [r1, #2]
96 2154: e15f29bc ldrh r2, =0x2a1 ; via 0x20c0
97 2158: e1c120b4 strh r2, [r1, #4]
98 215c: e15f2ab2 ldrh r2, =0x283 ; via 0x20c2
99 2160: e1c120b6 strh r2, [r1, #6]
100 2164: e15f2ab8 ldrh r2, =0xe85 ; via 0x20c4
101 2168: e1c120ba strh r2, [r1, #10] ; 0xa
102 216c: e15f2abe ldrh r2, =0x2c0 ; via 0x20c6
103 2170: e1c120bc strh r2, [r1, #12] ; 0xc
104 2174: e15f2bb4 ldrh r2, =0x40 ; via 0x20c8
105 2178: e1c120b8 strh r2, [r1, #8]
106 217c: e15f2bba ldrh r2, =0x2a ; via 0x20ca
107 2180: e1c120be strh r2, [r1, #14] ; 0xe
108 2184: e51f10bc ldr r1, =0xfffef006 ; via 0x20d0
109 2188: e1d120b0 ldrh r2, [r1]
110 218c: e51f00c0 ldr r0, =0x8 ; via 0x20d4
111 2190: e1800002 orr r0, r0, r2
112 2194: e1c100b0 strh r0, [r1]
113 2198: e10f0000 mrs r0, CPSR
114 219c: e3c0001f bic r0, r0, #31 ; 0x1f
115 21a0: e3800013 orr r0, r0, #19 ; 0x13
116 21a4: e38000c0 orr r0, r0, #192 ; 0xc0
117 21a8: e129f000 msr CPSR_fc, r0
118 ; diff from TI: Compal's full RAM clearing
119 21ac: e3a00502 mov r0, #8388608 ; 0x800000
120 21b0: e3a02000 mov r2, #0
121 21b4: e3a01721 mov r1, #8650752 ; 0x840000
122 21b8: e2411080 sub r1, r1, #128 ; 0x80
123 21bc: e4802004 str r2, [r0], #4
124 21c0: e1500001 cmp r0, r1
125 21c4: 1afffffc bne 0x21bc
126 21c8: e3a00401 mov r0, #16777216 ; 0x1000000
127 21cc: e3a02000 mov r2, #0
128 21d0: e3a01741 mov r1, #17039360 ; 0x1040000
129 21d4: e2411080 sub r1, r1, #128 ; 0x80
130 21d8: e4802004 str r2, [r0], #4
131 21dc: e1500001 cmp r0, r1
132 21e0: 1afffffc bne 0x21d8
133 ; TI's code continues with INT_Loaded_Flag setting
134 21e4: e3a00001 mov r0, #1
135 21e8: e59f12c8 ldr r1, =0x83e6f4 ; via 0x24b8
136 21ec: e5810000 str r0, [r1]
137 21f0: e59f02bc ldr r0, =0x83e818 ; via 0x24b4
138 21f4: e3a01b01 mov r1, #1024 ; 0x400
139 21f8: e2411004 sub r1, r1, #4
140 21fc: e0802001 add r2, r0, r1
141 2200: e1a0a000 mov r10, r0
142 2204: e59f32b0 ldr r3, =0x83e6dc ; via 0x24bc
143 2208: e583a000 str r10, [r3]
144 220c: e1a0d002 mov sp, r2
145 2210: e59f32a8 ldr r3, =0x834920 ; via 0x24c0
146 2214: e583d000 str sp, [r3]
147 2218: e3a01080 mov r1, #128 ; 0x80
148 221c: e0822001 add r2, r2, r1
149 2220: e10f0000 mrs r0, CPSR
150 2224: e3c0001f bic r0, r0, #31 ; 0x1f
151 2228: e3800012 orr r0, r0, #18 ; 0x12
152 222c: e129f000 msr CPSR_fc, r0
153 2230: e1a0d002 mov sp, r2
154 2234: e3a01c02 mov r1, #512 ; 0x200
155 2238: e0822001 add r2, r2, r1
156 223c: e10f0000 mrs r0, CPSR
157 2240: e3c0001f bic r0, r0, #31 ; 0x1f
158 2244: e3800011 orr r0, r0, #17 ; 0x11
159 2248: e129f000 msr CPSR_fc, r0
160 224c: e1a0d002 mov sp, r2
161 2250: e10f0000 mrs r0, CPSR
162 2254: e3c0001f bic r0, r0, #31 ; 0x1f
163 2258: e3800017 orr r0, r0, #23 ; 0x17
164 225c: e129f000 msr CPSR_fc, r0
165 2260: e59fd268 ldr sp, =0x83e780 ; via 0x24d0
166 2264: e10f0000 mrs r0, CPSR
167 2268: e3c0001f bic r0, r0, #31 ; 0x1f
168 226c: e380001b orr r0, r0, #27 ; 0x1b
169 2270: e129f000 msr CPSR_fc, r0
170 2274: e59fd254 ldr sp, =0x83e780 ; via 0x24d0
171 2278: e10f0000 mrs r0, CPSR
172 227c: e3c0001f bic r0, r0, #31 ; 0x1f
173 2280: e3800013 orr r0, r0, #19 ; 0x13
174 2284: e129f000 msr CPSR_fc, r0
175 2288: e59f3234 ldr r3, =0x83cfd8 ; via 0x24c4
176 228c: e2822004 add r2, r2, #4
177 2290: e5832000 str r2, [r3]
178 2294: e3a01b01 mov r1, #1024 ; 0x400
179 2298: e3c11003 bic r1, r1, #3
180 229c: e0822001 add r2, r2, r1
181 22a0: e59f3220 ldr r3, =0x83d05c ; via 0x24c8
182 22a4: e5831000 str r1, [r3]
183 22a8: e3a01002 mov r1, #2
184 22ac: e59f3218 ldr r3, =0x83d06c ; via 0x24cc
185 22b0: e5831000 str r1, [r3]
186 22b4: e1a04002 mov r4, r2
187 22b8: eb061cb4 bl 0x189590 ; _f_load_int_mem
188 22bc: e1a02004 mov r2, r4
189 22c0: e59f11f4 ldr r1, =0x83e6dc ; via 0x24bc
190 22c4: e5910000 ldr r0, [r1]
191 22c8: e3a030fe mov r3, #254 ; 0xfe
192 22cc: e5c03000 strb r3, [r0]
193 22d0: e5c03001 strb r3, [r0, #1]
194 22d4: e5c03002 strb r3, [r0, #2]
195 22d8: e5c03003 strb r3, [r0, #3]
196 22dc: e4903004 ldr r3, [r0], #4
197 22e0: e4803004 str r3, [r0], #4
198 22e4: e1500002 cmp r0, r2
199 22e8: bafffffc blt 0x22e0
200 22ec: e51f0200 ldr r0, =0x280c ; via 0x20f4
201 22f0: e3700001 cmn r0, #1
202 22f4: 1b000077 blne 0x24d8 ; _auto_init
203 22f8: e1a00002 mov r0, r2
204 22fc: ea061cdf b 0x189680 ; _INC_Initialize
205
206 $Init_Target:
207 17ba8c: b530 push {r4, r5, lr}
208 17ba8e: b081 sub sp, #4
209 17ba90: 496e ldr r1, =0xfffef008 ; via 0x17bc4c
210 17ba92: 2003 mov r0, #3
211 17ba94: 0340 lsl r0, r0, #13
212 17ba96: 8008 strh r0, [r1, #0]
213 17ba98: f006 f860 bl 0x181b5c ; $TM_DisableWatchdog
214 17ba9c: 486c ldr r0, =0xfffffd02 ; via 0x17bc50
215 17ba9e: 2105 mov r1, #5
216 17baa0: 8001 strh r1, [r0, #0]
217 17baa2: 2180 mov r1, #128 ; 0x80
218 17baa4: 8802 ldrh r2, [r0, #0]
219 17baa6: 4311 orr r1, r2
220 17baa8: 8001 strh r1, [r0, #0]
221 17baaa: 496a ldr r1, =0xffdf ; via 0x17bc54
222 17baac: 8802 ldrh r2, [r0, #0]
223 17baae: 4011 and r1, r2
224 17bab0: 8001 strh r1, [r0, #0]
225 17bab2: 4d69 ldr r5, =0xfffff900 ; via 0x17bc58
226 17bab4: 20ff mov r0, #255 ; 0xff
227 17bab6: 0200 lsl r0, r0, #8
228 17bab8: 8028 strh r0, [r5, #0]
229 17baba: 4c68 ldr r4, =0xffff9800 ; via 0x17bc5c
230 17babc: 4868 ldr r0, =0xfff3 ; via 0x17bc60
231 17babe: 8821 ldrh r1, [r4, #0]
232 17bac0: 4008 and r0, r1
233 17bac2: 8020 strh r0, [r4, #0]
234 17bac4: 8820 ldrh r0, [r4, #0]
235 17bac6: 8020 strh r0, [r4, #0]
236 17bac8: 4866 ldr r0, =0xf01f ; via 0x17bc64
237 17baca: 8821 ldrh r1, [r4, #0]
238 17bacc: 4008 and r0, r1
239 17bace: 8020 strh r0, [r4, #0]
240 17bad0: 2001 mov r0, #1
241 17bad2: 0280 lsl r0, r0, #10
242 17bad4: 8821 ldrh r1, [r4, #0]
243 17bad6: 4308 orr r0, r1
244 17bad8: 8020 strh r0, [r4, #0]
245 17bada: 2000 mov r0, #0
246 17badc: 2102 mov r1, #2
247 17bade: 2200 mov r2, #0
248 17bae0: f006 fd30 bl 0x182544 ; $CLKM_InitARMClock
249 17bae4: 4860 ldr r0, =0xfffffb00 ; via 0x17bc68
250 17bae6: 21a3 mov r1, #163 ; 0xa3
251 17bae8: 8001 strh r1, [r0, #0]
252 17baea: 8041 strh r1, [r0, #2]
253 17baec: 22a5 mov r2, #165 ; 0xa5
254 17baee: 8082 strh r2, [r0, #4]
255 17baf0: 80c1 strh r1, [r0, #6]
256 17baf2: 2180 mov r1, #128 ; 0x80
257 17baf4: 8141 strh r1, [r0, #10] ; 0xa
258 17baf6: 21c0 mov r1, #192 ; 0xc0
259 17baf8: 8181 strh r1, [r0, #12] ; 0xc
260 17bafa: 2140 mov r1, #64 ; 0x40
261 17bafc: 8101 strh r1, [r0, #8]
262 17bafe: 2020 mov r0, #32 ; 0x20
263 17bb00: 8068 strh r0, [r5, #2]
264 17bb02: 2000 mov r0, #0
265 17bb04: 80a8 strh r0, [r5, #4]
266 17bb06: 2010 mov r0, #16 ; 0x10
267 17bb08: 8821 ldrh r1, [r4, #0]
268 17bb0a: 4308 orr r0, r1
269 17bb0c: 8020 strh r0, [r4, #0]
270 17bb0e: 4857 ldr r0, =0xfffffa08 ; via 0x17bc6c
271 17bb10: 4957 ldr r1, =0xffff ; via 0x17bc70
272 17bb12: 8001 strh r1, [r0, #0]
273 17bb14: 8041 strh r1, [r0, #2]
274 17bb16: 2103 mov r1, #3
275 17bb18: 8181 strh r1, [r0, #12] ; 0xc
276 17bb1a: f004 ff21 bl 0x180960 ; $IQ_SetupInterrupts
277 17bb1e: 4855 ldr r0, =0xfffffc00 ; via 0x17bc74
278 17bb20: 2124 mov r1, #36 ; 0x24
279 17bb22: 8001 strh r1, [r0, #0]
280 17bb24: 210d mov r1, #13 ; 0xd
281 17bb26: 8041 strh r1, [r0, #2]
282 17bb28: 2500 mov r5, #0
283 17bb2a: 4853 ldr r0, =0xfffe2016 ; via 0x17bc78
284 17bb2c: 8005 strh r5, [r0, #0]
285 17bb2e: 4953 ldr r1, =0xfffe2014 ; via 0x17bc7c
286 17bb30: 2002 mov r0, #2
287 17bb32: 8008 strh r0, [r1, #0]
288 17bb34: 4952 ldr r1, =0xfffe2002 ; via 0x17bc80
289 17bb36: 2084 mov r0, #132 ; 0x84
290 17bb38: 8008 strh r0, [r1, #0]
291 17bb3a: 4852 ldr r0, =0xfffe2000 ; via 0x17bc84
292 17bb3c: 4952 ldr r1, =0x3de0 ; via 0x17bc88
293 17bb3e: 8001 strh r1, [r0, #0]
294 17bb40: 4952 ldr r1, =0xfffe2022 ; via 0x17bc8c
295 ; ULPD setup different from TI's
296 17bb42: 220a mov r2, #10 ; 0xa
297 17bb44: 800a strh r2, [r1, #0]
298 17bb46: 4952 ldr r1, =0xfffe2020 ; via 0x17bc90
299 17bb48: 4a52 ldr r2, =0x45a ; via 0x17bc94
300 17bb4a: 800a strh r2, [r1, #0]
301 17bb4c: 4a52 ldr r2, =0xfffe201e ; via 0x17bc98
302 ; ULPD setup different from TI's
303 17bb4e: 21ff mov r1, #255 ; 0xff
304 17bb50: 314b add r1, #75 ; 0x4b
305 17bb52: 8011 strh r1, [r2, #0]
306 17bb54: 4951 ldr r1, =0xfffe201c ; via 0x17bc9c
307 17bb56: 221f mov r2, #31 ; 0x1f
308 17bb58: 800a strh r2, [r1, #0]
309 17bb5a: 4951 ldr r1, =0xfffe2024 ; via 0x17bca0
310 17bb5c: 800d strh r5, [r1, #0]
311 17bb5e: 4951 ldr r1, =0xfffe2010 ; via 0x17bca4
312 17bb60: 2202 mov r2, #2
313 17bb62: 880b ldrh r3, [r1, #0]
314 17bb64: 431a orr r2, r3
315 17bb66: 800a strh r2, [r1, #0]
316 17bb68: 4b4e ldr r3, =0xfffe2010 ; via 0x17bca4
317 17bb6a: 2104 mov r1, #4
318 17bb6c: 881a ldrh r2, [r3, #0]
319 17bb6e: 4311 orr r1, r2
320 17bb70: 8019 strh r1, [r3, #0]
321 17bb72: 4c4d ldr r4, =0xfffef006 ; via 0x17bca8
322 17bb74: 2127 mov r1, #39 ; 0x27
323 17bb76: 80e1 strh r1, [r4, #6]
324 17bb78: 8a01 ldrh r1, [r0, #16] ; 0x10
325 17bb7a: 0849 lsr r1, r1, #1
326 17bb7c: d30f bcc 0x17bb9e
327 17bb7e: 8a01 ldrh r1, [r0, #16] ; 0x10
328 17bb80: 0409 lsl r1, r1, #16
329 17bb82: 0c49 lsr r1, r1, #17
330 17bb84: 0049 lsl r1, r1, #1
331 17bb86: 8201 strh r1, [r0, #16] ; 0x10
332 17bb88: 2101 mov r1, #1
333 17bb8a: e001 b 0x17bb90
334 17bb8c: 9900 ldr r1, [sp, #0]
335 17bb8e: 3101 add r1, #1
336 17bb90: 9100 str r1, [sp, #0]
337 17bb92: 9900 ldr r1, [sp, #0]
338 17bb94: 2932 cmp r1, #50 ; 0x32
339 17bb96: d3f9 bcc 0x17bb8c
340 17bb98: 8a41 ldrh r1, [r0, #18] ; 0x12
341 17bb9a: 2900 cmp r1, #0
342 17bb9c: d0fc beq 0x17bb98
343 17bb9e: f006 fb10 bl 0x1821c2 ; $AI_ClockEnable
344 17bba2: f006 fb14 bl 0x1821ce ; $AI_InitIOConfig
345 17bba6: 2027 mov r0, #39 ; 0x27
346 17bba8: 0500 lsl r0, r0, #20
347 17bbaa: 8005 strh r5, [r0, #0]
348 ; extra code not in TI's version
349 ; superfluous bit clearing in the FFFE:F006 debug register
350 17bbac: 483f ldr r0, =0xffbf ; via 0x17bcac
351 17bbae: 8821 ldrh r1, [r4, #0]
352 17bbb0: 4008 and r0, r1
353 17bbb2: 8020 strh r0, [r4, #0]
354 ; setting GPIO 2 high - shuts off UART
355 17bbb4: 2002 mov r0, #2
356 17bbb6: f006 fad3 bl 0x182160 ; $AI_SetBit
357 ; setting bits 9 and 5 in FFFE:F00A - selecting IO9 and IO13
358 17bbba: 2001 mov r0, #1
359 17bbbc: 0240 lsl r0, r0, #9
360 17bbbe: 88a1 ldrh r1, [r4, #4]
361 17bbc0: 4308 orr r0, r1
362 17bbc2: 80a0 strh r0, [r4, #4]
363 17bbc4: 2020 mov r0, #32 ; 0x20
364 17bbc6: 88a1 ldrh r1, [r4, #4]
365 17bbc8: 4308 orr r0, r1
366 17bbca: 80a0 strh r0, [r4, #4]
367 ; tail end of TI's original code
368 17bbcc: 2001 mov r0, #1
369 17bbce: f005 ffd3 bl 0x181b78 ; $TM_EnableTimer
370 17bbd2: 2002 mov r0, #2
371 17bbd4: f005 ffd0 bl 0x181b78 ; $TM_EnableTimer
372 17bbd8: b001 add sp, #4
373 17bbda: bd30 pop {r4, r5, pc}
374
375 $Init_Drivers:
376 17bbdc: b500 push {lr}
377 17bbde: f7ca fb85 bl 0x1462ec
378 17bbe2: f7cc fab7 bl 0x148154
379 17bbe6: f00c fdac bl 0x188742
380 17bbea: f00c fdab bl 0x188744
381 17bbee: f7eb f9c5 bl 0x166f7c
382 17bbf2: f7ed fcb2 bl 0x16955a
383 17bbf6: f7cc fabf bl 0x148178
384 17bbfa: f7e3 f9e6 bl 0x15efca
385 17bbfe: f007 fe1d bl 0x18383c
386 17bc02: f7ed fa9b bl 0x16913c
387 17bc06: f77e fb27 bl 0xfa258
388 17bc0a: bd00 pop {pc}
389
390 $Init_Serial_Flows:
391 17bc0c: b500 push {lr}
392 17bc0e: 4828 ldr r0, =0x83dfa8 ; via 0x17bcb0
393 17bc10: f7c9 ffea bl 0x145be8
394 17bc14: 2000 mov r0, #0
395 17bc16: 2102 mov r1, #2
396 17bc18: 2200 mov r2, #0
397 17bc1a: f7ca f85e bl 0x145cda
398 17bc1e: f7ca f8b8 bl 0x145d92
399 17bc22: bd00 pop {pc}
400
401 $Init_Unmask_IT:
402 17bc24: b500 push {lr}
403 17bc26: 2004 mov r0, #4
404 17bc28: f004 fefb bl 0x180a22 ; $IQ_Unmask
405 17bc2c: 2012 mov r0, #18 ; 0x12
406 17bc2e: f004 fef8 bl 0x180a22 ; $IQ_Unmask
407 17bc32: 2007 mov r0, #7
408 17bc34: f004 fef5 bl 0x180a22 ; $IQ_Unmask
409 17bc38: 2008 mov r0, #8
410 17bc3a: f004 fef2 bl 0x180a22 ; $IQ_Unmask
411 17bc3e: bd00 pop {pc}
412
413 $GpUnmaskRTCAlarmInterrupts:
414 17bc40: b500 push {lr}
415 17bc42: 200a mov r0, #10 ; 0xa
416 17bc44: f004 feed bl 0x180a22 ; $IQ_Unmask
417 17bc48: bd00 pop {pc}
418 17bc4a: 46c0 nop (mov r8, r8)
419
420 $AI_EnableBit:
421 182144: 4a4b ldr r2, =0xfffef00a ; via 0x182274
422 182146: 2101 mov r1, #1
423 182148: 4081 lsl r1, r0
424 18214a: 8810 ldrh r0, [r2, #0]
425 18214c: 4301 orr r1, r0
426 18214e: 8011 strh r1, [r2, #0]
427 182150: 4770 bx lr
428
429 $AI_DisableBit:
430 182152: 4a48 ldr r2, =0xfffef00a ; via 0x182274
431 182154: 2101 mov r1, #1
432 182156: 4081 lsl r1, r0
433 182158: 8810 ldrh r0, [r2, #0]
434 18215a: 4388 bic r0, r1
435 18215c: 8010 strh r0, [r2, #0]
436 18215e: 4770 bx lr
437
438 $AI_SetBit:
439 182160: 4a45 ldr r2, =0xfffe4802 ; via 0x182278
440 182162: 2101 mov r1, #1
441 182164: 4081 lsl r1, r0
442 182166: 8810 ldrh r0, [r2, #0]
443 182168: 4301 orr r1, r0
444 18216a: 8011 strh r1, [r2, #0]
445 18216c: 4770 bx lr
446
447 $AI_ResetBit:
448 18216e: 4a42 ldr r2, =0xfffe4802 ; via 0x182278
449 182170: 2101 mov r1, #1
450 182172: 4081 lsl r1, r0
451 182174: 8810 ldrh r0, [r2, #0]
452 182176: 4388 bic r0, r1
453 182178: 8010 strh r0, [r2, #0]
454 18217a: 4770 bx lr
455
456 $AI_ConfigBitAsOutput:
457 18217c: 4a3f ldr r2, =0xfffe4804 ; via 0x18227c
458 18217e: 2101 mov r1, #1
459 182180: 4081 lsl r1, r0
460 182182: 8810 ldrh r0, [r2, #0]
461 182184: 4388 bic r0, r1
462 182186: 8010 strh r0, [r2, #0]
463 182188: 4770 bx lr
464
465 $AI_ConfigBitAsInput:
466 18218a: 4a3c ldr r2, =0xfffe4804 ; via 0x18227c
467 18218c: 2101 mov r1, #1
468 18218e: 4081 lsl r1, r0
469 182190: 8810 ldrh r0, [r2, #0]
470 182192: 4301 orr r1, r0
471 182194: 8011 strh r1, [r2, #0]
472 182196: 4770 bx lr
473
474 $AI_ReadBit:
475 182198: 4939 ldr r1, =0xfffe4800 ; via 0x182280
476 18219a: 8809 ldrh r1, [r1, #0]
477 18219c: 4101 asr r1, r0
478 18219e: 07c8 lsl r0, r1, #31
479 1821a0: 0fc0 lsr r0, r0, #31
480 1821a2: 0600 lsl r0, r0, #24
481 1821a4: 0e00 lsr r0, r0, #24
482 1821a6: 4770 bx lr
483
484 $AI_Power:
485 1821a8: b500 push {lr}
486 1821aa: 2800 cmp r0, #0
487 1821ac: d101 bne 0x1821b2
488 1821ae: f7c4 fbdb bl 0x146968 ; $ABB_Power_Off
489 1821b2: bd00 pop {pc}
490
491 $AI_ResetIoConfig:
492 1821b4: 4931 ldr r1, =0xfffe4804 ; via 0x18227c
493 1821b6: 4833 ldr r0, =0xffff ; via 0x182284
494 1821b8: 8008 strh r0, [r1, #0]
495 1821ba: 482e ldr r0, =0xfffef00a ; via 0x182274
496 1821bc: 2100 mov r1, #0
497 1821be: 8001 strh r1, [r0, #0]
498 1821c0: 4770 bx lr
499
500 $AI_ClockEnable:
501 1821c2: 4931 ldr r1, =0xfffe4806 ; via 0x182288
502 1821c4: 2020 mov r0, #32 ; 0x20
503 1821c6: 880a ldrh r2, [r1, #0]
504 1821c8: 4310 orr r0, r2
505 1821ca: 8008 strh r0, [r1, #0]
506 1821cc: 4770 bx lr
507
508 $AI_InitIOConfig:
509 1821ce: b500 push {lr}
510 1821d0: f7ff fff0 bl 0x1821b4 ; $AI_ResetIoConfig
511 1821d4: 2002 mov r0, #2
512 1821d6: f7ff ffb5 bl 0x182144 ; $AI_EnableBit
513 1821da: 2003 mov r0, #3
514 1821dc: f7ff ffb2 bl 0x182144 ; $AI_EnableBit
515 1821e0: 2004 mov r0, #4
516 1821e2: f7ff ffaf bl 0x182144 ; $AI_EnableBit
517 1821e6: 2005 mov r0, #5
518 1821e8: f7ff ffac bl 0x182144 ; $AI_EnableBit
519 1821ec: 2006 mov r0, #6
520 1821ee: f7ff ffa9 bl 0x182144 ; $AI_EnableBit
521 1821f2: 2007 mov r0, #7
522 1821f4: f7ff ffa6 bl 0x182144 ; $AI_EnableBit
523 1821f8: 2008 mov r0, #8
524 1821fa: f7ff ffa3 bl 0x182144 ; $AI_EnableBit
525 1821fe: 2009 mov r0, #9
526 182200: f7ff ffa0 bl 0x182144 ; $AI_EnableBit
527 182204: 491c ldr r1, =0xfffe4802 ; via 0x182278
528 182206: 4821 ldr r0, =0x3f02 ; via 0x18228c
529 182208: 8008 strh r0, [r1, #0]
530 18220a: 2001 mov r0, #1
531 18220c: f7ff ffb6 bl 0x18217c ; $AI_ConfigBitAsOutput
532 182210: 2002 mov r0, #2
533 182212: f7ff ffb3 bl 0x18217c ; $AI_ConfigBitAsOutput
534 182216: 2005 mov r0, #5
535 182218: f7ff ffb0 bl 0x18217c ; $AI_ConfigBitAsOutput
536 18221c: 2007 mov r0, #7
537 18221e: f7ff ffad bl 0x18217c ; $AI_ConfigBitAsOutput
538 182222: 2009 mov r0, #9
539 182224: f7ff ffb1 bl 0x18218a ; $AI_ConfigBitAsInput
540 182228: 200b mov r0, #11 ; 0xb
541 18222a: f7ff ffae bl 0x18218a ; $AI_ConfigBitAsInput
542 18222e: 200d mov r0, #13 ; 0xd
543 182230: f7ff ffab bl 0x18218a ; $AI_ConfigBitAsInput
544 182234: 200e mov r0, #14 ; 0xe
545 182236: f7ff ffa1 bl 0x18217c ; $AI_ConfigBitAsOutput
546 18223a: 200f mov r0, #15 ; 0xf
547 18223c: f7ff ff9e bl 0x18217c ; $AI_ConfigBitAsOutput
548 182240: bd00 pop {pc}
549
550 $AI_SelectIOForIT:
551 182242: 0109 lsl r1, r1, #4
552 182244: 1840 add r0, r0, r1
553 182246: 0040 lsl r0, r0, #1
554 182248: 3001 add r0, #1
555 18224a: 4911 ldr r1, =0xfffe4814 ; via 0x182290
556 18224c: 8008 strh r0, [r1, #0]
557 18224e: 4770 bx lr
558
559 $AI_CheckITSource:
560 182250: 2100 mov r1, #0
561 182252: 4a10 ldr r2, =0xfffe4816 ; via 0x182294
562 182254: 8812 ldrh r2, [r2, #0]
563 182256: 4210 tst r0, r2
564 182258: d000 beq 0x18225c
565 18225a: 2101 mov r1, #1
566 18225c: 1c08 add r0, r1, #0
567 18225e: 4770 bx lr
568
569 $AI_UnmaskIT:
570 182260: 4a0d ldr r2, =0xfffe4818 ; via 0x182298
571 182262: 8811 ldrh r1, [r2, #0]
572 182264: 4381 bic r1, r0
573 182266: 8011 strh r1, [r2, #0]
574 182268: 4770 bx lr
575
576 $AI_MaskIT:
577 18226a: 4a0b ldr r2, =0xfffe4818 ; via 0x182298
578 18226c: 8811 ldrh r1, [r2, #0]
579 18226e: 4301 orr r1, r0
580 182270: 8011 strh r1, [r2, #0]
581 182272: 4770 bx lr
582
583 $INC_Initialize:
584 1887ac: b510 push {r4, lr}
585 1887ae: 1c04 add r4, r0, #0
586 1887b0: 4813 ldr r0, =0x83e688 ; via 0x188800
587 1887b2: 2101 mov r1, #1
588 1887b4: 6001 str r1, [r0, #0]
589 1887b6: f001 f883 bl 0x1898c0
590 1887ba: f001 f87d bl 0x1898b8
591 1887be: f001 f859 bl 0x189874
592 1887c2: f000 fbd9 bl 0x188f78
593 1887c6: f7fb f8e7 bl 0x183998
594 1887ca: f000 fe2f bl 0x18942c
595 1887ce: f000 fdad bl 0x18932c
596 1887d2: f000 fd8b bl 0x1892ec
597 1887d6: f000 fd99 bl 0x18930c
598 1887da: f000 fde7 bl 0x1893ac
599 1887de: f000 fdb5 bl 0x18934c
600 1887e2: f000 fe13 bl 0x18940c
601 1887e6: f7fe f881 bl 0x1868ec
602 1887ea: f000 fe2f bl 0x18944c
603 1887ee: 1c20 add r0, r4, #0
604 1887f0: f000 fd10 bl 0x189214 ; $Application_Initialize
605 1887f4: 4902 ldr r1, =0x83e688 ; via 0x188800
606 1887f6: 2002 mov r0, #2
607 1887f8: 6008 str r0, [r1, #0]
608 1887fa: f7a8 ff75 bl 0x1316e8
609 1887fe: bd10 pop {r4, pc}
610
611 $Application_Initialize:
612 189214: b500 push {lr}
613 189216: f7f2 fc39 bl 0x17ba8c ; $Init_Target
614 18921a: f7f2 fcdf bl 0x17bbdc ; $Init_Drivers
615 18921e: f7cb fa31 bl 0x154684 ; $key_pressed_times
616 189222: f736 fafa bl 0xbf81a ; $Cust_Init_Layer1
617 189226: f7cb fa2d bl 0x154684 ; $key_pressed_times
618 18922a: f7f2 fcef bl 0x17bc0c ; $Init_Serial_Flows
619 18922e: f7ad f8d6 bl 0x1363de ; $StartFrame
620 189232: f7f2 fcf7 bl 0x17bc24 ; $Init_Unmask_IT
621 189236: bd00 pop {pc}
622
623 _INC_Initialize: ; call veneer
624 189680: e92d4000 stmdb sp!, {lr}
625 189684: e28fe001 add lr, pc, #1
626 189688: e12fff1e bx lr
627 18968c: f7ff f88e bl 0x1887ac ; $INC_Initialize
628 189690: 4778 bx pc
629 189692: 46c0 nop (mov r8, r8)
630 189694: e8bd8000 ldmia sp!, {pc}