Files
RS485_10VRLY/Source/Lst/RLY_10V485_V02_20260402.asm

12585 lines
506 KiB
NASM
Raw Normal View History

.//Obj/RLY_10V485_V02_20260402.elf: file format elf32-csky-little
Disassembly of section .text:
00000000 <vector_table>:
0: 0000010c .long 0x0000010c
4: 0000318e .long 0x0000318e
8: 0000317e .long 0x0000317e
c: 00000184 .long 0x00000184
10: 00003186 .long 0x00003186
14: 00003144 .long 0x00003144
18: 00000184 .long 0x00000184
1c: 00003176 .long 0x00003176
20: 0000316e .long 0x0000316e
24: 00000184 .long 0x00000184
28: 00000184 .long 0x00000184
2c: 00000184 .long 0x00000184
30: 00000184 .long 0x00000184
34: 00000184 .long 0x00000184
38: 00000184 .long 0x00000184
3c: 00000184 .long 0x00000184
40: 00003166 .long 0x00003166
44: 0000315e .long 0x0000315e
48: 00003156 .long 0x00003156
4c: 0000314e .long 0x0000314e
50: 00000184 .long 0x00000184
54: 00000184 .long 0x00000184
58: 00000184 .long 0x00000184
5c: 00000184 .long 0x00000184
60: 00000184 .long 0x00000184
64: 00000184 .long 0x00000184
68: 00000184 .long 0x00000184
6c: 00000184 .long 0x00000184
70: 00000184 .long 0x00000184
74: 00000184 .long 0x00000184
78: 00000184 .long 0x00000184
7c: 00003146 .long 0x00003146
80: 00004974 .long 0x00004974
84: 00002838 .long 0x00002838
88: 00002928 .long 0x00002928
8c: 00002990 .long 0x00002990
90: 000029f8 .long 0x000029f8
94: 00000184 .long 0x00000184
98: 00002ba4 .long 0x00002ba4
9c: 00002f20 .long 0x00002f20
a0: 00002f50 .long 0x00002f50
a4: 00002bd8 .long 0x00002bd8
a8: 00000184 .long 0x00000184
ac: 00000184 .long 0x00000184
b0: 00002c58 .long 0x00002c58
b4: 00002cc8 .long 0x00002cc8
b8: 00002d04 .long 0x00002d04
bc: 00002d98 .long 0x00002d98
c0: 00000184 .long 0x00000184
c4: 0000319e .long 0x0000319e
c8: 00000184 .long 0x00000184
cc: 00002de4 .long 0x00002de4
d0: 00002ecc .long 0x00002ecc
d4: 00002f80 .long 0x00002f80
d8: 00002fc8 .long 0x00002fc8
dc: 00002fe8 .long 0x00002fe8
e0: 00003196 .long 0x00003196
e4: 000043e4 .long 0x000043e4
e8: 00003054 .long 0x00003054
ec: 00000184 .long 0x00000184
f0: 00003088 .long 0x00003088
f4: 000030d4 .long 0x000030d4
f8: 00000184 .long 0x00000184
fc: 00000184 .long 0x00000184
100: 55aa0005 .long 0x55aa0005
...
0000010c <__start>:
// .long __start
__start:
//initialize all registers
movi r0, 0
10c: 3000 movi r0, 0
movi r1, 0
10e: 3100 movi r1, 0
movi r2, 0
110: 3200 movi r2, 0
movi r3, 0
112: 3300 movi r3, 0
movi r4, 0
114: 3400 movi r4, 0
movi r5, 0
116: 3500 movi r5, 0
movi r6, 0
118: 3600 movi r6, 0
movi r7, 0
11a: 3700 movi r7, 0
//movi r13, 0
//movi r14, 0
//movi r15, 0
//set VBR
lrw r2, vector_table
11c: 105b lrw r2, 0x0 // 188 <DummyHandler+0x4>
mtcr r2, cr<1,0>
11e: c0026421 mtcr r2, cr<1, 0>
//enable EE bit of psr
mfcr r2, cr<0,0>
122: c0006022 mfcr r2, cr<0, 0>
bseti r2, r2, 8
126: 3aa8 bseti r2, 8
mtcr r2, cr<0,0>
128: c0026420 mtcr r2, cr<0, 0>
// st.w r2, (r1,0x4)
// movi r2, 0x1
// st.w r2, (r1,0x0)
//disable power peak
lrw r1, 0xe000ef90
12c: 1038 lrw r1, 0xe000ef90 // 18c <DummyHandler+0x8>
movi r2, 0x0
12e: 3200 movi r2, 0
st.w r2, (r1, 0x0)
130: b140 st.w r2, (r1, 0x0)
//initialize kernel stack
lrw r7, __kernel_stack
132: 10f8 lrw r7, 0x20000ff8 // 190 <DummyHandler+0xc>
mov r14,r7
134: 6f9f mov r14, r7
subi r6,r7,0x4
136: 5fcf subi r6, r7, 4
//lrw r3, 0x40
lrw r3, 0x04
138: 3304 movi r3, 4
subu r4, r7, r3
13a: 5f8d subu r4, r7, r3
lrw r5, 0x0
13c: 3500 movi r5, 0
0000013e <INIT_KERLE_STACK>:
INIT_KERLE_STACK:
addi r4, 0x4
13e: 2403 addi r4, 4
st.w r5, (r4)
140: b4a0 st.w r5, (r4, 0x0)
//cmphs r7, r4
cmphs r6, r4
142: 6518 cmphs r6, r4
bt INIT_KERLE_STACK
144: 0bfd bt 0x13e // 13e <INIT_KERLE_STACK>
00000146 <__to_main>:
__to_main:
lrw r0,__main
146: 1014 lrw r0, 0x1a90 // 194 <DummyHandler+0x10>
jsr r0
148: 7bc1 jsr r0
mov r0, r0
14a: 6c03 mov r0, r0
mov r0, r0
14c: 6c03 mov r0, r0
lrw r15, __exit
14e: ea8f0013 lrw r15, 0x160 // 198 <DummyHandler+0x14>
lrw r0,main
152: 1013 lrw r0, 0x26ac // 19c <DummyHandler+0x18>
jmp r0
154: 7800 jmp r0
mov r0, r0
156: 6c03 mov r0, r0
mov r0, r0
158: 6c03 mov r0, r0
mov r0, r0
15a: 6c03 mov r0, r0
mov r0, r0
15c: 6c03 mov r0, r0
mov r0, r0
15e: 6c03 mov r0, r0
00000160 <__exit>:
.export __exit
__exit:
lrw r4, 0x20003000
160: 1090 lrw r4, 0x20003000 // 1a0 <DummyHandler+0x1c>
//lrw r5, 0x0
mov r5, r0
162: 6d43 mov r5, r0
st.w r5, (r4)
164: b4a0 st.w r5, (r4, 0x0)
mfcr r1, cr<0,0>
166: c0006021 mfcr r1, cr<0, 0>
lrw r1, 0xFFFF
16a: 102f lrw r1, 0xffff // 1a4 <DummyHandler+0x20>
mtcr r1, cr<11,0>
16c: c001642b mtcr r1, cr<11, 0>
lrw r1, 0xFFF
170: 102e lrw r1, 0xfff // 1a8 <DummyHandler+0x24>
movi r0, 0x0
172: 3000 movi r0, 0
st r1, (r0)
174: b020 st.w r1, (r0, 0x0)
00000176 <__fail>:
.export __fail
__fail:
lrw r1, 0xEEEE
176: 102e lrw r1, 0xeeee // 1ac <DummyHandler+0x28>
mtcr r1, cr<11,0>
178: c001642b mtcr r1, cr<11, 0>
lrw r1, 0xEEE
17c: 102d lrw r1, 0xeee // 1b0 <DummyHandler+0x2c>
movi r0, 0x0
17e: 3000 movi r0, 0
st r1, (r0)
180: b020 st.w r1, (r0, 0x0)
00000182 <__dummy>:
__dummy:
br __fail
182: 07fa br 0x176 // 176 <__fail>
00000184 <DummyHandler>:
.export DummyHandler
DummyHandler:
br __fail
184: 07f9 br 0x176 // 176 <__fail>
186: 0000 .short 0x0000
188: 00000000 .long 0x00000000
18c: e000ef90 .long 0xe000ef90
190: 20000ff8 .long 0x20000ff8
194: 00001a90 .long 0x00001a90
198: 00000160 .long 0x00000160
19c: 000026ac .long 0x000026ac
1a0: 20003000 .long 0x20003000
1a4: 0000ffff .long 0x0000ffff
1a8: 00000fff .long 0x00000fff
1ac: 0000eeee .long 0x0000eeee
1b0: 00000eee .long 0x00000eee
000001b4 <__GI_pow>:
1b4: 14d4 push r4-r7, r15
1b6: 142d subi r14, r14, 52
1b8: b860 st.w r3, (r14, 0x0)
1ba: 4361 lsli r3, r3, 1
1bc: 4b81 lsri r4, r3, 1
1be: b842 st.w r2, (r14, 0x8)
1c0: 6c90 or r2, r4
1c2: 3a40 cmpnei r2, 0
1c4: 6dc3 mov r7, r0
1c6: 6d87 mov r6, r1
1c8: 0803 bt 0x1ce // 1ce <__GI_pow+0x1a>
1ca: e8000462 br 0xa8e // a8e <__GI_pow+0x8da>
1ce: 41a1 lsli r5, r1, 1
1d0: 4da1 lsri r5, r5, 1
1d2: 0055 lrw r2, 0x7ff00000 // 578 <__GI_pow+0x3c4>
1d4: 6549 cmplt r2, r5
1d6: 080c bt 0x1ee // 1ee <__GI_pow+0x3a>
1d8: 6496 cmpne r5, r2
1da: 0803 bt 0x1e0 // 1e0 <__GI_pow+0x2c>
1dc: 3840 cmpnei r0, 0
1de: 0808 bt 0x1ee // 1ee <__GI_pow+0x3a>
1e0: 6509 cmplt r2, r4
1e2: 0806 bt 0x1ee // 1ee <__GI_pow+0x3a>
1e4: 6492 cmpne r4, r2
1e6: 080e bt 0x202 // 202 <__GI_pow+0x4e>
1e8: 9802 ld.w r0, (r14, 0x8)
1ea: 3840 cmpnei r0, 0
1ec: 0c0b bf 0x202 // 202 <__GI_pow+0x4e>
1ee: 9842 ld.w r2, (r14, 0x8)
1f0: 9860 ld.w r3, (r14, 0x0)
1f2: 6c1f mov r0, r7
1f4: 6c5b mov r1, r6
1f6: e000071f bsr 0x1034 // 1034 <__adddf3>
1fa: 6d03 mov r4, r0
1fc: 6c13 mov r0, r4
1fe: 140d addi r14, r14, 52
200: 1494 pop r4-r7, r15
202: 3edf btsti r6, 31
204: 0c51 bf 0x2a6 // 2a6 <__GI_pow+0xf2>
206: 0121 lrw r1, 0x43400000 // 57c <__GI_pow+0x3c8>
208: 2900 subi r1, 1
20a: 6505 cmplt r1, r4
20c: 084b bt 0x2a2 // 2a2 <__GI_pow+0xee>
20e: 0162 lrw r3, 0x3ff00000 // 580 <__GI_pow+0x3cc>
210: 2b00 subi r3, 1
212: 650d cmplt r3, r4
214: 0c49 bf 0x2a6 // 2a6 <__GI_pow+0xf2>
216: 5454 asri r2, r4, 20
218: 0104 lrw r0, 0xfffffc01 // 584 <__GI_pow+0x3d0>
21a: 6080 addu r2, r0
21c: 3a34 cmplti r2, 21
21e: 0821 bt 0x260 // 260 <__GI_pow+0xac>
220: 3334 movi r3, 52
222: 60ca subu r3, r2
224: 9842 ld.w r2, (r14, 0x8)
226: 708d lsr r2, r3
228: 6c4b mov r1, r2
22a: 704c lsl r1, r3
22c: 9802 ld.w r0, (r14, 0x8)
22e: 6442 cmpne r0, r1
230: 083b bt 0x2a6 // 2a6 <__GI_pow+0xf2>
232: 3101 movi r1, 1
234: 6884 and r2, r1
236: 3302 movi r3, 2
238: 5b49 subu r2, r3, r2
23a: 9802 ld.w r0, (r14, 0x8)
23c: 3840 cmpnei r0, 0
23e: b841 st.w r2, (r14, 0x4)
240: 0862 bt 0x304 // 304 <__GI_pow+0x150>
242: 0151 lrw r2, 0x7ff00000 // 578 <__GI_pow+0x3c4>
244: 6492 cmpne r4, r2
246: 081f bt 0x284 // 284 <__GI_pow+0xd0>
248: 012f lrw r1, 0xc0100000 // 588 <__GI_pow+0x3d4>
24a: 6054 addu r1, r5
24c: 6dc4 or r7, r1
24e: 3f40 cmpnei r7, 0
250: 082d bt 0x2aa // 2aa <__GI_pow+0xf6>
252: 9860 ld.w r3, (r14, 0x0)
254: 3200 movi r2, 0
256: 6c4f mov r1, r3
258: 3000 movi r0, 0
25a: e0000705 bsr 0x1064 // 1064 <__subdf3>
25e: 07ce br 0x1fa // 1fa <__GI_pow+0x46>
260: 9822 ld.w r1, (r14, 0x8)
262: 3940 cmpnei r1, 0
264: 084e bt 0x300 // 300 <__GI_pow+0x14c>
266: 3114 movi r1, 20
268: 604a subu r1, r2
26a: 6c93 mov r2, r4
26c: 7086 asr r2, r1
26e: 6c0b mov r0, r2
270: 7004 lsl r0, r1
272: 6412 cmpne r4, r0
274: 0c03 bf 0x27a // 27a <__GI_pow+0xc6>
276: e8000471 br 0xb58 // b58 <__GI_pow+0x9a4>
27a: 3101 movi r1, 1
27c: 6884 and r2, r1
27e: 3002 movi r0, 2
280: 5869 subu r3, r0, r2
282: b861 st.w r3, (r14, 0x4)
284: 0220 lrw r1, 0x3ff00000 // 580 <__GI_pow+0x3cc>
286: 6452 cmpne r4, r1
288: 0825 bt 0x2d2 // 2d2 <__GI_pow+0x11e>
28a: 9880 ld.w r4, (r14, 0x0)
28c: 3cdf btsti r4, 31
28e: 0803 bt 0x294 // 294 <__GI_pow+0xe0>
290: e8000407 br 0xa9e // a9e <__GI_pow+0x8ea>
294: 6c9f mov r2, r7
296: 6cdb mov r3, r6
298: 3000 movi r0, 0
29a: 0225 lrw r1, 0x3ff00000 // 580 <__GI_pow+0x3cc>
29c: e000081a bsr 0x12d0 // 12d0 <__divdf3>
2a0: 07ad br 0x1fa // 1fa <__GI_pow+0x46>
2a2: 3202 movi r2, 2
2a4: 07cb br 0x23a // 23a <__GI_pow+0x86>
2a6: 3200 movi r2, 0
2a8: 07c9 br 0x23a // 23a <__GI_pow+0x86>
2aa: 0269 lrw r3, 0x3ff00000 // 580 <__GI_pow+0x3cc>
2ac: 2b00 subi r3, 1
2ae: 654d cmplt r3, r5
2b0: 9800 ld.w r0, (r14, 0x0)
2b2: 0c08 bf 0x2c2 // 2c2 <__GI_pow+0x10e>
2b4: 38df btsti r0, 31
2b6: 0803 bt 0x2bc // 2bc <__GI_pow+0x108>
2b8: e80003ef br 0xa96 // a96 <__GI_pow+0x8e2>
2bc: 3400 movi r4, 0
2be: 3100 movi r1, 0
2c0: 079e br 0x1fc // 1fc <__GI_pow+0x48>
2c2: 38df btsti r0, 31
2c4: 0ffc bf 0x2bc // 2bc <__GI_pow+0x108>
2c6: 3400 movi r4, 0
2c8: 6c43 mov r1, r0
2ca: 3280 movi r2, 128
2cc: 4278 lsli r3, r2, 24
2ce: 604c addu r1, r3
2d0: 0796 br 0x1fc // 1fc <__GI_pow+0x48>
2d2: 3380 movi r3, 128
2d4: 4317 lsli r0, r3, 23
2d6: 9840 ld.w r2, (r14, 0x0)
2d8: 640a cmpne r2, r0
2da: 0808 bt 0x2ea // 2ea <__GI_pow+0x136>
2dc: 6c9f mov r2, r7
2de: 6cdb mov r3, r6
2e0: 6c1f mov r0, r7
2e2: 6c5b mov r1, r6
2e4: e00006dc bsr 0x109c // 109c <__muldf3>
2e8: 0789 br 0x1fa // 1fa <__GI_pow+0x46>
2ea: 0276 lrw r3, 0x3fe00000 // 58c <__GI_pow+0x3d8>
2ec: 9820 ld.w r1, (r14, 0x0)
2ee: 64c6 cmpne r1, r3
2f0: 080a bt 0x304 // 304 <__GI_pow+0x150>
2f2: 3edf btsti r6, 31
2f4: 0808 bt 0x304 // 304 <__GI_pow+0x150>
2f6: 6c1f mov r0, r7
2f8: 6c5b mov r1, r6
2fa: e0000445 bsr 0xb84 // b84 <__GI_sqrt>
2fe: 077e br 0x1fa // 1fa <__GI_pow+0x46>
300: 3300 movi r3, 0
302: b861 st.w r3, (r14, 0x4)
304: 6c1f mov r0, r7
306: 6c5b mov r1, r6
308: b883 st.w r4, (r14, 0xc)
30a: e000042a bsr 0xb5e // b5e <__GI_fabs>
30e: 3f40 cmpnei r7, 0
310: 6d03 mov r4, r0
312: 9863 ld.w r3, (r14, 0xc)
314: 0826 bt 0x360 // 360 <__GI_pow+0x1ac>
316: 3d40 cmpnei r5, 0
318: 0c05 bf 0x322 // 322 <__GI_pow+0x16e>
31a: 4642 lsli r2, r6, 2
31c: 0302 lrw r0, 0xffc00000 // 590 <__GI_pow+0x3dc>
31e: 640a cmpne r2, r0
320: 0820 bt 0x360 // 360 <__GI_pow+0x1ac>
322: 9840 ld.w r2, (r14, 0x0)
324: 3adf btsti r2, 31
326: 0c08 bf 0x336 // 336 <__GI_pow+0x182>
328: 6c93 mov r2, r4
32a: 6cc7 mov r3, r1
32c: 3000 movi r0, 0
32e: 032a lrw r1, 0x3ff00000 // 580 <__GI_pow+0x3cc>
330: e00007d0 bsr 0x12d0 // 12d0 <__divdf3>
334: 6d03 mov r4, r0
336: 3edf btsti r6, 31
338: 0f62 bf 0x1fc // 1fc <__GI_pow+0x48>
33a: 036b lrw r3, 0xc0100000 // 588 <__GI_pow+0x3d4>
33c: 614c addu r5, r3
33e: 9801 ld.w r0, (r14, 0x4)
340: 6d40 or r5, r0
342: 3d40 cmpnei r5, 0
344: 080a bt 0x358 // 358 <__GI_pow+0x1a4>
346: 6c93 mov r2, r4
348: 6cc7 mov r3, r1
34a: 6c0b mov r0, r2
34c: 6c4f mov r1, r3
34e: e000068b bsr 0x1064 // 1064 <__subdf3>
352: 6c83 mov r2, r0
354: 6cc7 mov r3, r1
356: 07a3 br 0x29c // 29c <__GI_pow+0xe8>
358: 9841 ld.w r2, (r14, 0x4)
35a: 3a41 cmpnei r2, 1
35c: 0b50 bt 0x1fc // 1fc <__GI_pow+0x48>
35e: 07b6 br 0x2ca // 2ca <__GI_pow+0x116>
360: 4e5f lsri r2, r6, 31
362: 2a00 subi r2, 1
364: b847 st.w r2, (r14, 0x1c)
366: 9807 ld.w r0, (r14, 0x1c)
368: 9841 ld.w r2, (r14, 0x4)
36a: 6c80 or r2, r0
36c: 3a40 cmpnei r2, 0
36e: 0804 bt 0x376 // 376 <__GI_pow+0x1c2>
370: 6c9f mov r2, r7
372: 6cdb mov r3, r6
374: 07eb br 0x34a // 34a <__GI_pow+0x196>
376: 0357 lrw r2, 0x41e00000 // 594 <__GI_pow+0x3e0>
378: 64c9 cmplt r2, r3
37a: 0cbf bf 0x4f8 // 4f8 <__GI_pow+0x344>
37c: 0358 lrw r2, 0x43f00000 // 598 <__GI_pow+0x3e4>
37e: 64c9 cmplt r2, r3
380: 037f lrw r3, 0x3ff00000 // 580 <__GI_pow+0x3cc>
382: 0c0c bf 0x39a // 39a <__GI_pow+0x1e6>
384: 2b00 subi r3, 1
386: 654d cmplt r3, r5
388: 080f bt 0x3a6 // 3a6 <__GI_pow+0x1f2>
38a: 9820 ld.w r1, (r14, 0x0)
38c: 39df btsti r1, 31
38e: 0f97 bf 0x2bc // 2bc <__GI_pow+0x108>
390: 035c lrw r2, 0x8800759c // 59c <__GI_pow+0x3e8>
392: 037b lrw r3, 0x7e37e43c // 5a0 <__GI_pow+0x3ec>
394: 6c0b mov r0, r2
396: 6c4f mov r1, r3
398: 07a6 br 0x2e4 // 2e4 <__GI_pow+0x130>
39a: 2b01 subi r3, 2
39c: 654d cmplt r3, r5
39e: 0ff6 bf 0x38a // 38a <__GI_pow+0x1d6>
3a0: 1318 lrw r0, 0x3ff00000 // 580 <__GI_pow+0x3cc>
3a2: 6541 cmplt r0, r5
3a4: 0c05 bf 0x3ae // 3ae <__GI_pow+0x1fa>
3a6: 9800 ld.w r0, (r14, 0x0)
3a8: 3820 cmplti r0, 1
3aa: 0ff3 bf 0x390 // 390 <__GI_pow+0x1dc>
3ac: 0788 br 0x2bc // 2bc <__GI_pow+0x108>
3ae: 3200 movi r2, 0
3b0: 1374 lrw r3, 0x3ff00000 // 580 <__GI_pow+0x3cc>
3b2: 6c1f mov r0, r7
3b4: 6c5b mov r1, r6
3b6: 36c0 movi r6, 192
3b8: e0000656 bsr 0x1064 // 1064 <__subdf3>
3bc: 4657 lsli r2, r6, 23
3be: 137a lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0>
3c0: 6d43 mov r5, r0
3c2: 6d07 mov r4, r1
3c4: e000066c bsr 0x109c // 109c <__muldf3>
3c8: 6dc3 mov r7, r0
3ca: 6d87 mov r6, r1
3cc: 1357 lrw r2, 0xf85ddf44 // 5a8 <__GI_pow+0x3f4>
3ce: 1378 lrw r3, 0x3e54ae0b // 5ac <__GI_pow+0x3f8>
3d0: 6c17 mov r0, r5
3d2: 6c53 mov r1, r4
3d4: e0000664 bsr 0x109c // 109c <__muldf3>
3d8: b803 st.w r0, (r14, 0xc)
3da: b824 st.w r1, (r14, 0x10)
3dc: 3200 movi r2, 0
3de: 1375 lrw r3, 0x3fd00000 // 5b0 <__GI_pow+0x3fc>
3e0: 6c17 mov r0, r5
3e2: 6c53 mov r1, r4
3e4: e000065c bsr 0x109c // 109c <__muldf3>
3e8: 6c83 mov r2, r0
3ea: 6cc7 mov r3, r1
3ec: 1312 lrw r0, 0x55555555 // 5b4 <__GI_pow+0x400>
3ee: 1333 lrw r1, 0x3fd55555 // 5b8 <__GI_pow+0x404>
3f0: e000063a bsr 0x1064 // 1064 <__subdf3>
3f4: 6c97 mov r2, r5
3f6: 6cd3 mov r3, r4
3f8: e0000652 bsr 0x109c // 109c <__muldf3>
3fc: 6c83 mov r2, r0
3fe: 6cc7 mov r3, r1
400: 3000 movi r0, 0
402: 1323 lrw r1, 0x3fe00000 // 58c <__GI_pow+0x3d8>
404: e0000630 bsr 0x1064 // 1064 <__subdf3>
408: b805 st.w r0, (r14, 0x14)
40a: 6c97 mov r2, r5
40c: 6cd3 mov r3, r4
40e: b826 st.w r1, (r14, 0x18)
410: 6c17 mov r0, r5
412: 6c53 mov r1, r4
414: e0000644 bsr 0x109c // 109c <__muldf3>
418: 6c83 mov r2, r0
41a: 6cc7 mov r3, r1
41c: 9805 ld.w r0, (r14, 0x14)
41e: 9826 ld.w r1, (r14, 0x18)
420: e000063e bsr 0x109c // 109c <__muldf3>
424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408>
426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0>
428: e000063a bsr 0x109c // 109c <__muldf3>
42c: 6c83 mov r2, r0
42e: 6cc7 mov r3, r1
430: 9803 ld.w r0, (r14, 0xc)
432: 9824 ld.w r1, (r14, 0x10)
434: e0000618 bsr 0x1064 // 1064 <__subdf3>
438: 6c83 mov r2, r0
43a: 6cc7 mov r3, r1
43c: 6d43 mov r5, r0
43e: 6d07 mov r4, r1
440: 6c1f mov r0, r7
442: 6c5b mov r1, r6
444: e00005f8 bsr 0x1034 // 1034 <__adddf3>
448: 6c9f mov r2, r7
44a: 6cdb mov r3, r6
44c: 3000 movi r0, 0
44e: b823 st.w r1, (r14, 0xc)
450: e000060a bsr 0x1064 // 1064 <__subdf3>
454: 6c83 mov r2, r0
456: 6cc7 mov r3, r1
458: 6c17 mov r0, r5
45a: 6c53 mov r1, r4
45c: e0000604 bsr 0x1064 // 1064 <__subdf3>
460: 6d07 mov r4, r1
462: 9821 ld.w r1, (r14, 0x4)
464: 2900 subi r1, 1
466: 9847 ld.w r2, (r14, 0x1c)
468: 6c48 or r1, r2
46a: 3940 cmpnei r1, 0
46c: 6d43 mov r5, r0
46e: 0c02 bf 0x472 // 472 <__GI_pow+0x2be>
470: 05f0 br 0x850 // 850 <__GI_pow+0x69c>
472: 1274 lrw r3, 0xbff00000 // 5c0 <__GI_pow+0x40c>
474: b861 st.w r3, (r14, 0x4)
476: 9860 ld.w r3, (r14, 0x0)
478: 3200 movi r2, 0
47a: 9802 ld.w r0, (r14, 0x8)
47c: 6c4f mov r1, r3
47e: e00005f3 bsr 0x1064 // 1064 <__subdf3>
482: 9863 ld.w r3, (r14, 0xc)
484: 3200 movi r2, 0
486: e000060b bsr 0x109c // 109c <__muldf3>
48a: 6dc3 mov r7, r0
48c: 6d87 mov r6, r1
48e: 9842 ld.w r2, (r14, 0x8)
490: 9860 ld.w r3, (r14, 0x0)
492: 6c17 mov r0, r5
494: 6c53 mov r1, r4
496: e0000603 bsr 0x109c // 109c <__muldf3>
49a: 6c83 mov r2, r0
49c: 6cc7 mov r3, r1
49e: 6c1f mov r0, r7
4a0: 6c5b mov r1, r6
4a2: e00005c9 bsr 0x1034 // 1034 <__adddf3>
4a6: 6dc3 mov r7, r0
4a8: 9860 ld.w r3, (r14, 0x0)
4aa: 6d87 mov r6, r1
4ac: 3200 movi r2, 0
4ae: 9823 ld.w r1, (r14, 0xc)
4b0: 3000 movi r0, 0
4b2: e00005f5 bsr 0x109c // 109c <__muldf3>
4b6: b802 st.w r0, (r14, 0x8)
4b8: b803 st.w r0, (r14, 0xc)
4ba: b824 st.w r1, (r14, 0x10)
4bc: 6c83 mov r2, r0
4be: 6cc7 mov r3, r1
4c0: 6d47 mov r5, r1
4c2: 6c1f mov r0, r7
4c4: 6c5b mov r1, r6
4c6: e00005b7 bsr 0x1034 // 1034 <__adddf3>
4ca: 6d07 mov r4, r1
4cc: 113e lrw r1, 0x40900000 // 5c4 <__GI_pow+0x410>
4ce: 2900 subi r1, 1
4d0: 6505 cmplt r1, r4
4d2: b800 st.w r0, (r14, 0x0)
4d4: 0803 bt 0x4da // 4da <__GI_pow+0x326>
4d6: e80002b3 br 0xa3c // a3c <__GI_pow+0x888>
4da: 117c lrw r3, 0xbf700000 // 5c8 <__GI_pow+0x414>
4dc: 60d0 addu r3, r4
4de: 6cc0 or r3, r0
4e0: 3b40 cmpnei r3, 0
4e2: 0802 bt 0x4e6 // 4e6 <__GI_pow+0x332>
4e4: 05b8 br 0x854 // 854 <__GI_pow+0x6a0>
4e6: 114e lrw r2, 0x8800759c // 59c <__GI_pow+0x3e8>
4e8: 116e lrw r3, 0x7e37e43c // 5a0 <__GI_pow+0x3ec>
4ea: 3000 movi r0, 0
4ec: 9821 ld.w r1, (r14, 0x4)
4ee: e00005d7 bsr 0x109c // 109c <__muldf3>
4f2: 114b lrw r2, 0x8800759c // 59c <__GI_pow+0x3e8>
4f4: 116b lrw r3, 0x7e37e43c // 5a0 <__GI_pow+0x3ec>
4f6: 06f7 br 0x2e4 // 2e4 <__GI_pow+0x130>
4f8: 11d5 lrw r6, 0xfffff // 5cc <__GI_pow+0x418>
4fa: 6559 cmplt r6, r5
4fc: 09a6 bt 0x848 // 848 <__GI_pow+0x694>
4fe: 6c13 mov r0, r4
500: 3200 movi r2, 0
502: 107f lrw r3, 0x43400000 // 57c <__GI_pow+0x3c8>
504: e00005cc bsr 0x109c // 109c <__muldf3>
508: 3700 movi r7, 0
50a: 6d03 mov r4, r0
50c: 6d47 mov r5, r1
50e: 2f34 subi r7, 53
510: 5514 asri r0, r5, 20
512: 103d lrw r1, 0xfffffc01 // 584 <__GI_pow+0x3d0>
514: 45ac lsli r5, r5, 12
516: 4d4c lsri r2, r5, 12
518: 6004 addu r0, r1
51a: 116e lrw r3, 0x3988e // 5d0 <__GI_pow+0x41c>
51c: 601c addu r0, r7
51e: 648d cmplt r3, r2
520: 10f8 lrw r7, 0x3ff00000 // 580 <__GI_pow+0x3cc>
522: b804 st.w r0, (r14, 0x10)
524: 6dc8 or r7, r2
526: 0c09 bf 0x538 // 538 <__GI_pow+0x384>
528: 11cb lrw r6, 0xbb679 // 5d4 <__GI_pow+0x420>
52a: 6499 cmplt r6, r2
52c: 0d90 bf 0x84c // 84c <__GI_pow+0x698>
52e: 6c83 mov r2, r0
530: 2200 addi r2, 1
532: 110a lrw r0, 0xfff00000 // 5d8 <__GI_pow+0x424>
534: b844 st.w r2, (r14, 0x10)
536: 61c0 addu r7, r0
538: 3500 movi r5, 0
53a: 45c3 lsli r6, r5, 3
53c: 1168 lrw r3, 0x4c70 // 5dc <__GI_pow+0x428>
53e: 4523 lsli r1, r5, 3
540: 60d8 addu r3, r6
542: 9340 ld.w r2, (r3, 0x0)
544: b828 st.w r1, (r14, 0x20)
546: 9361 ld.w r3, (r3, 0x4)
548: 6c13 mov r0, r4
54a: 6c5f mov r1, r7
54c: b845 st.w r2, (r14, 0x14)
54e: b866 st.w r3, (r14, 0x18)
550: e000058a bsr 0x1064 // 1064 <__subdf3>
554: b809 st.w r0, (r14, 0x24)
556: 9845 ld.w r2, (r14, 0x14)
558: 9866 ld.w r3, (r14, 0x18)
55a: b82a st.w r1, (r14, 0x28)
55c: 6c13 mov r0, r4
55e: 6c5f mov r1, r7
560: e000056a bsr 0x1034 // 1034 <__adddf3>
564: 6c83 mov r2, r0
566: 6cc7 mov r3, r1
568: 3000 movi r0, 0
56a: 1026 lrw r1, 0x3ff00000 // 580 <__GI_pow+0x3cc>
56c: e00006b2 bsr 0x12d0 // 12d0 <__divdf3>
570: 6c83 mov r2, r0
572: 6cc7 mov r3, r1
574: 0436 br 0x5e0 // 5e0 <__GI_pow+0x42c>
576: 0000 bkpt
578: 7ff00000 .long 0x7ff00000
57c: 43400000 .long 0x43400000
580: 3ff00000 .long 0x3ff00000
584: fffffc01 .long 0xfffffc01
588: c0100000 .long 0xc0100000
58c: 3fe00000 .long 0x3fe00000
590: ffc00000 .long 0xffc00000
594: 41e00000 .long 0x41e00000
598: 43f00000 .long 0x43f00000
59c: 8800759c .long 0x8800759c
5a0: 7e37e43c .long 0x7e37e43c
5a4: 3ff71547 .long 0x3ff71547
5a8: f85ddf44 .long 0xf85ddf44
5ac: 3e54ae0b .long 0x3e54ae0b
5b0: 3fd00000 .long 0x3fd00000
5b4: 55555555 .long 0x55555555
5b8: 3fd55555 .long 0x3fd55555
5bc: 652b82fe .long 0x652b82fe
5c0: bff00000 .long 0xbff00000
5c4: 40900000 .long 0x40900000
5c8: bf700000 .long 0xbf700000
5cc: 000fffff .long 0x000fffff
5d0: 0003988e .long 0x0003988e
5d4: 000bb679 .long 0x000bb679
5d8: fff00000 .long 0xfff00000
5dc: 00004c70 .long 0x00004c70
5e0: b80b st.w r0, (r14, 0x2c)
5e2: b82c st.w r1, (r14, 0x30)
5e4: 9809 ld.w r0, (r14, 0x24)
5e6: 982a ld.w r1, (r14, 0x28)
5e8: e000055a bsr 0x109c // 109c <__muldf3>
5ec: b803 st.w r0, (r14, 0xc)
5ee: 3280 movi r2, 128
5f0: 5701 asri r0, r7, 1
5f2: 6d87 mov r6, r1
5f4: 38bd bseti r0, 29
5f6: 422c lsli r1, r2, 12
5f8: 6004 addu r0, r1
5fa: 45b2 lsli r5, r5, 18
5fc: 6140 addu r5, r0
5fe: 6cd7 mov r3, r5
600: 3200 movi r2, 0
602: 6c5b mov r1, r6
604: 3000 movi r0, 0
606: e000054b bsr 0x109c // 109c <__muldf3>
60a: 6c83 mov r2, r0
60c: 6cc7 mov r3, r1
60e: 9809 ld.w r0, (r14, 0x24)
610: 982a ld.w r1, (r14, 0x28)
612: e0000529 bsr 0x1064 // 1064 <__subdf3>
616: b809 st.w r0, (r14, 0x24)
618: 9845 ld.w r2, (r14, 0x14)
61a: 9866 ld.w r3, (r14, 0x18)
61c: b82a st.w r1, (r14, 0x28)
61e: 3000 movi r0, 0
620: 6c57 mov r1, r5
622: e0000521 bsr 0x1064 // 1064 <__subdf3>
626: 6c83 mov r2, r0
628: 6cc7 mov r3, r1
62a: 6c13 mov r0, r4
62c: 6c5f mov r1, r7
62e: e000051b bsr 0x1064 // 1064 <__subdf3>
632: 6cdb mov r3, r6
634: 3200 movi r2, 0
636: e0000533 bsr 0x109c // 109c <__muldf3>
63a: 6c83 mov r2, r0
63c: 6cc7 mov r3, r1
63e: 9809 ld.w r0, (r14, 0x24)
640: 982a ld.w r1, (r14, 0x28)
642: e0000511 bsr 0x1064 // 1064 <__subdf3>
646: 984b ld.w r2, (r14, 0x2c)
648: 986c ld.w r3, (r14, 0x30)
64a: e0000529 bsr 0x109c // 109c <__muldf3>
64e: 9843 ld.w r2, (r14, 0xc)
650: 6cdb mov r3, r6
652: b805 st.w r0, (r14, 0x14)
654: b826 st.w r1, (r14, 0x18)
656: 6c0b mov r0, r2
658: 6c5b mov r1, r6
65a: e0000521 bsr 0x109c // 109c <__muldf3>
65e: ea820113 lrw r2, 0x4a454eef // aa8 <__GI_pow+0x8f4>
662: ea830113 lrw r3, 0x3fca7e28 // aac <__GI_pow+0x8f8>
666: 6d43 mov r5, r0
668: 6d07 mov r4, r1
66a: e0000519 bsr 0x109c // 109c <__muldf3>
66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc>
672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900>
676: e00004df bsr 0x1034 // 1034 <__adddf3>
67a: 6c97 mov r2, r5
67c: 6cd3 mov r3, r4
67e: e000050f bsr 0x109c // 109c <__muldf3>
682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904>
686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908>
68a: e00004d5 bsr 0x1034 // 1034 <__adddf3>
68e: 6c97 mov r2, r5
690: 6cd3 mov r3, r4
692: e0000505 bsr 0x109c // 109c <__muldf3>
696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c>
69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910>
69e: e00004cb bsr 0x1034 // 1034 <__adddf3>
6a2: 6c97 mov r2, r5
6a4: 6cd3 mov r3, r4
6a6: e00004fb bsr 0x109c // 109c <__muldf3>
6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914>
6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918>
6b2: e00004c1 bsr 0x1034 // 1034 <__adddf3>
6b6: 6c97 mov r2, r5
6b8: 6cd3 mov r3, r4
6ba: e00004f1 bsr 0x109c // 109c <__muldf3>
6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c>
6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920>
6c6: e00004b7 bsr 0x1034 // 1034 <__adddf3>
6ca: 6dc3 mov r7, r0
6cc: 6c97 mov r2, r5
6ce: 6cd3 mov r3, r4
6d0: b829 st.w r1, (r14, 0x24)
6d2: 6c17 mov r0, r5
6d4: 6c53 mov r1, r4
6d6: e00004e3 bsr 0x109c // 109c <__muldf3>
6da: 6c83 mov r2, r0
6dc: 6cc7 mov r3, r1
6de: 6c1f mov r0, r7
6e0: 9829 ld.w r1, (r14, 0x24)
6e2: e00004dd bsr 0x109c // 109c <__muldf3>
6e6: 6d43 mov r5, r0
6e8: 6d07 mov r4, r1
6ea: 6cdb mov r3, r6
6ec: 3200 movi r2, 0
6ee: 9803 ld.w r0, (r14, 0xc)
6f0: 6c5b mov r1, r6
6f2: e00004a1 bsr 0x1034 // 1034 <__adddf3>
6f6: 9845 ld.w r2, (r14, 0x14)
6f8: 9866 ld.w r3, (r14, 0x18)
6fa: e00004d1 bsr 0x109c // 109c <__muldf3>
6fe: 6c97 mov r2, r5
700: 6cd3 mov r3, r4
702: e0000499 bsr 0x1034 // 1034 <__adddf3>
706: 6d43 mov r5, r0
708: 6cdb mov r3, r6
70a: b829 st.w r1, (r14, 0x24)
70c: 3200 movi r2, 0
70e: 6c5b mov r1, r6
710: 3000 movi r0, 0
712: e00004c5 bsr 0x109c // 109c <__muldf3>
716: 3200 movi r2, 0
718: 006f lrw r3, 0x40080000 // ad8 <__GI_pow+0x924>
71a: 6dc3 mov r7, r0
71c: b82a st.w r1, (r14, 0x28)
71e: e000048b bsr 0x1034 // 1034 <__adddf3>
722: 6c97 mov r2, r5
724: 9869 ld.w r3, (r14, 0x24)
726: e0000487 bsr 0x1034 // 1034 <__adddf3>
72a: 6d07 mov r4, r1
72c: 6cc7 mov r3, r1
72e: 3200 movi r2, 0
730: 6c5b mov r1, r6
732: 3000 movi r0, 0
734: e00004b4 bsr 0x109c // 109c <__muldf3>
738: b80b st.w r0, (r14, 0x2c)
73a: b82c st.w r1, (r14, 0x30)
73c: 3200 movi r2, 0
73e: 0078 lrw r3, 0x40080000 // ad8 <__GI_pow+0x924>
740: 6c53 mov r1, r4
742: 3000 movi r0, 0
744: e0000490 bsr 0x1064 // 1064 <__subdf3>
748: 6c9f mov r2, r7
74a: 986a ld.w r3, (r14, 0x28)
74c: e000048c bsr 0x1064 // 1064 <__subdf3>
750: 6c83 mov r2, r0
752: 6cc7 mov r3, r1
754: 6c17 mov r0, r5
756: 9829 ld.w r1, (r14, 0x24)
758: e0000486 bsr 0x1064 // 1064 <__subdf3>
75c: 9843 ld.w r2, (r14, 0xc)
75e: 6cdb mov r3, r6
760: e000049e bsr 0x109c // 109c <__muldf3>
764: 6d83 mov r6, r0
766: 6d47 mov r5, r1
768: 6cd3 mov r3, r4
76a: 3200 movi r2, 0
76c: 9805 ld.w r0, (r14, 0x14)
76e: 9826 ld.w r1, (r14, 0x18)
770: e0000496 bsr 0x109c // 109c <__muldf3>
774: 6c83 mov r2, r0
776: 6cc7 mov r3, r1
778: 6c1b mov r0, r6
77a: 6c57 mov r1, r5
77c: e000045c bsr 0x1034 // 1034 <__adddf3>
780: 6dc3 mov r7, r0
782: 6d87 mov r6, r1
784: 6c83 mov r2, r0
786: 6cc7 mov r3, r1
788: 980b ld.w r0, (r14, 0x2c)
78a: 982c ld.w r1, (r14, 0x30)
78c: e0000454 bsr 0x1034 // 1034 <__adddf3>
790: 33e0 movi r3, 224
792: 4358 lsli r2, r3, 24
794: 3000 movi r0, 0
796: 016d lrw r3, 0x3feec709 // adc <__GI_pow+0x928>
798: 6d07 mov r4, r1
79a: e0000481 bsr 0x109c // 109c <__muldf3>
79e: b805 st.w r0, (r14, 0x14)
7a0: b826 st.w r1, (r14, 0x18)
7a2: 984b ld.w r2, (r14, 0x2c)
7a4: 986c ld.w r3, (r14, 0x30)
7a6: 6c53 mov r1, r4
7a8: 3000 movi r0, 0
7aa: e000045d bsr 0x1064 // 1064 <__subdf3>
7ae: 6c83 mov r2, r0
7b0: 6cc7 mov r3, r1
7b2: 6c1f mov r0, r7
7b4: 6c5b mov r1, r6
7b6: e0000457 bsr 0x1064 // 1064 <__subdf3>
7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c>
7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928>
7be: e000046f bsr 0x109c // 109c <__muldf3>
7c2: 6dc3 mov r7, r0
7c4: 6d47 mov r5, r1
7c6: 0157 lrw r2, 0x145b01f5 // ae4 <__GI_pow+0x930>
7c8: 0177 lrw r3, 0xbe3e2fe0 // ae8 <__GI_pow+0x934>
7ca: 6c53 mov r1, r4
7cc: 3000 movi r0, 0
7ce: e0000467 bsr 0x109c // 109c <__muldf3>
7d2: 6c83 mov r2, r0
7d4: 6cc7 mov r3, r1
7d6: 6c1f mov r0, r7
7d8: 6c57 mov r1, r5
7da: e000042d bsr 0x1034 // 1034 <__adddf3>
7de: 01db lrw r6, 0x4c70 // aec <__GI_pow+0x938>
7e0: 9848 ld.w r2, (r14, 0x20)
7e2: 6188 addu r6, r2
7e4: 9644 ld.w r2, (r6, 0x10)
7e6: 9665 ld.w r3, (r6, 0x14)
7e8: e0000426 bsr 0x1034 // 1034 <__adddf3>
7ec: b809 st.w r0, (r14, 0x24)
7ee: 9804 ld.w r0, (r14, 0x10)
7f0: b82a st.w r1, (r14, 0x28)
7f2: e0000673 bsr 0x14d8 // 14d8 <__floatsidf>
7f6: 6d83 mov r6, r0
7f8: 0202 lrw r0, 0x4c70 // aec <__GI_pow+0x938>
7fa: 6d47 mov r5, r1
7fc: 201f addi r0, 32
7fe: 9828 ld.w r1, (r14, 0x20)
800: 6004 addu r0, r1
802: 9080 ld.w r4, (r0, 0x0)
804: 90e1 ld.w r7, (r0, 0x4)
806: 9849 ld.w r2, (r14, 0x24)
808: 986a ld.w r3, (r14, 0x28)
80a: 9805 ld.w r0, (r14, 0x14)
80c: 9826 ld.w r1, (r14, 0x18)
80e: e0000413 bsr 0x1034 // 1034 <__adddf3>
812: 6c93 mov r2, r4
814: 6cdf mov r3, r7
816: e000040f bsr 0x1034 // 1034 <__adddf3>
81a: 6c9b mov r2, r6
81c: 6cd7 mov r3, r5
81e: e000040b bsr 0x1034 // 1034 <__adddf3>
822: 6c9b mov r2, r6
824: 6cd7 mov r3, r5
826: 3000 movi r0, 0
828: b823 st.w r1, (r14, 0xc)
82a: e000041d bsr 0x1064 // 1064 <__subdf3>
82e: 6c93 mov r2, r4
830: 6cdf mov r3, r7
832: e0000419 bsr 0x1064 // 1064 <__subdf3>
836: 9845 ld.w r2, (r14, 0x14)
838: 9866 ld.w r3, (r14, 0x18)
83a: e0000415 bsr 0x1064 // 1064 <__subdf3>
83e: 6c83 mov r2, r0
840: 6cc7 mov r3, r1
842: 9809 ld.w r0, (r14, 0x24)
844: 982a ld.w r1, (r14, 0x28)
846: 060b br 0x45c // 45c <__GI_pow+0x2a8>
848: 3700 movi r7, 0
84a: 0663 br 0x510 // 510 <__GI_pow+0x35c>
84c: 3501 movi r5, 1
84e: 0676 br 0x53a // 53a <__GI_pow+0x386>
850: 0277 lrw r3, 0x3ff00000 // af0 <__GI_pow+0x93c>
852: 0611 br 0x474 // 474 <__GI_pow+0x2c0>
854: 0257 lrw r2, 0x652b82fe // af4 <__GI_pow+0x940>
856: 0276 lrw r3, 0x3c971547 // af8 <__GI_pow+0x944>
858: 6c1f mov r0, r7
85a: 6c5b mov r1, r6
85c: e00003ec bsr 0x1034 // 1034 <__adddf3>
860: b805 st.w r0, (r14, 0x14)
862: b826 st.w r1, (r14, 0x18)
864: 9842 ld.w r2, (r14, 0x8)
866: 6cd7 mov r3, r5
868: 9800 ld.w r0, (r14, 0x0)
86a: 6c53 mov r1, r4
86c: e00003fc bsr 0x1064 // 1064 <__subdf3>
870: 6c83 mov r2, r0
872: 6cc7 mov r3, r1
874: 9805 ld.w r0, (r14, 0x14)
876: 9826 ld.w r1, (r14, 0x18)
878: e00005d6 bsr 0x1424 // 1424 <__gtdf2>
87c: 3820 cmplti r0, 1
87e: 0802 bt 0x882 // 882 <__GI_pow+0x6ce>
880: 0633 br 0x4e6 // 4e6 <__GI_pow+0x332>
882: 4421 lsli r1, r4, 1
884: 4901 lsri r0, r1, 1
886: 0361 lrw r3, 0x3fe00000 // afc <__GI_pow+0x948>
888: 640d cmplt r3, r0
88a: 0cfd bf 0xa84 // a84 <__GI_pow+0x8d0>
88c: 5034 asri r1, r0, 20
88e: 0342 lrw r2, 0xfffffc02 // b00 <__GI_pow+0x94c>
890: 3080 movi r0, 128
892: 6048 addu r1, r2
894: 404d lsli r2, r0, 13
896: 7086 asr r2, r1
898: 6090 addu r2, r4
89a: 4261 lsli r3, r2, 1
89c: 4b35 lsri r1, r3, 21
89e: 0305 lrw r0, 0xfffffc01 // b04 <__GI_pow+0x950>
8a0: 6040 addu r1, r0
8a2: 0365 lrw r3, 0xfffff // b08 <__GI_pow+0x954>
8a4: 70c6 asr r3, r1
8a6: 6c0b mov r0, r2
8a8: 680d andn r0, r3
8aa: 424c lsli r2, r2, 12
8ac: 6cc3 mov r3, r0
8ae: 4a4c lsri r2, r2, 12
8b0: 3014 movi r0, 20
8b2: 3ab4 bseti r2, 20
8b4: 5825 subu r1, r0, r1
8b6: 7086 asr r2, r1
8b8: 3cdf btsti r4, 31
8ba: b840 st.w r2, (r14, 0x0)
8bc: 0c05 bf 0x8c6 // 8c6 <__GI_pow+0x712>
8be: 9840 ld.w r2, (r14, 0x0)
8c0: 3400 movi r4, 0
8c2: 610a subu r4, r2
8c4: b880 st.w r4, (r14, 0x0)
8c6: 3200 movi r2, 0
8c8: 9802 ld.w r0, (r14, 0x8)
8ca: 6c57 mov r1, r5
8cc: e00003cc bsr 0x1064 // 1064 <__subdf3>
8d0: b803 st.w r0, (r14, 0xc)
8d2: b824 st.w r1, (r14, 0x10)
8d4: 9803 ld.w r0, (r14, 0xc)
8d6: 6c9f mov r2, r7
8d8: 6cdb mov r3, r6
8da: 9824 ld.w r1, (r14, 0x10)
8dc: e00003ac bsr 0x1034 // 1034 <__adddf3>
8e0: 3200 movi r2, 0
8e2: 0374 lrw r3, 0x3fe62e43 // b0c <__GI_pow+0x958>
8e4: 3000 movi r0, 0
8e6: 6d07 mov r4, r1
8e8: e00003da bsr 0x109c // 109c <__muldf3>
8ec: 6d47 mov r5, r1
8ee: 9843 ld.w r2, (r14, 0xc)
8f0: 9864 ld.w r3, (r14, 0x10)
8f2: b802 st.w r0, (r14, 0x8)
8f4: 6c53 mov r1, r4
8f6: 3000 movi r0, 0
8f8: e00003b6 bsr 0x1064 // 1064 <__subdf3>
8fc: 6c83 mov r2, r0
8fe: 6cc7 mov r3, r1
900: 6c1f mov r0, r7
902: 6c5b mov r1, r6
904: e00003b0 bsr 0x1064 // 1064 <__subdf3>
908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c>
90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960>
90c: e00003c8 bsr 0x109c // 109c <__muldf3>
910: 6dc3 mov r7, r0
912: 6d87 mov r6, r1
914: 035e lrw r2, 0xca86c39 // b18 <__GI_pow+0x964>
916: 037d lrw r3, 0xbe205c61 // b1c <__GI_pow+0x968>
918: 6c53 mov r1, r4
91a: 3000 movi r0, 0
91c: e00003c0 bsr 0x109c // 109c <__muldf3>
920: 6c83 mov r2, r0
922: 6cc7 mov r3, r1
924: 6c1f mov r0, r7
926: 6c5b mov r1, r6
928: e0000386 bsr 0x1034 // 1034 <__adddf3>
92c: 6d07 mov r4, r1
92e: 6c83 mov r2, r0
930: 6cc7 mov r3, r1
932: b803 st.w r0, (r14, 0xc)
934: 6c57 mov r1, r5
936: 9802 ld.w r0, (r14, 0x8)
938: e000037e bsr 0x1034 // 1034 <__adddf3>
93c: 9842 ld.w r2, (r14, 0x8)
93e: 6cd7 mov r3, r5
940: 6dc3 mov r7, r0
942: 6d87 mov r6, r1
944: e0000390 bsr 0x1064 // 1064 <__subdf3>
948: 6c83 mov r2, r0
94a: 6cc7 mov r3, r1
94c: 9803 ld.w r0, (r14, 0xc)
94e: 6c53 mov r1, r4
950: e000038a bsr 0x1064 // 1064 <__subdf3>
954: b802 st.w r0, (r14, 0x8)
956: b823 st.w r1, (r14, 0xc)
958: 6c9f mov r2, r7
95a: 6cdb mov r3, r6
95c: 6c1f mov r0, r7
95e: 6c5b mov r1, r6
960: e000039e bsr 0x109c // 109c <__muldf3>
964: 134f lrw r2, 0x72bea4d0 // b20 <__GI_pow+0x96c>
966: 1370 lrw r3, 0x3e663769 // b24 <__GI_pow+0x970>
968: 6d43 mov r5, r0
96a: 6d07 mov r4, r1
96c: e0000398 bsr 0x109c // 109c <__muldf3>
970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974>
972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978>
974: e0000378 bsr 0x1064 // 1064 <__subdf3>
978: 6c97 mov r2, r5
97a: 6cd3 mov r3, r4
97c: e0000390 bsr 0x109c // 109c <__muldf3>
980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c>
982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980>
984: e0000358 bsr 0x1034 // 1034 <__adddf3>
988: 6c97 mov r2, r5
98a: 6cd3 mov r3, r4
98c: e0000388 bsr 0x109c // 109c <__muldf3>
990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984>
992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988>
994: e0000368 bsr 0x1064 // 1064 <__subdf3>
998: 6c97 mov r2, r5
99a: 6cd3 mov r3, r4
99c: e0000380 bsr 0x109c // 109c <__muldf3>
9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c>
9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990>
9a4: e0000348 bsr 0x1034 // 1034 <__adddf3>
9a8: 6c97 mov r2, r5
9aa: 6cd3 mov r3, r4
9ac: e0000378 bsr 0x109c // 109c <__muldf3>
9b0: 6c83 mov r2, r0
9b2: 6cc7 mov r3, r1
9b4: 6c1f mov r0, r7
9b6: 6c5b mov r1, r6
9b8: e0000356 bsr 0x1064 // 1064 <__subdf3>
9bc: 6d43 mov r5, r0
9be: 6d07 mov r4, r1
9c0: 6c83 mov r2, r0
9c2: 6cc7 mov r3, r1
9c4: 6c1f mov r0, r7
9c6: 6c5b mov r1, r6
9c8: e000036a bsr 0x109c // 109c <__muldf3>
9cc: 3380 movi r3, 128
9ce: b804 st.w r0, (r14, 0x10)
9d0: b825 st.w r1, (r14, 0x14)
9d2: 3200 movi r2, 0
9d4: 4377 lsli r3, r3, 23
9d6: 6c17 mov r0, r5
9d8: 6c53 mov r1, r4
9da: e0000345 bsr 0x1064 // 1064 <__subdf3>
9de: 6c83 mov r2, r0
9e0: 6cc7 mov r3, r1
9e2: 9804 ld.w r0, (r14, 0x10)
9e4: 9825 ld.w r1, (r14, 0x14)
9e6: e0000475 bsr 0x12d0 // 12d0 <__divdf3>
9ea: 6d07 mov r4, r1
9ec: 6d43 mov r5, r0
9ee: 9842 ld.w r2, (r14, 0x8)
9f0: 9863 ld.w r3, (r14, 0xc)
9f2: 6c1f mov r0, r7
9f4: 6c5b mov r1, r6
9f6: e0000353 bsr 0x109c // 109c <__muldf3>
9fa: 9842 ld.w r2, (r14, 0x8)
9fc: 9863 ld.w r3, (r14, 0xc)
9fe: e000031b bsr 0x1034 // 1034 <__adddf3>
a02: 6c83 mov r2, r0
a04: 6cc7 mov r3, r1
a06: 6c17 mov r0, r5
a08: 6c53 mov r1, r4
a0a: e000032d bsr 0x1064 // 1064 <__subdf3>
a0e: 6c9f mov r2, r7
a10: 6cdb mov r3, r6
a12: e0000329 bsr 0x1064 // 1064 <__subdf3>
a16: 6c83 mov r2, r0
a18: 6cc7 mov r3, r1
a1a: 3000 movi r0, 0
a1c: 1135 lrw r1, 0x3ff00000 // af0 <__GI_pow+0x93c>
a1e: e0000323 bsr 0x1064 // 1064 <__subdf3>
a22: 9840 ld.w r2, (r14, 0x0)
a24: 4274 lsli r3, r2, 20
a26: 60c4 addu r3, r1
a28: 5394 asri r4, r3, 20
a2a: 3c20 cmplti r4, 1
a2c: 0c2f bf 0xa8a // a8a <__GI_pow+0x8d6>
a2e: 9840 ld.w r2, (r14, 0x0)
a30: e000009a bsr 0xb64 // b64 <__GI_scalbn>
a34: 3200 movi r2, 0
a36: 9861 ld.w r3, (r14, 0x4)
a38: e800fc56 br 0x2e4 // 2e4 <__GI_pow+0x130>
a3c: 4401 lsli r0, r4, 1
a3e: 4861 lsri r3, r0, 1
a40: 1242 lrw r2, 0x4090cbff // b48 <__GI_pow+0x994>
a42: 64c9 cmplt r2, r3
a44: 0f1f bf 0x882 // 882 <__GI_pow+0x6ce>
a46: 1222 lrw r1, 0x3f6f3400 // b4c <__GI_pow+0x998>
a48: 6050 addu r1, r4
a4a: 9800 ld.w r0, (r14, 0x0)
a4c: 6c40 or r1, r0
a4e: 3940 cmpnei r1, 0
a50: 0c0b bf 0xa66 // a66 <__GI_pow+0x8b2>
a52: 1240 lrw r2, 0xc2f8f359 // b50 <__GI_pow+0x99c>
a54: 1260 lrw r3, 0x1a56e1f // b54 <__GI_pow+0x9a0>
a56: 3000 movi r0, 0
a58: 9821 ld.w r1, (r14, 0x4)
a5a: e0000321 bsr 0x109c // 109c <__muldf3>
a5e: 115d lrw r2, 0xc2f8f359 // b50 <__GI_pow+0x99c>
a60: 117d lrw r3, 0x1a56e1f // b54 <__GI_pow+0x9a0>
a62: e800fc41 br 0x2e4 // 2e4 <__GI_pow+0x130>
a66: 9842 ld.w r2, (r14, 0x8)
a68: 6cd7 mov r3, r5
a6a: 9800 ld.w r0, (r14, 0x0)
a6c: 6c53 mov r1, r4
a6e: e00002fb bsr 0x1064 // 1064 <__subdf3>
a72: 6c83 mov r2, r0
a74: 6cc7 mov r3, r1
a76: 6c1f mov r0, r7
a78: 6c5b mov r1, r6
a7a: e0000511 bsr 0x149c // 149c <__ledf2>
a7e: 3820 cmplti r0, 1
a80: 0f01 bf 0x882 // 882 <__GI_pow+0x6ce>
a82: 07e8 br 0xa52 // a52 <__GI_pow+0x89e>
a84: 3500 movi r5, 0
a86: b8a0 st.w r5, (r14, 0x0)
a88: 0726 br 0x8d4 // 8d4 <__GI_pow+0x720>
a8a: 6c4f mov r1, r3
a8c: 07d4 br 0xa34 // a34 <__GI_pow+0x880>
a8e: 3400 movi r4, 0
a90: 1038 lrw r1, 0x3ff00000 // af0 <__GI_pow+0x93c>
a92: e800fbb5 br 0x1fc // 1fc <__GI_pow+0x48>
a96: 3400 movi r4, 0
a98: 9820 ld.w r1, (r14, 0x0)
a9a: e800fbb1 br 0x1fc // 1fc <__GI_pow+0x48>
a9e: 6d1f mov r4, r7
aa0: 6c5b mov r1, r6
aa2: e800fbad br 0x1fc // 1fc <__GI_pow+0x48>
aa6: 0000 bkpt
aa8: 4a454eef .long 0x4a454eef
aac: 3fca7e28 .long 0x3fca7e28
ab0: 93c9db65 .long 0x93c9db65
ab4: 3fcd864a .long 0x3fcd864a
ab8: a91d4101 .long 0xa91d4101
abc: 3fd17460 .long 0x3fd17460
ac0: 518f264d .long 0x518f264d
ac4: 3fd55555 .long 0x3fd55555
ac8: db6fabff .long 0xdb6fabff
acc: 3fdb6db6 .long 0x3fdb6db6
ad0: 33333303 .long 0x33333303
ad4: 3fe33333 .long 0x3fe33333
ad8: 40080000 .long 0x40080000
adc: 3feec709 .long 0x3feec709
ae0: dc3a03fd .long 0xdc3a03fd
ae4: 145b01f5 .long 0x145b01f5
ae8: be3e2fe0 .long 0xbe3e2fe0
aec: 00004c70 .long 0x00004c70
af0: 3ff00000 .long 0x3ff00000
af4: 652b82fe .long 0x652b82fe
af8: 3c971547 .long 0x3c971547
afc: 3fe00000 .long 0x3fe00000
b00: fffffc02 .long 0xfffffc02
b04: fffffc01 .long 0xfffffc01
b08: 000fffff .long 0x000fffff
b0c: 3fe62e43 .long 0x3fe62e43
b10: fefa39ef .long 0xfefa39ef
b14: 3fe62e42 .long 0x3fe62e42
b18: 0ca86c39 .long 0x0ca86c39
b1c: be205c61 .long 0xbe205c61
b20: 72bea4d0 .long 0x72bea4d0
b24: 3e663769 .long 0x3e663769
b28: c5d26bf1 .long 0xc5d26bf1
b2c: 3ebbbd41 .long 0x3ebbbd41
b30: af25de2c .long 0xaf25de2c
b34: 3f11566a .long 0x3f11566a
b38: 16bebd93 .long 0x16bebd93
b3c: 3f66c16c .long 0x3f66c16c
b40: 5555553e .long 0x5555553e
b44: 3fc55555 .long 0x3fc55555
b48: 4090cbff .long 0x4090cbff
b4c: 3f6f3400 .long 0x3f6f3400
b50: c2f8f359 .long 0xc2f8f359
b54: 01a56e1f .long 0x01a56e1f
b58: 3300 movi r3, 0
b5a: e800fb94 br 0x282 // 282 <__GI_pow+0xce>
00000b5e <__GI_fabs>:
b5e: 4121 lsli r1, r1, 1
b60: 4921 lsri r1, r1, 1
b62: 783c jmp r15
00000b64 <__GI_scalbn>:
b64: 14c1 push r4
b66: 6cc7 mov r3, r1
b68: 6cc0 or r3, r0
b6a: 3b40 cmpnei r3, 0
b6c: 0c08 bf 0xb7c // b7c <__GI_scalbn+0x18>
b6e: 1065 lrw r3, 0x7ff00000 // b80 <__GI_scalbn+0x1c>
b70: 6d07 mov r4, r1
b72: 690c and r4, r3
b74: 4254 lsli r2, r2, 20
b76: 6090 addu r2, r4
b78: 684d andn r1, r3
b7a: 6c48 or r1, r2
b7c: 1481 pop r4
b7e: 0000 bkpt
b80: 7ff00000 .long 0x7ff00000
00000b84 <__GI_sqrt>:
b84: 14d4 push r4-r7, r15
b86: 1423 subi r14, r14, 12
b88: 127a lrw r3, 0x7ff00000 // cf0 <__GI_sqrt+0x16c>
b8a: 6d43 mov r5, r0
b8c: 6d07 mov r4, r1
b8e: 6c07 mov r0, r1
b90: 684c and r1, r3
b92: 64c6 cmpne r1, r3
b94: 6c97 mov r2, r5
b96: 0812 bt 0xbba // bba <__GI_sqrt+0x36>
b98: 6cd3 mov r3, r4
b9a: 6c17 mov r0, r5
b9c: 6c53 mov r1, r4
b9e: e000027f bsr 0x109c // 109c <__muldf3>
ba2: 6c83 mov r2, r0
ba4: 6cc7 mov r3, r1
ba6: 6c17 mov r0, r5
ba8: 6c53 mov r1, r4
baa: e0000245 bsr 0x1034 // 1034 <__adddf3>
bae: 6d43 mov r5, r0
bb0: 6d07 mov r4, r1
bb2: 6c17 mov r0, r5
bb4: 6c53 mov r1, r4
bb6: 1403 addi r14, r14, 12
bb8: 1494 pop r4-r7, r15
bba: 3c20 cmplti r4, 1
bbc: 0c13 bf 0xbe2 // be2 <__GI_sqrt+0x5e>
bbe: 4461 lsli r3, r4, 1
bc0: 4b21 lsri r1, r3, 1
bc2: 6c54 or r1, r5
bc4: 3940 cmpnei r1, 0
bc6: 0ff6 bf 0xbb2 // bb2 <__GI_sqrt+0x2e>
bc8: 3c40 cmpnei r4, 0
bca: 0c0c bf 0xbe2 // be2 <__GI_sqrt+0x5e>
bcc: 6c97 mov r2, r5
bce: 6cd3 mov r3, r4
bd0: 6c17 mov r0, r5
bd2: 6c53 mov r1, r4
bd4: e0000248 bsr 0x1064 // 1064 <__subdf3>
bd8: 6c83 mov r2, r0
bda: 6cc7 mov r3, r1
bdc: e000037a bsr 0x12d0 // 12d0 <__divdf3>
be0: 07e7 br 0xbae // bae <__GI_sqrt+0x2a>
be2: 5494 asri r4, r4, 20
be4: 3c40 cmpnei r4, 0
be6: 0812 bt 0xc0a // c0a <__GI_sqrt+0x86>
be8: 3840 cmpnei r0, 0
bea: 0c76 bf 0xcd6 // cd6 <__GI_sqrt+0x152>
bec: 3580 movi r5, 128
bee: 3300 movi r3, 0
bf0: 452d lsli r1, r5, 13
bf2: 6d83 mov r6, r0
bf4: 6984 and r6, r1
bf6: 3e40 cmpnei r6, 0
bf8: 0c73 bf 0xcde // cde <__GI_sqrt+0x15a>
bfa: 5b23 subi r1, r3, 1
bfc: 3620 movi r6, 32
bfe: 6106 subu r4, r1
c00: 618e subu r6, r3
c02: 6c4b mov r1, r2
c04: 7059 lsr r1, r6
c06: 6c04 or r0, r1
c08: 708c lsl r2, r3
c0a: 117b lrw r3, 0xfffffc01 // cf4 <__GI_sqrt+0x170>
c0c: 610c addu r4, r3
c0e: 3601 movi r6, 1
c10: 400c lsli r0, r0, 12
c12: 6990 and r6, r4
c14: 480c lsri r0, r0, 12
c16: 3e40 cmpnei r6, 0
c18: 38b4 bseti r0, 20
c1a: 0c05 bf 0xc24 // c24 <__GI_sqrt+0xa0>
c1c: 4a3f lsri r1, r2, 31
c1e: 40a1 lsli r5, r0, 1
c20: 5914 addu r0, r1, r5
c22: 4241 lsli r2, r2, 1
c24: 4a7f lsri r3, r2, 31
c26: 60c0 addu r3, r0
c28: 5481 asri r4, r4, 1
c2a: 3680 movi r6, 128
c2c: 3100 movi r1, 0
c2e: 60c0 addu r3, r0
c30: b882 st.w r4, (r14, 0x8)
c32: 4241 lsli r2, r2, 1
c34: 3516 movi r5, 22
c36: 460e lsli r0, r6, 14
c38: b820 st.w r1, (r14, 0x0)
c3a: 5980 addu r4, r1, r0
c3c: 650d cmplt r3, r4
c3e: 0806 bt 0xc4a // c4a <__GI_sqrt+0xc6>
c40: 98c0 ld.w r6, (r14, 0x0)
c42: 6180 addu r6, r0
c44: 5c20 addu r1, r4, r0
c46: 60d2 subu r3, r4
c48: b8c0 st.w r6, (r14, 0x0)
c4a: 2d00 subi r5, 1
c4c: 4a9f lsri r4, r2, 31
c4e: 4361 lsli r3, r3, 1
c50: 3d40 cmpnei r5, 0
c52: 60d0 addu r3, r4
c54: 4241 lsli r2, r2, 1
c56: 4801 lsri r0, r0, 1
c58: 0bf1 bt 0xc3a // c3a <__GI_sqrt+0xb6>
c5a: 3620 movi r6, 32
c5c: 3480 movi r4, 128
c5e: 3000 movi r0, 0
c60: b8c1 st.w r6, (r14, 0x4)
c62: 4498 lsli r4, r4, 24
c64: 64c5 cmplt r1, r3
c66: 5cd4 addu r6, r4, r5
c68: 0805 bt 0xc72 // c72 <__GI_sqrt+0xee>
c6a: 644e cmpne r3, r1
c6c: 0810 bt 0xc8c // c8c <__GI_sqrt+0x108>
c6e: 6588 cmphs r2, r6
c70: 0c0e bf 0xc8c // c8c <__GI_sqrt+0x108>
c72: 3edf btsti r6, 31
c74: 5eb0 addu r5, r6, r4
c76: 0c37 bf 0xce4 // ce4 <__GI_sqrt+0x160>
c78: 3ddf btsti r5, 31
c7a: 0835 bt 0xce4 // ce4 <__GI_sqrt+0x160>
c7c: 59e2 addi r7, r1, 1
c7e: 6588 cmphs r2, r6
c80: 60c6 subu r3, r1
c82: 0802 bt 0xc86 // c86 <__GI_sqrt+0x102>
c84: 2b00 subi r3, 1
c86: 609a subu r2, r6
c88: 6010 addu r0, r4
c8a: 6c5f mov r1, r7
c8c: 4adf lsri r6, r2, 31
c8e: 618c addu r6, r3
c90: 60d8 addu r3, r6
c92: 98c1 ld.w r6, (r14, 0x4)
c94: 2e00 subi r6, 1
c96: 3e40 cmpnei r6, 0
c98: 4241 lsli r2, r2, 1
c9a: 4c81 lsri r4, r4, 1
c9c: b8c1 st.w r6, (r14, 0x4)
c9e: 0be3 bt 0xc64 // c64 <__GI_sqrt+0xe0>
ca0: 6cc8 or r3, r2
ca2: 3b40 cmpnei r3, 0
ca4: 0c09 bf 0xcb6 // cb6 <__GI_sqrt+0x132>
ca6: 3300 movi r3, 0
ca8: 2b00 subi r3, 1
caa: 64c2 cmpne r0, r3
cac: 081e bt 0xce8 // ce8 <__GI_sqrt+0x164>
cae: 9800 ld.w r0, (r14, 0x0)
cb0: 2000 addi r0, 1
cb2: b800 st.w r0, (r14, 0x0)
cb4: 3000 movi r0, 0
cb6: 3401 movi r4, 1
cb8: 9860 ld.w r3, (r14, 0x0)
cba: 98a0 ld.w r5, (r14, 0x0)
cbc: 690c and r4, r3
cbe: 5541 asri r2, r5, 1
cc0: 102e lrw r1, 0x3fe00000 // cf8 <__GI_sqrt+0x174>
cc2: 3c40 cmpnei r4, 0
cc4: 6048 addu r1, r2
cc6: 4801 lsri r0, r0, 1
cc8: 0c02 bf 0xccc // ccc <__GI_sqrt+0x148>
cca: 38bf bseti r0, 31
ccc: 98a2 ld.w r5, (r14, 0x8)
cce: 4594 lsli r4, r5, 20
cd0: 6104 addu r4, r1
cd2: 6d43 mov r5, r0
cd4: 076f br 0xbb2 // bb2 <__GI_sqrt+0x2e>
cd6: 4a0b lsri r0, r2, 11
cd8: 2c14 subi r4, 21
cda: 4255 lsli r2, r2, 21
cdc: 0786 br 0xbe8 // be8 <__GI_sqrt+0x64>
cde: 4001 lsli r0, r0, 1
ce0: 2300 addi r3, 1
ce2: 0788 br 0xbf2 // bf2 <__GI_sqrt+0x6e>
ce4: 6dc7 mov r7, r1
ce6: 07cc br 0xc7e // c7e <__GI_sqrt+0xfa>
ce8: 2000 addi r0, 1
cea: 3880 bclri r0, 0
cec: 07e5 br 0xcb6 // cb6 <__GI_sqrt+0x132>
cee: 0000 bkpt
cf0: 7ff00000 .long 0x7ff00000
cf4: fffffc01 .long 0xfffffc01
cf8: 3fe00000 .long 0x3fe00000
00000cfc <___gnu_csky_case_sqi>:
cfc: 1421 subi r14, r14, 4
cfe: b820 st.w r1, (r14, 0x0)
d00: 6c7f mov r1, r15
d02: 6040 addu r1, r0
d04: 8120 ld.b r1, (r1, 0x0)
d06: 7446 sextb r1, r1
d08: 4121 lsli r1, r1, 1
d0a: 63c4 addu r15, r1
d0c: 9820 ld.w r1, (r14, 0x0)
d0e: 1401 addi r14, r14, 4
d10: 783c jmp r15
...
00000d14 <___gnu_csky_case_uqi>:
d14: 1421 subi r14, r14, 4
d16: b820 st.w r1, (r14, 0x0)
d18: 6c7f mov r1, r15
d1a: 6040 addu r1, r0
d1c: 8120 ld.b r1, (r1, 0x0)
d1e: 4121 lsli r1, r1, 1
d20: 63c4 addu r15, r1
d22: 9820 ld.w r1, (r14, 0x0)
d24: 1401 addi r14, r14, 4
d26: 783c jmp r15
00000d28 <__fixunsdfsi>:
d28: 14d2 push r4-r5, r15
d2a: 3200 movi r2, 0
d2c: 106c lrw r3, 0x41e00000 // d5c <__fixunsdfsi+0x34>
d2e: 6d43 mov r5, r0
d30: 6d07 mov r4, r1
d32: e0000397 bsr 0x1460 // 1460 <__gedf2>
d36: 38df btsti r0, 31
d38: 0c06 bf 0xd44 // d44 <__fixunsdfsi+0x1c>
d3a: 6c17 mov r0, r5
d3c: 6c53 mov r1, r4
d3e: e0000405 bsr 0x1548 // 1548 <__fixdfsi>
d42: 1492 pop r4-r5, r15
d44: 3200 movi r2, 0
d46: 1066 lrw r3, 0x41e00000 // d5c <__fixunsdfsi+0x34>
d48: 6c17 mov r0, r5
d4a: 6c53 mov r1, r4
d4c: e000018c bsr 0x1064 // 1064 <__subdf3>
d50: e00003fc bsr 0x1548 // 1548 <__fixdfsi>
d54: 3380 movi r3, 128
d56: 4378 lsli r3, r3, 24
d58: 600c addu r0, r3
d5a: 1492 pop r4-r5, r15
d5c: 41e00000 .long 0x41e00000
00000d60 <_fpadd_parts>:
d60: 14c4 push r4-r7
d62: 142a subi r14, r14, 40
d64: 9060 ld.w r3, (r0, 0x0)
d66: 3b01 cmphsi r3, 2
d68: 6dcb mov r7, r2
d6a: 0c67 bf 0xe38 // e38 <_fpadd_parts+0xd8>
d6c: 9140 ld.w r2, (r1, 0x0)
d6e: 3a01 cmphsi r2, 2
d70: 0c66 bf 0xe3c // e3c <_fpadd_parts+0xdc>
d72: 3b44 cmpnei r3, 4
d74: 0cde bf 0xf30 // f30 <_fpadd_parts+0x1d0>
d76: 3a44 cmpnei r2, 4
d78: 0c62 bf 0xe3c // e3c <_fpadd_parts+0xdc>
d7a: 3a42 cmpnei r2, 2
d7c: 0cb7 bf 0xeea // eea <_fpadd_parts+0x18a>
d7e: 3b42 cmpnei r3, 2
d80: 0c5e bf 0xe3c // e3c <_fpadd_parts+0xdc>
d82: 9043 ld.w r2, (r0, 0xc)
d84: 9064 ld.w r3, (r0, 0x10)
d86: 9082 ld.w r4, (r0, 0x8)
d88: 91a2 ld.w r5, (r1, 0x8)
d8a: b842 st.w r2, (r14, 0x8)
d8c: b863 st.w r3, (r14, 0xc)
d8e: 9143 ld.w r2, (r1, 0xc)
d90: 9164 ld.w r3, (r1, 0x10)
d92: b840 st.w r2, (r14, 0x0)
d94: b861 st.w r3, (r14, 0x4)
d96: 5c75 subu r3, r4, r5
d98: 3bdf btsti r3, 31
d9a: 6c8f mov r2, r3
d9c: 08d2 bt 0xf40 // f40 <_fpadd_parts+0x1e0>
d9e: 363f movi r6, 63
da0: 6499 cmplt r6, r2
da2: 0c50 bf 0xe42 // e42 <_fpadd_parts+0xe2>
da4: 6515 cmplt r5, r4
da6: 0cbf bf 0xf24 // f24 <_fpadd_parts+0x1c4>
da8: 3200 movi r2, 0
daa: 3300 movi r3, 0
dac: b840 st.w r2, (r14, 0x0)
dae: b861 st.w r3, (r14, 0x4)
db0: 9061 ld.w r3, (r0, 0x4)
db2: 9141 ld.w r2, (r1, 0x4)
db4: 648e cmpne r3, r2
db6: 0c78 bf 0xea6 // ea6 <_fpadd_parts+0x146>
db8: 3b40 cmpnei r3, 0
dba: 0cad bf 0xf14 // f14 <_fpadd_parts+0x1b4>
dbc: 9800 ld.w r0, (r14, 0x0)
dbe: 9821 ld.w r1, (r14, 0x4)
dc0: 9842 ld.w r2, (r14, 0x8)
dc2: 9863 ld.w r3, (r14, 0xc)
dc4: 6400 cmphs r0, r0
dc6: 600b subc r0, r2
dc8: 604f subc r1, r3
dca: 39df btsti r1, 31
dcc: 08bd bt 0xf46 // f46 <_fpadd_parts+0x1e6>
dce: 3300 movi r3, 0
dd0: b761 st.w r3, (r7, 0x4)
dd2: b782 st.w r4, (r7, 0x8)
dd4: 6c83 mov r2, r0
dd6: 6cc7 mov r3, r1
dd8: b703 st.w r0, (r7, 0xc)
dda: b724 st.w r1, (r7, 0x10)
ddc: 3000 movi r0, 0
dde: 3100 movi r1, 0
de0: 2800 subi r0, 1
de2: 2900 subi r1, 1
de4: 6401 cmplt r0, r0
de6: 6009 addc r0, r2
de8: 604d addc r1, r3
dea: 038f lrw r4, 0xfffffff // 1028 <_fpadd_parts+0x2c8>
dec: 6450 cmphs r4, r1
dee: 0c67 bf 0xebc // ebc <_fpadd_parts+0x15c>
df0: 6506 cmpne r1, r4
df2: 0cfd bf 0xfec // fec <_fpadd_parts+0x28c>
df4: 3000 movi r0, 0
df6: 9722 ld.w r1, (r7, 0x8)
df8: 2801 subi r0, 2
dfa: 2900 subi r1, 1
dfc: 03d4 lrw r6, 0xfffffff // 1028 <_fpadd_parts+0x2c8>
dfe: b802 st.w r0, (r14, 0x8)
e00: b8e0 st.w r7, (r14, 0x0)
e02: 0403 br 0xe08 // e08 <_fpadd_parts+0xa8>
e04: 6596 cmpne r5, r6
e06: 0c83 bf 0xf0c // f0c <_fpadd_parts+0x1ac>
e08: 4301 lsli r0, r3, 1
e0a: 4a9f lsri r4, r2, 31
e0c: 6d00 or r4, r0
e0e: 42a1 lsli r5, r2, 1
e10: 6c97 mov r2, r5
e12: 6cd3 mov r3, r4
e14: 3500 movi r5, 0
e16: 3400 movi r4, 0
e18: 2c00 subi r4, 1
e1a: 2d00 subi r5, 1
e1c: 6511 cmplt r4, r4
e1e: 6109 addc r4, r2
e20: 614d addc r5, r3
e22: 6558 cmphs r6, r5
e24: 6c07 mov r0, r1
e26: 2900 subi r1, 1
e28: 0bee bt 0xe04 // e04 <_fpadd_parts+0xa4>
e2a: 98e0 ld.w r7, (r14, 0x0)
e2c: b743 st.w r2, (r7, 0xc)
e2e: b764 st.w r3, (r7, 0x10)
e30: 3303 movi r3, 3
e32: b702 st.w r0, (r7, 0x8)
e34: b760 st.w r3, (r7, 0x0)
e36: 6c1f mov r0, r7
e38: 140a addi r14, r14, 40
e3a: 1484 pop r4-r7
e3c: 6c07 mov r0, r1
e3e: 140a addi r14, r14, 40
e40: 1484 pop r4-r7
e42: 3b20 cmplti r3, 1
e44: 088c bt 0xf5c // f5c <_fpadd_parts+0x1fc>
e46: 3300 movi r3, 0
e48: 2b1f subi r3, 32
e4a: 60c8 addu r3, r2
e4c: 3bdf btsti r3, 31
e4e: b866 st.w r3, (r14, 0x18)
e50: 08bb bt 0xfc6 // fc6 <_fpadd_parts+0x266>
e52: 98a1 ld.w r5, (r14, 0x4)
e54: 714d lsr r5, r3
e56: b8a4 st.w r5, (r14, 0x10)
e58: 3500 movi r5, 0
e5a: b8a5 st.w r5, (r14, 0x14)
e5c: 9866 ld.w r3, (r14, 0x18)
e5e: 3bdf btsti r3, 31
e60: 3500 movi r5, 0
e62: 3600 movi r6, 0
e64: 08ad bt 0xfbe // fbe <_fpadd_parts+0x25e>
e66: 3201 movi r2, 1
e68: 708c lsl r2, r3
e6a: 6d8b mov r6, r2
e6c: 3200 movi r2, 0
e6e: 3300 movi r3, 0
e70: 2a00 subi r2, 1
e72: 2b00 subi r3, 1
e74: 6489 cmplt r2, r2
e76: 6095 addc r2, r5
e78: 60d9 addc r3, r6
e7a: 98a0 ld.w r5, (r14, 0x0)
e7c: 98c1 ld.w r6, (r14, 0x4)
e7e: 6948 and r5, r2
e80: 698c and r6, r3
e82: 6c97 mov r2, r5
e84: 6cdb mov r3, r6
e86: 6c8c or r2, r3
e88: 3a40 cmpnei r2, 0
e8a: 3500 movi r5, 0
e8c: 6155 addc r5, r5
e8e: 6c97 mov r2, r5
e90: 3300 movi r3, 0
e92: 98a4 ld.w r5, (r14, 0x10)
e94: 98c5 ld.w r6, (r14, 0x14)
e96: 6d48 or r5, r2
e98: 6d8c or r6, r3
e9a: 9061 ld.w r3, (r0, 0x4)
e9c: 9141 ld.w r2, (r1, 0x4)
e9e: 648e cmpne r3, r2
ea0: b8a0 st.w r5, (r14, 0x0)
ea2: b8c1 st.w r6, (r14, 0x4)
ea4: 0b8a bt 0xdb8 // db8 <_fpadd_parts+0x58>
ea6: b761 st.w r3, (r7, 0x4)
ea8: 9800 ld.w r0, (r14, 0x0)
eaa: 9821 ld.w r1, (r14, 0x4)
eac: 9842 ld.w r2, (r14, 0x8)
eae: 9863 ld.w r3, (r14, 0xc)
eb0: 6489 cmplt r2, r2
eb2: 6081 addc r2, r0
eb4: 60c5 addc r3, r1
eb6: b782 st.w r4, (r7, 0x8)
eb8: b743 st.w r2, (r7, 0xc)
eba: b764 st.w r3, (r7, 0x10)
ebc: 3103 movi r1, 3
ebe: b720 st.w r1, (r7, 0x0)
ec0: 123b lrw r1, 0x1fffffff // 102c <_fpadd_parts+0x2cc>
ec2: 64c4 cmphs r1, r3
ec4: 0810 bt 0xee4 // ee4 <_fpadd_parts+0x184>
ec6: 439f lsli r4, r3, 31
ec8: 4a01 lsri r0, r2, 1
eca: 6c10 or r0, r4
ecc: 3500 movi r5, 0
ece: 3401 movi r4, 1
ed0: 4b21 lsri r1, r3, 1
ed2: 6890 and r2, r4
ed4: 68d4 and r3, r5
ed6: 6c80 or r2, r0
ed8: 6cc4 or r3, r1
eda: b743 st.w r2, (r7, 0xc)
edc: b764 st.w r3, (r7, 0x10)
ede: 9762 ld.w r3, (r7, 0x8)
ee0: 2300 addi r3, 1
ee2: b762 st.w r3, (r7, 0x8)
ee4: 6c1f mov r0, r7
ee6: 140a addi r14, r14, 40
ee8: 1484 pop r4-r7
eea: 3b42 cmpnei r3, 2
eec: 0ba6 bt 0xe38 // e38 <_fpadd_parts+0xd8>
eee: b760 st.w r3, (r7, 0x0)
ef0: 9061 ld.w r3, (r0, 0x4)
ef2: b761 st.w r3, (r7, 0x4)
ef4: 9062 ld.w r3, (r0, 0x8)
ef6: b762 st.w r3, (r7, 0x8)
ef8: 9063 ld.w r3, (r0, 0xc)
efa: b763 st.w r3, (r7, 0xc)
efc: 9064 ld.w r3, (r0, 0x10)
efe: 9141 ld.w r2, (r1, 0x4)
f00: b764 st.w r3, (r7, 0x10)
f02: 9061 ld.w r3, (r0, 0x4)
f04: 68c8 and r3, r2
f06: b761 st.w r3, (r7, 0x4)
f08: 6c1f mov r0, r7
f0a: 0797 br 0xe38 // e38 <_fpadd_parts+0xd8>
f0c: 98e2 ld.w r7, (r14, 0x8)
f0e: 651c cmphs r7, r4
f10: 0b7c bt 0xe08 // e08 <_fpadd_parts+0xa8>
f12: 078c br 0xe2a // e2a <_fpadd_parts+0xca>
f14: 9802 ld.w r0, (r14, 0x8)
f16: 9823 ld.w r1, (r14, 0xc)
f18: 9840 ld.w r2, (r14, 0x0)
f1a: 9861 ld.w r3, (r14, 0x4)
f1c: 6400 cmphs r0, r0
f1e: 600b subc r0, r2
f20: 604f subc r1, r3
f22: 0754 br 0xdca // dca <_fpadd_parts+0x6a>
f24: 3200 movi r2, 0
f26: 3300 movi r3, 0
f28: 6d17 mov r4, r5
f2a: b842 st.w r2, (r14, 0x8)
f2c: b863 st.w r3, (r14, 0xc)
f2e: 0741 br 0xdb0 // db0 <_fpadd_parts+0x50>
f30: 3a44 cmpnei r2, 4
f32: 0b83 bt 0xe38 // e38 <_fpadd_parts+0xd8>
f34: 9041 ld.w r2, (r0, 0x4)
f36: 9161 ld.w r3, (r1, 0x4)
f38: 64ca cmpne r2, r3
f3a: 0f7f bf 0xe38 // e38 <_fpadd_parts+0xd8>
f3c: 111d lrw r0, 0x4ca0 // 1030 <_fpadd_parts+0x2d0>
f3e: 077d br 0xe38 // e38 <_fpadd_parts+0xd8>
f40: 3200 movi r2, 0
f42: 608e subu r2, r3
f44: 072d br 0xd9e // d9e <_fpadd_parts+0x3e>
f46: 3301 movi r3, 1
f48: b761 st.w r3, (r7, 0x4)
f4a: 3200 movi r2, 0
f4c: 3300 movi r3, 0
f4e: 6488 cmphs r2, r2
f50: 6083 subc r2, r0
f52: 60c7 subc r3, r1
f54: b782 st.w r4, (r7, 0x8)
f56: b743 st.w r2, (r7, 0xc)
f58: b764 st.w r3, (r7, 0x10)
f5a: 0741 br 0xddc // ddc <_fpadd_parts+0x7c>
f5c: 3b40 cmpnei r3, 0
f5e: 0f29 bf 0xdb0 // db0 <_fpadd_parts+0x50>
f60: 3300 movi r3, 0
f62: 2b1f subi r3, 32
f64: 60c8 addu r3, r2
f66: 3bdf btsti r3, 31
f68: 6108 addu r4, r2
f6a: b866 st.w r3, (r14, 0x18)
f6c: 0849 bt 0xffe // ffe <_fpadd_parts+0x29e>
f6e: 9863 ld.w r3, (r14, 0xc)
f70: 98a6 ld.w r5, (r14, 0x18)
f72: 70d5 lsr r3, r5
f74: b864 st.w r3, (r14, 0x10)
f76: 3300 movi r3, 0
f78: b865 st.w r3, (r14, 0x14)
f7a: 9866 ld.w r3, (r14, 0x18)
f7c: 3bdf btsti r3, 31
f7e: 3500 movi r5, 0
f80: 3600 movi r6, 0
f82: 083a bt 0xff6 // ff6 <_fpadd_parts+0x296>
f84: 3201 movi r2, 1
f86: 708c lsl r2, r3
f88: 6d8b mov r6, r2
f8a: 3200 movi r2, 0
f8c: 3300 movi r3, 0
f8e: 2a00 subi r2, 1
f90: 2b00 subi r3, 1
f92: 6489 cmplt r2, r2
f94: 6095 addc r2, r5
f96: 60d9 addc r3, r6
f98: 98a2 ld.w r5, (r14, 0x8)
f9a: 98c3 ld.w r6, (r14, 0xc)
f9c: 6948 and r5, r2
f9e: 698c and r6, r3
fa0: 6c97 mov r2, r5
fa2: 6cdb mov r3, r6
fa4: 6c8c or r2, r3
fa6: 3a40 cmpnei r2, 0
fa8: 3500 movi r5, 0
faa: 6155 addc r5, r5
fac: 6c97 mov r2, r5
fae: 3300 movi r3, 0
fb0: 98a4 ld.w r5, (r14, 0x10)
fb2: 98c5 ld.w r6, (r14, 0x14)
fb4: 6d48 or r5, r2
fb6: 6d8c or r6, r3
fb8: b8a2 st.w r5, (r14, 0x8)
fba: b8c3 st.w r6, (r14, 0xc)
fbc: 06fa br 0xdb0 // db0 <_fpadd_parts+0x50>
fbe: 3301 movi r3, 1
fc0: 70c8 lsl r3, r2
fc2: 6d4f mov r5, r3
fc4: 0754 br 0xe6c // e6c <_fpadd_parts+0x10c>
fc6: 9861 ld.w r3, (r14, 0x4)
fc8: 361f movi r6, 31
fca: 43a1 lsli r5, r3, 1
fcc: 618a subu r6, r2
fce: 7158 lsl r5, r6
fd0: b8a9 st.w r5, (r14, 0x24)
fd2: 98a0 ld.w r5, (r14, 0x0)
fd4: 98c1 ld.w r6, (r14, 0x4)
fd6: b8a7 st.w r5, (r14, 0x1c)
fd8: b8c8 st.w r6, (r14, 0x20)
fda: 9867 ld.w r3, (r14, 0x1c)
fdc: 70c9 lsr r3, r2
fde: 98a9 ld.w r5, (r14, 0x24)
fe0: 6cd4 or r3, r5
fe2: b864 st.w r3, (r14, 0x10)
fe4: 9868 ld.w r3, (r14, 0x20)
fe6: 70c9 lsr r3, r2
fe8: b865 st.w r3, (r14, 0x14)
fea: 0739 br 0xe5c // e5c <_fpadd_parts+0xfc>
fec: 3100 movi r1, 0
fee: 2901 subi r1, 2
ff0: 6404 cmphs r1, r0
ff2: 0b01 bt 0xdf4 // df4 <_fpadd_parts+0x94>
ff4: 0764 br 0xebc // ebc <_fpadd_parts+0x15c>
ff6: 3301 movi r3, 1
ff8: 70c8 lsl r3, r2
ffa: 6d4f mov r5, r3
ffc: 07c7 br 0xf8a // f8a <_fpadd_parts+0x22a>
ffe: 9863 ld.w r3, (r14, 0xc)
1000: 43c1 lsli r6, r3, 1
1002: 351f movi r5, 31
1004: 5d69 subu r3, r5, r2
1006: 6d5b mov r5, r6
1008: 714c lsl r5, r3
100a: b8a9 st.w r5, (r14, 0x24)
100c: 98a2 ld.w r5, (r14, 0x8)
100e: 98c3 ld.w r6, (r14, 0xc)
1010: b8a7 st.w r5, (r14, 0x1c)
1012: b8c8 st.w r6, (r14, 0x20)
1014: 9867 ld.w r3, (r14, 0x1c)
1016: 70c9 lsr r3, r2
1018: 98a9 ld.w r5, (r14, 0x24)
101a: 6cd4 or r3, r5
101c: b864 st.w r3, (r14, 0x10)
101e: 9868 ld.w r3, (r14, 0x20)
1020: 70c9 lsr r3, r2
1022: b865 st.w r3, (r14, 0x14)
1024: 07ab br 0xf7a // f7a <_fpadd_parts+0x21a>
1026: 0000 bkpt
1028: 0fffffff .long 0x0fffffff
102c: 1fffffff .long 0x1fffffff
1030: 00004ca0 .long 0x00004ca0
00001034 <__adddf3>:
1034: 14d0 push r15
1036: 1433 subi r14, r14, 76
1038: b800 st.w r0, (r14, 0x0)
103a: b821 st.w r1, (r14, 0x4)
103c: 6c3b mov r0, r14
103e: 1904 addi r1, r14, 16
1040: b863 st.w r3, (r14, 0xc)
1042: b842 st.w r2, (r14, 0x8)
1044: e00003f4 bsr 0x182c // 182c <__unpack_d>
1048: 1909 addi r1, r14, 36
104a: 1802 addi r0, r14, 8
104c: e00003f0 bsr 0x182c // 182c <__unpack_d>
1050: 1a0e addi r2, r14, 56
1052: 1909 addi r1, r14, 36
1054: 1804 addi r0, r14, 16
1056: e3fffe85 bsr 0xd60 // d60 <_fpadd_parts>
105a: e000031b bsr 0x1690 // 1690 <__pack_d>
105e: 1413 addi r14, r14, 76
1060: 1490 pop r15
...
00001064 <__subdf3>:
1064: 14d0 push r15
1066: 1433 subi r14, r14, 76
1068: b800 st.w r0, (r14, 0x0)
106a: b821 st.w r1, (r14, 0x4)
106c: 6c3b mov r0, r14
106e: 1904 addi r1, r14, 16
1070: b842 st.w r2, (r14, 0x8)
1072: b863 st.w r3, (r14, 0xc)
1074: e00003dc bsr 0x182c // 182c <__unpack_d>
1078: 1909 addi r1, r14, 36
107a: 1802 addi r0, r14, 8
107c: e00003d8 bsr 0x182c // 182c <__unpack_d>
1080: 986a ld.w r3, (r14, 0x28)
1082: 3201 movi r2, 1
1084: 6cc9 xor r3, r2
1086: 1909 addi r1, r14, 36
1088: 1a0e addi r2, r14, 56
108a: 1804 addi r0, r14, 16
108c: b86a st.w r3, (r14, 0x28)
108e: e3fffe69 bsr 0xd60 // d60 <_fpadd_parts>
1092: e00002ff bsr 0x1690 // 1690 <__pack_d>
1096: 1413 addi r14, r14, 76
1098: 1490 pop r15
...
0000109c <__muldf3>:
109c: 14d4 push r4-r7, r15
109e: 143b subi r14, r14, 108
10a0: b808 st.w r0, (r14, 0x20)
10a2: b829 st.w r1, (r14, 0x24)
10a4: 1808 addi r0, r14, 32
10a6: 190c addi r1, r14, 48
10a8: b86b st.w r3, (r14, 0x2c)
10aa: b84a st.w r2, (r14, 0x28)
10ac: e00003c0 bsr 0x182c // 182c <__unpack_d>
10b0: 1911 addi r1, r14, 68
10b2: 180a addi r0, r14, 40
10b4: e00003bc bsr 0x182c // 182c <__unpack_d>
10b8: 986c ld.w r3, (r14, 0x30)
10ba: 3b01 cmphsi r3, 2
10bc: 0cac bf 0x1214 // 1214 <__muldf3+0x178>
10be: 9851 ld.w r2, (r14, 0x44)
10c0: 3a01 cmphsi r2, 2
10c2: 0c9c bf 0x11fa // 11fa <__muldf3+0x15e>
10c4: 3b44 cmpnei r3, 4
10c6: 0ca5 bf 0x1210 // 1210 <__muldf3+0x174>
10c8: 3a44 cmpnei r2, 4
10ca: 0c96 bf 0x11f6 // 11f6 <__muldf3+0x15a>
10cc: 3b42 cmpnei r3, 2
10ce: 0ca3 bf 0x1214 // 1214 <__muldf3+0x178>
10d0: 3a42 cmpnei r2, 2
10d2: 0c94 bf 0x11fa // 11fa <__muldf3+0x15e>
10d4: 98ef ld.w r7, (r14, 0x3c)
10d6: 98b4 ld.w r5, (r14, 0x50)
10d8: 9875 ld.w r3, (r14, 0x54)
10da: 6d8f mov r6, r3
10dc: 6c9f mov r2, r7
10de: 3300 movi r3, 0
10e0: 6c17 mov r0, r5
10e2: 3100 movi r1, 0
10e4: e0000294 bsr 0x160c // 160c <__muldi3>
10e8: b804 st.w r0, (r14, 0x10)
10ea: b825 st.w r1, (r14, 0x14)
10ec: 6c9f mov r2, r7
10ee: 3300 movi r3, 0
10f0: 6c1b mov r0, r6
10f2: 3100 movi r1, 0
10f4: 9890 ld.w r4, (r14, 0x40)
10f6: b8c2 st.w r6, (r14, 0x8)
10f8: e000028a bsr 0x160c // 160c <__muldi3>
10fc: 6d83 mov r6, r0
10fe: 6dc7 mov r7, r1
1100: 9842 ld.w r2, (r14, 0x8)
1102: 3300 movi r3, 0
1104: 6c13 mov r0, r4
1106: 3100 movi r1, 0
1108: e0000282 bsr 0x160c // 160c <__muldi3>
110c: b806 st.w r0, (r14, 0x18)
110e: b827 st.w r1, (r14, 0x1c)
1110: 6c97 mov r2, r5
1112: 3300 movi r3, 0
1114: 6c13 mov r0, r4
1116: 3100 movi r1, 0
1118: e000027a bsr 0x160c // 160c <__muldi3>
111c: 6401 cmplt r0, r0
111e: 6019 addc r0, r6
1120: 605d addc r1, r7
1122: 65c4 cmphs r1, r7
1124: 0c91 bf 0x1246 // 1246 <__muldf3+0x1aa>
1126: 645e cmpne r7, r1
1128: 0c8d bf 0x1242 // 1242 <__muldf3+0x1a6>
112a: 3300 movi r3, 0
112c: 3400 movi r4, 0
112e: b862 st.w r3, (r14, 0x8)
1130: b883 st.w r4, (r14, 0xc)
1132: 9884 ld.w r4, (r14, 0x10)
1134: 98a5 ld.w r5, (r14, 0x14)
1136: 3600 movi r6, 0
1138: 6dc3 mov r7, r0
113a: 6c93 mov r2, r4
113c: 6cd7 mov r3, r5
113e: 6489 cmplt r2, r2
1140: 6099 addc r2, r6
1142: 60dd addc r3, r7
1144: 6d8b mov r6, r2
1146: 6dcf mov r7, r3
1148: 6c93 mov r2, r4
114a: 6cd7 mov r3, r5
114c: 64dc cmphs r7, r3
114e: 0c70 bf 0x122e // 122e <__muldf3+0x192>
1150: 65ce cmpne r3, r7
1152: 0c6c bf 0x122a // 122a <__muldf3+0x18e>
1154: 6c87 mov r2, r1
1156: 3300 movi r3, 0
1158: 9806 ld.w r0, (r14, 0x18)
115a: 9827 ld.w r1, (r14, 0x1c)
115c: 6401 cmplt r0, r0
115e: 6009 addc r0, r2
1160: 604d addc r1, r3
1162: 6c83 mov r2, r0
1164: 6cc7 mov r3, r1
1166: 9802 ld.w r0, (r14, 0x8)
1168: 9823 ld.w r1, (r14, 0xc)
116a: 6401 cmplt r0, r0
116c: 6009 addc r0, r2
116e: 604d addc r1, r3
1170: 6c83 mov r2, r0
1172: 6cc7 mov r3, r1
1174: 988e ld.w r4, (r14, 0x38)
1176: 9833 ld.w r1, (r14, 0x4c)
1178: 6104 addu r4, r1
117a: 5c2e addi r1, r4, 4
117c: b838 st.w r1, (r14, 0x60)
117e: 980d ld.w r0, (r14, 0x34)
1180: 9832 ld.w r1, (r14, 0x48)
1182: 6442 cmpne r0, r1
1184: 12b0 lrw r5, 0x1fffffff // 12c4 <__muldf3+0x228>
1186: 3100 movi r1, 0
1188: 6045 addc r1, r1
118a: 64d4 cmphs r5, r3
118c: b837 st.w r1, (r14, 0x5c)
118e: 0879 bt 0x1280 // 1280 <__muldf3+0x1e4>
1190: 2404 addi r4, 5
1192: b8a4 st.w r5, (r14, 0x10)
1194: 3001 movi r0, 1
1196: 3100 movi r1, 0
1198: 6808 and r0, r2
119a: 684c and r1, r3
119c: 6c04 or r0, r1
119e: 3840 cmpnei r0, 0
11a0: b882 st.w r4, (r14, 0x8)
11a2: 0c0e bf 0x11be // 11be <__muldf3+0x122>
11a4: 473f lsli r1, r7, 31
11a6: 4e01 lsri r0, r6, 1
11a8: 6c04 or r0, r1
11aa: 4f21 lsri r1, r7, 1
11ac: b800 st.w r0, (r14, 0x0)
11ae: b821 st.w r1, (r14, 0x4)
11b0: 3180 movi r1, 128
11b2: 98c0 ld.w r6, (r14, 0x0)
11b4: 98e1 ld.w r7, (r14, 0x4)
11b6: 3000 movi r0, 0
11b8: 4138 lsli r1, r1, 24
11ba: 6d80 or r6, r0
11bc: 6dc4 or r7, r1
11be: 4b21 lsri r1, r3, 1
11c0: 43bf lsli r5, r3, 31
11c2: 4a01 lsri r0, r2, 1
11c4: 6cc7 mov r3, r1
11c6: 9824 ld.w r1, (r14, 0x10)
11c8: 6d40 or r5, r0
11ca: 64c4 cmphs r1, r3
11cc: 6c97 mov r2, r5
11ce: 2400 addi r4, 1
11d0: 0fe2 bf 0x1194 // 1194 <__muldf3+0xf8>
11d2: 9822 ld.w r1, (r14, 0x8)
11d4: b838 st.w r1, (r14, 0x60)
11d6: 30ff movi r0, 255
11d8: 3100 movi r1, 0
11da: 6808 and r0, r2
11dc: 684c and r1, r3
11de: 3480 movi r4, 128
11e0: 6502 cmpne r0, r4
11e2: 0c37 bf 0x1250 // 1250 <__muldf3+0x1b4>
11e4: b859 st.w r2, (r14, 0x64)
11e6: b87a st.w r3, (r14, 0x68)
11e8: 3303 movi r3, 3
11ea: b876 st.w r3, (r14, 0x58)
11ec: 1816 addi r0, r14, 88
11ee: e0000251 bsr 0x1690 // 1690 <__pack_d>
11f2: 141b addi r14, r14, 108
11f4: 1494 pop r4-r7, r15
11f6: 3b42 cmpnei r3, 2
11f8: 0c42 bf 0x127c // 127c <__muldf3+0x1e0>
11fa: 9872 ld.w r3, (r14, 0x48)
11fc: 984d ld.w r2, (r14, 0x34)
11fe: 64ca cmpne r2, r3
1200: 3300 movi r3, 0
1202: 60cd addc r3, r3
1204: 1811 addi r0, r14, 68
1206: b872 st.w r3, (r14, 0x48)
1208: e0000244 bsr 0x1690 // 1690 <__pack_d>
120c: 141b addi r14, r14, 108
120e: 1494 pop r4-r7, r15
1210: 3a42 cmpnei r2, 2
1212: 0c35 bf 0x127c // 127c <__muldf3+0x1e0>
1214: 984d ld.w r2, (r14, 0x34)
1216: 9872 ld.w r3, (r14, 0x48)
1218: 64ca cmpne r2, r3
121a: 3300 movi r3, 0
121c: 60cd addc r3, r3
121e: 180c addi r0, r14, 48
1220: b86d st.w r3, (r14, 0x34)
1222: e0000237 bsr 0x1690 // 1690 <__pack_d>
1226: 141b addi r14, r14, 108
1228: 1494 pop r4-r7, r15
122a: 6498 cmphs r6, r2
122c: 0b94 bt 0x1154 // 1154 <__muldf3+0xb8>
122e: 9882 ld.w r4, (r14, 0x8)
1230: 98a3 ld.w r5, (r14, 0xc)
1232: 3201 movi r2, 1
1234: 3300 movi r3, 0
1236: 6511 cmplt r4, r4
1238: 6109 addc r4, r2
123a: 614d addc r5, r3
123c: b882 st.w r4, (r14, 0x8)
123e: b8a3 st.w r5, (r14, 0xc)
1240: 078a br 0x1154 // 1154 <__muldf3+0xb8>
1242: 6580 cmphs r0, r6
1244: 0b73 bt 0x112a // 112a <__muldf3+0x8e>
1246: 3300 movi r3, 0
1248: 3401 movi r4, 1
124a: b862 st.w r3, (r14, 0x8)
124c: b883 st.w r4, (r14, 0xc)
124e: 0772 br 0x1132 // 1132 <__muldf3+0x96>
1250: 3940 cmpnei r1, 0
1252: 0bc9 bt 0x11e4 // 11e4 <__muldf3+0x148>
1254: 3180 movi r1, 128
1256: 4121 lsli r1, r1, 1
1258: 6848 and r1, r2
125a: 3940 cmpnei r1, 0
125c: 0bc4 bt 0x11e4 // 11e4 <__muldf3+0x148>
125e: 6c5b mov r1, r6
1260: 6c5c or r1, r7
1262: 3940 cmpnei r1, 0
1264: 0fc0 bf 0x11e4 // 11e4 <__muldf3+0x148>
1266: 3080 movi r0, 128
1268: 3100 movi r1, 0
126a: 6401 cmplt r0, r0
126c: 6009 addc r0, r2
126e: 604d addc r1, r3
1270: 34ff movi r4, 255
1272: 6d43 mov r5, r0
1274: 6951 andn r5, r4
1276: 6c97 mov r2, r5
1278: 6cc7 mov r3, r1
127a: 07b5 br 0x11e4 // 11e4 <__muldf3+0x148>
127c: 1013 lrw r0, 0x4ca0 // 12c8 <__muldf3+0x22c>
127e: 07b8 br 0x11ee // 11ee <__muldf3+0x152>
1280: 1033 lrw r1, 0xfffffff // 12cc <__muldf3+0x230>
1282: 64c4 cmphs r1, r3
1284: 0fa9 bf 0x11d6 // 11d6 <__muldf3+0x13a>
1286: 2402 addi r4, 3
1288: b822 st.w r1, (r14, 0x8)
128a: 4a1f lsri r0, r2, 31
128c: 4321 lsli r1, r3, 1
128e: 42a1 lsli r5, r2, 1
1290: 6c04 or r0, r1
1292: 3fdf btsti r7, 31
1294: b880 st.w r4, (r14, 0x0)
1296: 6c97 mov r2, r5
1298: 6cc3 mov r3, r0
129a: 0c07 bf 0x12a8 // 12a8 <__muldf3+0x20c>
129c: 3001 movi r0, 1
129e: 3100 movi r1, 0
12a0: 6c08 or r0, r2
12a2: 6c4c or r1, r3
12a4: 6c83 mov r2, r0
12a6: 6cc7 mov r3, r1
12a8: 4721 lsli r1, r7, 1
12aa: 4e1f lsri r0, r6, 31
12ac: 6c04 or r0, r1
12ae: 9822 ld.w r1, (r14, 0x8)
12b0: 46a1 lsli r5, r6, 1
12b2: 64c4 cmphs r1, r3
12b4: 6d97 mov r6, r5
12b6: 6dc3 mov r7, r0
12b8: 2c00 subi r4, 1
12ba: 0be8 bt 0x128a // 128a <__muldf3+0x1ee>
12bc: 9820 ld.w r1, (r14, 0x0)
12be: b838 st.w r1, (r14, 0x60)
12c0: 078b br 0x11d6 // 11d6 <__muldf3+0x13a>
12c2: 0000 bkpt
12c4: 1fffffff .long 0x1fffffff
12c8: 00004ca0 .long 0x00004ca0
12cc: 0fffffff .long 0x0fffffff
000012d0 <__divdf3>:
12d0: 14d4 push r4-r7, r15
12d2: 1432 subi r14, r14, 72
12d4: b804 st.w r0, (r14, 0x10)
12d6: b825 st.w r1, (r14, 0x14)
12d8: 1804 addi r0, r14, 16
12da: 1908 addi r1, r14, 32
12dc: b867 st.w r3, (r14, 0x1c)
12de: b846 st.w r2, (r14, 0x18)
12e0: e00002a6 bsr 0x182c // 182c <__unpack_d>
12e4: 190d addi r1, r14, 52
12e6: 1806 addi r0, r14, 24
12e8: e00002a2 bsr 0x182c // 182c <__unpack_d>
12ec: 9868 ld.w r3, (r14, 0x20)
12ee: 3b01 cmphsi r3, 2
12f0: 0c66 bf 0x13bc // 13bc <__divdf3+0xec>
12f2: 982d ld.w r1, (r14, 0x34)
12f4: 3901 cmphsi r1, 2
12f6: 0c92 bf 0x141a // 141a <__divdf3+0x14a>
12f8: 9849 ld.w r2, (r14, 0x24)
12fa: 980e ld.w r0, (r14, 0x38)
12fc: 6c81 xor r2, r0
12fe: 3b44 cmpnei r3, 4
1300: b849 st.w r2, (r14, 0x24)
1302: 0c62 bf 0x13c6 // 13c6 <__divdf3+0xf6>
1304: 3b42 cmpnei r3, 2
1306: 0c60 bf 0x13c6 // 13c6 <__divdf3+0xf6>
1308: 3944 cmpnei r1, 4
130a: 0c62 bf 0x13ce // 13ce <__divdf3+0xfe>
130c: 3942 cmpnei r1, 2
130e: 0c82 bf 0x1412 // 1412 <__divdf3+0x142>
1310: 982a ld.w r1, (r14, 0x28)
1312: 986f ld.w r3, (r14, 0x3c)
1314: 604e subu r1, r3
1316: 9890 ld.w r4, (r14, 0x40)
1318: 98b1 ld.w r5, (r14, 0x44)
131a: 984b ld.w r2, (r14, 0x2c)
131c: 986c ld.w r3, (r14, 0x30)
131e: 654c cmphs r3, r5
1320: b82a st.w r1, (r14, 0x28)
1322: 6d93 mov r6, r4
1324: 6dd7 mov r7, r5
1326: 0c05 bf 0x1330 // 1330 <__divdf3+0x60>
1328: 64d6 cmpne r5, r3
132a: 080b bt 0x1340 // 1340 <__divdf3+0x70>
132c: 6508 cmphs r2, r4
132e: 0809 bt 0x1340 // 1340 <__divdf3+0x70>
1330: 4a9f lsri r4, r2, 31
1332: 4301 lsli r0, r3, 1
1334: 42a1 lsli r5, r2, 1
1336: 6d00 or r4, r0
1338: 2900 subi r1, 1
133a: 6c97 mov r2, r5
133c: 6cd3 mov r3, r4
133e: b82a st.w r1, (r14, 0x28)
1340: 3000 movi r0, 0
1342: 3100 movi r1, 0
1344: b802 st.w r0, (r14, 0x8)
1346: b823 st.w r1, (r14, 0xc)
1348: 3180 movi r1, 128
134a: 343d movi r4, 61
134c: 3000 movi r0, 0
134e: 4135 lsli r1, r1, 21
1350: b8c0 st.w r6, (r14, 0x0)
1352: b8e1 st.w r7, (r14, 0x4)
1354: 98a0 ld.w r5, (r14, 0x0)
1356: 98c1 ld.w r6, (r14, 0x4)
1358: 658c cmphs r3, r6
135a: 0c10 bf 0x137a // 137a <__divdf3+0xaa>
135c: 64da cmpne r6, r3
135e: 0803 bt 0x1364 // 1364 <__divdf3+0x94>
1360: 6548 cmphs r2, r5
1362: 0c0c bf 0x137a // 137a <__divdf3+0xaa>
1364: 98a2 ld.w r5, (r14, 0x8)
1366: 98c3 ld.w r6, (r14, 0xc)
1368: 6d40 or r5, r0
136a: 6d84 or r6, r1
136c: b8a2 st.w r5, (r14, 0x8)
136e: b8c3 st.w r6, (r14, 0xc)
1370: 98a0 ld.w r5, (r14, 0x0)
1372: 98c1 ld.w r6, (r14, 0x4)
1374: 6488 cmphs r2, r2
1376: 6097 subc r2, r5
1378: 60db subc r3, r6
137a: 41bf lsli r5, r1, 31
137c: 48e1 lsri r7, r0, 1
137e: 6d97 mov r6, r5
1380: 49a1 lsri r5, r1, 1
1382: 6d9c or r6, r7
1384: 6c57 mov r1, r5
1386: 4abf lsri r5, r2, 31
1388: 6c1b mov r0, r6
138a: 2c00 subi r4, 1
138c: 6d97 mov r6, r5
138e: 43a1 lsli r5, r3, 1
1390: 6d94 or r6, r5
1392: 4261 lsli r3, r2, 1
1394: 3c40 cmpnei r4, 0
1396: 6dcf mov r7, r3
1398: 6c8f mov r2, r3
139a: 6cdb mov r3, r6
139c: 0bdc bt 0x1354 // 1354 <__divdf3+0x84>
139e: 30ff movi r0, 255
13a0: 3100 movi r1, 0
13a2: 9882 ld.w r4, (r14, 0x8)
13a4: 98a3 ld.w r5, (r14, 0xc)
13a6: 6900 and r4, r0
13a8: 6944 and r5, r1
13aa: 6c13 mov r0, r4
13ac: 6c57 mov r1, r5
13ae: 3480 movi r4, 128
13b0: 6502 cmpne r0, r4
13b2: 0c15 bf 0x13dc // 13dc <__divdf3+0x10c>
13b4: 9862 ld.w r3, (r14, 0x8)
13b6: 9883 ld.w r4, (r14, 0xc)
13b8: b86b st.w r3, (r14, 0x2c)
13ba: b88c st.w r4, (r14, 0x30)
13bc: 1808 addi r0, r14, 32
13be: e0000169 bsr 0x1690 // 1690 <__pack_d>
13c2: 1412 addi r14, r14, 72
13c4: 1494 pop r4-r7, r15
13c6: 644e cmpne r3, r1
13c8: 0bfa bt 0x13bc // 13bc <__divdf3+0xec>
13ca: 1016 lrw r0, 0x4ca0 // 1420 <__divdf3+0x150>
13cc: 07f9 br 0x13be // 13be <__divdf3+0xee>
13ce: 3300 movi r3, 0
13d0: 3400 movi r4, 0
13d2: b86b st.w r3, (r14, 0x2c)
13d4: b88c st.w r4, (r14, 0x30)
13d6: b86a st.w r3, (r14, 0x28)
13d8: 1808 addi r0, r14, 32
13da: 07f2 br 0x13be // 13be <__divdf3+0xee>
13dc: 3940 cmpnei r1, 0
13de: 0beb bt 0x13b4 // 13b4 <__divdf3+0xe4>
13e0: 3180 movi r1, 128
13e2: 4121 lsli r1, r1, 1
13e4: 9882 ld.w r4, (r14, 0x8)
13e6: 98a3 ld.w r5, (r14, 0xc)
13e8: 6850 and r1, r4
13ea: 3940 cmpnei r1, 0
13ec: 0be4 bt 0x13b4 // 13b4 <__divdf3+0xe4>
13ee: 6c98 or r2, r6
13f0: 3a40 cmpnei r2, 0
13f2: 0fe1 bf 0x13b4 // 13b4 <__divdf3+0xe4>
13f4: 3280 movi r2, 128
13f6: 3300 movi r3, 0
13f8: 6c13 mov r0, r4
13fa: 6c57 mov r1, r5
13fc: 6401 cmplt r0, r0
13fe: 6009 addc r0, r2
1400: 604d addc r1, r3
1402: 6c83 mov r2, r0
1404: 6cc7 mov r3, r1
1406: 6c0b mov r0, r2
1408: 31ff movi r1, 255
140a: 6805 andn r0, r1
140c: b802 st.w r0, (r14, 0x8)
140e: b863 st.w r3, (r14, 0xc)
1410: 07d2 br 0x13b4 // 13b4 <__divdf3+0xe4>
1412: 3304 movi r3, 4
1414: b868 st.w r3, (r14, 0x20)
1416: 1808 addi r0, r14, 32
1418: 07d3 br 0x13be // 13be <__divdf3+0xee>
141a: 180d addi r0, r14, 52
141c: 07d1 br 0x13be // 13be <__divdf3+0xee>
141e: 0000 bkpt
1420: 00004ca0 .long 0x00004ca0
00001424 <__gtdf2>:
1424: 14d0 push r15
1426: 142e subi r14, r14, 56
1428: b800 st.w r0, (r14, 0x0)
142a: b821 st.w r1, (r14, 0x4)
142c: 6c3b mov r0, r14
142e: 1904 addi r1, r14, 16
1430: b863 st.w r3, (r14, 0xc)
1432: b842 st.w r2, (r14, 0x8)
1434: e00001fc bsr 0x182c // 182c <__unpack_d>
1438: 1909 addi r1, r14, 36
143a: 1802 addi r0, r14, 8
143c: e00001f8 bsr 0x182c // 182c <__unpack_d>
1440: 9864 ld.w r3, (r14, 0x10)
1442: 3b01 cmphsi r3, 2
1444: 0c0a bf 0x1458 // 1458 <__gtdf2+0x34>
1446: 9869 ld.w r3, (r14, 0x24)
1448: 3b01 cmphsi r3, 2
144a: 0c07 bf 0x1458 // 1458 <__gtdf2+0x34>
144c: 1909 addi r1, r14, 36
144e: 1804 addi r0, r14, 16
1450: e0000250 bsr 0x18f0 // 18f0 <__fpcmp_parts_d>
1454: 140e addi r14, r14, 56
1456: 1490 pop r15
1458: 3000 movi r0, 0
145a: 2800 subi r0, 1
145c: 140e addi r14, r14, 56
145e: 1490 pop r15
00001460 <__gedf2>:
1460: 14d0 push r15
1462: 142e subi r14, r14, 56
1464: b800 st.w r0, (r14, 0x0)
1466: b821 st.w r1, (r14, 0x4)
1468: 6c3b mov r0, r14
146a: 1904 addi r1, r14, 16
146c: b863 st.w r3, (r14, 0xc)
146e: b842 st.w r2, (r14, 0x8)
1470: e00001de bsr 0x182c // 182c <__unpack_d>
1474: 1909 addi r1, r14, 36
1476: 1802 addi r0, r14, 8
1478: e00001da bsr 0x182c // 182c <__unpack_d>
147c: 9864 ld.w r3, (r14, 0x10)
147e: 3b01 cmphsi r3, 2
1480: 0c0a bf 0x1494 // 1494 <__gedf2+0x34>
1482: 9869 ld.w r3, (r14, 0x24)
1484: 3b01 cmphsi r3, 2
1486: 0c07 bf 0x1494 // 1494 <__gedf2+0x34>
1488: 1909 addi r1, r14, 36
148a: 1804 addi r0, r14, 16
148c: e0000232 bsr 0x18f0 // 18f0 <__fpcmp_parts_d>
1490: 140e addi r14, r14, 56
1492: 1490 pop r15
1494: 3000 movi r0, 0
1496: 2800 subi r0, 1
1498: 140e addi r14, r14, 56
149a: 1490 pop r15
0000149c <__ledf2>:
149c: 14d0 push r15
149e: 142e subi r14, r14, 56
14a0: b800 st.w r0, (r14, 0x0)
14a2: b821 st.w r1, (r14, 0x4)
14a4: 6c3b mov r0, r14
14a6: 1904 addi r1, r14, 16
14a8: b863 st.w r3, (r14, 0xc)
14aa: b842 st.w r2, (r14, 0x8)
14ac: e00001c0 bsr 0x182c // 182c <__unpack_d>
14b0: 1909 addi r1, r14, 36
14b2: 1802 addi r0, r14, 8
14b4: e00001bc bsr 0x182c // 182c <__unpack_d>
14b8: 9864 ld.w r3, (r14, 0x10)
14ba: 3b01 cmphsi r3, 2
14bc: 0c0a bf 0x14d0 // 14d0 <__ledf2+0x34>
14be: 9869 ld.w r3, (r14, 0x24)
14c0: 3b01 cmphsi r3, 2
14c2: 0c07 bf 0x14d0 // 14d0 <__ledf2+0x34>
14c4: 1909 addi r1, r14, 36
14c6: 1804 addi r0, r14, 16
14c8: e0000214 bsr 0x18f0 // 18f0 <__fpcmp_parts_d>
14cc: 140e addi r14, r14, 56
14ce: 1490 pop r15
14d0: 3001 movi r0, 1
14d2: 140e addi r14, r14, 56
14d4: 1490 pop r15
...
000014d8 <__floatsidf>:
14d8: 14d1 push r4, r15
14da: 1425 subi r14, r14, 20
14dc: 3303 movi r3, 3
14de: b860 st.w r3, (r14, 0x0)
14e0: 3840 cmpnei r0, 0
14e2: 487f lsri r3, r0, 31
14e4: b861 st.w r3, (r14, 0x4)
14e6: 0808 bt 0x14f6 // 14f6 <__floatsidf+0x1e>
14e8: 3302 movi r3, 2
14ea: b860 st.w r3, (r14, 0x0)
14ec: 6c3b mov r0, r14
14ee: e00000d1 bsr 0x1690 // 1690 <__pack_d>
14f2: 1405 addi r14, r14, 20
14f4: 1491 pop r4, r15
14f6: 38df btsti r0, 31
14f8: 0812 bt 0x151c // 151c <__floatsidf+0x44>
14fa: 6d03 mov r4, r0
14fc: 6c13 mov r0, r4
14fe: e00000a9 bsr 0x1650 // 1650 <__clzsi2>
1502: 321d movi r2, 29
1504: 6080 addu r2, r0
1506: 2802 subi r0, 3
1508: 38df btsti r0, 31
150a: 0810 bt 0x152a // 152a <__floatsidf+0x52>
150c: 7100 lsl r4, r0
150e: 3300 movi r3, 0
1510: b884 st.w r4, (r14, 0x10)
1512: b863 st.w r3, (r14, 0xc)
1514: 333c movi r3, 60
1516: 60ca subu r3, r2
1518: b862 st.w r3, (r14, 0x8)
151a: 07e9 br 0x14ec // 14ec <__floatsidf+0x14>
151c: 3380 movi r3, 128
151e: 4378 lsli r3, r3, 24
1520: 64c2 cmpne r0, r3
1522: 0c0d bf 0x153c // 153c <__floatsidf+0x64>
1524: 3400 movi r4, 0
1526: 6102 subu r4, r0
1528: 07ea br 0x14fc // 14fc <__floatsidf+0x24>
152a: 311f movi r1, 31
152c: 4c61 lsri r3, r4, 1
152e: 604a subu r1, r2
1530: 6c13 mov r0, r4
1532: 70c5 lsr r3, r1
1534: 7008 lsl r0, r2
1536: b864 st.w r3, (r14, 0x10)
1538: b803 st.w r0, (r14, 0xc)
153a: 07ed br 0x1514 // 1514 <__floatsidf+0x3c>
153c: 3000 movi r0, 0
153e: 1022 lrw r1, 0xc1e00000 // 1544 <__floatsidf+0x6c>
1540: 07d9 br 0x14f2 // 14f2 <__floatsidf+0x1a>
1542: 0000 bkpt
1544: c1e00000 .long 0xc1e00000
00001548 <__fixdfsi>:
1548: 14d0 push r15
154a: 1427 subi r14, r14, 28
154c: b800 st.w r0, (r14, 0x0)
154e: b821 st.w r1, (r14, 0x4)
1550: 6c3b mov r0, r14
1552: 1902 addi r1, r14, 8
1554: e000016c bsr 0x182c // 182c <__unpack_d>
1558: 9862 ld.w r3, (r14, 0x8)
155a: 3b02 cmphsi r3, 3
155c: 0c20 bf 0x159c // 159c <__fixdfsi+0x54>
155e: 3b44 cmpnei r3, 4
1560: 0c16 bf 0x158c // 158c <__fixdfsi+0x44>
1562: 9864 ld.w r3, (r14, 0x10)
1564: 3bdf btsti r3, 31
1566: 081b bt 0x159c // 159c <__fixdfsi+0x54>
1568: 3b3e cmplti r3, 31
156a: 0c11 bf 0x158c // 158c <__fixdfsi+0x44>
156c: 323c movi r2, 60
156e: 5a6d subu r3, r2, r3
1570: 3200 movi r2, 0
1572: 2a1f subi r2, 32
1574: 608c addu r2, r3
1576: 3adf btsti r2, 31
1578: 0815 bt 0x15a2 // 15a2 <__fixdfsi+0x5a>
157a: 9806 ld.w r0, (r14, 0x18)
157c: 7009 lsr r0, r2
157e: 9863 ld.w r3, (r14, 0xc)
1580: 3b40 cmpnei r3, 0
1582: 0c0b bf 0x1598 // 1598 <__fixdfsi+0x50>
1584: 3300 movi r3, 0
1586: 5b01 subu r0, r3, r0
1588: 1407 addi r14, r14, 28
158a: 1490 pop r15
158c: 9863 ld.w r3, (r14, 0xc)
158e: 3b40 cmpnei r3, 0
1590: 3000 movi r0, 0
1592: 6001 addc r0, r0
1594: 1068 lrw r3, 0x7fffffff // 15b4 <__fixdfsi+0x6c>
1596: 600c addu r0, r3
1598: 1407 addi r14, r14, 28
159a: 1490 pop r15
159c: 3000 movi r0, 0
159e: 1407 addi r14, r14, 28
15a0: 1490 pop r15
15a2: 9846 ld.w r2, (r14, 0x18)
15a4: 311f movi r1, 31
15a6: 4241 lsli r2, r2, 1
15a8: 604e subu r1, r3
15aa: 9805 ld.w r0, (r14, 0x14)
15ac: 7084 lsl r2, r1
15ae: 700d lsr r0, r3
15b0: 6c08 or r0, r2
15b2: 07e6 br 0x157e // 157e <__fixdfsi+0x36>
15b4: 7fffffff .long 0x7fffffff
000015b8 <__floatunsidf>:
15b8: 14d2 push r4-r5, r15
15ba: 1425 subi r14, r14, 20
15bc: 3840 cmpnei r0, 0
15be: 3500 movi r5, 0
15c0: 6d03 mov r4, r0
15c2: b8a1 st.w r5, (r14, 0x4)
15c4: 0c15 bf 0x15ee // 15ee <__floatunsidf+0x36>
15c6: 3303 movi r3, 3
15c8: b860 st.w r3, (r14, 0x0)
15ca: e0000043 bsr 0x1650 // 1650 <__clzsi2>
15ce: 321d movi r2, 29
15d0: 6080 addu r2, r0
15d2: 2802 subi r0, 3
15d4: 38df btsti r0, 31
15d6: 0813 bt 0x15fc // 15fc <__floatunsidf+0x44>
15d8: 7100 lsl r4, r0
15da: b884 st.w r4, (r14, 0x10)
15dc: b8a3 st.w r5, (r14, 0xc)
15de: 333c movi r3, 60
15e0: 60ca subu r3, r2
15e2: 6c3b mov r0, r14
15e4: b862 st.w r3, (r14, 0x8)
15e6: e0000055 bsr 0x1690 // 1690 <__pack_d>
15ea: 1405 addi r14, r14, 20
15ec: 1492 pop r4-r5, r15
15ee: 3302 movi r3, 2
15f0: 6c3b mov r0, r14
15f2: b860 st.w r3, (r14, 0x0)
15f4: e000004e bsr 0x1690 // 1690 <__pack_d>
15f8: 1405 addi r14, r14, 20
15fa: 1492 pop r4-r5, r15
15fc: 311f movi r1, 31
15fe: 4c61 lsri r3, r4, 1
1600: 604a subu r1, r2
1602: 70c5 lsr r3, r1
1604: 7108 lsl r4, r2
1606: b864 st.w r3, (r14, 0x10)
1608: b883 st.w r4, (r14, 0xc)
160a: 07ea br 0x15de // 15de <__floatunsidf+0x26>
0000160c <__muldi3>:
160c: 14c4 push r4-r7
160e: 1421 subi r14, r14, 4
1610: 7501 zexth r4, r0
1612: 48b0 lsri r5, r0, 16
1614: 75c9 zexth r7, r2
1616: 6d83 mov r6, r0
1618: b820 st.w r1, (r14, 0x0)
161a: 6c13 mov r0, r4
161c: 4a30 lsri r1, r2, 16
161e: 7c1c mult r0, r7
1620: 7d04 mult r4, r1
1622: 7dd4 mult r7, r5
1624: 611c addu r4, r7
1626: 7d44 mult r5, r1
1628: 4830 lsri r1, r0, 16
162a: 6104 addu r4, r1
162c: 65d0 cmphs r4, r7
162e: 0804 bt 0x1636 // 1636 <__muldi3+0x2a>
1630: 3180 movi r1, 128
1632: 4129 lsli r1, r1, 9
1634: 6144 addu r5, r1
1636: 4c30 lsri r1, r4, 16
1638: 7cd8 mult r3, r6
163a: 6144 addu r5, r1
163c: 6c4f mov r1, r3
163e: 9860 ld.w r3, (r14, 0x0)
1640: 7cc8 mult r3, r2
1642: 4490 lsli r4, r4, 16
1644: 604c addu r1, r3
1646: 7401 zexth r0, r0
1648: 6010 addu r0, r4
164a: 6054 addu r1, r5
164c: 1401 addi r14, r14, 4
164e: 1484 pop r4-r7
00001650 <__clzsi2>:
1650: 106d lrw r3, 0xffff // 1684 <__clzsi2+0x34>
1652: 640c cmphs r3, r0
1654: 0c07 bf 0x1662 // 1662 <__clzsi2+0x12>
1656: 33ff movi r3, 255
1658: 640c cmphs r3, r0
165a: 0c0f bf 0x1678 // 1678 <__clzsi2+0x28>
165c: 3320 movi r3, 32
165e: 3200 movi r2, 0
1660: 0406 br 0x166c // 166c <__clzsi2+0x1c>
1662: 106a lrw r3, 0xffffff // 1688 <__clzsi2+0x38>
1664: 640c cmphs r3, r0
1666: 080c bt 0x167e // 167e <__clzsi2+0x2e>
1668: 3308 movi r3, 8
166a: 3218 movi r2, 24
166c: 7009 lsr r0, r2
166e: 1048 lrw r2, 0x4cb4 // 168c <__clzsi2+0x3c>
1670: 6008 addu r0, r2
1672: 8040 ld.b r2, (r0, 0x0)
1674: 5b09 subu r0, r3, r2
1676: 783c jmp r15
1678: 3318 movi r3, 24
167a: 3208 movi r2, 8
167c: 07f8 br 0x166c // 166c <__clzsi2+0x1c>
167e: 3310 movi r3, 16
1680: 3210 movi r2, 16
1682: 07f5 br 0x166c // 166c <__clzsi2+0x1c>
1684: 0000ffff .long 0x0000ffff
1688: 00ffffff .long 0x00ffffff
168c: 00004cb4 .long 0x00004cb4
00001690 <__pack_d>:
1690: 14c4 push r4-r7
1692: 1422 subi r14, r14, 8
1694: 9060 ld.w r3, (r0, 0x0)
1696: 3b01 cmphsi r3, 2
1698: 90c3 ld.w r6, (r0, 0xc)
169a: 90e4 ld.w r7, (r0, 0x10)
169c: 9021 ld.w r1, (r0, 0x4)
169e: 0c46 bf 0x172a // 172a <__pack_d+0x9a>
16a0: 3b44 cmpnei r3, 4
16a2: 0c40 bf 0x1722 // 1722 <__pack_d+0x92>
16a4: 3b42 cmpnei r3, 2
16a6: 0c27 bf 0x16f4 // 16f4 <__pack_d+0x64>
16a8: 6cdb mov r3, r6
16aa: 6cdc or r3, r7
16ac: 3b40 cmpnei r3, 0
16ae: 0c23 bf 0x16f4 // 16f4 <__pack_d+0x64>
16b0: 9062 ld.w r3, (r0, 0x8)
16b2: 125a lrw r2, 0xfffffc02 // 1818 <__pack_d+0x188>
16b4: 648d cmplt r3, r2
16b6: 0855 bt 0x1760 // 1760 <__pack_d+0xd0>
16b8: 1259 lrw r2, 0x3ff // 181c <__pack_d+0x18c>
16ba: 64c9 cmplt r2, r3
16bc: 0833 bt 0x1722 // 1722 <__pack_d+0x92>
16be: 34ff movi r4, 255
16c0: 3500 movi r5, 0
16c2: 6918 and r4, r6
16c4: 695c and r5, r7
16c6: 3280 movi r2, 128
16c8: 6492 cmpne r4, r2
16ca: 0c3f bf 0x1748 // 1748 <__pack_d+0xb8>
16cc: 347f movi r4, 127
16ce: 3500 movi r5, 0
16d0: 6599 cmplt r6, r6
16d2: 6191 addc r6, r4
16d4: 61d5 addc r7, r5
16d6: 1253 lrw r2, 0x1fffffff // 1820 <__pack_d+0x190>
16d8: 65c8 cmphs r2, r7
16da: 0c1a bf 0x170e // 170e <__pack_d+0x7e>
16dc: 1290 lrw r4, 0x3ff // 181c <__pack_d+0x18c>
16de: 610c addu r4, r3
16e0: 4718 lsli r0, r7, 24
16e2: 4f68 lsri r3, r7, 8
16e4: 4e48 lsri r2, r6, 8
16e6: 6c80 or r2, r0
16e8: 430c lsli r0, r3, 12
16ea: 486c lsri r3, r0, 12
16ec: 120e lrw r0, 0x7ff // 1824 <__pack_d+0x194>
16ee: 6d4b mov r5, r2
16f0: 6900 and r4, r0
16f2: 0404 br 0x16fa // 16fa <__pack_d+0x6a>
16f4: 3400 movi r4, 0
16f6: 3200 movi r2, 0
16f8: 3300 movi r3, 0
16fa: 430c lsli r0, r3, 12
16fc: 480c lsri r0, r0, 12
16fe: 4474 lsli r3, r4, 20
1700: 419f lsli r4, r1, 31
1702: 6c43 mov r1, r0
1704: 6c4c or r1, r3
1706: 6c50 or r1, r4
1708: 6c0b mov r0, r2
170a: 1402 addi r14, r14, 8
170c: 1484 pop r4-r7
170e: 479f lsli r4, r7, 31
1710: 4e01 lsri r0, r6, 1
1712: 6d00 or r4, r0
1714: 6d93 mov r6, r4
1716: 3480 movi r4, 128
1718: 4f41 lsri r2, r7, 1
171a: 4483 lsli r4, r4, 3
171c: 6dcb mov r7, r2
171e: 610c addu r4, r3
1720: 07e0 br 0x16e0 // 16e0 <__pack_d+0x50>
1722: 1281 lrw r4, 0x7ff // 1824 <__pack_d+0x194>
1724: 3200 movi r2, 0
1726: 3300 movi r3, 0
1728: 07e9 br 0x16fa // 16fa <__pack_d+0x6a>
172a: 4e08 lsri r0, r6, 8
172c: 4798 lsli r4, r7, 24
172e: 6d00 or r4, r0
1730: 3580 movi r5, 128
1732: 4705 lsli r0, r7, 5
1734: 6c93 mov r2, r4
1736: 486d lsri r3, r0, 13
1738: 3400 movi r4, 0
173a: 45ac lsli r5, r5, 12
173c: 6c90 or r2, r4
173e: 6cd4 or r3, r5
1740: 430c lsli r0, r3, 12
1742: 486c lsri r3, r0, 12
1744: 1198 lrw r4, 0x7ff // 1824 <__pack_d+0x194>
1746: 07da br 0x16fa // 16fa <__pack_d+0x6a>
1748: 3d40 cmpnei r5, 0
174a: 0bc1 bt 0x16cc // 16cc <__pack_d+0x3c>
174c: 4241 lsli r2, r2, 1
174e: 6898 and r2, r6
1750: 3a40 cmpnei r2, 0
1752: 0fc2 bf 0x16d6 // 16d6 <__pack_d+0x46>
1754: 3480 movi r4, 128
1756: 3500 movi r5, 0
1758: 6599 cmplt r6, r6
175a: 6191 addc r6, r4
175c: 61d5 addc r7, r5
175e: 07bc br 0x16d6 // 16d6 <__pack_d+0x46>
1760: 5a6d subu r3, r2, r3
1762: 3238 movi r2, 56
1764: 64c9 cmplt r2, r3
1766: 0bc7 bt 0x16f4 // 16f4 <__pack_d+0x64>
1768: 3200 movi r2, 0
176a: 2a1f subi r2, 32
176c: 608c addu r2, r3
176e: 3adf btsti r2, 31
1770: 0848 bt 0x1800 // 1800 <__pack_d+0x170>
1772: 6c1f mov r0, r7
1774: 7009 lsr r0, r2
1776: b800 st.w r0, (r14, 0x0)
1778: 3000 movi r0, 0
177a: b801 st.w r0, (r14, 0x4)
177c: 3adf btsti r2, 31
177e: 083c bt 0x17f6 // 17f6 <__pack_d+0x166>
1780: 3301 movi r3, 1
1782: 70c8 lsl r3, r2
1784: 6d4f mov r5, r3
1786: 3300 movi r3, 0
1788: 6d0f mov r4, r3
178a: 3200 movi r2, 0
178c: 3300 movi r3, 0
178e: 2a00 subi r2, 1
1790: 2b00 subi r3, 1
1792: 6511 cmplt r4, r4
1794: 6109 addc r4, r2
1796: 614d addc r5, r3
1798: 6990 and r6, r4
179a: 69d4 and r7, r5
179c: 6d9c or r6, r7
179e: 3e40 cmpnei r6, 0
17a0: 3000 movi r0, 0
17a2: 6001 addc r0, r0
17a4: 6c83 mov r2, r0
17a6: 3300 movi r3, 0
17a8: 9880 ld.w r4, (r14, 0x0)
17aa: 98a1 ld.w r5, (r14, 0x4)
17ac: 6d08 or r4, r2
17ae: 6d4c or r5, r3
17b0: 32ff movi r2, 255
17b2: 3300 movi r3, 0
17b4: 6890 and r2, r4
17b6: 68d4 and r3, r5
17b8: 3080 movi r0, 128
17ba: 640a cmpne r2, r0
17bc: 081b bt 0x17f2 // 17f2 <__pack_d+0x162>
17be: 3b40 cmpnei r3, 0
17c0: 0819 bt 0x17f2 // 17f2 <__pack_d+0x162>
17c2: 3380 movi r3, 128
17c4: 4361 lsli r3, r3, 1
17c6: 68d0 and r3, r4
17c8: 3b40 cmpnei r3, 0
17ca: 0c06 bf 0x17d6 // 17d6 <__pack_d+0x146>
17cc: 3280 movi r2, 128
17ce: 3300 movi r3, 0
17d0: 6511 cmplt r4, r4
17d2: 6109 addc r4, r2
17d4: 614d addc r5, r3
17d6: 4518 lsli r0, r5, 24
17d8: 4c48 lsri r2, r4, 8
17da: 4d68 lsri r3, r5, 8
17dc: 1093 lrw r4, 0xfffffff // 1828 <__pack_d+0x198>
17de: 6c80 or r2, r0
17e0: 6550 cmphs r4, r5
17e2: 430c lsli r0, r3, 12
17e4: 486c lsri r3, r0, 12
17e6: 3001 movi r0, 1
17e8: 0c02 bf 0x17ec // 17ec <__pack_d+0x15c>
17ea: 3000 movi r0, 0
17ec: 108e lrw r4, 0x7ff // 1824 <__pack_d+0x194>
17ee: 6900 and r4, r0
17f0: 0785 br 0x16fa // 16fa <__pack_d+0x6a>
17f2: 327f movi r2, 127
17f4: 07ed br 0x17ce // 17ce <__pack_d+0x13e>
17f6: 3201 movi r2, 1
17f8: 708c lsl r2, r3
17fa: 3500 movi r5, 0
17fc: 6d0b mov r4, r2
17fe: 07c6 br 0x178a // 178a <__pack_d+0xfa>
1800: 341f movi r4, 31
1802: 610e subu r4, r3
1804: 4701 lsli r0, r7, 1
1806: 7010 lsl r0, r4
1808: 6d1b mov r4, r6
180a: 710d lsr r4, r3
180c: 6d00 or r4, r0
180e: 6c1f mov r0, r7
1810: 700d lsr r0, r3
1812: b880 st.w r4, (r14, 0x0)
1814: b801 st.w r0, (r14, 0x4)
1816: 07b3 br 0x177c // 177c <__pack_d+0xec>
1818: fffffc02 .long 0xfffffc02
181c: 000003ff .long 0x000003ff
1820: 1fffffff .long 0x1fffffff
1824: 000007ff .long 0x000007ff
1828: 0fffffff .long 0x0fffffff
0000182c <__unpack_d>:
182c: 1423 subi r14, r14, 12
182e: b880 st.w r4, (r14, 0x0)
1830: b8c1 st.w r6, (r14, 0x4)
1832: b8e2 st.w r7, (r14, 0x8)
1834: 8843 ld.h r2, (r0, 0x6)
1836: 4251 lsli r2, r2, 17
1838: 9061 ld.w r3, (r0, 0x4)
183a: 9080 ld.w r4, (r0, 0x0)
183c: 4a55 lsri r2, r2, 21
183e: 8007 ld.b r0, (r0, 0x7)
1840: 436c lsli r3, r3, 12
1842: 4807 lsri r0, r0, 7
1844: 3a40 cmpnei r2, 0
1846: 4b6c lsri r3, r3, 12
1848: b101 st.w r0, (r1, 0x4)
184a: 0819 bt 0x187c // 187c <__unpack_d+0x50>
184c: 6c93 mov r2, r4
184e: 6c8c or r2, r3
1850: 3a40 cmpnei r2, 0
1852: 0c2d bf 0x18ac // 18ac <__unpack_d+0x80>
1854: 4c58 lsri r2, r4, 24
1856: 4368 lsli r3, r3, 8
1858: 6cc8 or r3, r2
185a: 3203 movi r2, 3
185c: 4408 lsli r0, r4, 8
185e: b140 st.w r2, (r1, 0x0)
1860: 1181 lrw r4, 0xfffffc01 // 18e4 <__unpack_d+0xb8>
1862: 11c2 lrw r6, 0xfffffff // 18e8 <__unpack_d+0xbc>
1864: 485f lsri r2, r0, 31
1866: 4361 lsli r3, r3, 1
1868: 6cc8 or r3, r2
186a: 64d8 cmphs r6, r3
186c: 6c93 mov r2, r4
186e: 4001 lsli r0, r0, 1
1870: 2c00 subi r4, 1
1872: 0bf9 bt 0x1864 // 1864 <__unpack_d+0x38>
1874: b142 st.w r2, (r1, 0x8)
1876: b103 st.w r0, (r1, 0xc)
1878: b164 st.w r3, (r1, 0x10)
187a: 0414 br 0x18a2 // 18a2 <__unpack_d+0x76>
187c: 101c lrw r0, 0x7ff // 18ec <__unpack_d+0xc0>
187e: 640a cmpne r2, r0
1880: 0c19 bf 0x18b2 // 18b2 <__unpack_d+0x86>
1882: 1019 lrw r0, 0xfffffc01 // 18e4 <__unpack_d+0xb8>
1884: 6080 addu r2, r0
1886: b142 st.w r2, (r1, 0x8)
1888: 3203 movi r2, 3
188a: 43e8 lsli r7, r3, 8
188c: b140 st.w r2, (r1, 0x0)
188e: 3380 movi r3, 128
1890: 4c58 lsri r2, r4, 24
1892: 6dc8 or r7, r2
1894: 44c8 lsli r6, r4, 8
1896: 3200 movi r2, 0
1898: 4375 lsli r3, r3, 21
189a: 6d88 or r6, r2
189c: 6dcc or r7, r3
189e: b1c3 st.w r6, (r1, 0xc)
18a0: b1e4 st.w r7, (r1, 0x10)
18a2: 98e2 ld.w r7, (r14, 0x8)
18a4: 98c1 ld.w r6, (r14, 0x4)
18a6: 9880 ld.w r4, (r14, 0x0)
18a8: 1403 addi r14, r14, 12
18aa: 783c jmp r15
18ac: 3302 movi r3, 2
18ae: b160 st.w r3, (r1, 0x0)
18b0: 07f9 br 0x18a2 // 18a2 <__unpack_d+0x76>
18b2: 6c93 mov r2, r4
18b4: 6c8c or r2, r3
18b6: 3a40 cmpnei r2, 0
18b8: 0c10 bf 0x18d8 // 18d8 <__unpack_d+0xac>
18ba: 3280 movi r2, 128
18bc: 424c lsli r2, r2, 12
18be: 688c and r2, r3
18c0: 3a40 cmpnei r2, 0
18c2: 0c0e bf 0x18de // 18de <__unpack_d+0xb2>
18c4: 3201 movi r2, 1
18c6: b140 st.w r2, (r1, 0x0)
18c8: 4c58 lsri r2, r4, 24
18ca: 4368 lsli r3, r3, 8
18cc: 6cc8 or r3, r2
18ce: 4408 lsli r0, r4, 8
18d0: 3b9b bclri r3, 27
18d2: b103 st.w r0, (r1, 0xc)
18d4: b164 st.w r3, (r1, 0x10)
18d6: 07e6 br 0x18a2 // 18a2 <__unpack_d+0x76>
18d8: 3304 movi r3, 4
18da: b160 st.w r3, (r1, 0x0)
18dc: 07e3 br 0x18a2 // 18a2 <__unpack_d+0x76>
18de: b140 st.w r2, (r1, 0x0)
18e0: 07f4 br 0x18c8 // 18c8 <__unpack_d+0x9c>
18e2: 0000 bkpt
18e4: fffffc01 .long 0xfffffc01
18e8: 0fffffff .long 0x0fffffff
18ec: 000007ff .long 0x000007ff
000018f0 <__fpcmp_parts_d>:
18f0: 14c1 push r4
18f2: 9060 ld.w r3, (r0, 0x0)
18f4: 3b01 cmphsi r3, 2
18f6: 0c12 bf 0x191a // 191a <__fpcmp_parts_d+0x2a>
18f8: 9140 ld.w r2, (r1, 0x0)
18fa: 3a01 cmphsi r2, 2
18fc: 0c0f bf 0x191a // 191a <__fpcmp_parts_d+0x2a>
18fe: 3b44 cmpnei r3, 4
1900: 0c17 bf 0x192e // 192e <__fpcmp_parts_d+0x3e>
1902: 3a44 cmpnei r2, 4
1904: 0c0f bf 0x1922 // 1922 <__fpcmp_parts_d+0x32>
1906: 3b42 cmpnei r3, 2
1908: 0c0b bf 0x191e // 191e <__fpcmp_parts_d+0x2e>
190a: 3a42 cmpnei r2, 2
190c: 0c13 bf 0x1932 // 1932 <__fpcmp_parts_d+0x42>
190e: 9061 ld.w r3, (r0, 0x4)
1910: 9141 ld.w r2, (r1, 0x4)
1912: 648e cmpne r3, r2
1914: 0c14 bf 0x193c // 193c <__fpcmp_parts_d+0x4c>
1916: 3b40 cmpnei r3, 0
1918: 0808 bt 0x1928 // 1928 <__fpcmp_parts_d+0x38>
191a: 3001 movi r0, 1
191c: 1481 pop r4
191e: 3a42 cmpnei r2, 2
1920: 0c28 bf 0x1970 // 1970 <__fpcmp_parts_d+0x80>
1922: 9161 ld.w r3, (r1, 0x4)
1924: 3b40 cmpnei r3, 0
1926: 0bfa bt 0x191a // 191a <__fpcmp_parts_d+0x2a>
1928: 3000 movi r0, 0
192a: 2800 subi r0, 1
192c: 1481 pop r4
192e: 3a44 cmpnei r2, 4
1930: 0c22 bf 0x1974 // 1974 <__fpcmp_parts_d+0x84>
1932: 9061 ld.w r3, (r0, 0x4)
1934: 3b40 cmpnei r3, 0
1936: 0bf9 bt 0x1928 // 1928 <__fpcmp_parts_d+0x38>
1938: 3001 movi r0, 1
193a: 07f1 br 0x191c // 191c <__fpcmp_parts_d+0x2c>
193c: 9082 ld.w r4, (r0, 0x8)
193e: 9142 ld.w r2, (r1, 0x8)
1940: 6509 cmplt r2, r4
1942: 0bea bt 0x1916 // 1916 <__fpcmp_parts_d+0x26>
1944: 6491 cmplt r4, r2
1946: 080d bt 0x1960 // 1960 <__fpcmp_parts_d+0x70>
1948: 9044 ld.w r2, (r0, 0x10)
194a: 9083 ld.w r4, (r0, 0xc)
194c: 9103 ld.w r0, (r1, 0xc)
194e: 9124 ld.w r1, (r1, 0x10)
1950: 6484 cmphs r1, r2
1952: 0fe2 bf 0x1916 // 1916 <__fpcmp_parts_d+0x26>
1954: 644a cmpne r2, r1
1956: 0803 bt 0x195c // 195c <__fpcmp_parts_d+0x6c>
1958: 6500 cmphs r0, r4
195a: 0fde bf 0x1916 // 1916 <__fpcmp_parts_d+0x26>
195c: 6448 cmphs r2, r1
195e: 0805 bt 0x1968 // 1968 <__fpcmp_parts_d+0x78>
1960: 3b40 cmpnei r3, 0
1962: 0fe3 bf 0x1928 // 1928 <__fpcmp_parts_d+0x38>
1964: 3001 movi r0, 1
1966: 07db br 0x191c // 191c <__fpcmp_parts_d+0x2c>
1968: 6486 cmpne r1, r2
196a: 0803 bt 0x1970 // 1970 <__fpcmp_parts_d+0x80>
196c: 6410 cmphs r4, r0
196e: 0ff9 bf 0x1960 // 1960 <__fpcmp_parts_d+0x70>
1970: 3000 movi r0, 0
1972: 1481 pop r4
1974: 9161 ld.w r3, (r1, 0x4)
1976: 9041 ld.w r2, (r0, 0x4)
1978: 5b09 subu r0, r3, r2
197a: 1481 pop r4
0000197c <__memset_fast>:
197c: 14c3 push r4-r6
197e: 7444 zextb r1, r1
1980: 3a40 cmpnei r2, 0
1982: 0c1f bf 0x19c0 // 19c0 <__memset_fast+0x44>
1984: 6d43 mov r5, r0
1986: 6d03 mov r4, r0
1988: 3603 movi r6, 3
198a: 6918 and r4, r6
198c: 3c40 cmpnei r4, 0
198e: 0c1a bf 0x19c2 // 19c2 <__memset_fast+0x46>
1990: a520 st.b r1, (r5, 0x0)
1992: 2a00 subi r2, 1
1994: 3a40 cmpnei r2, 0
1996: 0c15 bf 0x19c0 // 19c0 <__memset_fast+0x44>
1998: 2500 addi r5, 1
199a: 6d17 mov r4, r5
199c: 3603 movi r6, 3
199e: 6918 and r4, r6
19a0: 3c40 cmpnei r4, 0
19a2: 0c10 bf 0x19c2 // 19c2 <__memset_fast+0x46>
19a4: a520 st.b r1, (r5, 0x0)
19a6: 2a00 subi r2, 1
19a8: 3a40 cmpnei r2, 0
19aa: 0c0b bf 0x19c0 // 19c0 <__memset_fast+0x44>
19ac: 2500 addi r5, 1
19ae: 6d17 mov r4, r5
19b0: 3603 movi r6, 3
19b2: 6918 and r4, r6
19b4: 3c40 cmpnei r4, 0
19b6: 0c06 bf 0x19c2 // 19c2 <__memset_fast+0x46>
19b8: a520 st.b r1, (r5, 0x0)
19ba: 2a00 subi r2, 1
19bc: 2500 addi r5, 1
19be: 0402 br 0x19c2 // 19c2 <__memset_fast+0x46>
19c0: 1483 pop r4-r6
19c2: 4168 lsli r3, r1, 8
19c4: 6c4c or r1, r3
19c6: 4170 lsli r3, r1, 16
19c8: 6c4c or r1, r3
19ca: 3a2f cmplti r2, 16
19cc: 0809 bt 0x19de // 19de <__memset_fast+0x62>
19ce: b520 st.w r1, (r5, 0x0)
19d0: b521 st.w r1, (r5, 0x4)
19d2: b522 st.w r1, (r5, 0x8)
19d4: b523 st.w r1, (r5, 0xc)
19d6: 2a0f subi r2, 16
19d8: 250f addi r5, 16
19da: 3a2f cmplti r2, 16
19dc: 0ff9 bf 0x19ce // 19ce <__memset_fast+0x52>
19de: 3a23 cmplti r2, 4
19e0: 0806 bt 0x19ec // 19ec <__memset_fast+0x70>
19e2: 2a03 subi r2, 4
19e4: b520 st.w r1, (r5, 0x0)
19e6: 2503 addi r5, 4
19e8: 3a23 cmplti r2, 4
19ea: 0ffc bf 0x19e2 // 19e2 <__memset_fast+0x66>
19ec: 3a40 cmpnei r2, 0
19ee: 0fe9 bf 0x19c0 // 19c0 <__memset_fast+0x44>
19f0: 2a00 subi r2, 1
19f2: a520 st.b r1, (r5, 0x0)
19f4: 3a40 cmpnei r2, 0
19f6: 0fe5 bf 0x19c0 // 19c0 <__memset_fast+0x44>
19f8: 2a00 subi r2, 1
19fa: a521 st.b r1, (r5, 0x1)
19fc: 3a40 cmpnei r2, 0
19fe: 0fe1 bf 0x19c0 // 19c0 <__memset_fast+0x44>
1a00: a522 st.b r1, (r5, 0x2)
1a02: 1483 pop r4-r6
00001a04 <__memcpy_fast>:
1a04: 14c3 push r4-r6
1a06: 6d83 mov r6, r0
1a08: 6d07 mov r4, r1
1a0a: 6d18 or r4, r6
1a0c: 3303 movi r3, 3
1a0e: 690c and r4, r3
1a10: 3c40 cmpnei r4, 0
1a12: 0c0b bf 0x1a28 // 1a28 <__memcpy_fast+0x24>
1a14: 3a40 cmpnei r2, 0
1a16: 0c08 bf 0x1a26 // 1a26 <__memcpy_fast+0x22>
1a18: 8160 ld.b r3, (r1, 0x0)
1a1a: 2100 addi r1, 1
1a1c: 2a00 subi r2, 1
1a1e: a660 st.b r3, (r6, 0x0)
1a20: 2600 addi r6, 1
1a22: 3a40 cmpnei r2, 0
1a24: 0bfa bt 0x1a18 // 1a18 <__memcpy_fast+0x14>
1a26: 1483 pop r4-r6
1a28: 3a2f cmplti r2, 16
1a2a: 080e bt 0x1a46 // 1a46 <__memcpy_fast+0x42>
1a2c: 91a0 ld.w r5, (r1, 0x0)
1a2e: 9161 ld.w r3, (r1, 0x4)
1a30: 9182 ld.w r4, (r1, 0x8)
1a32: b6a0 st.w r5, (r6, 0x0)
1a34: 91a3 ld.w r5, (r1, 0xc)
1a36: b661 st.w r3, (r6, 0x4)
1a38: b682 st.w r4, (r6, 0x8)
1a3a: b6a3 st.w r5, (r6, 0xc)
1a3c: 2a0f subi r2, 16
1a3e: 210f addi r1, 16
1a40: 260f addi r6, 16
1a42: 3a2f cmplti r2, 16
1a44: 0ff4 bf 0x1a2c // 1a2c <__memcpy_fast+0x28>
1a46: 3a23 cmplti r2, 4
1a48: 0808 bt 0x1a58 // 1a58 <__memcpy_fast+0x54>
1a4a: 9160 ld.w r3, (r1, 0x0)
1a4c: 2a03 subi r2, 4
1a4e: 2103 addi r1, 4
1a50: b660 st.w r3, (r6, 0x0)
1a52: 2603 addi r6, 4
1a54: 3a23 cmplti r2, 4
1a56: 0ffa bf 0x1a4a // 1a4a <__memcpy_fast+0x46>
1a58: 3a40 cmpnei r2, 0
1a5a: 0fe6 bf 0x1a26 // 1a26 <__memcpy_fast+0x22>
1a5c: 8160 ld.b r3, (r1, 0x0)
1a5e: 2100 addi r1, 1
1a60: 2a00 subi r2, 1
1a62: a660 st.b r3, (r6, 0x0)
1a64: 2600 addi r6, 1
1a66: 07f9 br 0x1a58 // 1a58 <__memcpy_fast+0x54>
00001a68 <__GI_strncmp>:
1a68: 14c1 push r4
1a6a: 6cc3 mov r3, r0
1a6c: 6080 addu r2, r0
1a6e: 040c br 0x1a86 // 1a86 <__GI_strncmp+0x1e>
1a70: 8380 ld.b r4, (r3, 0x0)
1a72: 8100 ld.b r0, (r1, 0x0)
1a74: 6012 subu r0, r4
1a76: 6c02 nor r0, r0
1a78: 2000 addi r0, 1
1a7a: 3840 cmpnei r0, 0
1a7c: 0808 bt 0x1a8c // 1a8c <__GI_strncmp+0x24>
1a7e: 3c40 cmpnei r4, 0
1a80: 0c06 bf 0x1a8c // 1a8c <__GI_strncmp+0x24>
1a82: 2300 addi r3, 1
1a84: 2100 addi r1, 1
1a86: 648c cmphs r3, r2
1a88: 0ff4 bf 0x1a70 // 1a70 <__GI_strncmp+0x8>
1a8a: 3000 movi r0, 0
1a8c: 1481 pop r4
Disassembly of section .text.__main:
00001a90 <__main>:
extern char _bss_start[];
extern char _ebss[];
void __main( void )
{
1a90: 14d0 push r15
/* if the start of data (dst)
is not equal to end of text (src) then
copy it, else it's already in the right place
*/
if( _start_data != _end_rodata ) {
1a92: 1009 lrw r0, 0x20000000 // 1ab4 <__main+0x24>
1a94: 1029 lrw r1, 0x4f68 // 1ab8 <__main+0x28>
1a96: 6442 cmpne r0, r1
1a98: 0c05 bf 0x1aa2 // 1aa2 <__main+0x12>
// __memcpy_fast( dst, src, (_end_data - _start_data));
memcpy( dst, src, (_end_data - _start_data));
1a9a: 1049 lrw r2, 0x2000009c // 1abc <__main+0x2c>
1a9c: 6082 subu r2, r0
1a9e: e3ffffb3 bsr 0x1a04 // 1a04 <__memcpy_fast>
}
/* zero the bss
*/
if( _ebss - _bss_start ) {
1aa2: 1048 lrw r2, 0x20000674 // 1ac0 <__main+0x30>
1aa4: 1008 lrw r0, 0x2000009c // 1ac4 <__main+0x34>
1aa6: 640a cmpne r2, r0
1aa8: 0c05 bf 0x1ab2 // 1ab2 <__main+0x22>
// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start ));
memset( _bss_start, 0x00, ( _ebss - _bss_start ));
1aaa: 6082 subu r2, r0
1aac: 3100 movi r1, 0
1aae: e3ffff67 bsr 0x197c // 197c <__memset_fast>
}
}
1ab2: 1490 pop r15
1ab4: 20000000 .long 0x20000000
1ab8: 00004f68 .long 0x00004f68
1abc: 2000009c .long 0x2000009c
1ac0: 20000674 .long 0x20000674
1ac4: 2000009c .long 0x2000009c
Disassembly of section .text.SYSCON_General_CMD.part.0:
00001ac8 <SYSCON_General_CMD.part.0>:
/*************************************************************/
void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X )
{
if (NewState != DISABLE)
{
if(ENDIS_X==ENDIS_EMOSC)
1ac8: 3848 cmpnei r0, 8
1aca: 080a bt 0x1ade // 1ade <SYSCON_General_CMD.part.0+0x16>
GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN
1acc: 107a lrw r3, 0x2000004c // 1b34 <SYSCON_General_CMD.part.0+0x6c>
1ace: 32ff movi r2, 255
1ad0: 9320 ld.w r1, (r3, 0x0)
1ad2: 9160 ld.w r3, (r1, 0x0)
1ad4: 424c lsli r2, r2, 12
1ad6: 68c9 andn r3, r2
1ad8: 3bae bseti r3, 14
1ada: 3bb2 bseti r3, 18
1adc: b160 st.w r3, (r1, 0x0)
SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control
1ade: 1077 lrw r3, 0x2000005c // 1b38 <SYSCON_General_CMD.part.0+0x70>
1ae0: 9360 ld.w r3, (r3, 0x0)
1ae2: 9341 ld.w r2, (r3, 0x4)
1ae4: 6c80 or r2, r0
1ae6: b341 st.w r2, (r3, 0x4)
while(!(SYSCON->GCSR&ENDIS_X)); //check Enable?
1ae8: 9343 ld.w r2, (r3, 0xc)
1aea: 6880 and r2, r0
1aec: 3a40 cmpnei r2, 0
1aee: 0ffd bf 0x1ae8 // 1ae8 <SYSCON_General_CMD.part.0+0x20>
switch(ENDIS_X)
1af0: 3842 cmpnei r0, 2
1af2: 0807 bt 0x1b00 // 1b00 <SYSCON_General_CMD.part.0+0x38>
{
case ENDIS_IMOSC:
while (!(SYSCON->CKST & ENDIS_IMOSC));
1af4: 3102 movi r1, 2
1af6: 9344 ld.w r2, (r3, 0x10)
1af8: 6884 and r2, r1
1afa: 3a40 cmpnei r2, 0
1afc: 0ffd bf 0x1af6 // 1af6 <SYSCON_General_CMD.part.0+0x2e>
{
SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control
while(SYSCON->GCSR&ENDIS_X); //check Disable?
SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit
}
}
1afe: 783c jmp r15
switch(ENDIS_X)
1b00: 3802 cmphsi r0, 3
1b02: 0809 bt 0x1b14 // 1b14 <SYSCON_General_CMD.part.0+0x4c>
1b04: 3841 cmpnei r0, 1
1b06: 0bfc bt 0x1afe // 1afe <SYSCON_General_CMD.part.0+0x36>
while (!(SYSCON->CKST & ENDIS_ISOSC));
1b08: 3101 movi r1, 1
1b0a: 9344 ld.w r2, (r3, 0x10)
1b0c: 6884 and r2, r1
1b0e: 3a40 cmpnei r2, 0
1b10: 0ffd bf 0x1b0a // 1b0a <SYSCON_General_CMD.part.0+0x42>
1b12: 07f6 br 0x1afe // 1afe <SYSCON_General_CMD.part.0+0x36>
switch(ENDIS_X)
1b14: 3848 cmpnei r0, 8
1b16: 0807 bt 0x1b24 // 1b24 <SYSCON_General_CMD.part.0+0x5c>
while (!(SYSCON->CKST & ENDIS_EMOSC));
1b18: 3108 movi r1, 8
1b1a: 9344 ld.w r2, (r3, 0x10)
1b1c: 6884 and r2, r1
1b1e: 3a40 cmpnei r2, 0
1b20: 0ffd bf 0x1b1a // 1b1a <SYSCON_General_CMD.part.0+0x52>
1b22: 07ee br 0x1afe // 1afe <SYSCON_General_CMD.part.0+0x36>
switch(ENDIS_X)
1b24: 3850 cmpnei r0, 16
1b26: 0bec bt 0x1afe // 1afe <SYSCON_General_CMD.part.0+0x36>
while (!(SYSCON->CKST & ENDIS_HFOSC));
1b28: 3110 movi r1, 16
1b2a: 9344 ld.w r2, (r3, 0x10)
1b2c: 6884 and r2, r1
1b2e: 3a40 cmpnei r2, 0
1b30: 0ffd bf 0x1b2a // 1b2a <SYSCON_General_CMD.part.0+0x62>
1b32: 07e6 br 0x1afe // 1afe <SYSCON_General_CMD.part.0+0x36>
1b34: 2000004c .long 0x2000004c
1b38: 2000005c .long 0x2000005c
Disassembly of section .text.SYSCON_RST_VALUE:
00001b3c <SYSCON_RST_VALUE>:
SYSCON->RAMCHK=SYSCON_RAMCHK_RST;
1b3c: 106c lrw r3, 0x2000005c // 1b6c <SYSCON_RST_VALUE+0x30>
1b3e: 104d lrw r2, 0xffff // 1b70 <SYSCON_RST_VALUE+0x34>
1b40: 9360 ld.w r3, (r3, 0x0)
1b42: b345 st.w r2, (r3, 0x14)
SYSCON->EFLCHK=SYSCON_EFLCHK_RST;
1b44: 104c lrw r2, 0xffffff // 1b74 <SYSCON_RST_VALUE+0x38>
1b46: b346 st.w r2, (r3, 0x18)
SYSCON->SCLKCR=SYSCON_SCLKCR_RST;
1b48: 104c lrw r2, 0xd22d0000 // 1b78 <SYSCON_RST_VALUE+0x3c>
1b4a: b347 st.w r2, (r3, 0x1c)
SYSCON->OSTR=SYSCON_OSTR_RST;
1b4c: 104c lrw r2, 0x70ff3bff // 1b7c <SYSCON_RST_VALUE+0x40>
1b4e: b350 st.w r2, (r3, 0x40)
SYSCON->LVDCR=SYSCON_LVDCR_RST;
1b50: 320a movi r2, 10
1b52: b353 st.w r2, (r3, 0x4c)
SYSCON->IWDCR=SYSCON_IWDCR_RST;
1b54: 102b lrw r1, 0x70c // 1b80 <SYSCON_RST_VALUE+0x44>
SYSCON->EXIRT=SYSCON_EXIRT_RST;
1b56: 237f addi r3, 128
1b58: 3200 movi r2, 0
1b5a: b345 st.w r2, (r3, 0x14)
SYSCON->EXIFT=SYSCON_EXIFT_RST;
1b5c: b346 st.w r2, (r3, 0x18)
SYSCON->IWDCR=SYSCON_IWDCR_RST;
1b5e: b32d st.w r1, (r3, 0x34)
SYSCON->IWDCNT=SYSCON_IWDCNT_RST;
1b60: 1029 lrw r1, 0x3fe // 1b84 <SYSCON_RST_VALUE+0x48>
1b62: b32e st.w r1, (r3, 0x38)
SYSCON->EVTRG=SYSCON_EVTRG_RST;
1b64: b35d st.w r2, (r3, 0x74)
SYSCON->EVPS=SYSCON_EVPS_RST;
1b66: b35e st.w r2, (r3, 0x78)
SYSCON->EVSWF=SYSCON_EVSWF_RST;
1b68: b35f st.w r2, (r3, 0x7c)
}
1b6a: 783c jmp r15
1b6c: 2000005c .long 0x2000005c
1b70: 0000ffff .long 0x0000ffff
1b74: 00ffffff .long 0x00ffffff
1b78: d22d0000 .long 0xd22d0000
1b7c: 70ff3bff .long 0x70ff3bff
1b80: 0000070c .long 0x0000070c
1b84: 000003fe .long 0x000003fe
Disassembly of section .text.SYSCON_General_CMD:
00001b88 <SYSCON_General_CMD>:
{
1b88: 14d0 push r15
if (NewState != DISABLE)
1b8a: 3840 cmpnei r0, 0
1b8c: 0c05 bf 0x1b96 // 1b96 <SYSCON_General_CMD+0xe>
1b8e: 6c07 mov r0, r1
1b90: e3ffff9c bsr 0x1ac8 // 1ac8 <SYSCON_General_CMD.part.0>
}
1b94: 1490 pop r15
SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control
1b96: 1068 lrw r3, 0x2000005c // 1bb4 <SYSCON_General_CMD+0x2c>
1b98: 9360 ld.w r3, (r3, 0x0)
1b9a: 9342 ld.w r2, (r3, 0x8)
1b9c: 6c84 or r2, r1
1b9e: b342 st.w r2, (r3, 0x8)
while(SYSCON->GCSR&ENDIS_X); //check Disable?
1ba0: 9343 ld.w r2, (r3, 0xc)
1ba2: 6884 and r2, r1
1ba4: 3a40 cmpnei r2, 0
1ba6: 0bfd bt 0x1ba0 // 1ba0 <SYSCON_General_CMD+0x18>
SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit
1ba8: 237f addi r3, 128
1baa: 9301 ld.w r0, (r3, 0x4)
1bac: 6c40 or r1, r0
1bae: b321 st.w r1, (r3, 0x4)
}
1bb0: 07f2 br 0x1b94 // 1b94 <SYSCON_General_CMD+0xc>
1bb2: 0000 bkpt
1bb4: 2000005c .long 0x2000005c
Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config:
00001bb8 <SystemCLK_HCLKDIV_PCLKDIV_Config>:
//SystemClk_data_x:EMOSC_24M,EMOSC_16M,EMOSC_12M,EMOSC_8M,EMOSC_4M,EMOSC_36K,
//ISOSC,IMOSC,HFOSC_48M,HFOSC_24M,HFOSC_12M,HFOSC_6M
//ReturnValue:NONE
/*************************************************************/
void SystemCLK_HCLKDIV_PCLKDIV_Config(SystemCLK_TypeDef SYSCLK_X , SystemCLK_Div_TypeDef HCLK_DIV_X , PCLK_Div_TypeDef PCLK_DIV_X , SystemClk_data_TypeDef SystemClk_data_x )
{
1bb8: 14c2 push r4-r5
if(SystemClk_data_x==HFOSC_48M)
1bba: 3b48 cmpnei r3, 8
1bbc: 0828 bt 0x1c0c // 1c0c <SystemCLK_HCLKDIV_PCLKDIV_Config+0x54>
{
IFC->CEDR=0X01; //CLKEN
1bbe: 109d lrw r4, 0x20000060 // 1c30 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x78>
1bc0: 3501 movi r5, 1
1bc2: 9480 ld.w r4, (r4, 0x0)
1bc4: b4a1 st.w r5, (r4, 0x4)
IFC->MR=0X04|(0X00<<16); //High speed mode
1bc6: 3504 movi r5, 4
1bc8: b4a5 st.w r5, (r4, 0x14)
if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M))
{
IFC->CEDR=0X01; //CLKEN
IFC->MR=0X02|(0X00<<16); //Medium speed mode
}
if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M))
1bca: 5b83 subi r4, r3, 1
1bcc: 3c01 cmphsi r4, 2
1bce: 0c2b bf 0x1c24 // 1c24 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x6c>
{
IFC->CEDR=0X01; //CLKEN
IFC->MR=0X01|(0X00<<16); //Low speed mode
}
if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K)
||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M))
1bd0: 5b8b subi r4, r3, 3
if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K)
1bd2: 3c04 cmphsi r4, 5
1bd4: 0c03 bf 0x1bda // 1bda <SystemCLK_HCLKDIV_PCLKDIV_Config+0x22>
||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M))
1bd6: 3b4b cmpnei r3, 11
1bd8: 0807 bt 0x1be6 // 1be6 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x2e>
{
IFC->CEDR=0X01; //CLKEN
1bda: 1076 lrw r3, 0x20000060 // 1c30 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x78>
1bdc: 3401 movi r4, 1
1bde: 9360 ld.w r3, (r3, 0x0)
1be0: b381 st.w r4, (r3, 0x4)
IFC->MR=0X00|(0X00<<16); //Low speed mode
1be2: 3400 movi r4, 0
1be4: b385 st.w r4, (r3, 0x14)
}
SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X;
1be6: 1094 lrw r4, 0xd22d0000 // 1c34 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x7c>
1be8: 6c10 or r0, r4
1bea: 1074 lrw r3, 0x2000005c // 1c38 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x80>
1bec: 6c40 or r1, r0
1bee: 9360 ld.w r3, (r3, 0x0)
while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable
1bf0: 3080 movi r0, 128
SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X;
1bf2: b327 st.w r1, (r3, 0x1c)
while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable
1bf4: 4001 lsli r0, r0, 1
1bf6: 9324 ld.w r1, (r3, 0x10)
1bf8: 6840 and r1, r0
1bfa: 3940 cmpnei r1, 0
1bfc: 0ffd bf 0x1bf6 // 1bf6 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x3e>
SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16
1bfe: 1030 lrw r1, 0xc33c0000 // 1c3c <SystemCLK_HCLKDIV_PCLKDIV_Config+0x84>
1c00: 6c48 or r1, r2
1c02: b328 st.w r1, (r3, 0x20)
while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV
1c04: 9328 ld.w r1, (r3, 0x20)
1c06: 644a cmpne r2, r1
1c08: 0bfe bt 0x1c04 // 1c04 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x4c>
}
1c0a: 1482 pop r4-r5
if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M))
1c0c: 3b40 cmpnei r3, 0
1c0e: 0c03 bf 0x1c14 // 1c14 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x5c>
1c10: 3b49 cmpnei r3, 9
1c12: 0807 bt 0x1c20 // 1c20 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x68>
IFC->CEDR=0X01; //CLKEN
1c14: 1087 lrw r4, 0x20000060 // 1c30 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x78>
1c16: 3501 movi r5, 1
1c18: 9480 ld.w r4, (r4, 0x0)
1c1a: b4a1 st.w r5, (r4, 0x4)
IFC->MR=0X02|(0X00<<16); //Medium speed mode
1c1c: 3502 movi r5, 2
1c1e: b4a5 st.w r5, (r4, 0x14)
if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M))
1c20: 3b4a cmpnei r3, 10
1c22: 0bd4 bt 0x1bca // 1bca <SystemCLK_HCLKDIV_PCLKDIV_Config+0x12>
IFC->CEDR=0X01; //CLKEN
1c24: 1083 lrw r4, 0x20000060 // 1c30 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x78>
1c26: 3501 movi r5, 1
1c28: 9480 ld.w r4, (r4, 0x0)
1c2a: b4a1 st.w r5, (r4, 0x4)
IFC->MR=0X01|(0X00<<16); //Low speed mode
1c2c: b4a5 st.w r5, (r4, 0x14)
1c2e: 07d1 br 0x1bd0 // 1bd0 <SystemCLK_HCLKDIV_PCLKDIV_Config+0x18>
1c30: 20000060 .long 0x20000060
1c34: d22d0000 .long 0xd22d0000
1c38: 2000005c .long 0x2000005c
1c3c: c33c0000 .long 0xc33c0000
Disassembly of section .text.SYSCON_HFOSC_SELECTE:
00001c40 <SYSCON_HFOSC_SELECTE>:
//EntryParameter:HFOSC_SELECTE_X
//HFOSC_SELECTE_X:HFOSC_SELECTE_48M,HFOSC_SELECTE_24M;HFOSC_SELECTE_12M;HFOSC_SELECTE_6M
//ReturnValue:NONE
/*************************************************************/
void SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_TypeDef HFOSC_SELECTE_X)
{
1c40: 14d1 push r4, r15
1c42: 6d03 mov r4, r0
SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC
1c44: 3110 movi r1, 16
1c46: 3000 movi r0, 0
1c48: e3ffffa0 bsr 0x1b88 // 1b88 <SYSCON_General_CMD>
SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X;
1c4c: 1066 lrw r3, 0x2000005c // 1c64 <SYSCON_HFOSC_SELECTE+0x24>
1c4e: 9360 ld.w r3, (r3, 0x0)
1c50: 9319 ld.w r0, (r3, 0x64)
1c52: 3884 bclri r0, 4
1c54: 3885 bclri r0, 5
1c56: 6c10 or r0, r4
1c58: b319 st.w r0, (r3, 0x64)
1c5a: 3010 movi r0, 16
1c5c: e3ffff36 bsr 0x1ac8 // 1ac8 <SYSCON_General_CMD.part.0>
SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC
}
1c60: 1491 pop r4, r15
1c62: 0000 bkpt
1c64: 2000005c .long 0x2000005c
Disassembly of section .text.SYSCON_WDT_CMD:
00001c68 <SYSCON_WDT_CMD>:
//EntryParameter:,NewState
//NewState:ENABLE,DISABLE
//ReturnValue:NONE
/*************************************************************/
void SYSCON_WDT_CMD(FunctionalStatus NewState)
{
1c68: 106c lrw r3, 0x2000005c // 1c98 <SYSCON_WDT_CMD+0x30>
if(NewState != DISABLE)
1c6a: 3840 cmpnei r0, 0
{
SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT;
1c6c: 9360 ld.w r3, (r3, 0x0)
1c6e: 237f addi r3, 128
if(NewState != DISABLE)
1c70: 0c0a bf 0x1c84 // 1c84 <SYSCON_WDT_CMD+0x1c>
SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT;
1c72: 104b lrw r2, 0x78870000 // 1c9c <SYSCON_WDT_CMD+0x34>
while(!(SYSCON->IWDCR&Check_IWDT_BUSY));
1c74: 3180 movi r1, 128
SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT;
1c76: b34f st.w r2, (r3, 0x3c)
while(!(SYSCON->IWDCR&Check_IWDT_BUSY));
1c78: 4125 lsli r1, r1, 5
1c7a: 934d ld.w r2, (r3, 0x34)
1c7c: 6884 and r2, r1
1c7e: 3a40 cmpnei r2, 0
1c80: 0ffd bf 0x1c7a // 1c7a <SYSCON_WDT_CMD+0x12>
else
{
SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT;
while(SYSCON->IWDCR&Check_IWDT_BUSY);
}
}
1c82: 783c jmp r15
SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT;
1c84: 1047 lrw r2, 0x788755aa // 1ca0 <SYSCON_WDT_CMD+0x38>
while(SYSCON->IWDCR&Check_IWDT_BUSY);
1c86: 3180 movi r1, 128
SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT;
1c88: b34f st.w r2, (r3, 0x3c)
while(SYSCON->IWDCR&Check_IWDT_BUSY);
1c8a: 4125 lsli r1, r1, 5
1c8c: 934d ld.w r2, (r3, 0x34)
1c8e: 6884 and r2, r1
1c90: 3a40 cmpnei r2, 0
1c92: 0bfd bt 0x1c8c // 1c8c <SYSCON_WDT_CMD+0x24>
1c94: 07f7 br 0x1c82 // 1c82 <SYSCON_WDT_CMD+0x1a>
1c96: 0000 bkpt
1c98: 2000005c .long 0x2000005c
1c9c: 78870000 .long 0x78870000
1ca0: 788755aa .long 0x788755aa
Disassembly of section .text.SYSCON_IWDCNT_Reload:
00001ca4 <SYSCON_IWDCNT_Reload>:
//EntryParameter:NONE
//ReturnValue: NONE
/*************************************************************/
void SYSCON_IWDCNT_Reload(void)
{
SYSCON->IWDCNT=CLR_IWDT;
1ca4: 1064 lrw r3, 0x2000005c // 1cb4 <SYSCON_IWDCNT_Reload+0x10>
1ca6: 32b4 movi r2, 180
1ca8: 9360 ld.w r3, (r3, 0x0)
1caa: 237f addi r3, 128
1cac: 4257 lsli r2, r2, 23
1cae: b34e st.w r2, (r3, 0x38)
}
1cb0: 783c jmp r15
1cb2: 0000 bkpt
1cb4: 2000005c .long 0x2000005c
Disassembly of section .text.SYSCON_IWDCNT_Config:
00001cb8 <SYSCON_IWDCNT_Config>:
//IWDT_INTW_DIV_X:IWDT_INTW_DIV_1/2/3/4/4/5/6
//ReturnValue: NONE
/*************************************************************/
void SYSCON_IWDCNT_Config(IWDT_TIME_TypeDef IWDT_TIME_X , IWDT_TIMEDIV_TypeDef IWDT_INTW_DIV_X )
{
SYSCON->IWDCR=IWDT_KEY|IWDT_TIME_X|IWDT_INTW_DIV_X;
1cb8: 1044 lrw r2, 0x87780000 // 1cc8 <SYSCON_IWDCNT_Config+0x10>
1cba: 1065 lrw r3, 0x2000005c // 1ccc <SYSCON_IWDCNT_Config+0x14>
1cbc: 6c48 or r1, r2
1cbe: 9360 ld.w r3, (r3, 0x0)
1cc0: 6c04 or r0, r1
1cc2: 237f addi r3, 128
1cc4: b30d st.w r0, (r3, 0x34)
}
1cc6: 783c jmp r15
1cc8: 87780000 .long 0x87780000
1ccc: 2000005c .long 0x2000005c
Disassembly of section .text.SYSCON_LVD_Config:
00001cd0 <SYSCON_LVD_Config>:
//X_LVD_INT:ENABLE_LVD_INT,DISABLE_LVD_INT
//INTDET_POL_X:INTDET_POL_fall,INTDET_POL_X_rise,INTDET_POL_X_riseORfall
//ReturnValue: NONE
/*************************************************************/
void SYSCON_LVD_Config(X_LVDEN_TypeDef X_LVDEN , INTDET_LVL_X_TypeDef INTDET_LVL_X , RSTDET_LVL_X_TypeDef RSTDET_LVL_X , X_LVD_INT_TypeDef X_LVD_INT , INTDET_POL_X_TypeDef INTDET_POL_X)
{
1cd0: 14c3 push r4-r6
1cd2: 9883 ld.w r4, (r14, 0xc)
//SYSCON->LVDCR=LVD_KEY;
SYSCON->LVDCR=LVD_KEY|X_LVDEN|INTDET_LVL_X|RSTDET_LVL_X|X_LVD_INT|INTDET_POL_X;
1cd4: 10c5 lrw r6, 0xb44b0000 // 1ce8 <SYSCON_LVD_Config+0x18>
1cd6: 6d18 or r4, r6
1cd8: 6cd0 or r3, r4
1cda: 6c8c or r2, r3
1cdc: 6c48 or r1, r2
1cde: 10a4 lrw r5, 0x2000005c // 1cec <SYSCON_LVD_Config+0x1c>
1ce0: 6c04 or r0, r1
1ce2: 95a0 ld.w r5, (r5, 0x0)
1ce4: b513 st.w r0, (r5, 0x4c)
}
1ce6: 1483 pop r4-r6
1ce8: b44b0000 .long 0xb44b0000
1cec: 2000005c .long 0x2000005c
Disassembly of section .text.LVD_Int_Enable:
00001cf0 <LVD_Int_Enable>:
//EntryParameter:NONE
//ReturnValue: NONE
/*************************************************************/
void LVD_Int_Enable(void)
{
SYSCON->ICR = LVD_INT_ST; //clear LVD INT status
1cf0: 1066 lrw r3, 0x2000005c // 1d08 <LVD_Int_Enable+0x18>
1cf2: 3180 movi r1, 128
1cf4: 9360 ld.w r3, (r3, 0x0)
1cf6: 3280 movi r2, 128
1cf8: 604c addu r1, r3
1cfa: 4244 lsli r2, r2, 4
1cfc: b141 st.w r2, (r1, 0x4)
SYSCON->IMER |= LVD_INT_ST;
1cfe: 935d ld.w r2, (r3, 0x74)
1d00: 3aab bseti r2, 11
1d02: b35d st.w r2, (r3, 0x74)
}
1d04: 783c jmp r15
1d06: 0000 bkpt
1d08: 2000005c .long 0x2000005c
Disassembly of section .text.IWDT_Int_Enable:
00001d0c <IWDT_Int_Enable>:
//EntryParameter:NONE
//ReturnValue: NONE
/*************************************************************/
void IWDT_Int_Enable(void)
{
SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status
1d0c: 1066 lrw r3, 0x2000005c // 1d24 <IWDT_Int_Enable+0x18>
1d0e: 3180 movi r1, 128
1d10: 9360 ld.w r3, (r3, 0x0)
1d12: 3280 movi r2, 128
1d14: 604c addu r1, r3
1d16: 4241 lsli r2, r2, 1
1d18: b141 st.w r2, (r1, 0x4)
SYSCON->IMER |= IWDT_INT_ST;
1d1a: 935d ld.w r2, (r3, 0x74)
1d1c: 3aa8 bseti r2, 8
1d1e: b35d st.w r2, (r3, 0x74)
}
1d20: 783c jmp r15
1d22: 0000 bkpt
1d24: 2000005c .long 0x2000005c
Disassembly of section .text.EXTI_trigger_CMD:
00001d28 <EXTI_trigger_CMD>:
//EXI_tringer_mode:_EXIRT,_EXIFT
//ReturnValue: LVD detection flag
/*************************************************************/
void EXTI_trigger_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN , EXI_tringer_mode_TypeDef EXI_tringer_mode)
{
switch(EXI_tringer_mode)
1d28: 3a40 cmpnei r2, 0
1d2a: 0c04 bf 0x1d32 // 1d32 <EXTI_trigger_CMD+0xa>
1d2c: 3a41 cmpnei r2, 1
1d2e: 0c0e bf 0x1d4a // 1d4a <EXTI_trigger_CMD+0x22>
{
SYSCON->EXIFT &=~EXIPIN;
}
break;
}
}
1d30: 783c jmp r15
1d32: 106d lrw r3, 0x2000005c // 1d64 <EXTI_trigger_CMD+0x3c>
if(NewState != DISABLE)
1d34: 3840 cmpnei r0, 0
SYSCON->EXIRT |=EXIPIN;
1d36: 9360 ld.w r3, (r3, 0x0)
1d38: 237f addi r3, 128
1d3a: 9345 ld.w r2, (r3, 0x14)
if(NewState != DISABLE)
1d3c: 0c04 bf 0x1d44 // 1d44 <EXTI_trigger_CMD+0x1c>
SYSCON->EXIRT |=EXIPIN;
1d3e: 6c48 or r1, r2
1d40: b325 st.w r1, (r3, 0x14)
1d42: 07f7 br 0x1d30 // 1d30 <EXTI_trigger_CMD+0x8>
SYSCON->EXIRT &=~EXIPIN;
1d44: 6885 andn r2, r1
1d46: b345 st.w r2, (r3, 0x14)
1d48: 07f4 br 0x1d30 // 1d30 <EXTI_trigger_CMD+0x8>
1d4a: 1067 lrw r3, 0x2000005c // 1d64 <EXTI_trigger_CMD+0x3c>
if(NewState != DISABLE)
1d4c: 3840 cmpnei r0, 0
SYSCON->EXIFT |=EXIPIN;
1d4e: 9360 ld.w r3, (r3, 0x0)
1d50: 237f addi r3, 128
1d52: 9346 ld.w r2, (r3, 0x18)
if(NewState != DISABLE)
1d54: 0c04 bf 0x1d5c // 1d5c <EXTI_trigger_CMD+0x34>
SYSCON->EXIFT |=EXIPIN;
1d56: 6c48 or r1, r2
1d58: b326 st.w r1, (r3, 0x18)
1d5a: 07eb br 0x1d30 // 1d30 <EXTI_trigger_CMD+0x8>
SYSCON->EXIFT &=~EXIPIN;
1d5c: 6885 andn r2, r1
1d5e: b346 st.w r2, (r3, 0x18)
}
1d60: 07e8 br 0x1d30 // 1d30 <EXTI_trigger_CMD+0x8>
1d62: 0000 bkpt
1d64: 2000005c .long 0x2000005c
Disassembly of section .text.EXTI_interrupt_CMD:
00001d68 <EXTI_interrupt_CMD>:
//NewState:ENABLE,DISABLE
//ReturnValue:NONE
/*************************************************************/
void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN)
{
SYSCON->EXICR = 0X3FFF; //Claer EXI INT status
1d68: 106b lrw r3, 0x2000005c // 1d94 <EXTI_interrupt_CMD+0x2c>
1d6a: 104c lrw r2, 0x3fff // 1d98 <EXTI_interrupt_CMD+0x30>
1d6c: 9360 ld.w r3, (r3, 0x0)
1d6e: 237f addi r3, 128
if(NewState != DISABLE)
1d70: 3840 cmpnei r0, 0
SYSCON->EXICR = 0X3FFF; //Claer EXI INT status
1d72: b34b st.w r2, (r3, 0x2c)
if(NewState != DISABLE)
1d74: 0c0c bf 0x1d8c // 1d8c <EXTI_interrupt_CMD+0x24>
{
SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable
1d76: 9347 ld.w r2, (r3, 0x1c)
1d78: 6c84 or r2, r1
1d7a: b347 st.w r2, (r3, 0x1c)
while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not
1d7c: 9349 ld.w r2, (r3, 0x24)
1d7e: 6884 and r2, r1
1d80: 3a40 cmpnei r2, 0
1d82: 0ffd bf 0x1d7c // 1d7c <EXTI_interrupt_CMD+0x14>
SYSCON->EXICR |=EXIPIN; // Clear EXI status bit
1d84: 934b ld.w r2, (r3, 0x2c)
1d86: 6c48 or r1, r2
1d88: b32b st.w r1, (r3, 0x2c)
}
else
{
SYSCON->EXIDR|=EXIPIN;
}
}
1d8a: 783c jmp r15
SYSCON->EXIDR|=EXIPIN;
1d8c: 9348 ld.w r2, (r3, 0x20)
1d8e: 6c48 or r1, r2
1d90: b328 st.w r1, (r3, 0x20)
}
1d92: 07fc br 0x1d8a // 1d8a <EXTI_interrupt_CMD+0x22>
1d94: 2000005c .long 0x2000005c
1d98: 00003fff .long 0x00003fff
Disassembly of section .text.GPIO_EXTI_interrupt:
00001d9c <GPIO_EXTI_interrupt>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE)
{
GPIOX->IECR=GPIO_IECR_VALUE;
1d9c: b02b st.w r1, (r0, 0x2c)
}
1d9e: 783c jmp r15
Disassembly of section .text.EXI4_Int_Enable:
00001da0 <EXI4_Int_Enable>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void EXI4_Int_Enable(void)
{
INTC_ISER_WRITE(EXI4_INT);
1da0: 3380 movi r3, 128
1da2: 4370 lsli r3, r3, 16
1da4: 1042 lrw r2, 0xe000e100 // 1dac <EXI4_Int_Enable+0xc>
1da6: b260 st.w r3, (r2, 0x0)
}
1da8: 783c jmp r15
1daa: 0000 bkpt
1dac: e000e100 .long 0xe000e100
Disassembly of section .text.SYSCON_Int_Enable:
00001db0 <SYSCON_Int_Enable>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void SYSCON_Int_Enable(void)
{
INTC_ISER_WRITE(SYSCON_INT);
1db0: 3202 movi r2, 2
1db2: 1062 lrw r3, 0xe000e100 // 1db8 <SYSCON_Int_Enable+0x8>
1db4: b340 st.w r2, (r3, 0x0)
}
1db6: 783c jmp r15
1db8: e000e100 .long 0xe000e100
Disassembly of section .text.SYSCON_Int_Disable:
00001dbc <SYSCON_Int_Disable>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void SYSCON_Int_Disable(void)
{
INTC_ICER_WRITE(SYSCON_INT);
1dbc: 3202 movi r2, 2
1dbe: 1062 lrw r3, 0xe000e180 // 1dc4 <SYSCON_Int_Disable+0x8>
1dc0: b340 st.w r2, (r3, 0x0)
}
1dc2: 783c jmp r15
1dc4: e000e180 .long 0xe000e180
Disassembly of section .text.SYSCON_INT_Priority:
00001dc8 <SYSCON_INT_Priority>:
//80:Priority 2
//C0:Priority 3 lowest
/*************************************************************/
void SYSCON_INT_Priority(void)
{
INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit
1dc8: 1066 lrw r3, 0xe000e400 // 1de0 <SYSCON_INT_Priority+0x18>
1dca: 1047 lrw r2, 0xc0c0c0c0 // 1de4 <SYSCON_INT_Priority+0x1c>
INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7
INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11
INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15
INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19
INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23
INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27
1dcc: 1027 lrw r1, 0xc0c000c0 // 1de8 <SYSCON_INT_Priority+0x20>
INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit
1dce: b340 st.w r2, (r3, 0x0)
INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7
1dd0: b341 st.w r2, (r3, 0x4)
INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11
1dd2: b342 st.w r2, (r3, 0x8)
INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15
1dd4: b343 st.w r2, (r3, 0xc)
INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19
1dd6: b344 st.w r2, (r3, 0x10)
INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23
1dd8: b345 st.w r2, (r3, 0x14)
INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27
1dda: b326 st.w r1, (r3, 0x18)
INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31
1ddc: b347 st.w r2, (r3, 0x1c)
}
1dde: 783c jmp r15
1de0: e000e400 .long 0xe000e400
1de4: c0c0c0c0 .long 0xc0c0c0c0
1de8: c0c000c0 .long 0xc0c000c0
Disassembly of section .text.Set_INT_Priority:
00001dec <Set_INT_Priority>:
//int_name:CORET_IRQ~BT1_IRQ
//int_level:0~3 0=highest 3=lowest
//ReturnValue:None
/*************************************************************/
void Set_INT_Priority(U8_T int_name,U8_T int_level)
{
1dec: 14c1 push r4
1dee: 4862 lsri r3, r0, 2
1df0: 4342 lsli r2, r3, 2
1df2: 106a lrw r3, 0x20000064 // 1e18 <Set_INT_Priority+0x2c>
U8_T i_temp,j_temp;
U32_T k_temp;
i_temp=(int_name%4)*8;
1df4: 3403 movi r4, 3
1df6: 9360 ld.w r3, (r3, 0x0)
1df8: 60c8 addu r3, r2
j_temp=int_name/4;
k_temp=CK801 -> IPR[j_temp]&(~(0xff<<i_temp));
1dfa: 3280 movi r2, 128
1dfc: 4243 lsli r2, r2, 3
i_temp=(int_name%4)*8;
1dfe: 6810 and r0, r4
k_temp=CK801 -> IPR[j_temp]&(~(0xff<<i_temp));
1e00: 60c8 addu r3, r2
1e02: 4003 lsli r0, r0, 3
1e04: 34ff movi r4, 255
1e06: 9340 ld.w r2, (r3, 0x0)
1e08: 7100 lsl r4, r0
CK801 -> IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp));
1e0a: 4126 lsli r1, r1, 6
k_temp=CK801 -> IPR[j_temp]&(~(0xff<<i_temp));
1e0c: 6891 andn r2, r4
CK801 -> IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp));
1e0e: 7040 lsl r1, r0
1e10: 6c48 or r1, r2
1e12: b320 st.w r1, (r3, 0x0)
}
1e14: 1481 pop r4
1e16: 0000 bkpt
1e18: 20000064 .long 0x20000064
Disassembly of section .text.GPIO_Init:
00001e1c <GPIO_Init>:
//byte:Lowbyte(PIN_0~7),Highbyte(PIN_8~15)
//Dir:0:output 1:input
//ReturnValue:NONE
/*************************************************************/
void GPIO_Init(CSP_GPIO_T *GPIOx,uint8_t PinNum,GPIO_Dir_TypeDef Dir)
{
1e1c: 14d1 push r4, r15
uint32_t data_temp;
uint8_t GPIO_Pin;
if(PinNum<8)
1e1e: 3907 cmphsi r1, 8
{
1e20: 6d03 mov r4, r0
if(PinNum<8)
1e22: 0830 bt 0x1e82 // 1e82 <GPIO_Init+0x66>
{
switch (PinNum)
1e24: 5903 subi r0, r1, 1
1e26: 3806 cmphsi r0, 7
1e28: 0827 bt 0x1e76 // 1e76 <GPIO_Init+0x5a>
1e2a: e3fff775 bsr 0xd14 // d14 <___gnu_csky_case_uqi>
1e2e: 1004 .short 0x1004
1e30: 1d1a1613 .long 0x1d1a1613
1e34: 0021 .short 0x0021
{
case 0:data_temp=0xfffffff0;GPIO_Pin=0;break;
case 1:data_temp=0xffffff0f;GPIO_Pin=4;break;
1e36: 3300 movi r3, 0
1e38: 3104 movi r1, 4
1e3a: 2bf0 subi r3, 241
case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break;
case 5:data_temp=0xff0fffff;GPIO_Pin=20;break;
case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break;
case 7:data_temp=0x0fffffff;GPIO_Pin=28;break;
}
if (Dir)
1e3c: 3a40 cmpnei r2, 0
{
(GPIOx)->CONLR =((GPIOx)->CONLR & data_temp) | 1<<GPIO_Pin;
1e3e: 9440 ld.w r2, (r4, 0x0)
1e40: 68c8 and r3, r2
if (Dir)
1e42: 0c1e bf 0x1e7e // 1e7e <GPIO_Init+0x62>
(GPIOx)->CONLR =((GPIOx)->CONLR & data_temp) | 1<<GPIO_Pin;
1e44: 3201 movi r2, 1
}
else
{
(GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2<<GPIO_Pin;
1e46: 7084 lsl r2, r1
1e48: 6cc8 or r3, r2
1e4a: b460 st.w r3, (r4, 0x0)
else
{
(GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2<<GPIO_Pin;
}
}
}
1e4c: 1491 pop r4, r15
case 2:data_temp=0xfffff0ff;GPIO_Pin=8;break;
1e4e: 3108 movi r1, 8
1e50: 1166 lrw r3, 0xfffff0ff // 1ee8 <GPIO_Init+0xcc>
1e52: 07f5 br 0x1e3c // 1e3c <GPIO_Init+0x20>
case 3:data_temp=0xffff0fff;GPIO_Pin=12;break;
1e54: 310c movi r1, 12
1e56: 1166 lrw r3, 0xffff0fff // 1eec <GPIO_Init+0xd0>
1e58: 07f2 br 0x1e3c // 1e3c <GPIO_Init+0x20>
case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break;
1e5a: 3110 movi r1, 16
1e5c: 1165 lrw r3, 0xfff10000 // 1ef0 <GPIO_Init+0xd4>
case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break;
1e5e: 2b00 subi r3, 1
1e60: 07ee br 0x1e3c // 1e3c <GPIO_Init+0x20>
case 5:data_temp=0xff0fffff;GPIO_Pin=20;break;
1e62: 3114 movi r1, 20
1e64: 1164 lrw r3, 0xff100000 // 1ef4 <GPIO_Init+0xd8>
1e66: 07fc br 0x1e5e // 1e5e <GPIO_Init+0x42>
case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break;
1e68: 33f1 movi r3, 241
1e6a: 3118 movi r1, 24
1e6c: 4378 lsli r3, r3, 24
1e6e: 07f8 br 0x1e5e // 1e5e <GPIO_Init+0x42>
case 7:data_temp=0x0fffffff;GPIO_Pin=28;break;
1e70: 311c movi r1, 28
1e72: 1162 lrw r3, 0xfffffff // 1ef8 <GPIO_Init+0xdc>
1e74: 07e4 br 0x1e3c // 1e3c <GPIO_Init+0x20>
case 0:data_temp=0xfffffff0;GPIO_Pin=0;break;
1e76: 3300 movi r3, 0
1e78: 3100 movi r1, 0
1e7a: 2b0f subi r3, 16
1e7c: 07e0 br 0x1e3c // 1e3c <GPIO_Init+0x20>
(GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2<<GPIO_Pin;
1e7e: 3202 movi r2, 2
1e80: 07e3 br 0x1e46 // 1e46 <GPIO_Init+0x2a>
else if (PinNum<16)
1e82: 390f cmphsi r1, 16
1e84: 0be4 bt 0x1e4c // 1e4c <GPIO_Init+0x30>
switch (PinNum)
1e86: 2908 subi r1, 9
1e88: 3906 cmphsi r1, 7
1e8a: 6c07 mov r0, r1
1e8c: 0827 bt 0x1eda // 1eda <GPIO_Init+0xbe>
1e8e: e3fff743 bsr 0xd14 // d14 <___gnu_csky_case_uqi>
1e92: 1004 .short 0x1004
1e94: 1d1a1613 .long 0x1d1a1613
1e98: 0021 .short 0x0021
case 9:data_temp=0xffffff0f;GPIO_Pin=4;break;
1e9a: 3300 movi r3, 0
1e9c: 3104 movi r1, 4
1e9e: 2bf0 subi r3, 241
if (Dir)
1ea0: 3a40 cmpnei r2, 0
(GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 1<<GPIO_Pin;
1ea2: 9441 ld.w r2, (r4, 0x4)
1ea4: 68c8 and r3, r2
if (Dir)
1ea6: 0c1e bf 0x1ee2 // 1ee2 <GPIO_Init+0xc6>
(GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 1<<GPIO_Pin;
1ea8: 3201 movi r2, 1
(GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2<<GPIO_Pin;
1eaa: 7084 lsl r2, r1
1eac: 6cc8 or r3, r2
1eae: b461 st.w r3, (r4, 0x4)
}
1eb0: 07ce br 0x1e4c // 1e4c <GPIO_Init+0x30>
case 10:data_temp=0xfffff0ff;GPIO_Pin=8;break;
1eb2: 3108 movi r1, 8
1eb4: 106d lrw r3, 0xfffff0ff // 1ee8 <GPIO_Init+0xcc>
1eb6: 07f5 br 0x1ea0 // 1ea0 <GPIO_Init+0x84>
case 11:data_temp=0xffff0fff;GPIO_Pin=12;break;
1eb8: 310c movi r1, 12
1eba: 106d lrw r3, 0xffff0fff // 1eec <GPIO_Init+0xd0>
1ebc: 07f2 br 0x1ea0 // 1ea0 <GPIO_Init+0x84>
case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break;
1ebe: 3110 movi r1, 16
1ec0: 106c lrw r3, 0xfff10000 // 1ef0 <GPIO_Init+0xd4>
case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break;
1ec2: 2b00 subi r3, 1
1ec4: 07ee br 0x1ea0 // 1ea0 <GPIO_Init+0x84>
case 13:data_temp=0xff0fffff;GPIO_Pin=20;break;
1ec6: 3114 movi r1, 20
1ec8: 106b lrw r3, 0xff100000 // 1ef4 <GPIO_Init+0xd8>
1eca: 07fc br 0x1ec2 // 1ec2 <GPIO_Init+0xa6>
case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break;
1ecc: 33f1 movi r3, 241
1ece: 3118 movi r1, 24
1ed0: 4378 lsli r3, r3, 24
1ed2: 07f8 br 0x1ec2 // 1ec2 <GPIO_Init+0xa6>
case 15:data_temp=0x0fffffff;GPIO_Pin=28;break;
1ed4: 311c movi r1, 28
1ed6: 1069 lrw r3, 0xfffffff // 1ef8 <GPIO_Init+0xdc>
1ed8: 07e4 br 0x1ea0 // 1ea0 <GPIO_Init+0x84>
case 8:data_temp=0xfffffff0;GPIO_Pin=0;break;
1eda: 3300 movi r3, 0
1edc: 3100 movi r1, 0
1ede: 2b0f subi r3, 16
1ee0: 07e0 br 0x1ea0 // 1ea0 <GPIO_Init+0x84>
(GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2<<GPIO_Pin;
1ee2: 3202 movi r2, 2
1ee4: 07e3 br 0x1eaa // 1eaa <GPIO_Init+0x8e>
1ee6: 0000 bkpt
1ee8: fffff0ff .long 0xfffff0ff
1eec: ffff0fff .long 0xffff0fff
1ef0: fff10000 .long 0xfff10000
1ef4: ff100000 .long 0xff100000
1ef8: 0fffffff .long 0x0fffffff
Disassembly of section .text.GPIO_PullHigh_Init:
00001efc <GPIO_PullHigh_Init>:
//bit:0~15
//ReturnValue:VALUE
/*************************************************************/
void GPIO_PullHigh_Init(CSP_GPIO_T *GPIOx,uint8_t bit)
{
(GPIOx)->PUDR = (((GPIOx)->PUDR) & ~(0x03<<(bit*2))) | (0x01<<(bit*2));
1efc: 4121 lsli r1, r1, 1
1efe: 3203 movi r2, 3
1f00: 9068 ld.w r3, (r0, 0x20)
1f02: 7084 lsl r2, r1
1f04: 68c9 andn r3, r2
1f06: 3201 movi r2, 1
1f08: 7084 lsl r2, r1
1f0a: 6cc8 or r3, r2
1f0c: b068 st.w r3, (r0, 0x20)
}
1f0e: 783c jmp r15
Disassembly of section .text.GPIO_DriveStrength_EN:
00001f10 <GPIO_DriveStrength_EN>:
//bit:0~15
//ReturnValue:VALUE
/*************************************************************/
void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit)
{
(GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2));
1f10: 4121 lsli r1, r1, 1
1f12: 3301 movi r3, 1
1f14: 9049 ld.w r2, (r0, 0x24)
1f16: 70c4 lsl r3, r1
1f18: 6cc8 or r3, r2
1f1a: b069 st.w r3, (r0, 0x24)
}
1f1c: 783c jmp r15
Disassembly of section .text.GPIO_IntGroup_Set:
00001f20 <GPIO_IntGroup_Set>:
//EXI16~EXI17:GPIOA0.0~GPIOA0.7
//EXI18~EXI19:GPIOB0.0~GPIOB0.3
//ReturnValue:NONE
/*************************************************************/
void GPIO_IntGroup_Set(GPIO_Group_TypeDef IO_MODE , uint8_t PinNum , GPIO_EXIPIN_TypeDef Selete_EXI_x)
{
1f20: 14c1 push r4
1f22: 1422 subi r14, r14, 8
volatile unsigned int R_data_temp;
volatile unsigned char R_GPIO_Pin;
if(Selete_EXI_x<16)
1f24: 3a0f cmphsi r2, 16
1f26: 084f bt 0x1fc4 // 1fc4 <GPIO_IntGroup_Set+0xa4>
{
if((Selete_EXI_x==0)||(Selete_EXI_x==8))
1f28: 6ccb mov r3, r2
1f2a: 3b83 bclri r3, 3
1f2c: 3b40 cmpnei r3, 0
1f2e: 0813 bt 0x1f54 // 1f54 <GPIO_IntGroup_Set+0x34>
{
R_data_temp=0xfffffff0;
1f30: 2b0f subi r3, 16
1f32: b861 st.w r3, (r14, 0x4)
R_GPIO_Pin=0;
1f34: 3300 movi r3, 0
else if((Selete_EXI_x==7)||(Selete_EXI_x==15))
{
R_data_temp=0x0fffffff;
R_GPIO_Pin=28;
}
if(Selete_EXI_x<8)
1f36: 3a07 cmphsi r2, 8
R_GPIO_Pin=28;
1f38: dc6e0003 st.b r3, (r14, 0x3)
1f3c: 1176 lrw r3, 0x20000044 // 2014 <GPIO_IntGroup_Set+0xf4>
if(Selete_EXI_x<8)
1f3e: 0c38 bf 0x1fae // 1fae <GPIO_IntGroup_Set+0x8e>
{
GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<<R_GPIO_Pin);
}
else if((Selete_EXI_x<16)&&(Selete_EXI_x>=8))
{
GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE<<R_GPIO_Pin);
1f40: 9340 ld.w r2, (r3, 0x0)
1f42: 9261 ld.w r3, (r2, 0x4)
1f44: 9881 ld.w r4, (r14, 0x4)
1f46: d82e0003 ld.b r1, (r14, 0x3)
1f4a: 68d0 and r3, r4
1f4c: 7004 lsl r0, r1
1f4e: 6c0c or r0, r3
1f50: b201 st.w r0, (r2, 0x4)
1f52: 0437 br 0x1fc0 // 1fc0 <GPIO_IntGroup_Set+0xa0>
else if((Selete_EXI_x==1)||(Selete_EXI_x==9))
1f54: 3b41 cmpnei r3, 1
1f56: 0806 bt 0x1f62 // 1f62 <GPIO_IntGroup_Set+0x42>
R_data_temp=0xffffff0f;
1f58: 3300 movi r3, 0
1f5a: 2bf0 subi r3, 241
1f5c: b861 st.w r3, (r14, 0x4)
R_GPIO_Pin=4;
1f5e: 3304 movi r3, 4
1f60: 07eb br 0x1f36 // 1f36 <GPIO_IntGroup_Set+0x16>
else if((Selete_EXI_x==2)||(Selete_EXI_x==10))
1f62: 3b42 cmpnei r3, 2
1f64: 0805 bt 0x1f6e // 1f6e <GPIO_IntGroup_Set+0x4e>
R_data_temp=0xfffff0ff;
1f66: 116d lrw r3, 0xfffff0ff // 2018 <GPIO_IntGroup_Set+0xf8>
1f68: b861 st.w r3, (r14, 0x4)
R_GPIO_Pin=8;
1f6a: 3308 movi r3, 8
1f6c: 07e5 br 0x1f36 // 1f36 <GPIO_IntGroup_Set+0x16>
else if((Selete_EXI_x==3)||(Selete_EXI_x==11))
1f6e: 3b43 cmpnei r3, 3
1f70: 0805 bt 0x1f7a // 1f7a <GPIO_IntGroup_Set+0x5a>
R_data_temp=0xffff0fff;
1f72: 116b lrw r3, 0xffff0fff // 201c <GPIO_IntGroup_Set+0xfc>
1f74: b861 st.w r3, (r14, 0x4)
R_GPIO_Pin=12;
1f76: 330c movi r3, 12
1f78: 07df br 0x1f36 // 1f36 <GPIO_IntGroup_Set+0x16>
else if((Selete_EXI_x==4)||(Selete_EXI_x==12))
1f7a: 3b44 cmpnei r3, 4
1f7c: 0806 bt 0x1f88 // 1f88 <GPIO_IntGroup_Set+0x68>
R_data_temp=0xfff0ffff;
1f7e: 1169 lrw r3, 0xfff10000 // 2020 <GPIO_IntGroup_Set+0x100>
1f80: 2b00 subi r3, 1
1f82: b861 st.w r3, (r14, 0x4)
R_GPIO_Pin=16;
1f84: 3310 movi r3, 16
1f86: 07d8 br 0x1f36 // 1f36 <GPIO_IntGroup_Set+0x16>
else if((Selete_EXI_x==5)||(Selete_EXI_x==13))
1f88: 3b45 cmpnei r3, 5
1f8a: 0806 bt 0x1f96 // 1f96 <GPIO_IntGroup_Set+0x76>
R_data_temp=0xff0fffff;
1f8c: 1166 lrw r3, 0xff100000 // 2024 <GPIO_IntGroup_Set+0x104>
1f8e: 2b00 subi r3, 1
1f90: b861 st.w r3, (r14, 0x4)
R_GPIO_Pin=20;
1f92: 3314 movi r3, 20
1f94: 07d1 br 0x1f36 // 1f36 <GPIO_IntGroup_Set+0x16>
else if((Selete_EXI_x==6)||(Selete_EXI_x==14))
1f96: 3b46 cmpnei r3, 6
1f98: 0807 bt 0x1fa6 // 1fa6 <GPIO_IntGroup_Set+0x86>
R_data_temp=0xf0ffffff;
1f9a: 33f1 movi r3, 241
1f9c: 4378 lsli r3, r3, 24
1f9e: 2b00 subi r3, 1
1fa0: b861 st.w r3, (r14, 0x4)
R_GPIO_Pin=24;
1fa2: 3318 movi r3, 24
1fa4: 07c9 br 0x1f36 // 1f36 <GPIO_IntGroup_Set+0x16>
R_data_temp=0x0fffffff;
1fa6: 1161 lrw r3, 0xfffffff // 2028 <GPIO_IntGroup_Set+0x108>
1fa8: b861 st.w r3, (r14, 0x4)
R_GPIO_Pin=28;
1faa: 331c movi r3, 28
1fac: 07c5 br 0x1f36 // 1f36 <GPIO_IntGroup_Set+0x16>
GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<<R_GPIO_Pin);
1fae: 9340 ld.w r2, (r3, 0x0)
1fb0: 9260 ld.w r3, (r2, 0x0)
1fb2: 9881 ld.w r4, (r14, 0x4)
1fb4: d82e0003 ld.b r1, (r14, 0x3)
1fb8: 68d0 and r3, r4
1fba: 7004 lsl r0, r1
1fbc: 6c0c or r0, r3
1fbe: b200 st.w r0, (r2, 0x0)
{
GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12);
}
}
}
}
1fc0: 1402 addi r14, r14, 8
1fc2: 1481 pop r4
else if(Selete_EXI_x<20)
1fc4: 3a13 cmphsi r2, 20
1fc6: 0bfd bt 0x1fc0 // 1fc0 <GPIO_IntGroup_Set+0xa0>
if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7
1fc8: 3840 cmpnei r0, 0
1fca: 0814 bt 0x1ff2 // 1ff2 <GPIO_IntGroup_Set+0xd2>
1fcc: 3300 movi r3, 0
1fce: 2b0f subi r3, 16
1fd0: 60c8 addu r3, r2
1fd2: 3b01 cmphsi r3, 2
1fd4: 0bf6 bt 0x1fc0 // 1fc0 <GPIO_IntGroup_Set+0xa0>
if(Selete_EXI_x==16)
1fd6: 3a50 cmpnei r2, 16
1fd8: 106f lrw r3, 0x20000044 // 2014 <GPIO_IntGroup_Set+0xf4>
1fda: 0806 bt 0x1fe6 // 1fe6 <GPIO_IntGroup_Set+0xc6>
GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum;
1fdc: 9340 ld.w r2, (r3, 0x0)
1fde: 9262 ld.w r3, (r2, 0x8)
1fe0: 6c4c or r1, r3
1fe2: b222 st.w r1, (r2, 0x8)
1fe4: 07ee br 0x1fc0 // 1fc0 <GPIO_IntGroup_Set+0xa0>
GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4);
1fe6: 9360 ld.w r3, (r3, 0x0)
1fe8: 9342 ld.w r2, (r3, 0x8)
1fea: 4124 lsli r1, r1, 4
GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12);
1fec: 6c48 or r1, r2
1fee: b322 st.w r1, (r3, 0x8)
}
1ff0: 07e8 br 0x1fc0 // 1fc0 <GPIO_IntGroup_Set+0xa0>
else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3
1ff2: 3842 cmpnei r0, 2
1ff4: 0be6 bt 0x1fc0 // 1fc0 <GPIO_IntGroup_Set+0xa0>
1ff6: 3300 movi r3, 0
1ff8: 2b11 subi r3, 18
1ffa: 60c8 addu r3, r2
1ffc: 3b01 cmphsi r3, 2
1ffe: 0be1 bt 0x1fc0 // 1fc0 <GPIO_IntGroup_Set+0xa0>
2000: 1065 lrw r3, 0x20000044 // 2014 <GPIO_IntGroup_Set+0xf4>
if(Selete_EXI_x==18)
2002: 3a52 cmpnei r2, 18
GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8);
2004: 9360 ld.w r3, (r3, 0x0)
2006: 9342 ld.w r2, (r3, 0x8)
if(Selete_EXI_x==18)
2008: 0803 bt 0x200e // 200e <GPIO_IntGroup_Set+0xee>
GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8);
200a: 4128 lsli r1, r1, 8
200c: 07f0 br 0x1fec // 1fec <GPIO_IntGroup_Set+0xcc>
GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12);
200e: 412c lsli r1, r1, 12
2010: 07ee br 0x1fec // 1fec <GPIO_IntGroup_Set+0xcc>
2012: 0000 bkpt
2014: 20000044 .long 0x20000044
2018: fffff0ff .long 0xfffff0ff
201c: ffff0fff .long 0xffff0fff
2020: fff10000 .long 0xfff10000
2024: ff100000 .long 0xff100000
2028: 0fffffff .long 0x0fffffff
Disassembly of section .text.GPIOA0_EXI_Init:
0000202c <GPIOA0_EXI_Init>:
//IO EXI SET
//EntryParameter:EXI_IO(EXI0~EXI13)
//ReturnValue:NONE
/*************************************************************/
void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO)
{
202c: 14d0 push r15
switch (EXI_IO)
202e: 380f cmphsi r0, 16
2030: 0812 bt 0x2054 // 2054 <GPIOA0_EXI_Init+0x28>
2032: 117d lrw r3, 0x2000004c // 2124 <GPIOA0_EXI_Init+0xf8>
2034: e3fff670 bsr 0xd14 // d14 <___gnu_csky_case_uqi>
2038: 1d150f08 .long 0x1d150f08
203c: 39322b24 .long 0x39322b24
2040: 544c463f .long 0x544c463f
2044: 7069625b .long 0x7069625b
{
case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break;
2048: 9340 ld.w r2, (r3, 0x0)
204a: 9260 ld.w r3, (r2, 0x0)
204c: 310f movi r1, 15
204e: 68c5 andn r3, r1
2050: 3ba0 bseti r3, 0
case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break;
2052: b260 st.w r3, (r2, 0x0)
case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break;
case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break;
case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break;
case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break;
}
}
2054: 1490 pop r15
case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break;
2056: 9340 ld.w r2, (r3, 0x0)
2058: 9260 ld.w r3, (r2, 0x0)
205a: 31f0 movi r1, 240
205c: 68c5 andn r3, r1
205e: 3ba4 bseti r3, 4
2060: 07f9 br 0x2052 // 2052 <GPIOA0_EXI_Init+0x26>
case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break;
2062: 9320 ld.w r1, (r3, 0x0)
2064: 32f0 movi r2, 240
2066: 9160 ld.w r3, (r1, 0x0)
2068: 4244 lsli r2, r2, 4
206a: 68c9 andn r3, r2
206c: 3ba8 bseti r3, 8
case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break;
206e: b160 st.w r3, (r1, 0x0)
2070: 07f2 br 0x2054 // 2054 <GPIOA0_EXI_Init+0x28>
case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break;
2072: 9320 ld.w r1, (r3, 0x0)
2074: 32f0 movi r2, 240
2076: 9160 ld.w r3, (r1, 0x0)
2078: 4248 lsli r2, r2, 8
207a: 68c9 andn r3, r2
207c: 3bac bseti r3, 12
207e: 07f8 br 0x206e // 206e <GPIOA0_EXI_Init+0x42>
case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break;
2080: 9320 ld.w r1, (r3, 0x0)
2082: 32f0 movi r2, 240
2084: 9160 ld.w r3, (r1, 0x0)
2086: 424c lsli r2, r2, 12
2088: 68c9 andn r3, r2
208a: 3bb0 bseti r3, 16
208c: 07f1 br 0x206e // 206e <GPIOA0_EXI_Init+0x42>
case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break;
208e: 9320 ld.w r1, (r3, 0x0)
2090: 32f0 movi r2, 240
2092: 9160 ld.w r3, (r1, 0x0)
2094: 4250 lsli r2, r2, 16
2096: 68c9 andn r3, r2
2098: 3bb4 bseti r3, 20
209a: 07ea br 0x206e // 206e <GPIOA0_EXI_Init+0x42>
case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break;
209c: 9320 ld.w r1, (r3, 0x0)
209e: 32f0 movi r2, 240
20a0: 9160 ld.w r3, (r1, 0x0)
20a2: 4254 lsli r2, r2, 20
20a4: 68c9 andn r3, r2
20a6: 3bb8 bseti r3, 24
20a8: 07e3 br 0x206e // 206e <GPIOA0_EXI_Init+0x42>
case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break;
20aa: 9340 ld.w r2, (r3, 0x0)
20ac: 9260 ld.w r3, (r2, 0x0)
20ae: 4364 lsli r3, r3, 4
20b0: 4b64 lsri r3, r3, 4
20b2: 3bbc bseti r3, 28
20b4: 07cf br 0x2052 // 2052 <GPIOA0_EXI_Init+0x26>
case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break;
20b6: 9340 ld.w r2, (r3, 0x0)
20b8: 9261 ld.w r3, (r2, 0x4)
20ba: 310f movi r1, 15
20bc: 68c5 andn r3, r1
20be: 3ba0 bseti r3, 0
case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break;
20c0: b261 st.w r3, (r2, 0x4)
}
20c2: 07c9 br 0x2054 // 2054 <GPIOA0_EXI_Init+0x28>
case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break;
20c4: 9340 ld.w r2, (r3, 0x0)
20c6: 9261 ld.w r3, (r2, 0x4)
20c8: 31f0 movi r1, 240
20ca: 68c5 andn r3, r1
20cc: 3ba4 bseti r3, 4
20ce: 07f9 br 0x20c0 // 20c0 <GPIOA0_EXI_Init+0x94>
case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break;
20d0: 9320 ld.w r1, (r3, 0x0)
20d2: 32f0 movi r2, 240
20d4: 9161 ld.w r3, (r1, 0x4)
20d6: 4244 lsli r2, r2, 4
20d8: 68c9 andn r3, r2
20da: 3ba8 bseti r3, 8
case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break;
20dc: b161 st.w r3, (r1, 0x4)
20de: 07bb br 0x2054 // 2054 <GPIOA0_EXI_Init+0x28>
case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break;
20e0: 9320 ld.w r1, (r3, 0x0)
20e2: 32f0 movi r2, 240
20e4: 9161 ld.w r3, (r1, 0x4)
20e6: 4248 lsli r2, r2, 8
20e8: 68c9 andn r3, r2
20ea: 3bac bseti r3, 12
20ec: 07f8 br 0x20dc // 20dc <GPIOA0_EXI_Init+0xb0>
case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break;
20ee: 9320 ld.w r1, (r3, 0x0)
20f0: 32f0 movi r2, 240
20f2: 9161 ld.w r3, (r1, 0x4)
20f4: 424c lsli r2, r2, 12
20f6: 68c9 andn r3, r2
20f8: 3bb0 bseti r3, 16
20fa: 07f1 br 0x20dc // 20dc <GPIOA0_EXI_Init+0xb0>
case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break;
20fc: 9320 ld.w r1, (r3, 0x0)
20fe: 32f0 movi r2, 240
2100: 9161 ld.w r3, (r1, 0x4)
2102: 4250 lsli r2, r2, 16
2104: 68c9 andn r3, r2
2106: 3bb4 bseti r3, 20
2108: 07ea br 0x20dc // 20dc <GPIOA0_EXI_Init+0xb0>
case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break;
210a: 9320 ld.w r1, (r3, 0x0)
210c: 32f0 movi r2, 240
210e: 9161 ld.w r3, (r1, 0x4)
2110: 4254 lsli r2, r2, 20
2112: 68c9 andn r3, r2
2114: 3bb8 bseti r3, 24
2116: 07e3 br 0x20dc // 20dc <GPIOA0_EXI_Init+0xb0>
case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break;
2118: 9340 ld.w r2, (r3, 0x0)
211a: 9261 ld.w r3, (r2, 0x4)
211c: 4364 lsli r3, r3, 4
211e: 4b64 lsri r3, r3, 4
2120: 3bbc bseti r3, 28
2122: 07cf br 0x20c0 // 20c0 <GPIOA0_EXI_Init+0x94>
2124: 2000004c .long 0x2000004c
Disassembly of section .text.GPIO_Write_High:
00002128 <GPIO_Write_High>:
//bit:0~15
//ReturnValue:VALUE
/*************************************************************/
void GPIO_Write_High(CSP_GPIO_T *GPIOx,uint8_t bit)
{
(GPIOx)->SODR = (1ul<<bit);
2128: 3301 movi r3, 1
212a: 70c4 lsl r3, r1
212c: b063 st.w r3, (r0, 0xc)
}
212e: 783c jmp r15
Disassembly of section .text.GPIO_Write_Low:
00002130 <GPIO_Write_Low>:
void GPIO_Write_Low(CSP_GPIO_T *GPIOx,uint8_t bit)
{
(GPIOx)->CODR = (1ul<<bit);
2130: 3301 movi r3, 1
2132: 70c4 lsl r3, r1
2134: b064 st.w r3, (r0, 0x10)
}
2136: 783c jmp r15
Disassembly of section .text.GPIO_Reverse:
00002138 <GPIO_Reverse>:
//ReturnValue:VALUE
/*************************************************************/
void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit)
{
uint32_t dat = 0;
dat=((GPIOx)->ODSR>>bit)&1ul;
2138: 9045 ld.w r2, (r0, 0x14)
213a: 3301 movi r3, 1
213c: 7085 lsr r2, r1
213e: 688c and r2, r3
{
if (dat==1)
2140: 3a40 cmpnei r2, 0
2142: 70c4 lsl r3, r1
2144: 0c03 bf 0x214a // 214a <GPIO_Reverse+0x12>
{
(GPIOx)->CODR = (1ul<<bit);
2146: b064 st.w r3, (r0, 0x10)
{
(GPIOx)->SODR = (1ul<<bit);
return;
}
}
}
2148: 783c jmp r15
(GPIOx)->SODR = (1ul<<bit);
214a: b063 st.w r3, (r0, 0xc)
return;
214c: 07fe br 0x2148 // 2148 <GPIO_Reverse+0x10>
Disassembly of section .text.GPIO_Read_Status:
0000214e <GPIO_Read_Status>:
/*************************************************************/
uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit)
{
uint8_t value = 0;
uint32_t dat = 0;
dat=((GPIOx)->PSDR)&(1<<bit);
214e: 3301 movi r3, 1
2150: 9046 ld.w r2, (r0, 0x18)
2152: 70c4 lsl r3, r1
2154: 688c and r2, r3
if (dat == (1<<bit))
2156: 64ca cmpne r2, r3
2158: 6403 mvcv r0
{
value = 1;
}
return value;
215a: 7400 zextb r0, r0
}
215c: 783c jmp r15
Disassembly of section .text.LPT_Soft_Reset:
00002160 <LPT_Soft_Reset>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void LPT_Soft_Reset(void)
{
LPT->RSSR |= (0X5<<12);
2160: 1064 lrw r3, 0x20000014 // 2170 <LPT_Soft_Reset+0x10>
2162: 9340 ld.w r2, (r3, 0x0)
2164: 9261 ld.w r3, (r2, 0x4)
2166: 3bac bseti r3, 12
2168: 3bae bseti r3, 14
216a: b261 st.w r3, (r2, 0x4)
}
216c: 783c jmp r15
216e: 0000 bkpt
2170: 20000014 .long 0x20000014
Disassembly of section .text.WWDT_CNT_Load:
00002174 <WWDT_CNT_Load>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void WWDT_CNT_Load(U8_T cnt_data)
{
WWDT->CR |= cnt_data; //SET
2174: 1063 lrw r3, 0x20000010 // 2180 <WWDT_CNT_Load+0xc>
2176: 9360 ld.w r3, (r3, 0x0)
2178: 9340 ld.w r2, (r3, 0x0)
217a: 6c08 or r0, r2
217c: b300 st.w r0, (r3, 0x0)
}
217e: 783c jmp r15
2180: 20000010 .long 0x20000010
Disassembly of section .text.BT_DeInit:
00002184 <BT_DeInit>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void BT_DeInit(CSP_BT_T *BTx)
{
BTx->RSSR=BT_RESET_VALUE;
2184: 3300 movi r3, 0
2186: b060 st.w r3, (r0, 0x0)
BTx->CR=BT_RESET_VALUE;
2188: b061 st.w r3, (r0, 0x4)
BTx->PSCR=BT_RESET_VALUE;
218a: b062 st.w r3, (r0, 0x8)
BTx->PRDR=BT_RESET_VALUE;
218c: b063 st.w r3, (r0, 0xc)
BTx->CMP=BT_RESET_VALUE;
218e: b064 st.w r3, (r0, 0x10)
BTx->CNT=BT_RESET_VALUE;
2190: b065 st.w r3, (r0, 0x14)
BTx->EVTRG=BT_RESET_VALUE;
2192: b066 st.w r3, (r0, 0x18)
BTx->EVSWF=BT_RESET_VALUE;
2194: b069 st.w r3, (r0, 0x24)
BTx->RISR=BT_RESET_VALUE;
2196: b06a st.w r3, (r0, 0x28)
BTx->IMCR=BT_RESET_VALUE;
2198: b06b st.w r3, (r0, 0x2c)
BTx->MISR=BT_RESET_VALUE;
219a: b06c st.w r3, (r0, 0x30)
BTx->ICR=BT_RESET_VALUE;
219c: b06d st.w r3, (r0, 0x34)
}
219e: 783c jmp r15
Disassembly of section .text.BT_Start:
000021a0 <BT_Start>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void BT_Start(CSP_BT_T *BTx)
{
BTx->RSSR |=0X01;
21a0: 9060 ld.w r3, (r0, 0x0)
21a2: 3ba0 bseti r3, 0
21a4: b060 st.w r3, (r0, 0x0)
}
21a6: 783c jmp r15
Disassembly of section .text.BT_Soft_Reset:
000021a8 <BT_Soft_Reset>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void BT_Soft_Reset(CSP_BT_T *BTx)
{
BTx->RSSR |= (0X5<<12);
21a8: 9060 ld.w r3, (r0, 0x0)
21aa: 3bac bseti r3, 12
21ac: 3bae bseti r3, 14
21ae: b060 st.w r3, (r0, 0x0)
}
21b0: 783c jmp r15
Disassembly of section .text.BT_Configure:
000021b2 <BT_Configure>:
//BT Configure
//EntryParameter:
//ReturnValue:NONE
/*************************************************************/
void BT_Configure(CSP_BT_T *BTx,BT_CLK_TypeDef BTCLK,U16_T PSCR_DATA,BT_SHDWSTP_TypeDef BTSHDWSTP,BT_OPM_TypeDef BTOPM,BT_EXTCKM_TypeDef BTEXTCKM)
{
21b2: 14c3 push r4-r6
21b4: 98a4 ld.w r5, (r14, 0x10)
21b6: 6d97 mov r6, r5
21b8: 9883 ld.w r4, (r14, 0xc)
BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM;
21ba: 6d18 or r4, r6
21bc: 6cd0 or r3, r4
21be: 90a1 ld.w r5, (r0, 0x4)
21c0: 6c4c or r1, r3
21c2: 6c54 or r1, r5
21c4: b021 st.w r1, (r0, 0x4)
BTx->PSCR = PSCR_DATA;
21c6: b042 st.w r2, (r0, 0x8)
}
21c8: 1483 pop r4-r6
Disassembly of section .text.BT_ControlSet_Configure:
000021ca <BT_ControlSet_Configure>:
//EntryParameter:
//ReturnValue:NONE
/*************************************************************/
void BT_ControlSet_Configure(CSP_BT_T *BTx,BT_STARTST_TypeDef BTSTART,BT_IDLEST_TypeDef BTIDLE,BT_SYNCEN_TypeDef BTSYNC,BT_SYNCMD_TypeDef BTSYNCMD,
BT_OSTMDX_TypeDef BTOSTMD,BT_AREARM_TypeDef BTAREARM,BT_CNTRLD_TypeDef BTCNTRLD)
{
21ca: 14c4 push r4-r7
21cc: 1421 subi r14, r14, 4
21ce: 9885 ld.w r4, (r14, 0x14)
21d0: 6dd3 mov r7, r4
21d2: 9886 ld.w r4, (r14, 0x18)
21d4: b880 st.w r4, (r14, 0x0)
21d6: 9887 ld.w r4, (r14, 0x1c)
21d8: 6d93 mov r6, r4
21da: 98a8 ld.w r5, (r14, 0x20)
BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD;
21dc: 6d58 or r5, r6
21de: 98c0 ld.w r6, (r14, 0x0)
21e0: 6d58 or r5, r6
21e2: 6d5c or r5, r7
21e4: 6cd4 or r3, r5
21e6: 6c8c or r2, r3
21e8: 9081 ld.w r4, (r0, 0x4)
21ea: 6c48 or r1, r2
21ec: 6d04 or r4, r1
21ee: 6d9f mov r6, r7
21f0: b081 st.w r4, (r0, 0x4)
}
21f2: 1401 addi r14, r14, 4
21f4: 1484 pop r4-r7
Disassembly of section .text.BT_Period_CMP_Write:
000021f6 <BT_Period_CMP_Write>:
//ReturnValue:NONE
/*************************************************************/
void BT_Period_CMP_Write(CSP_BT_T *BTx,U16_T BTPRDR_DATA,U16_T BTCMP_DATA)
{
//BTx->CR|=0X01<<2;
BTx->PRDR =BTPRDR_DATA;
21f6: b023 st.w r1, (r0, 0xc)
BTx->CMP =BTCMP_DATA;
21f8: b044 st.w r2, (r0, 0x10)
}
21fa: 783c jmp r15
Disassembly of section .text.BT_ConfigInterrupt_CMD:
000021fc <BT_ConfigInterrupt_CMD>:
//NewState:ENABLE,DISABLE
//ReturnValue:NONE
/*************************************************************/
void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X)
{
if (NewState != DISABLE)
21fc: 3940 cmpnei r1, 0
{
BTx->IMCR |= BT_IMSCR_X;
21fe: 906b ld.w r3, (r0, 0x2c)
if (NewState != DISABLE)
2200: 0c04 bf 0x2208 // 2208 <BT_ConfigInterrupt_CMD+0xc>
BTx->IMCR |= BT_IMSCR_X;
2202: 6c8c or r2, r3
2204: b04b st.w r2, (r0, 0x2c)
}
else
{
BTx->IMCR &= ~BT_IMSCR_X;
}
}
2206: 783c jmp r15
BTx->IMCR &= ~BT_IMSCR_X;
2208: 68c9 andn r3, r2
220a: b06b st.w r3, (r0, 0x2c)
}
220c: 07fd br 0x2206 // 2206 <BT_ConfigInterrupt_CMD+0xa>
Disassembly of section .text.BT1_INT_ENABLE:
00002210 <BT1_INT_ENABLE>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void BT1_INT_ENABLE(void)
{
INTC_ISER_WRITE(BT1_INT);
2210: 3380 movi r3, 128
2212: 4376 lsli r3, r3, 22
2214: 1042 lrw r2, 0xe000e100 // 221c <BT1_INT_ENABLE+0xc>
2216: b260 st.w r3, (r2, 0x0)
}
2218: 783c jmp r15
221a: 0000 bkpt
221c: e000e100 .long 0xe000e100
Disassembly of section .text.GPT_IO_Init:
00002220 <GPT_IO_Init>:
//EntryParameter:GPT_CHA_PB01,GPT_CHA_PA09,GPT_CHA_PA010,GPT_CHB_PA010,GPT_CHB_PA011,GPT_CHB_PB00,GPT_CHB_PB01
//ReturnValue:NONE
/*************************************************************/
void GPT_IO_Init(GPT_IOSET_TypeDef IONAME)
{
if(IONAME==GPT_CHA_PB01)
2220: 3840 cmpnei r0, 0
2222: 080a bt 0x2236 // 2236 <GPT_IO_Init+0x16>
{
GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050;
2224: 1165 lrw r3, 0x20000048 // 22b8 <GPT_IO_Init+0x98>
2226: 31f0 movi r1, 240
2228: 9340 ld.w r2, (r3, 0x0)
222a: 9260 ld.w r3, (r2, 0x0)
222c: 68c5 andn r3, r1
222e: 3ba4 bseti r3, 4
2230: 3ba6 bseti r3, 6
{
GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004;
}
if(IONAME==GPT_CHB_PB01)
{
GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060;
2232: b260 st.w r3, (r2, 0x0)
}
}
2234: 040b br 0x224a // 224a <GPT_IO_Init+0x2a>
if(IONAME==GPT_CHA_PA09)
2236: 3841 cmpnei r0, 1
2238: 080a bt 0x224c // 224c <GPT_IO_Init+0x2c>
GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050;
223a: 1161 lrw r3, 0x2000004c // 22bc <GPT_IO_Init+0x9c>
223c: 31f0 movi r1, 240
223e: 9340 ld.w r2, (r3, 0x0)
2240: 9261 ld.w r3, (r2, 0x4)
2242: 68c5 andn r3, r1
2244: 3ba4 bseti r3, 4
2246: 3ba6 bseti r3, 6
2248: b261 st.w r3, (r2, 0x4)
}
224a: 783c jmp r15
if(IONAME==GPT_CHA_PA010)
224c: 3842 cmpnei r0, 2
224e: 080b bt 0x2264 // 2264 <GPT_IO_Init+0x44>
GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600;
2250: 107b lrw r3, 0x2000004c // 22bc <GPT_IO_Init+0x9c>
2252: 32f0 movi r2, 240
2254: 9320 ld.w r1, (r3, 0x0)
2256: 9161 ld.w r3, (r1, 0x4)
2258: 4244 lsli r2, r2, 4
225a: 68c9 andn r3, r2
225c: 3ba9 bseti r3, 9
225e: 3baa bseti r3, 10
GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700;
2260: b161 st.w r3, (r1, 0x4)
2262: 07f4 br 0x224a // 224a <GPT_IO_Init+0x2a>
if(IONAME==GPT_CHB_PA010)
2264: 3843 cmpnei r0, 3
2266: 080b bt 0x227c // 227c <GPT_IO_Init+0x5c>
GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700;
2268: 1075 lrw r3, 0x2000004c // 22bc <GPT_IO_Init+0x9c>
226a: 32f0 movi r2, 240
226c: 9320 ld.w r1, (r3, 0x0)
226e: 4244 lsli r2, r2, 4
2270: 9161 ld.w r3, (r1, 0x4)
2272: 68c9 andn r3, r2
2274: 32e0 movi r2, 224
2276: 4243 lsli r2, r2, 3
2278: 6cc8 or r3, r2
227a: 07f3 br 0x2260 // 2260 <GPT_IO_Init+0x40>
if(IONAME==GPT_CHB_PA011)
227c: 3844 cmpnei r0, 4
227e: 080a bt 0x2292 // 2292 <GPT_IO_Init+0x72>
GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000;
2280: 106f lrw r3, 0x2000004c // 22bc <GPT_IO_Init+0x9c>
2282: 32f0 movi r2, 240
2284: 9320 ld.w r1, (r3, 0x0)
2286: 9161 ld.w r3, (r1, 0x4)
2288: 4248 lsli r2, r2, 8
228a: 68c9 andn r3, r2
228c: 3bad bseti r3, 13
228e: 3bae bseti r3, 14
2290: 07e8 br 0x2260 // 2260 <GPT_IO_Init+0x40>
if(IONAME==GPT_CHB_PB00)
2292: 3845 cmpnei r0, 5
2294: 0808 bt 0x22a4 // 22a4 <GPT_IO_Init+0x84>
GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004;
2296: 1069 lrw r3, 0x20000048 // 22b8 <GPT_IO_Init+0x98>
2298: 310f movi r1, 15
229a: 9340 ld.w r2, (r3, 0x0)
229c: 9260 ld.w r3, (r2, 0x0)
229e: 68c5 andn r3, r1
22a0: 3ba2 bseti r3, 2
22a2: 07c8 br 0x2232 // 2232 <GPT_IO_Init+0x12>
if(IONAME==GPT_CHB_PB01)
22a4: 3846 cmpnei r0, 6
22a6: 0bd2 bt 0x224a // 224a <GPT_IO_Init+0x2a>
GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060;
22a8: 1064 lrw r3, 0x20000048 // 22b8 <GPT_IO_Init+0x98>
22aa: 31f0 movi r1, 240
22ac: 9340 ld.w r2, (r3, 0x0)
22ae: 9260 ld.w r3, (r2, 0x0)
22b0: 68c5 andn r3, r1
22b2: 3ba5 bseti r3, 5
22b4: 3ba6 bseti r3, 6
22b6: 07be br 0x2232 // 2232 <GPT_IO_Init+0x12>
22b8: 20000048 .long 0x20000048
22bc: 2000004c .long 0x2000004c
Disassembly of section .text.GPT_Configure:
000022c0 <GPT_Configure>:
//GPT Init
//EntryParameter:
//ReturnValue:NONE
/*************************************************************/
void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX)
{
22c0: 14c1 push r4
GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX;
22c2: 6c48 or r1, r2
22c4: 1083 lrw r4, 0x20000024 // 22d0 <GPT_Configure+0x10>
22c6: 6c04 or r0, r1
22c8: 9480 ld.w r4, (r4, 0x0)
22ca: b400 st.w r0, (r4, 0x0)
GPT0->PSCR=GPSCX;
22cc: b462 st.w r3, (r4, 0x8)
}
22ce: 1481 pop r4
22d0: 20000024 .long 0x20000024
Disassembly of section .text.GPT_WaveCtrl_Configure:
000022d4 <GPT_WaveCtrl_Configure>:
/*************************************************************/
//GPT0->CR = (0X0<<0)|(0x00<<2)|(0x01<<3)|(0x00<<4)|(0X00<<6)|(0x01<<18)|(0x00<<9)|(0X00<<10)|(0x00<<11)|(0x00<<13) ;
//GPT0->CMPLDR=(0X00<<0)|(0X00<<1)|(0X03<<4)|(0X03<<7);
void GPT_WaveCtrl_Configure(GPT_CNTMD_TypeDef GCNTMDX,GPT_SWSYN_TypeDef GSWSYNX,GPT_IDLEST_TypeDef GIDLEX,GPT_PRDLD0_TypeDef GPRDLD0,GPT_OPM_TypeDef GOPMX,
GPT_BURST_TypeDef GBURSTX,GPT_CKS_TypeDef GCKS,GPT_CGSRC_TypeDef CGSRCX,GPT_CGFLT_TypeDef CGFLT,GPT_PSCLD_TypeDef PSCLDX)
{
22d4: 14c4 push r4-r7
22d6: 1423 subi r14, r14, 12
22d8: 9887 ld.w r4, (r14, 0x1c)
22da: 6dd3 mov r7, r4
22dc: 9888 ld.w r4, (r14, 0x20)
22de: b880 st.w r4, (r14, 0x0)
22e0: 9889 ld.w r4, (r14, 0x24)
22e2: b881 st.w r4, (r14, 0x4)
22e4: 988a ld.w r4, (r14, 0x28)
22e6: b882 st.w r4, (r14, 0x8)
22e8: 988b ld.w r4, (r14, 0x2c)
22ea: 6d93 mov r6, r4
22ec: 988c ld.w r4, (r14, 0x30)
GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE;
22ee: 3cb2 bseti r4, 18
22f0: 6d18 or r4, r6
22f2: 98c2 ld.w r6, (r14, 0x8)
22f4: 6d18 or r4, r6
22f6: 98c1 ld.w r6, (r14, 0x4)
22f8: 6d18 or r4, r6
22fa: 98c0 ld.w r6, (r14, 0x0)
22fc: 6d18 or r4, r6
22fe: 6d1c or r4, r7
2300: 6cd0 or r3, r4
2302: 6c8c or r2, r3
2304: 6c48 or r1, r2
2306: 10a4 lrw r5, 0x20000024 // 2314 <GPT_WaveCtrl_Configure+0x40>
2308: 6c04 or r0, r1
230a: 95a0 ld.w r5, (r5, 0x0)
230c: 6d9f mov r6, r7
230e: b503 st.w r0, (r5, 0xc)
}
2310: 1403 addi r14, r14, 12
2312: 1484 pop r4-r7
2314: 20000024 .long 0x20000024
Disassembly of section .text.GPT_WaveLoad_Configure:
00002318 <GPT_WaveLoad_Configure>:
//GPT Wave control Init
//EntryParameter:
//ReturnValue:NONE
/*************************************************************/
void GPT_WaveLoad_Configure(GPT_SHDWAQA_TypeDef SHDWAQAX,GPT_SHDWAQB_TypeDef SHDWAQBX,GPT_AQLDA_TypeDef AQLDAX, GPT_AQLDB_TypeDef AQLDBX)
{
2318: 14c1 push r4
GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX;
231a: 6c8c or r2, r3
231c: 6c48 or r1, r2
231e: 1083 lrw r4, 0x20000024 // 2328 <GPT_WaveLoad_Configure+0x10>
2320: 6c04 or r0, r1
2322: 9480 ld.w r4, (r4, 0x0)
2324: b411 st.w r0, (r4, 0x44)
}
2326: 1481 pop r4
2328: 20000024 .long 0x20000024
Disassembly of section .text.GPT_WaveOut_Configure:
0000232c <GPT_WaveOut_Configure>:
//EntryParameter:
//ReturnValue:NONE
/*************************************************************/
void GPT_WaveOut_Configure(GPT_GPTCHX_TypeDef GPTCHX,GPT_CASEL_TypeDef CASELX,GPT_CBSEL_TypeDef CBSELX,U8_T ZROX,U8_T PRDX,U8_T CAUX,
U8_T CADX,U8_T CBUX,U8_T CBDX,U8_T T1UX,U8_T T1DX,U8_T T2UX,U8_T T2DX)
{
232c: 14c4 push r4-r7
232e: 1425 subi r14, r14, 20
2330: 1c09 addi r4, r14, 36
2332: 8480 ld.b r4, (r4, 0x0)
2334: b880 st.w r4, (r14, 0x0)
2336: 1c0a addi r4, r14, 40
2338: 8480 ld.b r4, (r4, 0x0)
233a: b881 st.w r4, (r14, 0x4)
233c: 1c0b addi r4, r14, 44
233e: 8480 ld.b r4, (r4, 0x0)
2340: b882 st.w r4, (r14, 0x8)
2342: 1c0c addi r4, r14, 48
2344: 8480 ld.b r4, (r4, 0x0)
2346: b883 st.w r4, (r14, 0xc)
2348: 1c0d addi r4, r14, 52
234a: 8480 ld.b r4, (r4, 0x0)
234c: 1e10 addi r6, r14, 64
234e: b884 st.w r4, (r14, 0x10)
2350: 1d0f addi r5, r14, 60
2352: 1c0e addi r4, r14, 56
2354: 86e0 ld.b r7, (r6, 0x0)
if(GPTCHX==GPT_CHA)
2356: 3840 cmpnei r0, 0
{
2358: 1e11 addi r6, r14, 68
235a: 8480 ld.b r4, (r4, 0x0)
235c: 85a0 ld.b r5, (r5, 0x0)
235e: 86c0 ld.b r6, (r6, 0x0)
if(GPTCHX==GPT_CHA)
2360: 081f bt 0x239e // 239e <GPT_WaveOut_Configure+0x72>
{
GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18);
2362: 47f0 lsli r7, r7, 16
2364: 46d2 lsli r6, r6, 18
2366: 45ae lsli r5, r5, 14
2368: 6dd8 or r7, r6
236a: 6dd4 or r7, r5
236c: 448c lsli r4, r4, 12
236e: 6dd0 or r7, r4
2370: 9884 ld.w r4, (r14, 0x10)
2372: 448a lsli r4, r4, 10
2374: 6dd0 or r7, r4
2376: 9883 ld.w r4, (r14, 0xc)
2378: 4488 lsli r4, r4, 8
237a: 98a2 ld.w r5, (r14, 0x8)
237c: 6d1c or r4, r7
237e: 45e6 lsli r7, r5, 6
2380: 6d1c or r4, r7
2382: 6c90 or r2, r4
2384: 6cc8 or r3, r2
2386: 9841 ld.w r2, (r14, 0x4)
2388: 4244 lsli r2, r2, 4
238a: 6cc8 or r3, r2
238c: 6c4c or r1, r3
238e: 9860 ld.w r3, (r14, 0x0)
2390: 4362 lsli r3, r3, 2
2392: 1013 lrw r0, 0x20000024 // 23dc <GPT_WaveOut_Configure+0xb0>
2394: 6c4c or r1, r3
2396: 9000 ld.w r0, (r0, 0x0)
2398: b032 st.w r1, (r0, 0x48)
}
if(GPTCHX==GPT_CHB)
{
GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18);
}
}
239a: 1405 addi r14, r14, 20
239c: 1484 pop r4-r7
if(GPTCHX==GPT_CHB)
239e: 3841 cmpnei r0, 1
23a0: 0bfd bt 0x239a // 239a <GPT_WaveOut_Configure+0x6e>
GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18);
23a2: 47f0 lsli r7, r7, 16
23a4: 46d2 lsli r6, r6, 18
23a6: 45ae lsli r5, r5, 14
23a8: 6dd8 or r7, r6
23aa: 6dd4 or r7, r5
23ac: 448c lsli r4, r4, 12
23ae: 6dd0 or r7, r4
23b0: 9884 ld.w r4, (r14, 0x10)
23b2: 448a lsli r4, r4, 10
23b4: 6dd0 or r7, r4
23b6: 9883 ld.w r4, (r14, 0xc)
23b8: 4488 lsli r4, r4, 8
23ba: 98a2 ld.w r5, (r14, 0x8)
23bc: 6d1c or r4, r7
23be: 45e6 lsli r7, r5, 6
23c0: 6d1c or r4, r7
23c2: 6c90 or r2, r4
23c4: 6cc8 or r3, r2
23c6: 9841 ld.w r2, (r14, 0x4)
23c8: 4244 lsli r2, r2, 4
23ca: 6cc8 or r3, r2
23cc: 6c4c or r1, r3
23ce: 9860 ld.w r3, (r14, 0x0)
23d0: 4362 lsli r3, r3, 2
23d2: 1003 lrw r0, 0x20000024 // 23dc <GPT_WaveOut_Configure+0xb0>
23d4: 6c4c or r1, r3
23d6: 9000 ld.w r0, (r0, 0x0)
23d8: b033 st.w r1, (r0, 0x4c)
}
23da: 07e0 br 0x239a // 239a <GPT_WaveOut_Configure+0x6e>
23dc: 20000024 .long 0x20000024
Disassembly of section .text.GPT_Start:
000023e0 <GPT_Start>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void GPT_Start(void)
{
GPT0->RSSR |= 0X01;
23e0: 1063 lrw r3, 0x20000024 // 23ec <GPT_Start+0xc>
23e2: 9340 ld.w r2, (r3, 0x0)
23e4: 9261 ld.w r3, (r2, 0x4)
23e6: 3ba0 bseti r3, 0
23e8: b261 st.w r3, (r2, 0x4)
}
23ea: 783c jmp r15
23ec: 20000024 .long 0x20000024
Disassembly of section .text.GPT_Period_CMP_Write:
000023f0 <GPT_Period_CMP_Write>:
//EntryParameter:
//ReturnValue:NONE
/*************************************************************/
void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA)
{
GPT0->PRDR =PRDR_DATA;
23f0: 1063 lrw r3, 0x20000024 // 23fc <GPT_Period_CMP_Write+0xc>
23f2: 9360 ld.w r3, (r3, 0x0)
23f4: b309 st.w r0, (r3, 0x24)
GPT0->CMPA =CMPA_DATA;
23f6: b32b st.w r1, (r3, 0x2c)
GPT0->CMPB =CMPB_DATA;
23f8: b34c st.w r2, (r3, 0x30)
}
23fa: 783c jmp r15
23fc: 20000024 .long 0x20000024
Disassembly of section .text.GPT_ConfigInterrupt_CMD:
00002400 <GPT_ConfigInterrupt_CMD>:
//EntryParameter:LPT_IMSCR_X,NewState
//NewState:ENABLE,DISABLE
//ReturnValue:NONE
/*************************************************************/
void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X)
{
2400: 1066 lrw r3, 0x20000024 // 2418 <GPT_ConfigInterrupt_CMD+0x18>
if (NewState != DISABLE)
2402: 3840 cmpnei r0, 0
{
GPT0->IMCR |= GPT_IMSCR_X;
2404: 9360 ld.w r3, (r3, 0x0)
2406: 237f addi r3, 128
2408: 9356 ld.w r2, (r3, 0x58)
if (NewState != DISABLE)
240a: 0c04 bf 0x2412 // 2412 <GPT_ConfigInterrupt_CMD+0x12>
GPT0->IMCR |= GPT_IMSCR_X;
240c: 6c48 or r1, r2
240e: b336 st.w r1, (r3, 0x58)
}
else
{
GPT0->IMCR &= ~GPT_IMSCR_X;
}
}
2410: 783c jmp r15
GPT0->IMCR &= ~GPT_IMSCR_X;
2412: 6885 andn r2, r1
2414: b356 st.w r2, (r3, 0x58)
}
2416: 07fd br 0x2410 // 2410 <GPT_ConfigInterrupt_CMD+0x10>
2418: 20000024 .long 0x20000024
Disassembly of section .text.UART0_DeInit:
0000241c <UART0_DeInit>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void UART0_DeInit(void)
{
UART0->DATA = UART_RESET_VALUE;
241c: 1065 lrw r3, 0x20000040 // 2430 <UART0_DeInit+0x14>
241e: 3200 movi r2, 0
2420: 9360 ld.w r3, (r3, 0x0)
2422: b340 st.w r2, (r3, 0x0)
UART0->SR = UART_RESET_VALUE;
2424: b341 st.w r2, (r3, 0x4)
UART0->CTRL = UART_RESET_VALUE;
2426: b342 st.w r2, (r3, 0x8)
UART0->ISR = UART_RESET_VALUE;
2428: b343 st.w r2, (r3, 0xc)
UART0->BRDIV =UART_RESET_VALUE;
242a: b344 st.w r2, (r3, 0x10)
}
242c: 783c jmp r15
242e: 0000 bkpt
2430: 20000040 .long 0x20000040
Disassembly of section .text.UART1_DeInit:
00002434 <UART1_DeInit>:
void UART1_DeInit(void)
{
UART1->DATA = UART_RESET_VALUE;
2434: 1065 lrw r3, 0x2000003c // 2448 <UART1_DeInit+0x14>
2436: 3200 movi r2, 0
2438: 9360 ld.w r3, (r3, 0x0)
243a: b340 st.w r2, (r3, 0x0)
UART1->SR = UART_RESET_VALUE;
243c: b341 st.w r2, (r3, 0x4)
UART1->CTRL = UART_RESET_VALUE;
243e: b342 st.w r2, (r3, 0x8)
UART1->ISR = UART_RESET_VALUE;
2440: b343 st.w r2, (r3, 0xc)
UART1->BRDIV =UART_RESET_VALUE;
2442: b344 st.w r2, (r3, 0x10)
}
2444: 783c jmp r15
2446: 0000 bkpt
2448: 2000003c .long 0x2000003c
Disassembly of section .text.UART2_DeInit:
0000244c <UART2_DeInit>:
void UART2_DeInit(void)
{
UART2->DATA = UART_RESET_VALUE;
244c: 1065 lrw r3, 0x20000038 // 2460 <UART2_DeInit+0x14>
244e: 3200 movi r2, 0
2450: 9360 ld.w r3, (r3, 0x0)
2452: b340 st.w r2, (r3, 0x0)
UART2->SR = UART_RESET_VALUE;
2454: b341 st.w r2, (r3, 0x4)
UART2->CTRL = UART_RESET_VALUE;
2456: b342 st.w r2, (r3, 0x8)
UART2->ISR = UART_RESET_VALUE;
2458: b343 st.w r2, (r3, 0xc)
UART2->BRDIV =UART_RESET_VALUE;
245a: b344 st.w r2, (r3, 0x10)
}
245c: 783c jmp r15
245e: 0000 bkpt
2460: 20000038 .long 0x20000038
Disassembly of section .text.UART1_Int_Enable:
00002464 <UART1_Int_Enable>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void UART1_Int_Enable(void)
{
UART1->ISR=0x0F; //clear UART1 INT status
2464: 1065 lrw r3, 0x2000003c // 2478 <UART1_Int_Enable+0x14>
2466: 320f movi r2, 15
2468: 9360 ld.w r3, (r3, 0x0)
246a: b343 st.w r2, (r3, 0xc)
INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802
246c: 3380 movi r3, 128
246e: 4367 lsli r3, r3, 7
2470: 1043 lrw r2, 0xe000e100 // 247c <UART1_Int_Enable+0x18>
2472: b260 st.w r3, (r2, 0x0)
}
2474: 783c jmp r15
2476: 0000 bkpt
2478: 2000003c .long 0x2000003c
247c: e000e100 .long 0xe000e100
Disassembly of section .text.UART2_Int_Enable:
00002480 <UART2_Int_Enable>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void UART2_Int_Enable(void)
{
UART2->ISR=0x0F; //clear UART1 INT status
2480: 1065 lrw r3, 0x20000038 // 2494 <UART2_Int_Enable+0x14>
2482: 320f movi r2, 15
2484: 9360 ld.w r3, (r3, 0x0)
2486: b343 st.w r2, (r3, 0xc)
INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802
2488: 3380 movi r3, 128
248a: 4368 lsli r3, r3, 8
248c: 1043 lrw r2, 0xe000e100 // 2498 <UART2_Int_Enable+0x18>
248e: b260 st.w r3, (r2, 0x0)
}
2490: 783c jmp r15
2492: 0000 bkpt
2494: 20000038 .long 0x20000038
2498: e000e100 .long 0xe000e100
Disassembly of section .text.UART_IO_Init:
0000249c <UART_IO_Init>:
//UART_IO_G:0 1
//ReturnValue:NONE
/*************************************************************/
void UART_IO_Init(UART_NUM_TypeDef IO_UART_NUM , U8_T UART_IO_G)
{
if (IO_UART_NUM==IO_UART0)
249c: 3840 cmpnei r0, 0
249e: 0821 bt 0x24e0 // 24e0 <UART_IO_Init+0x44>
{
if(UART_IO_G==0)
24a0: 3940 cmpnei r1, 0
24a2: 080a bt 0x24b6 // 24b6 <UART_IO_Init+0x1a>
{
GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0
24a4: 1177 lrw r3, 0x2000004c // 2580 <UART_IO_Init+0xe4>
24a6: 31ff movi r1, 255
24a8: 9340 ld.w r2, (r3, 0x0)
24aa: 9260 ld.w r3, (r2, 0x0)
24ac: 68c5 andn r3, r1
24ae: 3ba2 bseti r3, 2
24b0: 3ba6 bseti r3, 6
}
if (IO_UART_NUM==IO_UART2)
{
if(UART_IO_G==0)
{
GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2
24b2: b260 st.w r3, (r2, 0x0)
24b4: 0415 br 0x24de // 24de <UART_IO_Init+0x42>
else if(UART_IO_G==1)
24b6: 3941 cmpnei r1, 1
24b8: 0813 bt 0x24de // 24de <UART_IO_Init+0x42>
GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0
24ba: 1172 lrw r3, 0x2000004c // 2580 <UART_IO_Init+0xe4>
24bc: 31f0 movi r1, 240
24be: 9340 ld.w r2, (r3, 0x0)
24c0: 9260 ld.w r3, (r2, 0x0)
24c2: 4130 lsli r1, r1, 16
24c4: 68c5 andn r3, r1
24c6: 31e0 movi r1, 224
24c8: 412f lsli r1, r1, 15
24ca: 6cc4 or r3, r1
24cc: b260 st.w r3, (r2, 0x0)
GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000;
24ce: 31f0 movi r1, 240
24d0: 9261 ld.w r3, (r2, 0x4)
24d2: 412c lsli r1, r1, 12
24d4: 68c5 andn r3, r1
24d6: 31e0 movi r1, 224
24d8: 412b lsli r1, r1, 11
24da: 6cc4 or r3, r1
24dc: b261 st.w r3, (r2, 0x4)
else if(UART_IO_G==2)
{
GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2
}
}
}
24de: 783c jmp r15
if (IO_UART_NUM==IO_UART1)
24e0: 3841 cmpnei r0, 1
24e2: 082d bt 0x253c // 253c <UART_IO_Init+0xa0>
if(UART_IO_G==0)
24e4: 3940 cmpnei r1, 0
24e6: 0814 bt 0x250e // 250e <UART_IO_Init+0x72>
GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1
24e8: 1167 lrw r3, 0x20000048 // 2584 <UART_IO_Init+0xe8>
24ea: 310f movi r1, 15
24ec: 9340 ld.w r2, (r3, 0x0)
24ee: 9260 ld.w r3, (r2, 0x0)
24f0: 68c5 andn r3, r1
24f2: 3107 movi r1, 7
24f4: 6cc4 or r3, r1
24f6: b260 st.w r3, (r2, 0x0)
GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000;
24f8: 32f0 movi r2, 240
24fa: 1162 lrw r3, 0x2000004c // 2580 <UART_IO_Init+0xe4>
24fc: 4250 lsli r2, r2, 16
24fe: 9320 ld.w r1, (r3, 0x0)
2500: 9161 ld.w r3, (r1, 0x4)
2502: 68c9 andn r3, r2
2504: 32e0 movi r2, 224
2506: 424f lsli r2, r2, 15
GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1
2508: 6cc8 or r3, r2
250a: b161 st.w r3, (r1, 0x4)
250c: 07e9 br 0x24de // 24de <UART_IO_Init+0x42>
else if(UART_IO_G==1)
250e: 3941 cmpnei r1, 1
2510: 080c bt 0x2528 // 2528 <UART_IO_Init+0x8c>
GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1
2512: 107c lrw r3, 0x2000004c // 2580 <UART_IO_Init+0xe4>
2514: 32ff movi r2, 255
2516: 9320 ld.w r1, (r3, 0x0)
2518: 424c lsli r2, r2, 12
251a: 9160 ld.w r3, (r1, 0x0)
251c: 68c9 andn r3, r2
251e: 32ee movi r2, 238
2520: 424b lsli r2, r2, 11
GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2
2522: 6cc8 or r3, r2
2524: b160 st.w r3, (r1, 0x0)
}
2526: 07dc br 0x24de // 24de <UART_IO_Init+0x42>
else if(UART_IO_G==2)
2528: 3942 cmpnei r1, 2
252a: 0bda bt 0x24de // 24de <UART_IO_Init+0x42>
GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1
252c: 1075 lrw r3, 0x2000004c // 2580 <UART_IO_Init+0xe4>
252e: 32ee movi r2, 238
2530: 9320 ld.w r1, (r3, 0x0)
2532: 9161 ld.w r3, (r1, 0x4)
2534: 4368 lsli r3, r3, 8
2536: 4b68 lsri r3, r3, 8
2538: 4257 lsli r2, r2, 23
253a: 07e7 br 0x2508 // 2508 <UART_IO_Init+0x6c>
if (IO_UART_NUM==IO_UART2)
253c: 3842 cmpnei r0, 2
253e: 0bd0 bt 0x24de // 24de <UART_IO_Init+0x42>
if(UART_IO_G==0)
2540: 3940 cmpnei r1, 0
2542: 0809 bt 0x2554 // 2554 <UART_IO_Init+0xb8>
GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2
2544: 106f lrw r3, 0x2000004c // 2580 <UART_IO_Init+0xe4>
2546: 31ff movi r1, 255
2548: 9340 ld.w r2, (r3, 0x0)
254a: 9260 ld.w r3, (r2, 0x0)
254c: 68c5 andn r3, r1
254e: 3177 movi r1, 119
2550: 6cc4 or r3, r1
2552: 07b0 br 0x24b2 // 24b2 <UART_IO_Init+0x16>
else if(UART_IO_G==1)
2554: 3941 cmpnei r1, 1
2556: 0809 bt 0x2568 // 2568 <UART_IO_Init+0xcc>
GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2
2558: 106a lrw r3, 0x2000004c // 2580 <UART_IO_Init+0xe4>
255a: 32ee movi r2, 238
255c: 9320 ld.w r1, (r3, 0x0)
255e: 9160 ld.w r3, (r1, 0x0)
2560: 4368 lsli r3, r3, 8
2562: 4b68 lsri r3, r3, 8
2564: 4257 lsli r2, r2, 23
2566: 07de br 0x2522 // 2522 <UART_IO_Init+0x86>
else if(UART_IO_G==2)
2568: 3942 cmpnei r1, 2
256a: 0bba bt 0x24de // 24de <UART_IO_Init+0x42>
GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2
256c: 1066 lrw r3, 0x20000048 // 2584 <UART_IO_Init+0xe8>
256e: 32ff movi r2, 255
2570: 9320 ld.w r1, (r3, 0x0)
2572: 4250 lsli r2, r2, 16
2574: 9160 ld.w r3, (r1, 0x0)
2576: 68c9 andn r3, r2
2578: 32cc movi r2, 204
257a: 424f lsli r2, r2, 15
257c: 07d3 br 0x2522 // 2522 <UART_IO_Init+0x86>
257e: 0000 bkpt
2580: 2000004c .long 0x2000004c
2584: 20000048 .long 0x20000048
Disassembly of section .text.UARTInitRxTxIntEn:
00002588 <UARTInitRxTxIntEn>:
//ReturnValue:NONE
/*************************************************************/
void UARTInitRxTxIntEn(CSP_UART_T *uart,U16_T baudrate_u16,UART_PAR_TypeDef PAR_DAT)
{
// Set Transmitter Enable
CSP_UART_SET_CTRL(uart, UART_TX | UART_RX | UART_RX_INT | UART_TX_INT | PAR_DAT | UART_TX_DONE_INT);
2588: 1063 lrw r3, 0x8000f // 2594 <UARTInitRxTxIntEn+0xc>
258a: 6c8c or r2, r3
258c: b042 st.w r2, (r0, 0x8)
// Set Baudrate
CSP_UART_SET_BRDIV(uart, baudrate_u16);
258e: b024 st.w r1, (r0, 0x10)
}
2590: 783c jmp r15
2592: 0000 bkpt
2594: 0008000f .long 0x0008000f
Disassembly of section .text.UARTTransmit:
00002598 <UARTTransmit>:
//UART Transmit
//EntryParameter:UART0,UART1,UART2,sourceAddress_u16,length_u16
//ReturnValue:NONE
/*************************************************************/
void UARTTransmit(CSP_UART_T *uart,U8_T *sourceAddress_u16,U16_T length_u16)
{
2598: 14c2 push r4-r5
unsigned int DataI,DataJ;
for(DataJ = 0;DataJ < length_u16 ;DataJ ++)
259a: 6cc7 mov r3, r1
{
CSP_UART_SET_DATA(uart,*sourceAddress_u16++);
do{
DataI = CSP_UART_GET_SR(uart);
DataI = DataI & UART_TX_FULL;
259c: 3501 movi r5, 1
for(DataJ = 0;DataJ < length_u16 ;DataJ ++)
259e: 5b85 subu r4, r3, r1
25a0: 6490 cmphs r4, r2
25a2: 0c02 bf 0x25a6 // 25a6 <UARTTransmit+0xe>
}while(DataI == UART_TX_FULL); //Loop when tx is full
}
}
25a4: 1482 pop r4-r5
CSP_UART_SET_DATA(uart,*sourceAddress_u16++);
25a6: 8380 ld.b r4, (r3, 0x0)
25a8: b080 st.w r4, (r0, 0x0)
DataI = CSP_UART_GET_SR(uart);
25aa: 9081 ld.w r4, (r0, 0x4)
DataI = DataI & UART_TX_FULL;
25ac: 6914 and r4, r5
}while(DataI == UART_TX_FULL); //Loop when tx is full
25ae: 3c40 cmpnei r4, 0
25b0: 0bfd bt 0x25aa // 25aa <UARTTransmit+0x12>
25b2: 2300 addi r3, 1
25b4: 07f5 br 0x259e // 259e <UARTTransmit+0x6>
Disassembly of section .text.EPT_Stop:
000025b8 <EPT_Stop>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void EPT_Stop(void)
{
EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
25b8: 1068 lrw r3, 0x20000020 // 25d8 <EPT_Stop+0x20>
25ba: 3280 movi r2, 128
25bc: 9360 ld.w r3, (r3, 0x0)
25be: 608c addu r2, r3
25c0: 1027 lrw r1, 0xa55ac73a // 25dc <EPT_Stop+0x24>
25c2: b23a st.w r1, (r2, 0x68)
EPT0->RSSR&=0Xfe;
25c4: 9341 ld.w r2, (r3, 0x4)
25c6: 31fe movi r1, 254
25c8: 6884 and r2, r1
25ca: b341 st.w r2, (r3, 0x4)
while(EPT0->RSSR&0x01);
25cc: 3101 movi r1, 1
25ce: 9341 ld.w r2, (r3, 0x4)
25d0: 6884 and r2, r1
25d2: 3a40 cmpnei r2, 0
25d4: 0bfd bt 0x25ce // 25ce <EPT_Stop+0x16>
}
25d6: 783c jmp r15
25d8: 20000020 .long 0x20000020
25dc: a55ac73a .long 0xa55ac73a
Disassembly of section .text.Page_ProgramData:
000025e0 <Page_ProgramData>:
IFC->CR=0X01; //Start Program
}
}
//Normal mode, when the call is completed once, it will delay 4.2ms in the program
void Page_ProgramData(unsigned int FlashAdd,unsigned int DataSize,volatile unsigned char *BufArry)
{
25e0: 14c4 push r4-r7
25e2: 1422 subi r14, r14, 8
int i,DataBuffer;
//Page cache wipe 1
SetUserKey;
25e4: 1165 lrw r3, 0x20000060 // 2678 <Page_ProgramData+0x98>
25e6: 1186 lrw r4, 0x5a5a5a5a // 267c <Page_ProgramData+0x9c>
25e8: 9360 ld.w r3, (r3, 0x0)
25ea: b388 st.w r4, (r3, 0x20)
IFC->CMR=0x07;
25ec: 3407 movi r4, 7
25ee: b383 st.w r4, (r3, 0xc)
IFC->FM_ADDR=FlashAdd;
IFC->CR=0X01; //Start Program
25f0: 3401 movi r4, 1
IFC->FM_ADDR=FlashAdd;
25f2: b306 st.w r0, (r3, 0x18)
IFC->CR=0X01; //Start Program
25f4: b384 st.w r4, (r3, 0x10)
while(IFC->CR!=0x0); //Wait for the operation to complete
25f6: 9384 ld.w r4, (r3, 0x10)
25f8: 3c40 cmpnei r4, 0
25fa: 0bfe bt 0x25f6 // 25f6 <Page_ProgramData+0x16>
//Write data to the cache 2
for(i=0;i<((DataSize+3)/4);i++) //sizeof structure
25fc: 2102 addi r1, 3
25fe: 4922 lsri r1, r1, 2
2600: 4122 lsli r1, r1, 2
2602: 6048 addu r1, r2
2604: b820 st.w r1, (r14, 0x0)
2606: 5829 subu r1, r0, r2
2608: b821 st.w r1, (r14, 0x4)
260a: 9820 ld.w r1, (r14, 0x0)
260c: 644a cmpne r2, r1
260e: 0826 bt 0x265a // 265a <Page_ProgramData+0x7a>
*(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer;
BufArry +=4;
}
//Pre-programmed operation settings 3
SetUserKey;
IFC->CMR=0x06;
2610: 3106 movi r1, 6
SetUserKey;
2612: 105b lrw r2, 0x5a5a5a5a // 267c <Page_ProgramData+0x9c>
2614: b348 st.w r2, (r3, 0x20)
IFC->CMR=0x06;
2616: b323 st.w r1, (r3, 0xc)
IFC->FM_ADDR=FlashAdd;
IFC->CR=0X01; //Start Program
2618: 3101 movi r1, 1
IFC->FM_ADDR=FlashAdd;
261a: b306 st.w r0, (r3, 0x18)
IFC->CR=0X01; //Start Program
261c: b324 st.w r1, (r3, 0x10)
while(IFC->CR!=0x0); //Wait for the operation to complete
261e: 9324 ld.w r1, (r3, 0x10)
2620: 3940 cmpnei r1, 0
2622: 0bfe bt 0x261e // 261e <Page_ProgramData+0x3e>
//Perform pre-programming 4
SetUserKey;
2624: b348 st.w r2, (r3, 0x20)
IFC->CMR=0x01;
2626: 3201 movi r2, 1
2628: b343 st.w r2, (r3, 0xc)
IFC->FM_ADDR=FlashAdd; //
262a: b306 st.w r0, (r3, 0x18)
IFC->CR=0X01; //Start Program
262c: b344 st.w r2, (r3, 0x10)
while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete
262e: 934a ld.w r2, (r3, 0x28)
2630: 3a44 cmpnei r2, 4
2632: 0bfe bt 0x262e // 262e <Page_ProgramData+0x4e>
//Page erase 5
SetUserKey;
IFC->CMR=0x02;
2634: 3102 movi r1, 2
SetUserKey;
2636: 1052 lrw r2, 0x5a5a5a5a // 267c <Page_ProgramData+0x9c>
2638: b348 st.w r2, (r3, 0x20)
IFC->CMR=0x02;
263a: b323 st.w r1, (r3, 0xc)
IFC->FM_ADDR=FlashAdd; //
IFC->CR=0X01; //Start Program
263c: 3101 movi r1, 1
IFC->FM_ADDR=FlashAdd; //
263e: b306 st.w r0, (r3, 0x18)
IFC->CR=0X01; //Start Program
2640: b324 st.w r1, (r3, 0x10)
while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete
2642: 932a ld.w r1, (r3, 0x28)
2644: 3941 cmpnei r1, 1
2646: 0bfe bt 0x2642 // 2642 <Page_ProgramData+0x62>
//Write page cache data to flash memory 6
SetUserKey;
2648: b348 st.w r2, (r3, 0x20)
IFC->CMR=0x01;
264a: b323 st.w r1, (r3, 0xc)
IFC->FM_ADDR=FlashAdd; //
264c: b306 st.w r0, (r3, 0x18)
IFC->CR=0X01; //Start Program
264e: b324 st.w r1, (r3, 0x10)
while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete
2650: 934a ld.w r2, (r3, 0x28)
2652: 3a42 cmpnei r2, 2
2654: 0bfe bt 0x2650 // 2650 <Page_ProgramData+0x70>
}
2656: 1402 addi r14, r14, 8
2658: 1484 pop r4-r7
DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24);
265a: 82e0 ld.b r7, (r2, 0x0)
265c: 8281 ld.b r4, (r2, 0x1)
265e: 4488 lsli r4, r4, 8
2660: 8222 ld.b r1, (r2, 0x2)
2662: 611c addu r4, r7
2664: 82a3 ld.b r5, (r2, 0x3)
2666: 4130 lsli r1, r1, 16
2668: 98c1 ld.w r6, (r14, 0x4)
266a: 6050 addu r1, r4
266c: 45b8 lsli r5, r5, 24
266e: 6188 addu r6, r2
2670: 6054 addu r1, r5
*(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer;
2672: b620 st.w r1, (r6, 0x0)
BufArry +=4;
2674: 2203 addi r2, 4
2676: 07ca br 0x260a // 260a <Page_ProgramData+0x2a>
2678: 20000060 .long 0x20000060
267c: 5a5a5a5a .long 0x5a5a5a5a
Disassembly of section .text.ReadDataArry_U8:
00002680 <ReadDataArry_U8>:
//ReadFlashData fuction return Data arry save in Flash
//EntryParameter:RdStartAddDataLength*DataArryPoint
//ReturnValue:NONE
*************************************************************/
void ReadDataArry_U8(unsigned int RdStartAdd,unsigned int DataLength,volatile unsigned char *DataArryPoint)
{
2680: 14c3 push r4-r6
unsigned int i;
for (i=0;i<DataLength;i++)
2682: 3300 movi r3, 0
{
if((i!=0)&&(i%4==0))
2684: 3503 movi r5, 3
for (i=0;i<DataLength;i++)
2686: 644e cmpne r3, r1
2688: 5acc addu r6, r2, r3
268a: 0802 bt 0x268e // 268e <ReadDataArry_U8+0xe>
RdStartAdd +=4;
}
*DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4));
DataArryPoint++;
}
}
268c: 1483 pop r4-r6
if((i!=0)&&(i%4==0))
268e: 3b40 cmpnei r3, 0
2690: 0c06 bf 0x269c // 269c <ReadDataArry_U8+0x1c>
2692: 6d0f mov r4, r3
2694: 6914 and r4, r5
2696: 3c40 cmpnei r4, 0
2698: 0802 bt 0x269c // 269c <ReadDataArry_U8+0x1c>
RdStartAdd +=4;
269a: 2003 addi r0, 4
*DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4));
269c: 6d0f mov r4, r3
269e: 6914 and r4, r5
26a0: 6100 addu r4, r0
26a2: 8480 ld.b r4, (r4, 0x0)
26a4: a680 st.b r4, (r6, 0x0)
for (i=0;i<DataLength;i++)
26a6: 2300 addi r3, 1
26a8: 07ef br 0x2686 // 2686 <ReadDataArry_U8+0x6>
Disassembly of section .text.startup.main:
000026ac <main>:
/***************************************************/
//main
/**************************************************/
int main(void)
{
26ac: 14d0 push r15
// delay_nms(2000);
APT32F102_init(); //102 initial
26ae: e000009f bsr 0x27ec // 27ec <APT32F102_init>
Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!");
26b2: 1029 lrw r1, 0x4db4 // 26d4 <main+0x28>
26b4: 3000 movi r0, 0
26b6: e00007df bsr 0x3674 // 3674 <Dbg_Println>
while(1)
{
SYSCON_IWDCNT_Reload(); //IWDT Clear
26ba: e3fffaf5 bsr 0x1ca4 // 1ca4 <SYSCON_IWDCNT_Reload>
UART1_TASK();
26be: e000067d bsr 0x33b8 // 33b8 <UART1_TASK>
DIP_ScanTask();
26c2: e0000843 bsr 0x3748 // 3748 <DIP_ScanTask>
BLV_RLY_Task();
26c6: e0000993 bsr 0x39ec // 39ec <BLV_RLY_Task>
CTRL_LEDStatus_Task();
26ca: e0000c03 bsr 0x3ed0 // 3ed0 <CTRL_LEDStatus_Task>
BUS485Send_Task();
26ce: e0000775 bsr 0x35b8 // 35b8 <BUS485Send_Task>
26d2: 07f4 br 0x26ba // 26ba <main+0xe>
26d4: 00004db4 .long 0x00004db4
Disassembly of section .text.delay_nms:
000026d8 <delay_nms>:
//software delay
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void delay_nms(unsigned int t)
{
26d8: 14d0 push r15
26da: 1423 subi r14, r14, 12
volatile unsigned int i,j ,k=0;
j = 50* t;
26dc: 3232 movi r2, 50
volatile unsigned int i,j ,k=0;
26de: 3300 movi r3, 0
j = 50* t;
26e0: 7c08 mult r0, r2
volatile unsigned int i,j ,k=0;
26e2: b862 st.w r3, (r14, 0x8)
j = 50* t;
26e4: b801 st.w r0, (r14, 0x4)
for ( i = 0; i < j; i++ )
26e6: b860 st.w r3, (r14, 0x0)
26e8: 9840 ld.w r2, (r14, 0x0)
26ea: 9861 ld.w r3, (r14, 0x4)
26ec: 64c8 cmphs r2, r3
26ee: 0c03 bf 0x26f4 // 26f4 <delay_nms+0x1c>
{
k++;
SYSCON_IWDCNT_Reload();
}
}
26f0: 1403 addi r14, r14, 12
26f2: 1490 pop r15
k++;
26f4: 9862 ld.w r3, (r14, 0x8)
26f6: 2300 addi r3, 1
26f8: b862 st.w r3, (r14, 0x8)
SYSCON_IWDCNT_Reload();
26fa: e3fffad5 bsr 0x1ca4 // 1ca4 <SYSCON_IWDCNT_Reload>
for ( i = 0; i < j; i++ )
26fe: 9860 ld.w r3, (r14, 0x0)
2700: 2300 addi r3, 1
2702: 07f2 br 0x26e6 // 26e6 <delay_nms+0xe>
Disassembly of section .text.delay_nus:
00002704 <delay_nus>:
void delay_nus(unsigned int t)
{
2704: 1423 subi r14, r14, 12
volatile unsigned int i,j ,k=0;
2706: 3300 movi r3, 0
2708: b862 st.w r3, (r14, 0x8)
j = 1* t;
270a: b801 st.w r0, (r14, 0x4)
for ( i = 0; i < j; i++ )
270c: b860 st.w r3, (r14, 0x0)
270e: 9840 ld.w r2, (r14, 0x0)
2710: 9861 ld.w r3, (r14, 0x4)
2712: 64c8 cmphs r2, r3
2714: 0c03 bf 0x271a // 271a <delay_nus+0x16>
{
k++;
}
}
2716: 1403 addi r14, r14, 12
2718: 783c jmp r15
k++;
271a: 9862 ld.w r3, (r14, 0x8)
271c: 2300 addi r3, 1
271e: b862 st.w r3, (r14, 0x8)
for ( i = 0; i < j; i++ )
2720: 9860 ld.w r3, (r14, 0x0)
2722: 2300 addi r3, 1
2724: 07f4 br 0x270c // 270c <delay_nus+0x8>
Disassembly of section .text.BT_CONFIG:
00002728 <BT_CONFIG>:
//BT Initial
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void BT_CONFIG(void)
{
2728: 14d2 push r4-r5, r15
272a: 1424 subi r14, r14, 16
// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND);
// BT0_INT_ENABLE();
//100us
BT_DeInit(BT1);
272c: 1095 lrw r4, 0x20000008 // 2780 <BT_CONFIG+0x58>
BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV);
272e: 3500 movi r5, 0
BT_DeInit(BT1);
2730: 9400 ld.w r0, (r4, 0x0)
2732: e3fffd29 bsr 0x2184 // 2184 <BT_DeInit>
BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV);
2736: 9400 ld.w r0, (r4, 0x0)
2738: b8a1 st.w r5, (r14, 0x4)
273a: b8a0 st.w r5, (r14, 0x0)
273c: 3308 movi r3, 8
273e: 3200 movi r2, 0
2740: 3101 movi r1, 1
2742: e3fffd38 bsr 0x21b2 // 21b2 <BT_Configure>
BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN);
2746: 3380 movi r3, 128
2748: 4363 lsli r3, r3, 3
274a: b861 st.w r3, (r14, 0x4)
274c: 9400 ld.w r0, (r4, 0x0)
274e: 3300 movi r3, 0
2750: b8a3 st.w r5, (r14, 0xc)
2752: b8a2 st.w r5, (r14, 0x8)
2754: b8a0 st.w r5, (r14, 0x0)
2756: 3200 movi r2, 0
2758: 3180 movi r1, 128
275a: e3fffd38 bsr 0x21ca // 21ca <BT_ControlSet_Configure>
BT_Period_CMP_Write(BT1,4780,1);
275e: 3201 movi r2, 1
2760: 1029 lrw r1, 0x12ac // 2784 <BT_CONFIG+0x5c>
2762: 9400 ld.w r0, (r4, 0x0)
2764: e3fffd49 bsr 0x21f6 // 21f6 <BT_Period_CMP_Write>
BT_Start(BT1);
2768: 9400 ld.w r0, (r4, 0x0)
276a: e3fffd1b bsr 0x21a0 // 21a0 <BT_Start>
BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP);
276e: 9400 ld.w r0, (r4, 0x0)
2770: 3202 movi r2, 2
2772: 3101 movi r1, 1
2774: e3fffd44 bsr 0x21fc // 21fc <BT_ConfigInterrupt_CMD>
BT1_INT_ENABLE();
2778: e3fffd4c bsr 0x2210 // 2210 <BT1_INT_ENABLE>
}
277c: 1404 addi r14, r14, 16
277e: 1492 pop r4-r5, r15
2780: 20000008 .long 0x20000008
2784: 000012ac .long 0x000012ac
Disassembly of section .text.SYSCON_CONFIG:
00002788 <SYSCON_CONFIG>:
//syscon Functions
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void SYSCON_CONFIG(void)
{
2788: 14d0 push r15
278a: 1421 subi r14, r14, 4
//------SYSTEM CLK AND PCLK FUNTION---------------------------/
SYSCON_RST_VALUE(); //SYSCON all register clr
278c: e3fff9d8 bsr 0x1b3c // 1b3c <SYSCON_RST_VALUE>
SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source
2790: 3101 movi r1, 1
2792: 3001 movi r0, 1
2794: e3fff9fa bsr 0x1b88 // 1b88 <SYSCON_General_CMD>
//EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns
//SYSCON_General_CMD(ENABLE,ENDIS_EMOSC);
SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz
2798: 3000 movi r0, 0
279a: e3fffa53 bsr 0x1c40 // 1c40 <SYSCON_HFOSC_SELECTE>
SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div
279e: 3180 movi r1, 128
27a0: 3308 movi r3, 8
27a2: 3200 movi r2, 0
27a4: 4121 lsli r1, r1, 1
27a6: 3002 movi r0, 2
27a8: e3fffa08 bsr 0x1bb8 // 1bb8 <SystemCLK_HCLKDIV_PCLKDIV_Config>
//------------ WDT FUNTION --------------------------------/
SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S
27ac: 3080 movi r0, 128
27ae: 3118 movi r1, 24
27b0: 4002 lsli r0, r0, 2
27b2: e3fffa83 bsr 0x1cb8 // 1cb8 <SYSCON_IWDCNT_Config>
SYSCON_WDT_CMD(ENABLE); //enable/disable WDT
27b6: 3001 movi r0, 1
27b8: e3fffa58 bsr 0x1c68 // 1c68 <SYSCON_WDT_CMD>
SYSCON_IWDCNT_Reload(); //reload WDT
27bc: e3fffa74 bsr 0x1ca4 // 1ca4 <SYSCON_IWDCNT_Reload>
IWDT_Int_Enable();
27c0: e3fffaa6 bsr 0x1d0c // 1d0c <IWDT_Int_Enable>
//WWDT_CMD(ENABLE); //enable wwdt
//------------ CLO Output --------------------------------/
//SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting
//SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div
//------------ LVD FUNTION --------------------------------/
SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable
27c4: 3340 movi r3, 64
27c6: b860 st.w r3, (r14, 0x0)
27c8: 31c0 movi r1, 192
27ca: 3380 movi r3, 128
27cc: 4364 lsli r3, r3, 4
27ce: 3200 movi r2, 0
27d0: 4123 lsli r1, r1, 3
27d2: 3000 movi r0, 0
27d4: e3fffa7e bsr 0x1cd0 // 1cd0 <SYSCON_LVD_Config>
LVD_Int_Enable();
27d8: e3fffa8c bsr 0x1cf0 // 1cf0 <LVD_Int_Enable>
//------------ SYSCON Vector --------------------------------/
SYSCON_Int_Enable(); //SYSCON VECTOR
27dc: e3fffaea bsr 0x1db0 // 1db0 <SYSCON_Int_Enable>
//SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT
//------------------------------------------------------------/
//OSC CLOCK Calibration
//------------------------------------------------------------/
std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system
27e0: 3000 movi r0, 0
27e2: e0001105 bsr 0x49ec // 49ec <std_clk_calib>
}
27e6: 1401 addi r14, r14, 4
27e8: 1490 pop r15
Disassembly of section .text.APT32F102_init:
000027ec <APT32F102_init>:
//APT32F102_init /
//EntryParameter:NONE /
//ReturnValue:NONE /
/*********************************************************************************/
void APT32F102_init(void)
{
27ec: 14d0 push r15
//------------------------------------------------------------/
//Peripheral clock enable and disable
//EntryParameter:NONE
//ReturnValue:NONE
//------------------------------------------------------------/
SYSCON->PCER0=0xFFFFFFF; //PCLK Enable
27ee: 1070 lrw r3, 0x2000005c // 282c <APT32F102_init+0x40>
SYSCON->PCER1=0xFFFFFFF; //PCLK Enable
while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled
27f0: 3101 movi r1, 1
SYSCON->PCER0=0xFFFFFFF; //PCLK Enable
27f2: 9340 ld.w r2, (r3, 0x0)
27f4: 106f lrw r3, 0xfffffff // 2830 <APT32F102_init+0x44>
27f6: b26a st.w r3, (r2, 0x28)
SYSCON->PCER1=0xFFFFFFF; //PCLK Enable
27f8: b26d st.w r3, (r2, 0x34)
while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled
27fa: 926c ld.w r3, (r2, 0x30)
27fc: 68c4 and r3, r1
27fe: 3b40 cmpnei r3, 0
2800: 0ffd bf 0x27fa // 27fa <APT32F102_init+0xe>
//------------------------------------------------------------/
//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt
//EntryParameter:NONE
//ReturnValue:NONE
//------------------------------------------------------------/
SYSCON_CONFIG(); //syscon initial
2802: e3ffffc3 bsr 0x2788 // 2788 <SYSCON_CONFIG>
CK_CPU_EnAllNormalIrq(); //enable all IRQ
2806: e0000507 bsr 0x3214 // 3214 <CK_CPU_EnAllNormalIrq>
SYSCON_INT_Priority(); //initial all Priority=0xC0
280a: e3fffadf bsr 0x1dc8 // 1dc8 <SYSCON_INT_Priority>
// 03
Set_INT_Priority(UART1_IRQ,1); //串口优先级最高
280e: 3101 movi r1, 1
2810: 300e movi r0, 14
2812: e3fffaed bsr 0x1dec // 1dec <Set_INT_Priority>
//------------------------------------------------------------/
//Other IP config
//------------------------------------------------------------/
BT_CONFIG(); //BT initial
2816: e3ffff89 bsr 0x2728 // 2728 <BT_CONFIG>
UARTx_Init(UART_1,BLV_RLY_RS485_Pro);
281a: 1027 lrw r1, 0x3dcc // 2834 <APT32F102_init+0x48>
281c: 3001 movi r0, 1
281e: e0000501 bsr 0x3220 // 3220 <UARTx_Init>
DIP_Switch_Init();
2822: e000074b bsr 0x36b8 // 36b8 <DIP_Switch_Init>
Relay_Init();
2826: e00007df bsr 0x37e4 // 37e4 <Relay_Init>
}
282a: 1490 pop r15
282c: 2000005c .long 0x2000005c
2830: 0fffffff .long 0x0fffffff
2834: 00003dcc .long 0x00003dcc
Disassembly of section .text.SYSCONIntHandler:
00002838 <SYSCONIntHandler>:
//SYSCON Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void SYSCONIntHandler(void)
{
2838: 1460 nie
283a: 1462 ipush
// ISR content ...
nop;
283c: 6c03 mov r0, r0
if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt
283e: 117a lrw r3, 0x2000005c // 2924 <SYSCONIntHandler+0xec>
2840: 3280 movi r2, 128
2842: 9360 ld.w r3, (r3, 0x0)
2844: 60c8 addu r3, r2
2846: 9323 ld.w r1, (r3, 0xc)
2848: 3001 movi r0, 1
284a: 6840 and r1, r0
284c: 3940 cmpnei r1, 0
284e: 0c04 bf 0x2856 // 2856 <SYSCONIntHandler+0x1e>
{
SYSCON->ICR = EMOSC_ST;
}
else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt
{
SYSCON->ICR = HFOSC_ST;
2850: b301 st.w r0, (r3, 0x4)
}
else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt
{
SYSCON->ICR = CMD_ERR_ST;
}
}
2852: 1463 ipop
2854: 1461 nir
else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt
2856: 9323 ld.w r1, (r3, 0xc)
2858: 3002 movi r0, 2
285a: 6840 and r1, r0
285c: 3940 cmpnei r1, 0
285e: 0bf9 bt 0x2850 // 2850 <SYSCONIntHandler+0x18>
else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt
2860: 9323 ld.w r1, (r3, 0xc)
2862: 3008 movi r0, 8
2864: 6840 and r1, r0
2866: 3940 cmpnei r1, 0
2868: 0bf4 bt 0x2850 // 2850 <SYSCONIntHandler+0x18>
else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt
286a: 9323 ld.w r1, (r3, 0xc)
286c: 3010 movi r0, 16
286e: 6840 and r1, r0
2870: 3940 cmpnei r1, 0
2872: 0bef bt 0x2850 // 2850 <SYSCONIntHandler+0x18>
else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt
2874: 9323 ld.w r1, (r3, 0xc)
2876: 6848 and r1, r2
2878: 3940 cmpnei r1, 0
287a: 0c03 bf 0x2880 // 2880 <SYSCONIntHandler+0x48>
SYSCON->ICR = CMD_ERR_ST;
287c: b341 st.w r2, (r3, 0x4)
}
287e: 07ea br 0x2852 // 2852 <SYSCONIntHandler+0x1a>
else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt
2880: 3280 movi r2, 128
2882: 9323 ld.w r1, (r3, 0xc)
2884: 4241 lsli r2, r2, 1
2886: 6848 and r1, r2
2888: 3940 cmpnei r1, 0
288a: 0bf9 bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST)
288c: 3280 movi r2, 128
288e: 9323 ld.w r1, (r3, 0xc)
2890: 4242 lsli r2, r2, 2
2892: 6848 and r1, r2
2894: 3940 cmpnei r1, 0
2896: 0bf3 bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt
2898: 3280 movi r2, 128
289a: 9323 ld.w r1, (r3, 0xc)
289c: 4243 lsli r2, r2, 3
289e: 6848 and r1, r2
28a0: 3940 cmpnei r1, 0
28a2: 0bed bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt
28a4: 3280 movi r2, 128
28a6: 9323 ld.w r1, (r3, 0xc)
28a8: 4244 lsli r2, r2, 4
28aa: 6848 and r1, r2
28ac: 3940 cmpnei r1, 0
28ae: 0c03 bf 0x28b4 // 28b4 <SYSCONIntHandler+0x7c>
nop;
28b0: 6c03 mov r0, r0
28b2: 07e5 br 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt
28b4: 3280 movi r2, 128
28b6: 9323 ld.w r1, (r3, 0xc)
28b8: 4245 lsli r2, r2, 5
28ba: 6848 and r1, r2
28bc: 3940 cmpnei r1, 0
28be: 0bdf bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt
28c0: 3280 movi r2, 128
28c2: 9323 ld.w r1, (r3, 0xc)
28c4: 4246 lsli r2, r2, 6
28c6: 6848 and r1, r2
28c8: 3940 cmpnei r1, 0
28ca: 0bd9 bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt
28cc: 3280 movi r2, 128
28ce: 9323 ld.w r1, (r3, 0xc)
28d0: 4247 lsli r2, r2, 7
28d2: 6848 and r1, r2
28d4: 3940 cmpnei r1, 0
28d6: 0bd3 bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt
28d8: 3280 movi r2, 128
28da: 9323 ld.w r1, (r3, 0xc)
28dc: 424b lsli r2, r2, 11
28de: 6848 and r1, r2
28e0: 3940 cmpnei r1, 0
28e2: 0bcd bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt
28e4: 3280 movi r2, 128
28e6: 9323 ld.w r1, (r3, 0xc)
28e8: 424c lsli r2, r2, 12
28ea: 6848 and r1, r2
28ec: 3940 cmpnei r1, 0
28ee: 0bc7 bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt
28f0: 3280 movi r2, 128
28f2: 9323 ld.w r1, (r3, 0xc)
28f4: 424d lsli r2, r2, 13
28f6: 6848 and r1, r2
28f8: 3940 cmpnei r1, 0
28fa: 0bc1 bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt
28fc: 3280 movi r2, 128
28fe: 9323 ld.w r1, (r3, 0xc)
2900: 424e lsli r2, r2, 14
2902: 6848 and r1, r2
2904: 3940 cmpnei r1, 0
2906: 0bbb bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt
2908: 3280 movi r2, 128
290a: 9323 ld.w r1, (r3, 0xc)
290c: 424f lsli r2, r2, 15
290e: 6848 and r1, r2
2910: 3940 cmpnei r1, 0
2912: 0bb5 bt 0x287c // 287c <SYSCONIntHandler+0x44>
else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt
2914: 3280 movi r2, 128
2916: 9323 ld.w r1, (r3, 0xc)
2918: 4256 lsli r2, r2, 22
291a: 6848 and r1, r2
291c: 3940 cmpnei r1, 0
291e: 0baf bt 0x287c // 287c <SYSCONIntHandler+0x44>
2920: 0799 br 0x2852 // 2852 <SYSCONIntHandler+0x1a>
2922: 0000 bkpt
2924: 2000005c .long 0x2000005c
Disassembly of section .text.IFCIntHandler:
00002928 <IFCIntHandler>:
//IFC Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void IFCIntHandler(void)
{
2928: 1460 nie
292a: 1462 ipush
// ISR content ...
if(IFC->MISR&ERS_END_INT)
292c: 1078 lrw r3, 0x20000060 // 298c <IFCIntHandler+0x64>
292e: 3101 movi r1, 1
2930: 9360 ld.w r3, (r3, 0x0)
2932: 934b ld.w r2, (r3, 0x2c)
2934: 6884 and r2, r1
2936: 3a40 cmpnei r2, 0
2938: 0c04 bf 0x2940 // 2940 <IFCIntHandler+0x18>
{
IFC->ICR=RGM_END_INT;
}
else if(IFC->MISR&PEP_END_INT)
{
IFC->ICR=PEP_END_INT;
293a: b32c st.w r1, (r3, 0x30)
}
else if(IFC->MISR&OVW_ERR_INT)
{
IFC->ICR=OVW_ERR_INT;
}
}
293c: 1463 ipop
293e: 1461 nir
else if(IFC->MISR&RGM_END_INT)
2940: 934b ld.w r2, (r3, 0x2c)
2942: 3102 movi r1, 2
2944: 6884 and r2, r1
2946: 3a40 cmpnei r2, 0
2948: 0bf9 bt 0x293a // 293a <IFCIntHandler+0x12>
else if(IFC->MISR&PEP_END_INT)
294a: 934b ld.w r2, (r3, 0x2c)
294c: 3104 movi r1, 4
294e: 6884 and r2, r1
2950: 3a40 cmpnei r2, 0
2952: 0bf4 bt 0x293a // 293a <IFCIntHandler+0x12>
else if(IFC->MISR&PROT_ERR_INT)
2954: 3280 movi r2, 128
2956: 932b ld.w r1, (r3, 0x2c)
2958: 4245 lsli r2, r2, 5
295a: 6848 and r1, r2
295c: 3940 cmpnei r1, 0
295e: 0c03 bf 0x2964 // 2964 <IFCIntHandler+0x3c>
IFC->ICR=OVW_ERR_INT;
2960: b34c st.w r2, (r3, 0x30)
}
2962: 07ed br 0x293c // 293c <IFCIntHandler+0x14>
else if(IFC->MISR&UDEF_ERR_INT)
2964: 3280 movi r2, 128
2966: 932b ld.w r1, (r3, 0x2c)
2968: 4246 lsli r2, r2, 6
296a: 6848 and r1, r2
296c: 3940 cmpnei r1, 0
296e: 0bf9 bt 0x2960 // 2960 <IFCIntHandler+0x38>
else if(IFC->MISR&ADDR_ERR_INT)
2970: 3280 movi r2, 128
2972: 932b ld.w r1, (r3, 0x2c)
2974: 4247 lsli r2, r2, 7
2976: 6848 and r1, r2
2978: 3940 cmpnei r1, 0
297a: 0bf3 bt 0x2960 // 2960 <IFCIntHandler+0x38>
else if(IFC->MISR&OVW_ERR_INT)
297c: 3280 movi r2, 128
297e: 932b ld.w r1, (r3, 0x2c)
2980: 4248 lsli r2, r2, 8
2982: 6848 and r1, r2
2984: 3940 cmpnei r1, 0
2986: 0bed bt 0x2960 // 2960 <IFCIntHandler+0x38>
2988: 07da br 0x293c // 293c <IFCIntHandler+0x14>
298a: 0000 bkpt
298c: 20000060 .long 0x20000060
Disassembly of section .text.ADCIntHandler:
00002990 <ADCIntHandler>:
//ADC Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void ADCIntHandler(void)
{
2990: 1460 nie
2992: 1462 ipush
// ISR content ...
if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt
2994: 1078 lrw r3, 0x20000050 // 29f4 <ADCIntHandler+0x64>
2996: 3101 movi r1, 1
2998: 9360 ld.w r3, (r3, 0x0)
299a: 9348 ld.w r2, (r3, 0x20)
299c: 6884 and r2, r1
299e: 3a40 cmpnei r2, 0
29a0: 0c04 bf 0x29a8 // 29a8 <ADCIntHandler+0x18>
{
ADC0->CSR = ADC12_CMP1H;
}
else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt.
{
ADC0->CSR = ADC12_CMP1L;
29a2: b327 st.w r1, (r3, 0x1c)
}
else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15
{
ADC0->CSR = ADC12_SEQ_END0;
}
}
29a4: 1463 ipop
29a6: 1461 nir
else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt
29a8: 9348 ld.w r2, (r3, 0x20)
29aa: 3102 movi r1, 2
29ac: 6884 and r2, r1
29ae: 3a40 cmpnei r2, 0
29b0: 0bf9 bt 0x29a2 // 29a2 <ADCIntHandler+0x12>
else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt
29b2: 9348 ld.w r2, (r3, 0x20)
29b4: 3104 movi r1, 4
29b6: 6884 and r2, r1
29b8: 3a40 cmpnei r2, 0
29ba: 0bf4 bt 0x29a2 // 29a2 <ADCIntHandler+0x12>
else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt
29bc: 9348 ld.w r2, (r3, 0x20)
29be: 3110 movi r1, 16
29c0: 6884 and r2, r1
29c2: 3a40 cmpnei r2, 0
29c4: 0bef bt 0x29a2 // 29a2 <ADCIntHandler+0x12>
else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt.
29c6: 9348 ld.w r2, (r3, 0x20)
29c8: 3120 movi r1, 32
29ca: 6884 and r2, r1
29cc: 3a40 cmpnei r2, 0
29ce: 0bea bt 0x29a2 // 29a2 <ADCIntHandler+0x12>
else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt.
29d0: 9348 ld.w r2, (r3, 0x20)
29d2: 3140 movi r1, 64
29d4: 6884 and r2, r1
29d6: 3a40 cmpnei r2, 0
29d8: 0be5 bt 0x29a2 // 29a2 <ADCIntHandler+0x12>
else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt.
29da: 9348 ld.w r2, (r3, 0x20)
29dc: 3180 movi r1, 128
29de: 6884 and r2, r1
29e0: 3a40 cmpnei r2, 0
29e2: 0be0 bt 0x29a2 // 29a2 <ADCIntHandler+0x12>
else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15
29e4: 3280 movi r2, 128
29e6: 9328 ld.w r1, (r3, 0x20)
29e8: 4249 lsli r2, r2, 9
29ea: 6848 and r1, r2
29ec: 3940 cmpnei r1, 0
29ee: 0fdb bf 0x29a4 // 29a4 <ADCIntHandler+0x14>
ADC0->CSR = ADC12_SEQ_END0;
29f0: b347 st.w r2, (r3, 0x1c)
}
29f2: 07d9 br 0x29a4 // 29a4 <ADCIntHandler+0x14>
29f4: 20000050 .long 0x20000050
Disassembly of section .text.EPT0IntHandler:
000029f8 <EPT0IntHandler>:
//EPT0 Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void EPT0IntHandler(void)
{
29f8: 1460 nie
29fa: 1462 ipush
29fc: 14d1 push r4, r15
// ISR content ...
if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt
29fe: 1387 lrw r4, 0x20000020 // 2b98 <EPT0IntHandler+0x1a0>
2a00: 3280 movi r2, 128
2a02: 9460 ld.w r3, (r4, 0x0)
2a04: 60c8 addu r3, r2
2a06: 9335 ld.w r1, (r3, 0x54)
2a08: 3001 movi r0, 1
2a0a: 6840 and r1, r0
2a0c: 3940 cmpnei r1, 0
2a0e: 0c03 bf 0x2a14 // 2a14 <EPT0IntHandler+0x1c>
EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT);
R_CMPB_BUF=EPT0->CMPB; //Duty counter
}
else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt
{
EPT0->ICR=EPT_CAP_LD2;
2a10: b317 st.w r0, (r3, 0x5c)
2a12: 0424 br 0x2a5a // 2a5a <EPT0IntHandler+0x62>
else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt
2a14: 9335 ld.w r1, (r3, 0x54)
2a16: 3002 movi r0, 2
2a18: 6840 and r1, r0
2a1a: 3940 cmpnei r1, 0
2a1c: 0bfa bt 0x2a10 // 2a10 <EPT0IntHandler+0x18>
else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt
2a1e: 9335 ld.w r1, (r3, 0x54)
2a20: 3004 movi r0, 4
2a22: 6840 and r1, r0
2a24: 3940 cmpnei r1, 0
2a26: 0bf5 bt 0x2a10 // 2a10 <EPT0IntHandler+0x18>
else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt
2a28: 9335 ld.w r1, (r3, 0x54)
2a2a: 3008 movi r0, 8
2a2c: 6840 and r1, r0
2a2e: 3940 cmpnei r1, 0
2a30: 0bf0 bt 0x2a10 // 2a10 <EPT0IntHandler+0x18>
else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt
2a32: 9335 ld.w r1, (r3, 0x54)
2a34: 3010 movi r0, 16
2a36: 6840 and r1, r0
2a38: 3940 cmpnei r1, 0
2a3a: 0c1f bf 0x2a78 // 2a78 <EPT0IntHandler+0x80>
EPT0->ICR=EPT_CAP_LD0;
2a3c: b317 st.w r0, (r3, 0x5c)
EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT);
2a3e: 3200 movi r2, 0
2a40: 3101 movi r1, 1
2a42: 3000 movi r0, 0
2a44: e3fff972 bsr 0x1d28 // 1d28 <EXTI_trigger_CMD>
EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT);
2a48: 3201 movi r2, 1
2a4a: 3101 movi r1, 1
2a4c: 3001 movi r0, 1
2a4e: e3fff96d bsr 0x1d28 // 1d28 <EXTI_trigger_CMD>
R_CMPA_BUF=EPT0->CMPA; //Low voltage counter
2a52: 9460 ld.w r3, (r4, 0x0)
2a54: 934b ld.w r2, (r3, 0x2c)
2a56: 1272 lrw r3, 0x2000014c // 2b9c <EPT0IntHandler+0x1a4>
R_CMPB_BUF=EPT0->CMPB; //Duty counter
2a58: b340 st.w r2, (r3, 0x0)
EPT0->ICR=EPT_PEND;
//EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0);
EPT_Stop();
}
//Emergency interruption
if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event
2a5a: 9460 ld.w r3, (r4, 0x0)
2a5c: 3280 movi r2, 128
2a5e: 60c8 addu r3, r2
2a60: 932b ld.w r1, (r3, 0x2c)
2a62: 3001 movi r0, 1
2a64: 6840 and r1, r0
2a66: 3940 cmpnei r1, 0
2a68: 0c61 bf 0x2b2a // 2b2a <EPT0IntHandler+0x132>
{
EPT0->EMICR=EPT_EP5_EMINT;
}
else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event
{
EPT0->EMICR=EPT_EP6_EMINT;
2a6a: b30d st.w r0, (r3, 0x34)
}
else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event
{
EPT0->EMICR=EPT_EOM_FAULT_EMINT;
}
}
2a6c: d9ee2001 ld.w r15, (r14, 0x4)
2a70: 9880 ld.w r4, (r14, 0x0)
2a72: 1402 addi r14, r14, 8
2a74: 1463 ipop
2a76: 1461 nir
else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt
2a78: 9335 ld.w r1, (r3, 0x54)
2a7a: 3020 movi r0, 32
2a7c: 6840 and r1, r0
2a7e: 3940 cmpnei r1, 0
2a80: 0c10 bf 0x2aa0 // 2aa0 <EPT0IntHandler+0xa8>
EPT0->ICR=EPT_CAP_LD1;
2a82: b317 st.w r0, (r3, 0x5c)
EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT);
2a84: 3200 movi r2, 0
2a86: 3101 movi r1, 1
2a88: 3001 movi r0, 1
2a8a: e3fff94f bsr 0x1d28 // 1d28 <EXTI_trigger_CMD>
EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT);
2a8e: 3201 movi r2, 1
2a90: 3101 movi r1, 1
2a92: 3000 movi r0, 0
2a94: e3fff94a bsr 0x1d28 // 1d28 <EXTI_trigger_CMD>
R_CMPB_BUF=EPT0->CMPB; //Duty counter
2a98: 9460 ld.w r3, (r4, 0x0)
2a9a: 934c ld.w r2, (r3, 0x30)
2a9c: 1261 lrw r3, 0x20000148 // 2ba0 <EPT0IntHandler+0x1a8>
2a9e: 07dd br 0x2a58 // 2a58 <EPT0IntHandler+0x60>
else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt
2aa0: 9335 ld.w r1, (r3, 0x54)
2aa2: 3040 movi r0, 64
2aa4: 6840 and r1, r0
2aa6: 3940 cmpnei r1, 0
2aa8: 0bb4 bt 0x2a10 // 2a10 <EPT0IntHandler+0x18>
else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt
2aaa: 9335 ld.w r1, (r3, 0x54)
2aac: 6848 and r1, r2
2aae: 3940 cmpnei r1, 0
2ab0: 0c03 bf 0x2ab6 // 2ab6 <EPT0IntHandler+0xbe>
EPT0->ICR=EPT_CDD;
2ab2: b357 st.w r2, (r3, 0x5c)
2ab4: 07d3 br 0x2a5a // 2a5a <EPT0IntHandler+0x62>
else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt
2ab6: 3280 movi r2, 128
2ab8: 9335 ld.w r1, (r3, 0x54)
2aba: 4241 lsli r2, r2, 1
2abc: 6848 and r1, r2
2abe: 3940 cmpnei r1, 0
2ac0: 0bf9 bt 0x2ab2 // 2ab2 <EPT0IntHandler+0xba>
else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt
2ac2: 3280 movi r2, 128
2ac4: 9335 ld.w r1, (r3, 0x54)
2ac6: 4242 lsli r2, r2, 2
2ac8: 6848 and r1, r2
2aca: 3940 cmpnei r1, 0
2acc: 0bf3 bt 0x2ab2 // 2ab2 <EPT0IntHandler+0xba>
else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt
2ace: 3280 movi r2, 128
2ad0: 9335 ld.w r1, (r3, 0x54)
2ad2: 4243 lsli r2, r2, 3
2ad4: 6848 and r1, r2
2ad6: 3940 cmpnei r1, 0
2ad8: 0bed bt 0x2ab2 // 2ab2 <EPT0IntHandler+0xba>
else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt
2ada: 3280 movi r2, 128
2adc: 9335 ld.w r1, (r3, 0x54)
2ade: 4244 lsli r2, r2, 4
2ae0: 6848 and r1, r2
2ae2: 3940 cmpnei r1, 0
2ae4: 0be7 bt 0x2ab2 // 2ab2 <EPT0IntHandler+0xba>
else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt
2ae6: 3280 movi r2, 128
2ae8: 9335 ld.w r1, (r3, 0x54)
2aea: 4245 lsli r2, r2, 5
2aec: 6848 and r1, r2
2aee: 3940 cmpnei r1, 0
2af0: 0be1 bt 0x2ab2 // 2ab2 <EPT0IntHandler+0xba>
else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt
2af2: 3280 movi r2, 128
2af4: 9335 ld.w r1, (r3, 0x54)
2af6: 4246 lsli r2, r2, 6
2af8: 6848 and r1, r2
2afa: 3940 cmpnei r1, 0
2afc: 0bdb bt 0x2ab2 // 2ab2 <EPT0IntHandler+0xba>
else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt
2afe: 3280 movi r2, 128
2b00: 9335 ld.w r1, (r3, 0x54)
2b02: 4247 lsli r2, r2, 7
2b04: 6848 and r1, r2
2b06: 3940 cmpnei r1, 0
2b08: 0bd5 bt 0x2ab2 // 2ab2 <EPT0IntHandler+0xba>
else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt
2b0a: 3280 movi r2, 128
2b0c: 9335 ld.w r1, (r3, 0x54)
2b0e: 4248 lsli r2, r2, 8
2b10: 6848 and r1, r2
2b12: 3940 cmpnei r1, 0
2b14: 0bcf bt 0x2ab2 // 2ab2 <EPT0IntHandler+0xba>
else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt
2b16: 3280 movi r2, 128
2b18: 9335 ld.w r1, (r3, 0x54)
2b1a: 4249 lsli r2, r2, 9
2b1c: 6848 and r1, r2
2b1e: 3940 cmpnei r1, 0
2b20: 0f9d bf 0x2a5a // 2a5a <EPT0IntHandler+0x62>
EPT0->ICR=EPT_PEND;
2b22: b357 st.w r2, (r3, 0x5c)
EPT_Stop();
2b24: e3fffd4a bsr 0x25b8 // 25b8 <EPT_Stop>
2b28: 0799 br 0x2a5a // 2a5a <EPT0IntHandler+0x62>
else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event
2b2a: 932b ld.w r1, (r3, 0x2c)
2b2c: 3002 movi r0, 2
2b2e: 6840 and r1, r0
2b30: 3940 cmpnei r1, 0
2b32: 0b9c bt 0x2a6a // 2a6a <EPT0IntHandler+0x72>
else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event
2b34: 932b ld.w r1, (r3, 0x2c)
2b36: 3004 movi r0, 4
2b38: 6840 and r1, r0
2b3a: 3940 cmpnei r1, 0
2b3c: 0b97 bt 0x2a6a // 2a6a <EPT0IntHandler+0x72>
else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event
2b3e: 932b ld.w r1, (r3, 0x2c)
2b40: 3008 movi r0, 8
2b42: 6840 and r1, r0
2b44: 3940 cmpnei r1, 0
2b46: 0b92 bt 0x2a6a // 2a6a <EPT0IntHandler+0x72>
else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event
2b48: 932b ld.w r1, (r3, 0x2c)
2b4a: 3010 movi r0, 16
2b4c: 6840 and r1, r0
2b4e: 3940 cmpnei r1, 0
2b50: 0b8d bt 0x2a6a // 2a6a <EPT0IntHandler+0x72>
else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event
2b52: 932b ld.w r1, (r3, 0x2c)
2b54: 3020 movi r0, 32
2b56: 6840 and r1, r0
2b58: 3940 cmpnei r1, 0
2b5a: 0b88 bt 0x2a6a // 2a6a <EPT0IntHandler+0x72>
else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event
2b5c: 932b ld.w r1, (r3, 0x2c)
2b5e: 3040 movi r0, 64
2b60: 6840 and r1, r0
2b62: 3940 cmpnei r1, 0
2b64: 0b83 bt 0x2a6a // 2a6a <EPT0IntHandler+0x72>
else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event
2b66: 932b ld.w r1, (r3, 0x2c)
2b68: 6848 and r1, r2
2b6a: 3940 cmpnei r1, 0
2b6c: 0c03 bf 0x2b72 // 2b72 <EPT0IntHandler+0x17a>
EPT0->EMICR=EPT_EOM_FAULT_EMINT;
2b6e: b34d st.w r2, (r3, 0x34)
}
2b70: 077e br 0x2a6c // 2a6c <EPT0IntHandler+0x74>
else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event
2b72: 3280 movi r2, 128
2b74: 932b ld.w r1, (r3, 0x2c)
2b76: 4241 lsli r2, r2, 1
2b78: 6848 and r1, r2
2b7a: 3940 cmpnei r1, 0
2b7c: 0bf9 bt 0x2b6e // 2b6e <EPT0IntHandler+0x176>
else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event
2b7e: 3280 movi r2, 128
2b80: 932b ld.w r1, (r3, 0x2c)
2b82: 4242 lsli r2, r2, 2
2b84: 6848 and r1, r2
2b86: 3940 cmpnei r1, 0
2b88: 0bf3 bt 0x2b6e // 2b6e <EPT0IntHandler+0x176>
else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event
2b8a: 3280 movi r2, 128
2b8c: 932b ld.w r1, (r3, 0x2c)
2b8e: 4243 lsli r2, r2, 3
2b90: 6848 and r1, r2
2b92: 3940 cmpnei r1, 0
2b94: 0bed bt 0x2b6e // 2b6e <EPT0IntHandler+0x176>
2b96: 076b br 0x2a6c // 2a6c <EPT0IntHandler+0x74>
2b98: 20000020 .long 0x20000020
2b9c: 2000014c .long 0x2000014c
2ba0: 20000148 .long 0x20000148
Disassembly of section .text.WWDTHandler:
00002ba4 <WWDTHandler>:
//WWDT Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void WWDTHandler(void)
{
2ba4: 1460 nie
2ba6: 1462 ipush
2ba8: 14d2 push r4-r5, r15
WWDT->ICR=0X01;
2baa: 10ab lrw r5, 0x20000010 // 2bd4 <WWDTHandler+0x30>
2bac: 3401 movi r4, 1
2bae: 9560 ld.w r3, (r5, 0x0)
2bb0: b385 st.w r4, (r3, 0x14)
WWDT_CNT_Load(0xFF);
2bb2: 30ff movi r0, 255
2bb4: e3fffae0 bsr 0x2174 // 2174 <WWDT_CNT_Load>
if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt
2bb8: 9540 ld.w r2, (r5, 0x0)
2bba: 9263 ld.w r3, (r2, 0xc)
2bbc: 68d0 and r3, r4
2bbe: 3b40 cmpnei r3, 0
2bc0: 0c02 bf 0x2bc4 // 2bc4 <WWDTHandler+0x20>
{
WWDT->ICR = WWDT_EVI;
2bc2: b285 st.w r4, (r2, 0x14)
}
}
2bc4: d9ee2002 ld.w r15, (r14, 0x8)
2bc8: 98a1 ld.w r5, (r14, 0x4)
2bca: 9880 ld.w r4, (r14, 0x0)
2bcc: 1403 addi r14, r14, 12
2bce: 1463 ipop
2bd0: 1461 nir
2bd2: 0000 bkpt
2bd4: 20000010 .long 0x20000010
Disassembly of section .text.GPT0IntHandler:
00002bd8 <GPT0IntHandler>:
//GPT0 Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void GPT0IntHandler(void)
{
2bd8: 1460 nie
2bda: 1462 ipush
// ISR content ...
if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt
2bdc: 107e lrw r3, 0x20000024 // 2c54 <GPT0IntHandler+0x7c>
2bde: 3101 movi r1, 1
2be0: 9360 ld.w r3, (r3, 0x0)
2be2: 237f addi r3, 128
2be4: 9355 ld.w r2, (r3, 0x54)
2be6: 6884 and r2, r1
2be8: 3a40 cmpnei r2, 0
2bea: 0c04 bf 0x2bf2 // 2bf2 <GPT0IntHandler+0x1a>
{
GPT0->ICR = GPT_INT_CAPLD0;
}
else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt
{
GPT0->ICR = GPT_INT_CAPLD1;
2bec: b337 st.w r1, (r3, 0x5c)
}
else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt
{
GPT0->ICR = GPT_INT_PEND;
}
}
2bee: 1463 ipop
2bf0: 1461 nir
else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt
2bf2: 9355 ld.w r2, (r3, 0x54)
2bf4: 3102 movi r1, 2
2bf6: 6884 and r2, r1
2bf8: 3a40 cmpnei r2, 0
2bfa: 0bf9 bt 0x2bec // 2bec <GPT0IntHandler+0x14>
else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt
2bfc: 9355 ld.w r2, (r3, 0x54)
2bfe: 3110 movi r1, 16
2c00: 6884 and r2, r1
2c02: 3a40 cmpnei r2, 0
2c04: 0bf4 bt 0x2bec // 2bec <GPT0IntHandler+0x14>
else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt
2c06: 9355 ld.w r2, (r3, 0x54)
2c08: 3120 movi r1, 32
2c0a: 6884 and r2, r1
2c0c: 3a40 cmpnei r2, 0
2c0e: 0bef bt 0x2bec // 2bec <GPT0IntHandler+0x14>
else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt
2c10: 3280 movi r2, 128
2c12: 9335 ld.w r1, (r3, 0x54)
2c14: 4241 lsli r2, r2, 1
2c16: 6848 and r1, r2
2c18: 3940 cmpnei r1, 0
2c1a: 0c03 bf 0x2c20 // 2c20 <GPT0IntHandler+0x48>
GPT0->ICR = GPT_INT_PEND;
2c1c: b357 st.w r2, (r3, 0x5c)
}
2c1e: 07e8 br 0x2bee // 2bee <GPT0IntHandler+0x16>
else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt
2c20: 3280 movi r2, 128
2c22: 9335 ld.w r1, (r3, 0x54)
2c24: 4242 lsli r2, r2, 2
2c26: 6848 and r1, r2
2c28: 3940 cmpnei r1, 0
2c2a: 0bf9 bt 0x2c1c // 2c1c <GPT0IntHandler+0x44>
else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt
2c2c: 3280 movi r2, 128
2c2e: 9335 ld.w r1, (r3, 0x54)
2c30: 4243 lsli r2, r2, 3
2c32: 6848 and r1, r2
2c34: 3940 cmpnei r1, 0
2c36: 0bf3 bt 0x2c1c // 2c1c <GPT0IntHandler+0x44>
else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt
2c38: 3280 movi r2, 128
2c3a: 9335 ld.w r1, (r3, 0x54)
2c3c: 4244 lsli r2, r2, 4
2c3e: 6848 and r1, r2
2c40: 3940 cmpnei r1, 0
2c42: 0bed bt 0x2c1c // 2c1c <GPT0IntHandler+0x44>
else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt
2c44: 3280 movi r2, 128
2c46: 9335 ld.w r1, (r3, 0x54)
2c48: 4249 lsli r2, r2, 9
2c4a: 6848 and r1, r2
2c4c: 3940 cmpnei r1, 0
2c4e: 0be7 bt 0x2c1c // 2c1c <GPT0IntHandler+0x44>
2c50: 07cf br 0x2bee // 2bee <GPT0IntHandler+0x16>
2c52: 0000 bkpt
2c54: 20000024 .long 0x20000024
Disassembly of section .text.RTCIntHandler:
00002c58 <RTCIntHandler>:
//RTC Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void RTCIntHandler(void)
{
2c58: 1460 nie
2c5a: 1462 ipush
// ISR content ...
if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A
2c5c: 1079 lrw r3, 0x20000018 // 2cc0 <RTCIntHandler+0x68>
2c5e: 3101 movi r1, 1
2c60: 9360 ld.w r3, (r3, 0x0)
2c62: 934a ld.w r2, (r3, 0x28)
2c64: 6884 and r2, r1
2c66: 3a40 cmpnei r2, 0
2c68: 0c14 bf 0x2c90 // 2c90 <RTCIntHandler+0x38>
{
RTC->ICR=ALRA_INT;
RTC->KEY=0XCA53;
2c6a: 1057 lrw r2, 0xca53 // 2cc4 <RTCIntHandler+0x6c>
RTC->ICR=ALRA_INT;
2c6c: b32b st.w r1, (r3, 0x2c)
RTC->KEY=0XCA53;
2c6e: b34c st.w r2, (r3, 0x30)
RTC->CR=RTC->CR|0x01;
2c70: 9342 ld.w r2, (r3, 0x8)
2c72: 6c84 or r2, r1
2c74: b342 st.w r2, (r3, 0x8)
RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm
2c76: 3280 movi r2, 128
2c78: 424d lsli r2, r2, 13
2c7a: b340 st.w r2, (r3, 0x0)
while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done
2c7c: 3102 movi r1, 2
2c7e: 9342 ld.w r2, (r3, 0x8)
2c80: 6884 and r2, r1
2c82: 3a40 cmpnei r2, 0
2c84: 0bfd bt 0x2c7e // 2c7e <RTCIntHandler+0x26>
RTC->CR &= ~0x1;
2c86: 9342 ld.w r2, (r3, 0x8)
2c88: 3a80 bclri r2, 0
2c8a: b342 st.w r2, (r3, 0x8)
}
else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1
{
RTC->ICR=RTC_TRGEV1_INT;
}
}
2c8c: 1463 ipop
2c8e: 1461 nir
else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B
2c90: 934a ld.w r2, (r3, 0x28)
2c92: 3102 movi r1, 2
2c94: 6884 and r2, r1
2c96: 3a40 cmpnei r2, 0
2c98: 0c03 bf 0x2c9e // 2c9e <RTCIntHandler+0x46>
RTC->ICR=RTC_TRGEV1_INT;
2c9a: b32b st.w r1, (r3, 0x2c)
}
2c9c: 07f8 br 0x2c8c // 2c8c <RTCIntHandler+0x34>
else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD
2c9e: 934a ld.w r2, (r3, 0x28)
2ca0: 3104 movi r1, 4
2ca2: 6884 and r2, r1
2ca4: 3a40 cmpnei r2, 0
2ca6: 0bfa bt 0x2c9a // 2c9a <RTCIntHandler+0x42>
else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0
2ca8: 934a ld.w r2, (r3, 0x28)
2caa: 3108 movi r1, 8
2cac: 6884 and r2, r1
2cae: 3a40 cmpnei r2, 0
2cb0: 0bf5 bt 0x2c9a // 2c9a <RTCIntHandler+0x42>
else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1
2cb2: 934a ld.w r2, (r3, 0x28)
2cb4: 3110 movi r1, 16
2cb6: 6884 and r2, r1
2cb8: 3a40 cmpnei r2, 0
2cba: 0bf0 bt 0x2c9a // 2c9a <RTCIntHandler+0x42>
2cbc: 07e8 br 0x2c8c // 2c8c <RTCIntHandler+0x34>
2cbe: 0000 bkpt
2cc0: 20000018 .long 0x20000018
2cc4: 0000ca53 .long 0x0000ca53
Disassembly of section .text.UART0IntHandler:
00002cc8 <UART0IntHandler>:
//UART0 Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void UART0IntHandler(void)
{
2cc8: 1460 nie
2cca: 1462 ipush
char inchar = 0;
// ISR content ...
if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt
2ccc: 106d lrw r3, 0x20000040 // 2d00 <UART0IntHandler+0x38>
2cce: 3102 movi r1, 2
2cd0: 9360 ld.w r3, (r3, 0x0)
2cd2: 9343 ld.w r2, (r3, 0xc)
2cd4: 6884 and r2, r1
2cd6: 3a40 cmpnei r2, 0
2cd8: 0c03 bf 0x2cde // 2cde <UART0IntHandler+0x16>
{
UART0->ISR=UART_RX_IOV_S;
}
else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt
{
UART0->ISR=UART_TX_IOV_S;
2cda: b323 st.w r1, (r3, 0xc)
}
}
2cdc: 0410 br 0x2cfc // 2cfc <UART0IntHandler+0x34>
else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt
2cde: 9343 ld.w r2, (r3, 0xc)
2ce0: 3101 movi r1, 1
2ce2: 6884 and r2, r1
2ce4: 3a40 cmpnei r2, 0
2ce6: 0bfa bt 0x2cda // 2cda <UART0IntHandler+0x12>
else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt
2ce8: 9343 ld.w r2, (r3, 0xc)
2cea: 3108 movi r1, 8
2cec: 6884 and r2, r1
2cee: 3a40 cmpnei r2, 0
2cf0: 0bf5 bt 0x2cda // 2cda <UART0IntHandler+0x12>
else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt
2cf2: 9343 ld.w r2, (r3, 0xc)
2cf4: 3104 movi r1, 4
2cf6: 6884 and r2, r1
2cf8: 3a40 cmpnei r2, 0
2cfa: 0bf0 bt 0x2cda // 2cda <UART0IntHandler+0x12>
}
2cfc: 1463 ipop
2cfe: 1461 nir
2d00: 20000040 .long 0x20000040
Disassembly of section .text.UART1IntHandler:
00002d04 <UART1IntHandler>:
//UART1 Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void UART1IntHandler(void)
{
2d04: 1460 nie
2d06: 1462 ipush
2d08: 14d0 push r15
char inchar = 0;
// ISR content ...
if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt
2d0a: 107f lrw r3, 0x2000003c // 2d84 <UART1IntHandler+0x80>
2d0c: 3102 movi r1, 2
2d0e: 9360 ld.w r3, (r3, 0x0)
2d10: 9343 ld.w r2, (r3, 0xc)
2d12: 6884 and r2, r1
2d14: 3a40 cmpnei r2, 0
2d16: 0c0b bf 0x2d2c // 2d2c <UART1IntHandler+0x28>
{
UART1->ISR=UART_RX_INT_S;
2d18: b323 st.w r1, (r3, 0xc)
inchar = CSP_UART_GET_DATA(UART1);
2d1a: 9300 ld.w r0, (r3, 0x0)
UART1_RecvINT_Processing(inchar);
2d1c: 7400 zextb r0, r0
2d1e: e000032b bsr 0x3374 // 3374 <UART1_RecvINT_Processing>
if(RS485_Comm_Flag == 0x01){
RS485_Comm_End ++;
}
}
}
2d22: d9ee2000 ld.w r15, (r14, 0x0)
2d26: 1401 addi r14, r14, 4
2d28: 1463 ipop
2d2a: 1461 nir
else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt
2d2c: 9323 ld.w r1, (r3, 0xc)
2d2e: 3201 movi r2, 1
2d30: 6848 and r1, r2
2d32: 3940 cmpnei r1, 0
2d34: 0c0d bf 0x2d4e // 2d4e <UART1IntHandler+0x4a>
UART1->ISR=UART_TX_INT_S;
2d36: b343 st.w r2, (r3, 0xc)
RS485_Comming = 0x01;
2d38: 1074 lrw r3, 0x200000a8 // 2d88 <UART1IntHandler+0x84>
2d3a: b340 st.w r2, (r3, 0x0)
if(RS485_Comm_Flag == 0x01){
2d3c: 1074 lrw r3, 0x200000ac // 2d8c <UART1IntHandler+0x88>
2d3e: 9360 ld.w r3, (r3, 0x0)
2d40: 3b41 cmpnei r3, 1
2d42: 0bf0 bt 0x2d22 // 2d22 <UART1IntHandler+0x1e>
RS485_Comm_Start ++;
2d44: 1053 lrw r2, 0x200000b0 // 2d90 <UART1IntHandler+0x8c>
RS485_Comm_End ++;
2d46: 9260 ld.w r3, (r2, 0x0)
2d48: 2300 addi r3, 1
2d4a: b260 st.w r3, (r2, 0x0)
}
2d4c: 07eb br 0x2d22 // 2d22 <UART1IntHandler+0x1e>
else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt
2d4e: 9343 ld.w r2, (r3, 0xc)
2d50: 3108 movi r1, 8
2d52: 6884 and r2, r1
2d54: 3a40 cmpnei r2, 0
2d56: 0c03 bf 0x2d5c // 2d5c <UART1IntHandler+0x58>
UART1->ISR=UART_TX_IOV_S;
2d58: b323 st.w r1, (r3, 0xc)
2d5a: 07e4 br 0x2d22 // 2d22 <UART1IntHandler+0x1e>
else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt
2d5c: 9343 ld.w r2, (r3, 0xc)
2d5e: 3104 movi r1, 4
2d60: 6884 and r2, r1
2d62: 3a40 cmpnei r2, 0
2d64: 0bfa bt 0x2d58 // 2d58 <UART1IntHandler+0x54>
else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S)
2d66: 3180 movi r1, 128
2d68: 9303 ld.w r0, (r3, 0xc)
2d6a: 412c lsli r1, r1, 12
2d6c: 6804 and r0, r1
2d6e: 3840 cmpnei r0, 0
2d70: 0fd9 bf 0x2d22 // 2d22 <UART1IntHandler+0x1e>
UART1->ISR=UART_TX_DONE_S;
2d72: b323 st.w r1, (r3, 0xc)
RS485_Comming = 0x00;
2d74: 1065 lrw r3, 0x200000a8 // 2d88 <UART1IntHandler+0x84>
2d76: b340 st.w r2, (r3, 0x0)
if(RS485_Comm_Flag == 0x01){
2d78: 1065 lrw r3, 0x200000ac // 2d8c <UART1IntHandler+0x88>
2d7a: 9360 ld.w r3, (r3, 0x0)
2d7c: 3b41 cmpnei r3, 1
2d7e: 0bd2 bt 0x2d22 // 2d22 <UART1IntHandler+0x1e>
RS485_Comm_End ++;
2d80: 1045 lrw r2, 0x200000b4 // 2d94 <UART1IntHandler+0x90>
2d82: 07e2 br 0x2d46 // 2d46 <UART1IntHandler+0x42>
2d84: 2000003c .long 0x2000003c
2d88: 200000a8 .long 0x200000a8
2d8c: 200000ac .long 0x200000ac
2d90: 200000b0 .long 0x200000b0
2d94: 200000b4 .long 0x200000b4
Disassembly of section .text.UART2IntHandler:
00002d98 <UART2IntHandler>:
//UART2 Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void UART2IntHandler(void)
{
2d98: 1460 nie
2d9a: 1462 ipush
char inchar = 0;
// ISR content ...
if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt
2d9c: 1071 lrw r3, 0x20000038 // 2de0 <UART2IntHandler+0x48>
2d9e: 3102 movi r1, 2
2da0: 9360 ld.w r3, (r3, 0x0)
2da2: 9343 ld.w r2, (r3, 0xc)
2da4: 6884 and r2, r1
2da6: 3a40 cmpnei r2, 0
2da8: 0c04 bf 0x2db0 // 2db0 <UART2IntHandler+0x18>
{
UART2->ISR=UART_RX_IOV_S;
}
else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt
{
UART2->ISR=UART_TX_IOV_S;
2daa: b323 st.w r1, (r3, 0xc)
// RS485_Comm_End ++;
// }
}
}
2dac: 1463 ipop
2dae: 1461 nir
else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt
2db0: 9343 ld.w r2, (r3, 0xc)
2db2: 3101 movi r1, 1
2db4: 6884 and r2, r1
2db6: 3a40 cmpnei r2, 0
2db8: 0bf9 bt 0x2daa // 2daa <UART2IntHandler+0x12>
else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt
2dba: 9343 ld.w r2, (r3, 0xc)
2dbc: 3108 movi r1, 8
2dbe: 6884 and r2, r1
2dc0: 3a40 cmpnei r2, 0
2dc2: 0bf4 bt 0x2daa // 2daa <UART2IntHandler+0x12>
else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt
2dc4: 9343 ld.w r2, (r3, 0xc)
2dc6: 3104 movi r1, 4
2dc8: 6884 and r2, r1
2dca: 3a40 cmpnei r2, 0
2dcc: 0bef bt 0x2daa // 2daa <UART2IntHandler+0x12>
else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S)
2dce: 3280 movi r2, 128
2dd0: 9323 ld.w r1, (r3, 0xc)
2dd2: 424c lsli r2, r2, 12
2dd4: 6848 and r1, r2
2dd6: 3940 cmpnei r1, 0
2dd8: 0fea bf 0x2dac // 2dac <UART2IntHandler+0x14>
UART2->ISR=UART_TX_DONE_S;
2dda: b343 st.w r2, (r3, 0xc)
}
2ddc: 07e8 br 0x2dac // 2dac <UART2IntHandler+0x14>
2dde: 0000 bkpt
2de0: 20000038 .long 0x20000038
Disassembly of section .text.SPI0IntHandler:
00002de4 <SPI0IntHandler>:
//SPI Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void SPI0IntHandler(void)
{
2de4: 1460 nie
2de6: 1462 ipush
// ISR content ...
if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt
2de8: 1178 lrw r3, 0x20000034 // 2ec8 <SPI0IntHandler+0xe4>
2dea: 3101 movi r1, 1
2dec: 9360 ld.w r3, (r3, 0x0)
2dee: 9347 ld.w r2, (r3, 0x1c)
2df0: 6884 and r2, r1
2df2: 3a40 cmpnei r2, 0
2df4: 0c03 bf 0x2dfa // 2dfa <SPI0IntHandler+0x16>
}
}
}
else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt
{
SPI0->ICR = SPI_TXIM;
2df6: b328 st.w r1, (r3, 0x20)
}
}
2df8: 0407 br 0x2e06 // 2e06 <SPI0IntHandler+0x22>
else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt
2dfa: 9347 ld.w r2, (r3, 0x1c)
2dfc: 3002 movi r0, 2
2dfe: 6880 and r2, r0
2e00: 3a40 cmpnei r2, 0
2e02: 0c04 bf 0x2e0a // 2e0a <SPI0IntHandler+0x26>
SPI0->ICR = SPI_RTIM;
2e04: b308 st.w r0, (r3, 0x20)
}
2e06: 1463 ipop
2e08: 1461 nir
else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt
2e0a: 9347 ld.w r2, (r3, 0x1c)
2e0c: 3004 movi r0, 4
2e0e: 6880 and r2, r0
2e10: 3a40 cmpnei r2, 0
2e12: 0c55 bf 0x2ebc // 2ebc <SPI0IntHandler+0xd8>
SPI0->ICR = SPI_RXIM;
2e14: b308 st.w r0, (r3, 0x20)
if(SPI0->DR==0xaa)
2e16: 9302 ld.w r0, (r3, 0x8)
2e18: 32aa movi r2, 170
2e1a: 6482 cmpne r0, r2
2e1c: 083e bt 0x2e98 // 2e98 <SPI0IntHandler+0xb4>
while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full
2e1e: 3102 movi r1, 2
2e20: 9343 ld.w r2, (r3, 0xc)
2e22: 6884 and r2, r1
2e24: 3a40 cmpnei r2, 0
2e26: 0ffd bf 0x2e20 // 2e20 <SPI0IntHandler+0x3c>
SPI0->DR = 0x11;
2e28: 3211 movi r2, 17
2e2a: b342 st.w r2, (r3, 0x8)
while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over
2e2c: 3110 movi r1, 16
2e2e: 9343 ld.w r2, (r3, 0xc)
2e30: 6884 and r2, r1
2e32: 3a40 cmpnei r2, 0
2e34: 0bfd bt 0x2e2e // 2e2e <SPI0IntHandler+0x4a>
while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full
2e36: 3102 movi r1, 2
2e38: 9343 ld.w r2, (r3, 0xc)
2e3a: 6884 and r2, r1
2e3c: 3a40 cmpnei r2, 0
2e3e: 0ffd bf 0x2e38 // 2e38 <SPI0IntHandler+0x54>
SPI0->DR = 0x12;
2e40: 3212 movi r2, 18
2e42: b342 st.w r2, (r3, 0x8)
while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over
2e44: 3110 movi r1, 16
2e46: 9343 ld.w r2, (r3, 0xc)
2e48: 6884 and r2, r1
2e4a: 3a40 cmpnei r2, 0
2e4c: 0bfd bt 0x2e46 // 2e46 <SPI0IntHandler+0x62>
while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full
2e4e: 3102 movi r1, 2
2e50: 9343 ld.w r2, (r3, 0xc)
2e52: 6884 and r2, r1
2e54: 3a40 cmpnei r2, 0
2e56: 0ffd bf 0x2e50 // 2e50 <SPI0IntHandler+0x6c>
SPI0->DR = 0x13;
2e58: 3213 movi r2, 19
2e5a: b342 st.w r2, (r3, 0x8)
while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over
2e5c: 3110 movi r1, 16
2e5e: 9343 ld.w r2, (r3, 0xc)
2e60: 6884 and r2, r1
2e62: 3a40 cmpnei r2, 0
2e64: 0bfd bt 0x2e5e // 2e5e <SPI0IntHandler+0x7a>
while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full
2e66: 3102 movi r1, 2
2e68: 9343 ld.w r2, (r3, 0xc)
2e6a: 6884 and r2, r1
2e6c: 3a40 cmpnei r2, 0
2e6e: 0ffd bf 0x2e68 // 2e68 <SPI0IntHandler+0x84>
SPI0->DR = 0x14;
2e70: 3214 movi r2, 20
2e72: b342 st.w r2, (r3, 0x8)
while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over
2e74: 3110 movi r1, 16
2e76: 9343 ld.w r2, (r3, 0xc)
2e78: 6884 and r2, r1
2e7a: 3a40 cmpnei r2, 0
2e7c: 0bfd bt 0x2e76 // 2e76 <SPI0IntHandler+0x92>
while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full
2e7e: 3102 movi r1, 2
2e80: 9343 ld.w r2, (r3, 0xc)
2e82: 6884 and r2, r1
2e84: 3a40 cmpnei r2, 0
2e86: 0ffd bf 0x2e80 // 2e80 <SPI0IntHandler+0x9c>
SPI0->DR = 0x15;
2e88: 3215 movi r2, 21
2e8a: b342 st.w r2, (r3, 0x8)
while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over
2e8c: 3110 movi r1, 16
2e8e: 9343 ld.w r2, (r3, 0xc)
2e90: 6884 and r2, r1
2e92: 3a40 cmpnei r2, 0
2e94: 0bfd bt 0x2e8e // 2e8e <SPI0IntHandler+0xaa>
2e96: 07b8 br 0x2e06 // 2e06 <SPI0IntHandler+0x22>
if(((SPI0->SR) & SSP_TFE)!=SSP_TFE)
2e98: 9343 ld.w r2, (r3, 0xc)
2e9a: 6884 and r2, r1
2e9c: 3a40 cmpnei r2, 0
2e9e: 0bb4 bt 0x2e06 // 2e06 <SPI0IntHandler+0x22>
SPI0->DR=0x0; //FIFO=0
2ea0: b342 st.w r2, (r3, 0x8)
while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over
2ea2: 3110 movi r1, 16
SPI0->DR=0x0; //FIFO=0
2ea4: b342 st.w r2, (r3, 0x8)
SPI0->DR=0x0; //FIFO=0
2ea6: b342 st.w r2, (r3, 0x8)
SPI0->DR=0x0; //FIFO=0
2ea8: b342 st.w r2, (r3, 0x8)
SPI0->DR=0x0; //FIFO=0
2eaa: b342 st.w r2, (r3, 0x8)
SPI0->DR=0x0; //FIFO=0
2eac: b342 st.w r2, (r3, 0x8)
SPI0->DR=0x0; //FIFO=0
2eae: b342 st.w r2, (r3, 0x8)
SPI0->DR=0x0; //FIFO=0
2eb0: b342 st.w r2, (r3, 0x8)
while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over
2eb2: 9343 ld.w r2, (r3, 0xc)
2eb4: 6884 and r2, r1
2eb6: 3a40 cmpnei r2, 0
2eb8: 0bfd bt 0x2eb2 // 2eb2 <SPI0IntHandler+0xce>
2eba: 07a6 br 0x2e06 // 2e06 <SPI0IntHandler+0x22>
else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt
2ebc: 9347 ld.w r2, (r3, 0x1c)
2ebe: 3108 movi r1, 8
2ec0: 6884 and r2, r1
2ec2: 3a40 cmpnei r2, 0
2ec4: 0b99 bt 0x2df6 // 2df6 <SPI0IntHandler+0x12>
2ec6: 07a0 br 0x2e06 // 2e06 <SPI0IntHandler+0x22>
2ec8: 20000034 .long 0x20000034
Disassembly of section .text.SIO0IntHandler:
00002ecc <SIO0IntHandler>:
//SIO Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void SIO0IntHandler(void)
{
2ecc: 1460 nie
2ece: 1462 ipush
CK801->IPR[4]=0X40404040;
CK801->IPR[5]=0X40404000;
CK801->IPR[6]=0X40404040;
CK801->IPR[7]=0X40404040;*/
//TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt
if(SIO0->MISR&0X04)
2ed0: 1073 lrw r3, 0x2000002c // 2f1c <SIO0IntHandler+0x50>
2ed2: 3104 movi r1, 4
2ed4: 9360 ld.w r3, (r3, 0x0)
2ed6: 9349 ld.w r2, (r3, 0x24)
2ed8: 6884 and r2, r1
2eda: 3a40 cmpnei r2, 0
2edc: 0c02 bf 0x2ee0 // 2ee0 <SIO0IntHandler+0x14>
{
SIO0->ICR=0X04;
2ede: b32b st.w r1, (r3, 0x2c)
}
if(SIO0->MISR&0X01) //TXDNE
2ee0: 9349 ld.w r2, (r3, 0x24)
2ee2: 3101 movi r1, 1
2ee4: 6884 and r2, r1
2ee6: 3a40 cmpnei r2, 0
2ee8: 0c02 bf 0x2eec // 2eec <SIO0IntHandler+0x20>
{
SIO0->ICR=0X01;
2eea: b32b st.w r1, (r3, 0x2c)
delay_nms(10);
SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)|
(0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH;
}*/
if(SIO0->MISR&0X02) //RXDNE
2eec: 9349 ld.w r2, (r3, 0x24)
2eee: 3102 movi r1, 2
2ef0: 6884 and r2, r1
2ef2: 3a40 cmpnei r2, 0
2ef4: 0c03 bf 0x2efa // 2efa <SIO0IntHandler+0x2e>
{
SIO0->ICR=0X10;
}
else if(SIO0->MISR&0X020) //TIMEOUT
{
SIO0->ICR=0X20;
2ef6: b32b st.w r1, (r3, 0x2c)
}
}
2ef8: 0410 br 0x2f18 // 2f18 <SIO0IntHandler+0x4c>
else if(SIO0->MISR&0X08) //RXBUFFULL
2efa: 9349 ld.w r2, (r3, 0x24)
2efc: 3108 movi r1, 8
2efe: 6884 and r2, r1
2f00: 3a40 cmpnei r2, 0
2f02: 0bfa bt 0x2ef6 // 2ef6 <SIO0IntHandler+0x2a>
else if(SIO0->MISR&0X010) //BREAK
2f04: 9349 ld.w r2, (r3, 0x24)
2f06: 3110 movi r1, 16
2f08: 6884 and r2, r1
2f0a: 3a40 cmpnei r2, 0
2f0c: 0bf5 bt 0x2ef6 // 2ef6 <SIO0IntHandler+0x2a>
else if(SIO0->MISR&0X020) //TIMEOUT
2f0e: 9349 ld.w r2, (r3, 0x24)
2f10: 3120 movi r1, 32
2f12: 6884 and r2, r1
2f14: 3a40 cmpnei r2, 0
2f16: 0bf0 bt 0x2ef6 // 2ef6 <SIO0IntHandler+0x2a>
}
2f18: 1463 ipop
2f1a: 1461 nir
2f1c: 2000002c .long 0x2000002c
Disassembly of section .text.EXI0IntHandler:
00002f20 <EXI0IntHandler>:
//EXT0/16 Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void EXI0IntHandler(void)
{
2f20: 1460 nie
2f22: 1462 ipush
// ISR content ...
if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt
2f24: 106a lrw r3, 0x2000005c // 2f4c <EXI0IntHandler+0x2c>
2f26: 3101 movi r1, 1
2f28: 9360 ld.w r3, (r3, 0x0)
2f2a: 237f addi r3, 128
2f2c: 934c ld.w r2, (r3, 0x30)
2f2e: 6884 and r2, r1
2f30: 3a40 cmpnei r2, 0
2f32: 0c04 bf 0x2f3a // 2f3a <EXI0IntHandler+0x1a>
{
SYSCON->EXICR = EXI_PIN0;
2f34: b32b st.w r1, (r3, 0x2c)
}
else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt
{
SYSCON->EXICR = EXI_PIN16;
}
}
2f36: 1463 ipop
2f38: 1461 nir
else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt
2f3a: 3280 movi r2, 128
2f3c: 932c ld.w r1, (r3, 0x30)
2f3e: 4249 lsli r2, r2, 9
2f40: 6848 and r1, r2
2f42: 3940 cmpnei r1, 0
2f44: 0ff9 bf 0x2f36 // 2f36 <EXI0IntHandler+0x16>
SYSCON->EXICR = EXI_PIN16;
2f46: b34b st.w r2, (r3, 0x2c)
}
2f48: 07f7 br 0x2f36 // 2f36 <EXI0IntHandler+0x16>
2f4a: 0000 bkpt
2f4c: 2000005c .long 0x2000005c
Disassembly of section .text.EXI1IntHandler:
00002f50 <EXI1IntHandler>:
//EXT1/17 Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void EXI1IntHandler(void)
{
2f50: 1460 nie
2f52: 1462 ipush
// ISR content ...
if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt
2f54: 106a lrw r3, 0x2000005c // 2f7c <EXI1IntHandler+0x2c>
2f56: 3102 movi r1, 2
2f58: 9360 ld.w r3, (r3, 0x0)
2f5a: 237f addi r3, 128
2f5c: 934c ld.w r2, (r3, 0x30)
2f5e: 6884 and r2, r1
2f60: 3a40 cmpnei r2, 0
2f62: 0c04 bf 0x2f6a // 2f6a <EXI1IntHandler+0x1a>
{
SYSCON->EXICR = EXI_PIN1;
2f64: b32b st.w r1, (r3, 0x2c)
}
else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt
{
SYSCON->EXICR = EXI_PIN17;
}
}
2f66: 1463 ipop
2f68: 1461 nir
else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt
2f6a: 3280 movi r2, 128
2f6c: 932c ld.w r1, (r3, 0x30)
2f6e: 424a lsli r2, r2, 10
2f70: 6848 and r1, r2
2f72: 3940 cmpnei r1, 0
2f74: 0ff9 bf 0x2f66 // 2f66 <EXI1IntHandler+0x16>
SYSCON->EXICR = EXI_PIN17;
2f76: b34b st.w r2, (r3, 0x2c)
}
2f78: 07f7 br 0x2f66 // 2f66 <EXI1IntHandler+0x16>
2f7a: 0000 bkpt
2f7c: 2000005c .long 0x2000005c
Disassembly of section .text.EXI2to3IntHandler:
00002f80 <EXI2to3IntHandler>:
//EXI2~3 18~19Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void EXI2to3IntHandler(void)
{
2f80: 1460 nie
2f82: 1462 ipush
// ISR content ...
if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt
2f84: 1070 lrw r3, 0x2000005c // 2fc4 <EXI2to3IntHandler+0x44>
2f86: 3104 movi r1, 4
2f88: 9360 ld.w r3, (r3, 0x0)
2f8a: 237f addi r3, 128
2f8c: 934c ld.w r2, (r3, 0x30)
2f8e: 6884 and r2, r1
2f90: 3a40 cmpnei r2, 0
2f92: 0c04 bf 0x2f9a // 2f9a <EXI2to3IntHandler+0x1a>
{
SYSCON->EXICR = EXI_PIN2;
}
else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt
{
SYSCON->EXICR = EXI_PIN3;
2f94: b32b st.w r1, (r3, 0x2c)
}
else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt
{
SYSCON->EXICR = EXI_PIN19;
}
}
2f96: 1463 ipop
2f98: 1461 nir
else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt
2f9a: 934c ld.w r2, (r3, 0x30)
2f9c: 3108 movi r1, 8
2f9e: 6884 and r2, r1
2fa0: 3a40 cmpnei r2, 0
2fa2: 0bf9 bt 0x2f94 // 2f94 <EXI2to3IntHandler+0x14>
else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt
2fa4: 3280 movi r2, 128
2fa6: 932c ld.w r1, (r3, 0x30)
2fa8: 424b lsli r2, r2, 11
2faa: 6848 and r1, r2
2fac: 3940 cmpnei r1, 0
2fae: 0c03 bf 0x2fb4 // 2fb4 <EXI2to3IntHandler+0x34>
SYSCON->EXICR = EXI_PIN19;
2fb0: b34b st.w r2, (r3, 0x2c)
}
2fb2: 07f2 br 0x2f96 // 2f96 <EXI2to3IntHandler+0x16>
else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt
2fb4: 3280 movi r2, 128
2fb6: 932c ld.w r1, (r3, 0x30)
2fb8: 424c lsli r2, r2, 12
2fba: 6848 and r1, r2
2fbc: 3940 cmpnei r1, 0
2fbe: 0bf9 bt 0x2fb0 // 2fb0 <EXI2to3IntHandler+0x30>
2fc0: 07eb br 0x2f96 // 2f96 <EXI2to3IntHandler+0x16>
2fc2: 0000 bkpt
2fc4: 2000005c .long 0x2000005c
Disassembly of section .text.EXI4to9IntHandler:
00002fc8 <EXI4to9IntHandler>:
//EXI4~9 Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void EXI4to9IntHandler(void)
{
2fc8: 1460 nie
2fca: 1462 ipush
// ISR content ...
if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt
2fcc: 1066 lrw r3, 0x2000005c // 2fe4 <EXI4to9IntHandler+0x1c>
2fce: 3110 movi r1, 16
2fd0: 9360 ld.w r3, (r3, 0x0)
2fd2: 237f addi r3, 128
2fd4: 934c ld.w r2, (r3, 0x30)
2fd6: 6884 and r2, r1
2fd8: 3a40 cmpnei r2, 0
2fda: 0c02 bf 0x2fde // 2fde <EXI4to9IntHandler+0x16>
{
SYSCON->EXICR = EXI_PIN4;
2fdc: b32b st.w r1, (r3, 0x2c)
// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt
// {
// SYSCON->EXICR = EXI_PIN9;
// }
}
2fde: 1463 ipop
2fe0: 1461 nir
2fe2: 0000 bkpt
2fe4: 2000005c .long 0x2000005c
Disassembly of section .text.EXI10to15IntHandler:
00002fe8 <EXI10to15IntHandler>:
//EXI4 Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void EXI10to15IntHandler(void)
{
2fe8: 1460 nie
2fea: 1462 ipush
2fec: 14d0 push r15
// ISR content ...
if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt
2fee: 1079 lrw r3, 0x2000005c // 3050 <EXI10to15IntHandler+0x68>
2ff0: 3280 movi r2, 128
2ff2: 9360 ld.w r3, (r3, 0x0)
2ff4: 237f addi r3, 128
2ff6: 932c ld.w r1, (r3, 0x30)
2ff8: 4243 lsli r2, r2, 3
2ffa: 6848 and r1, r2
2ffc: 3940 cmpnei r1, 0
2ffe: 0c07 bf 0x300c // 300c <EXI10to15IntHandler+0x24>
{
SYSCON->EXICR = EXI_PIN13;
}
else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt
{
SYSCON->EXICR = EXI_PIN14;
3000: b34b st.w r2, (r3, 0x2c)
{
SYSCON->EXICR = EXI_PIN15;
BusBusy_Task();
}
}
3002: d9ee2000 ld.w r15, (r14, 0x0)
3006: 1401 addi r14, r14, 4
3008: 1463 ipop
300a: 1461 nir
else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt
300c: 3280 movi r2, 128
300e: 932c ld.w r1, (r3, 0x30)
3010: 4244 lsli r2, r2, 4
3012: 6848 and r1, r2
3014: 3940 cmpnei r1, 0
3016: 0bf5 bt 0x3000 // 3000 <EXI10to15IntHandler+0x18>
else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt
3018: 3280 movi r2, 128
301a: 932c ld.w r1, (r3, 0x30)
301c: 4245 lsli r2, r2, 5
301e: 6848 and r1, r2
3020: 3940 cmpnei r1, 0
3022: 0bef bt 0x3000 // 3000 <EXI10to15IntHandler+0x18>
else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt
3024: 3280 movi r2, 128
3026: 932c ld.w r1, (r3, 0x30)
3028: 4246 lsli r2, r2, 6
302a: 6848 and r1, r2
302c: 3940 cmpnei r1, 0
302e: 0be9 bt 0x3000 // 3000 <EXI10to15IntHandler+0x18>
else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt
3030: 3280 movi r2, 128
3032: 932c ld.w r1, (r3, 0x30)
3034: 4247 lsli r2, r2, 7
3036: 6848 and r1, r2
3038: 3940 cmpnei r1, 0
303a: 0be3 bt 0x3000 // 3000 <EXI10to15IntHandler+0x18>
else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt
303c: 3280 movi r2, 128
303e: 932c ld.w r1, (r3, 0x30)
3040: 4248 lsli r2, r2, 8
3042: 6848 and r1, r2
3044: 3940 cmpnei r1, 0
3046: 0fde bf 0x3002 // 3002 <EXI10to15IntHandler+0x1a>
SYSCON->EXICR = EXI_PIN15;
3048: b34b st.w r2, (r3, 0x2c)
BusBusy_Task();
304a: e00002eb bsr 0x3620 // 3620 <BusBusy_Task>
}
304e: 07da br 0x3002 // 3002 <EXI10to15IntHandler+0x1a>
3050: 2000005c .long 0x2000005c
Disassembly of section .text.LPTIntHandler:
00003054 <LPTIntHandler>:
//LPT Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void LPTIntHandler(void)
{
3054: 1460 nie
3056: 1462 ipush
// ISR content ...
if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt
3058: 106b lrw r3, 0x20000014 // 3084 <LPTIntHandler+0x30>
305a: 3101 movi r1, 1
305c: 9360 ld.w r3, (r3, 0x0)
305e: 934e ld.w r2, (r3, 0x38)
3060: 6884 and r2, r1
3062: 3a40 cmpnei r2, 0
3064: 0c03 bf 0x306a // 306a <LPTIntHandler+0x16>
{
LPT->ICR = LPT_MATCH;
}
else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt
{
LPT->ICR = LPT_PEND;
3066: b330 st.w r1, (r3, 0x40)
}
}
3068: 040b br 0x307e // 307e <LPTIntHandler+0x2a>
else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt
306a: 934e ld.w r2, (r3, 0x38)
306c: 3102 movi r1, 2
306e: 6884 and r2, r1
3070: 3a40 cmpnei r2, 0
3072: 0bfa bt 0x3066 // 3066 <LPTIntHandler+0x12>
else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt
3074: 934e ld.w r2, (r3, 0x38)
3076: 3104 movi r1, 4
3078: 6884 and r2, r1
307a: 3a40 cmpnei r2, 0
307c: 0bf5 bt 0x3066 // 3066 <LPTIntHandler+0x12>
}
307e: 1463 ipop
3080: 1461 nir
3082: 0000 bkpt
3084: 20000014 .long 0x20000014
Disassembly of section .text.BT0IntHandler:
00003088 <BT0IntHandler>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
U8_T BT_TEMP_State = 1;
void BT0IntHandler(void)
{
3088: 1460 nie
308a: 1462 ipush
// ISR content ...
if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt
308c: 1071 lrw r3, 0x2000000c // 30d0 <BT0IntHandler+0x48>
308e: 3101 movi r1, 1
3090: 9360 ld.w r3, (r3, 0x0)
3092: 934c ld.w r2, (r3, 0x30)
3094: 6884 and r2, r1
3096: 3a40 cmpnei r2, 0
3098: 0c0a bf 0x30ac // 30ac <BT0IntHandler+0x24>
{
BT0->ICR = BT_PEND;
309a: b32d st.w r1, (r3, 0x34)
//BT_Stop_Low(BT0);
BT0->CR =BT0->CR & ~(0x01<<6);
309c: 9341 ld.w r2, (r3, 0x4)
309e: 3a86 bclri r2, 6
30a0: b341 st.w r2, (r3, 0x4)
BT0->RSSR &=0X0;
30a2: 9340 ld.w r2, (r3, 0x0)
30a4: 3200 movi r2, 0
30a6: b340 st.w r2, (r3, 0x0)
}
else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt
{
BT0->ICR = BT_EVTRG;
}
}
30a8: 1463 ipop
30aa: 1461 nir
else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt
30ac: 934c ld.w r2, (r3, 0x30)
30ae: 3102 movi r1, 2
30b0: 6884 and r2, r1
30b2: 3a40 cmpnei r2, 0
30b4: 0c03 bf 0x30ba // 30ba <BT0IntHandler+0x32>
BT0->ICR = BT_EVTRG;
30b6: b32d st.w r1, (r3, 0x34)
}
30b8: 07f8 br 0x30a8 // 30a8 <BT0IntHandler+0x20>
else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt
30ba: 934c ld.w r2, (r3, 0x30)
30bc: 3104 movi r1, 4
30be: 6884 and r2, r1
30c0: 3a40 cmpnei r2, 0
30c2: 0bfa bt 0x30b6 // 30b6 <BT0IntHandler+0x2e>
else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt
30c4: 934c ld.w r2, (r3, 0x30)
30c6: 3108 movi r1, 8
30c8: 6884 and r2, r1
30ca: 3a40 cmpnei r2, 0
30cc: 0bf5 bt 0x30b6 // 30b6 <BT0IntHandler+0x2e>
30ce: 07ed br 0x30a8 // 30a8 <BT0IntHandler+0x20>
30d0: 2000000c .long 0x2000000c
Disassembly of section .text.BT1IntHandler:
000030d4 <BT1IntHandler>:
//BT1 Interrupt
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void BT1IntHandler(void)
{
30d4: 1460 nie
30d6: 1462 ipush
30d8: 14d0 push r15
static U8_T NUM = 0;
// ISR content ...
if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt
30da: 1079 lrw r3, 0x20000008 // 313c <BT1IntHandler+0x68>
30dc: 3101 movi r1, 1
30de: 9360 ld.w r3, (r3, 0x0)
30e0: 934c ld.w r2, (r3, 0x30)
30e2: 6884 and r2, r1
30e4: 3a40 cmpnei r2, 0
30e6: 0c03 bf 0x30ec // 30ec <BT1IntHandler+0x18>
{
BT1->ICR = BT_OVF;
}
else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt
{
BT1->ICR = BT_EVTRG;
30e8: b32d st.w r1, (r3, 0x34)
}
}
30ea: 0418 br 0x311a // 311a <BT1IntHandler+0x46>
else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt
30ec: 934c ld.w r2, (r3, 0x30)
30ee: 3102 movi r1, 2
30f0: 6884 and r2, r1
30f2: 3a40 cmpnei r2, 0
30f4: 0c18 bf 0x3124 // 3124 <BT1IntHandler+0x50>
BT1->ICR = BT_CMP;
30f6: b32d st.w r1, (r3, 0x34)
NUM++;
30f8: 1072 lrw r3, 0x2000009c // 3140 <BT1IntHandler+0x6c>
30fa: 8340 ld.b r2, (r3, 0x0)
30fc: 2200 addi r2, 1
30fe: 7488 zextb r2, r2
SysTick_100us++;
3100: 9321 ld.w r1, (r3, 0x4)
3102: 2100 addi r1, 1
if(NUM >= 10){
3104: 3a09 cmphsi r2, 10
NUM++;
3106: a340 st.b r2, (r3, 0x0)
SysTick_100us++;
3108: b321 st.w r1, (r3, 0x4)
if(NUM >= 10){
310a: 0c08 bf 0x311a // 311a <BT1IntHandler+0x46>
NUM = 0;
310c: 3200 movi r2, 0
310e: a340 st.b r2, (r3, 0x0)
SysTick_1ms++;
3110: 9342 ld.w r2, (r3, 0x8)
3112: 2200 addi r2, 1
3114: b342 st.w r2, (r3, 0x8)
BusIdle_Task();
3116: e0000267 bsr 0x35e4 // 35e4 <BusIdle_Task>
}
311a: d9ee2000 ld.w r15, (r14, 0x0)
311e: 1401 addi r14, r14, 4
3120: 1463 ipop
3122: 1461 nir
else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt
3124: 934c ld.w r2, (r3, 0x30)
3126: 3104 movi r1, 4
3128: 6884 and r2, r1
312a: 3a40 cmpnei r2, 0
312c: 0bde bt 0x30e8 // 30e8 <BT1IntHandler+0x14>
else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt
312e: 934c ld.w r2, (r3, 0x30)
3130: 3108 movi r1, 8
3132: 6884 and r2, r1
3134: 3a40 cmpnei r2, 0
3136: 0bd9 bt 0x30e8 // 30e8 <BT1IntHandler+0x14>
3138: 07f1 br 0x311a // 311a <BT1IntHandler+0x46>
313a: 0000 bkpt
313c: 20000008 .long 0x20000008
3140: 2000009c .long 0x2000009c
Disassembly of section .text.PriviledgeVioHandler:
00003144 <PriviledgeVioHandler>:
3144: 783c jmp r15
Disassembly of section .text.PendTrapHandler:
00003146 <PendTrapHandler>:
// ISR content ...
}
void PendTrapHandler(void)
{
3146: 1460 nie
3148: 1462 ipush
// ISR content ...
}
314a: 1463 ipop
314c: 1461 nir
Disassembly of section .text.Trap3Handler:
0000314e <Trap3Handler>:
314e: 1460 nie
3150: 1462 ipush
3152: 1463 ipop
3154: 1461 nir
Disassembly of section .text.Trap2Handler:
00003156 <Trap2Handler>:
3156: 1460 nie
3158: 1462 ipush
315a: 1463 ipop
315c: 1461 nir
Disassembly of section .text.Trap1Handler:
0000315e <Trap1Handler>:
315e: 1460 nie
3160: 1462 ipush
3162: 1463 ipop
3164: 1461 nir
Disassembly of section .text.Trap0Handler:
00003166 <Trap0Handler>:
3166: 1460 nie
3168: 1462 ipush
316a: 1463 ipop
316c: 1461 nir
Disassembly of section .text.UnrecExecpHandler:
0000316e <UnrecExecpHandler>:
316e: 1460 nie
3170: 1462 ipush
3172: 1463 ipop
3174: 1461 nir
Disassembly of section .text.BreakPointHandler:
00003176 <BreakPointHandler>:
3176: 1460 nie
3178: 1462 ipush
317a: 1463 ipop
317c: 1461 nir
Disassembly of section .text.AccessErrHandler:
0000317e <AccessErrHandler>:
317e: 1460 nie
3180: 1462 ipush
3182: 1463 ipop
3184: 1461 nir
Disassembly of section .text.IllegalInstrHandler:
00003186 <IllegalInstrHandler>:
3186: 1460 nie
3188: 1462 ipush
318a: 1463 ipop
318c: 1461 nir
Disassembly of section .text.MisalignedHandler:
0000318e <MisalignedHandler>:
318e: 1460 nie
3190: 1462 ipush
3192: 1463 ipop
3194: 1461 nir
Disassembly of section .text.CNTAIntHandler:
00003196 <CNTAIntHandler>:
3196: 1460 nie
3198: 1462 ipush
319a: 1463 ipop
319c: 1461 nir
Disassembly of section .text.I2CIntHandler:
0000319e <I2CIntHandler>:
319e: 1460 nie
31a0: 1462 ipush
31a2: 1463 ipop
31a4: 1461 nir
Disassembly of section .text.__divsi3:
000031a8 <__divsi3>:
CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ;
CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ;
CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ;
int __divsi3 ( int a, int b)
{
31a8: 14c1 push r4
int PSR;
__asm volatile(
31aa: c0006023 mfcr r3, cr<0, 0>
31ae: c0807020 psrclr ie
"mfcr %0 , psr \n\r"
"psrclr ie \n\r"
: "=r"(PSR)
);
HWD->CR = 0;
31b2: 1046 lrw r2, 0x20000000 // 31c8 <__divsi3+0x20>
31b4: 3400 movi r4, 0
31b6: 9240 ld.w r2, (r2, 0x0)
31b8: b284 st.w r4, (r2, 0x10)
HWD->DIVIDENT = a;
HWD->DIVISOR = b;
PSR |= 0x80000000;
31ba: 3bbf bseti r3, 31
HWD->DIVIDENT = a;
31bc: b200 st.w r0, (r2, 0x0)
HWD->DIVISOR = b;
31be: b221 st.w r1, (r2, 0x4)
__asm volatile(
31c0: c0036420 mtcr r3, cr<0, 0>
"mtcr %0 , psr \n\r"
:
:"r"(PSR)
);
return HWD->QUOTIENT;
31c4: 9202 ld.w r0, (r2, 0x8)
}
31c6: 1481 pop r4
31c8: 20000000 .long 0x20000000
Disassembly of section .text.__udivsi3:
000031cc <__udivsi3>:
unsigned int __udivsi3 ( unsigned int a, unsigned int b)
{
31cc: 14c1 push r4
int PSR;
__asm volatile(
31ce: c0006023 mfcr r3, cr<0, 0>
31d2: c0807020 psrclr ie
"mfcr %0 , psr \n\r"
"psrclr ie \n\r"
: "=r"(PSR)
);
HWD->CR = 1;
31d6: 1046 lrw r2, 0x20000000 // 31ec <__udivsi3+0x20>
31d8: 3401 movi r4, 1
31da: 9240 ld.w r2, (r2, 0x0)
31dc: b284 st.w r4, (r2, 0x10)
HWD->DIVIDENT = a;
HWD->DIVISOR = b;
PSR |= 0x80000000;
31de: 3bbf bseti r3, 31
HWD->DIVIDENT = a;
31e0: b200 st.w r0, (r2, 0x0)
HWD->DIVISOR = b;
31e2: b221 st.w r1, (r2, 0x4)
__asm volatile(
31e4: c0036420 mtcr r3, cr<0, 0>
"mtcr %0 , psr \n\r"
:
:"r"(PSR)
);
return HWD->QUOTIENT;
31e8: 9202 ld.w r0, (r2, 0x8)
}
31ea: 1481 pop r4
31ec: 20000000 .long 0x20000000
Disassembly of section .text.__umodsi3:
000031f0 <__umodsi3>:
);
return HWD->REMAIN;
}
unsigned int __umodsi3 ( unsigned int a, unsigned int b)
{
31f0: 14c1 push r4
int PSR;
__asm volatile(
31f2: c0006023 mfcr r3, cr<0, 0>
31f6: c0807020 psrclr ie
"mfcr %0 , psr \n\r"
"psrclr ie \n\r"
: "=r"(PSR)
);
HWD->CR = 1;
31fa: 1046 lrw r2, 0x20000000 // 3210 <__umodsi3+0x20>
31fc: 3401 movi r4, 1
31fe: 9240 ld.w r2, (r2, 0x0)
3200: b284 st.w r4, (r2, 0x10)
HWD->DIVIDENT = a;
HWD->DIVISOR = b;
PSR |= 0x80000000;
3202: 3bbf bseti r3, 31
HWD->DIVIDENT = a;
3204: b200 st.w r0, (r2, 0x0)
HWD->DIVISOR = b;
3206: b221 st.w r1, (r2, 0x4)
__asm volatile(
3208: c0036420 mtcr r3, cr<0, 0>
"mtcr %0 , psr \n\r"
:
:"r"(PSR)
);
return HWD->REMAIN;
320c: 9203 ld.w r0, (r2, 0xc)
}
320e: 1481 pop r4
3210: 20000000 .long 0x20000000
Disassembly of section .text.CK_CPU_EnAllNormalIrq:
00003214 <CK_CPU_EnAllNormalIrq>:
}
void CK_CPU_EnAllNormalIrq(void)
{
asm ("psrset ee,ie");
3214: c1807420 psrset ee, ie
}
3218: 783c jmp r15
Disassembly of section .text.CK_CPU_DisAllNormalIrq:
0000321a <CK_CPU_DisAllNormalIrq>:
void CK_CPU_DisAllNormalIrq(void)
{
asm ("psrclr ie");
321a: c0807020 psrclr ie
}
321e: 783c jmp r15
Disassembly of section .text.UARTx_Init:
00003220 <UARTx_Init>:
UART_t g_uart; //空间不足,只能用一个串口
UART_t g_uart1; //空间不足,只能用一个串口
MULIT_t m_send;
void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) {
3220: 14d1 push r4, r15
switch((U8_T)uart_id){
3222: 7400 zextb r0, r0
3224: 3841 cmpnei r0, 1
void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) {
3226: 6d07 mov r4, r1
switch((U8_T)uart_id){
3228: 0c13 bf 0x324e // 324e <UARTx_Init+0x2e>
322a: 3840 cmpnei r0, 0
322c: 0c04 bf 0x3234 // 3234 <UARTx_Init+0x14>
322e: 3842 cmpnei r0, 2
3230: 0c7f bf 0x332e // 332e <UARTx_Init+0x10e>
// GPIO_DriveStrength_EN(GPIOB0,3);
// GPIO_Write_Low(GPIOB0,3);
break;
}
}
3232: 1491 pop r4, r15
UART0_DeInit(); //clear all UART Register
3234: e3fff8f4 bsr 0x241c // 241c <UART0_DeInit>
UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0
3238: 3100 movi r1, 0
323a: 3000 movi r0, 0
323c: e3fff930 bsr 0x249c // 249c <UART_IO_Init>
UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled
3240: 1263 lrw r3, 0x20000040 // 334c <UARTx_Init+0x12c>
3242: 3200 movi r2, 0
3244: 9300 ld.w r0, (r3, 0x0)
3246: 1223 lrw r1, 0x1388 // 3350 <UARTx_Init+0x130>
3248: e3fff9a0 bsr 0x2588 // 2588 <UARTInitRxTxIntEn>
break;
324c: 07f3 br 0x3232 // 3232 <UARTx_Init+0x12>
memset(&g_uart1,0,sizeof(UART_t));
324e: 32a0 movi r2, 160
3250: 3100 movi r1, 0
3252: 1201 lrw r0, 0x20000218 // 3354 <UARTx_Init+0x134>
3254: e3fff394 bsr 0x197c // 197c <__memset_fast>
memset(&m_send,0,sizeof(MULIT_t));
3258: 32a4 movi r2, 164
325a: 3100 movi r1, 0
325c: 111f lrw r0, 0x200002b8 // 3358 <UARTx_Init+0x138>
325e: e3fff38f bsr 0x197c // 197c <__memset_fast>
g_uart1.RecvTimeout = Recv_9600_TimeOut;
3262: 117f lrw r3, 0x20000298 // 335c <UARTx_Init+0x13c>
3264: 3203 movi r2, 3
3266: b345 st.w r2, (r3, 0x14)
g_uart1.processing_cf = prt_cf;
3268: b387 st.w r4, (r3, 0x1c)
GPIO_PullHigh_Init(GPIOA0,15);
326a: 310f movi r1, 15
m_send.BusState_Tick = SysTick_1ms;
326c: 117d lrw r3, 0x200000a4 // 3360 <UARTx_Init+0x140>
GPIO_PullHigh_Init(GPIOA0,15);
326e: 119e lrw r4, 0x2000004c // 3364 <UARTx_Init+0x144>
m_send.BusState_Tick = SysTick_1ms;
3270: 9340 ld.w r2, (r3, 0x0)
3272: 117e lrw r3, 0x20000338 // 3368 <UARTx_Init+0x148>
3274: b346 st.w r2, (r3, 0x18)
GPIO_PullHigh_Init(GPIOA0,15);
3276: 9400 ld.w r0, (r4, 0x0)
m_send.HighBit_Flag = 0x01;
3278: 3201 movi r2, 1
327a: a341 st.b r2, (r3, 0x1)
GPIO_PullHigh_Init(GPIOA0,15);
327c: e3fff640 bsr 0x1efc // 1efc <GPIO_PullHigh_Init>
GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2
3280: 320f movi r2, 15
3282: 310f movi r1, 15
3284: 3000 movi r0, 0
3286: e3fff64d bsr 0x1f20 // 1f20 <GPIO_IntGroup_Set>
GPIOA0_EXI_Init(EXI15); //PB0.2 as input
328a: 300f movi r0, 15
328c: e3fff6d0 bsr 0x202c // 202c <GPIOA0_EXI_Init>
EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge
3290: 3180 movi r1, 128
3292: 3201 movi r2, 1
3294: 4128 lsli r1, r1, 8
3296: 3001 movi r0, 1
3298: e3fff548 bsr 0x1d28 // 1d28 <EXTI_trigger_CMD>
EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT);
329c: 3180 movi r1, 128
329e: 3200 movi r2, 0
32a0: 4128 lsli r1, r1, 8
32a2: 3001 movi r0, 1
32a4: e3fff542 bsr 0x1d28 // 1d28 <EXTI_trigger_CMD>
EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI
32a8: 3180 movi r1, 128
32aa: 4128 lsli r1, r1, 8
32ac: 3001 movi r0, 1
32ae: e3fff55d bsr 0x1d68 // 1d68 <EXTI_interrupt_CMD>
GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI
32b2: 3180 movi r1, 128
32b4: 9400 ld.w r0, (r4, 0x0)
32b6: 4128 lsli r1, r1, 8
32b8: e3fff572 bsr 0x1d9c // 1d9c <GPIO_EXTI_interrupt>
EXI4_Int_Enable();
32bc: e3fff572 bsr 0x1da0 // 1da0 <EXI4_Int_Enable>
UART1_DeInit(); //clear all UART Register
32c0: e3fff8ba bsr 0x2434 // 2434 <UART1_DeInit>
UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1
32c4: 3102 movi r1, 2
32c6: 3001 movi r0, 1
32c8: e3fff8ea bsr 0x249c // 249c <UART_IO_Init>
UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled
32cc: 1168 lrw r3, 0x2000003c // 336c <UARTx_Init+0x14c>
32ce: 3200 movi r2, 0
32d0: 9300 ld.w r0, (r3, 0x0)
32d2: 1120 lrw r1, 0x1388 // 3350 <UARTx_Init+0x130>
32d4: e3fff95a bsr 0x2588 // 2588 <UARTInitRxTxIntEn>
UART1_Int_Enable();
32d8: e3fff8c6 bsr 0x2464 // 2464 <UART1_Int_Enable>
GPIO_Init(GPIOA0,LED_TX_PIN,Output);
32dc: 9400 ld.w r0, (r4, 0x0)
32de: 3200 movi r2, 0
32e0: 3100 movi r1, 0
32e2: e3fff59d bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_Init(GPIOA0,LED_RX_PIN,Output);
32e6: 9400 ld.w r0, (r4, 0x0)
32e8: 3200 movi r2, 0
32ea: 3101 movi r1, 1
32ec: e3fff598 bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_Init(GPIOA0,LED_STATUS_PIN,Output);
32f0: 3200 movi r2, 0
32f2: 9400 ld.w r0, (r4, 0x0)
32f4: 3104 movi r1, 4
32f6: e3fff593 bsr 0x1e1c // 1e1c <GPIO_Init>
TX_LED_OFF;
32fa: 9400 ld.w r0, (r4, 0x0)
32fc: 3100 movi r1, 0
32fe: e3fff715 bsr 0x2128 // 2128 <GPIO_Write_High>
RX_LED_OFF;
3302: 9400 ld.w r0, (r4, 0x0)
3304: 3101 movi r1, 1
3306: e3fff711 bsr 0x2128 // 2128 <GPIO_Write_High>
STATUS_LED_ON;
330a: 9400 ld.w r0, (r4, 0x0)
330c: 3104 movi r1, 4
330e: e3fff711 bsr 0x2130 // 2130 <GPIO_Write_Low>
GPIO_Init(GPIOA0,UART485_DR_PIN,Output);
3312: 3200 movi r2, 0
3314: 9400 ld.w r0, (r4, 0x0)
3316: 3107 movi r1, 7
3318: e3fff582 bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN);
331c: 9400 ld.w r0, (r4, 0x0)
331e: 3107 movi r1, 7
3320: e3fff5f8 bsr 0x1f10 // 1f10 <GPIO_DriveStrength_EN>
WRITE_LOW_DR;
3324: 9400 ld.w r0, (r4, 0x0)
3326: 3107 movi r1, 7
3328: e3fff704 bsr 0x2130 // 2130 <GPIO_Write_Low>
break;
332c: 0783 br 0x3232 // 3232 <UARTx_Init+0x12>
UART2_DeInit(); //clear all UART Register
332e: e3fff88f bsr 0x244c // 244c <UART2_DeInit>
UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1
3332: 3102 movi r1, 2
3334: 3002 movi r0, 2
3336: e3fff8b3 bsr 0x249c // 249c <UART_IO_Init>
UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled
333a: 106e lrw r3, 0x20000038 // 3370 <UARTx_Init+0x150>
333c: 3200 movi r2, 0
333e: 9300 ld.w r0, (r3, 0x0)
3340: 1024 lrw r1, 0x1388 // 3350 <UARTx_Init+0x130>
3342: e3fff923 bsr 0x2588 // 2588 <UARTInitRxTxIntEn>
UART2_Int_Enable();
3346: e3fff89d bsr 0x2480 // 2480 <UART2_Int_Enable>
}
334a: 0774 br 0x3232 // 3232 <UARTx_Init+0x12>
334c: 20000040 .long 0x20000040
3350: 00001388 .long 0x00001388
3354: 20000218 .long 0x20000218
3358: 200002b8 .long 0x200002b8
335c: 20000298 .long 0x20000298
3360: 200000a4 .long 0x200000a4
3364: 2000004c .long 0x2000004c
3368: 20000338 .long 0x20000338
336c: 2000003c .long 0x2000003c
3370: 20000038 .long 0x20000038
Disassembly of section .text.UART1_RecvINT_Processing:
00003374 <UART1_RecvINT_Processing>:
/*******************************************************************************
* Function Name : UART1_RecvINT_Processing
* Description : 1 -
*******************************************************************************/
void UART1_RecvINT_Processing(char data){
3374: 14d0 push r15
if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0;
3376: 106d lrw r3, 0x20000298 // 33a8 <UART1_RecvINT_Processing+0x34>
3378: 8b28 ld.h r1, (r3, 0x10)
337a: 3244 movi r2, 68
337c: 6449 cmplt r2, r1
337e: 0c03 bf 0x3384 // 3384 <UART1_RecvINT_Processing+0x10>
3380: 3200 movi r2, 0
3382: ab48 st.h r2, (r3, 0x10)
g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data;
3384: 8b48 ld.h r2, (r3, 0x10)
3386: 5a22 addi r1, r2, 1
3388: ab28 st.h r1, (r3, 0x10)
338a: 1029 lrw r1, 0x20000218 // 33ac <UART1_RecvINT_Processing+0x38>
338c: 6084 addu r2, r1
338e: a200 st.b r0, (r2, 0x0)
g_uart1.RecvIdleTiming = SysTick_1ms;
g_uart1.Receiving = 0x01;
RX_LED_ON;
3390: 3101 movi r1, 1
g_uart1.RecvIdleTiming = SysTick_1ms;
3392: 1048 lrw r2, 0x200000a4 // 33b0 <UART1_RecvINT_Processing+0x3c>
3394: 9240 ld.w r2, (r2, 0x0)
3396: b346 st.w r2, (r3, 0x18)
g_uart1.Receiving = 0x01;
3398: 3201 movi r2, 1
339a: a34c st.b r2, (r3, 0xc)
RX_LED_ON;
339c: 1066 lrw r3, 0x2000004c // 33b4 <UART1_RecvINT_Processing+0x40>
339e: 9300 ld.w r0, (r3, 0x0)
33a0: e3fff6c8 bsr 0x2130 // 2130 <GPIO_Write_Low>
}
33a4: 1490 pop r15
33a6: 0000 bkpt
33a8: 20000298 .long 0x20000298
33ac: 20000218 .long 0x20000218
33b0: 200000a4 .long 0x200000a4
33b4: 2000004c .long 0x2000004c
Disassembly of section .text.UART1_TASK:
000033b8 <UART1_TASK>:
void UART1_TASK(void){
33b8: 14d2 push r4-r5, r15
U8_T rev = 0xFF;
if(g_uart1.Receiving == 0x01){
33ba: 1097 lrw r4, 0x20000298 // 3414 <UART1_TASK+0x5c>
33bc: 846c ld.b r3, (r4, 0xc)
33be: 3b41 cmpnei r3, 1
33c0: 0828 bt 0x3410 // 3410 <UART1_TASK+0x58>
if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){
33c2: 10b6 lrw r5, 0x200000a4 // 3418 <UART1_TASK+0x60>
33c4: 9560 ld.w r3, (r5, 0x0)
33c6: 9446 ld.w r2, (r4, 0x18)
33c8: 60ca subu r3, r2
33ca: 9445 ld.w r2, (r4, 0x14)
33cc: 64c8 cmphs r2, r3
33ce: 0821 bt 0x3410 // 3410 <UART1_TASK+0x58>
SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内
33d0: e3fff4f6 bsr 0x1dbc // 1dbc <SYSCON_Int_Disable>
g_uart1.RecvIdleTiming = SysTick_1ms;
33d4: 9560 ld.w r3, (r5, 0x0)
memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen);
33d6: 8c48 ld.h r2, (r4, 0x10)
33d8: 1031 lrw r1, 0x20000218 // 341c <UART1_TASK+0x64>
33da: 1012 lrw r0, 0x2000025e // 3420 <UART1_TASK+0x68>
g_uart1.RecvIdleTiming = SysTick_1ms;
33dc: b466 st.w r3, (r4, 0x18)
memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen);
33de: e3fff313 bsr 0x1a04 // 1a04 <__memcpy_fast>
g_uart1.DealLen = g_uart1.RecvLen;
33e2: 8c68 ld.h r3, (r4, 0x10)
33e4: ac67 st.h r3, (r4, 0xe)
g_uart1.RecvLen = 0;
33e6: 3300 movi r3, 0
33e8: ac68 st.h r3, (r4, 0x10)
g_uart1.Receiving = 0;
33ea: a46c st.b r3, (r4, 0xc)
SYSCON_Int_Enable();
33ec: e3fff4e2 bsr 0x1db0 // 1db0 <SYSCON_Int_Enable>
#if DBG_LOG_EN
Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", g_uart1.DealLen);
Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",g_uart1.DealBuffer,g_uart1.DealLen);
#endif
if(g_uart1.processing_cf != NULL){
33f0: 9467 ld.w r3, (r4, 0x1c)
33f2: 3b40 cmpnei r3, 0
33f4: 0c04 bf 0x33fc // 33fc <UART1_TASK+0x44>
rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen);
33f6: 8c27 ld.h r1, (r4, 0xe)
33f8: 100a lrw r0, 0x2000025e // 3420 <UART1_TASK+0x68>
33fa: 7bcd jsr r3
}
RX_LED_OFF;
33fc: 106a lrw r3, 0x2000004c // 3424 <UART1_TASK+0x6c>
33fe: 3101 movi r1, 1
3400: 9300 ld.w r0, (r3, 0x0)
3402: e3fff693 bsr 0x2128 // 2128 <GPIO_Write_High>
memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE);
3406: 3246 movi r2, 70
3408: 3100 movi r1, 0
340a: 1006 lrw r0, 0x2000025e // 3420 <UART1_TASK+0x68>
340c: e3fff2b8 bsr 0x197c // 197c <__memset_fast>
}
}
}
3410: 1492 pop r4-r5, r15
3412: 0000 bkpt
3414: 20000298 .long 0x20000298
3418: 200000a4 .long 0x200000a4
341c: 20000218 .long 0x20000218
3420: 2000025e .long 0x2000025e
3424: 2000004c .long 0x2000004c
Disassembly of section .text.BUS485_Send:
00003428 <BUS485_Send>:
* buff:
* len
* @retval
* */
U8_T BUS485_Send(U8_T *buff,U16_T len)
{
3428: 14d4 push r4-r7, r15
342a: 1423 subi r14, r14, 12
342c: b802 st.w r0, (r14, 0x8)
342e: b821 st.w r1, (r14, 0x4)
unsigned int Dataval = 0,delay_cnt = 0;
3430: 3600 movi r6, 0
//
while(RS485_Comming == 0x01){
3432: 118d lrw r4, 0x200000a8 // 34e4 <BUS485_Send+0xbc>
delay_cnt ++;
if(delay_cnt >= 100){
break;
}
REVERISE_DR; //485_DR
3434: 11ad lrw r5, 0x2000004c // 34e8 <BUS485_Send+0xc0>
while(RS485_Comming == 0x01){
3436: 9460 ld.w r3, (r4, 0x0)
3438: 3b41 cmpnei r3, 1
343a: 0c47 bf 0x34c8 // 34c8 <BUS485_Send+0xa0>
}
if(m_send.BusState_Flag == UART_BUSIDLE){ //线
343c: 116c lrw r3, 0x20000338 // 34ec <BUS485_Send+0xc4>
343e: 83e0 ld.b r7, (r3, 0x0)
3440: 3f40 cmpnei r7, 0
3442: b860 st.w r3, (r14, 0x0)
3444: 084e bt 0x34e0 // 34e0 <BUS485_Send+0xb8>
TX_LED_ON;
3446: 11a9 lrw r5, 0x2000004c // 34e8 <BUS485_Send+0xc0>
3448: 3100 movi r1, 0
344a: 9500 ld.w r0, (r5, 0x0)
344c: e3fff672 bsr 0x2130 // 2130 <GPIO_Write_Low>
CK_CPU_DisAllNormalIrq();
3450: e3fffee5 bsr 0x321a // 321a <CK_CPU_DisAllNormalIrq>
WRITE_HIGH_DR; //485_DR
3454: 3107 movi r1, 7
3456: 9500 ld.w r0, (r5, 0x0)
3458: e3fff668 bsr 0x2128 // 2128 <GPIO_Write_High>
RS485_Comm_Flag = 0x01;
345c: 3301 movi r3, 1
345e: b461 st.w r3, (r4, 0x4)
RS485_Comm_Start = 0x00;
RS485_Comm_End = 0x00;
m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙
3460: 3201 movi r2, 1
3462: 9860 ld.w r3, (r14, 0x0)
3464: a340 st.b r2, (r3, 0x0)
m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态
3466: a342 st.b r2, (r3, 0x2)
RS485_Comm_Start = 0x00;
3468: b4e2 st.w r7, (r4, 0x8)
RS485_Comm_End = 0x00;
346a: b4e3 st.w r7, (r4, 0xc)
CK_CPU_EnAllNormalIrq();
346c: e3fffed4 bsr 0x3214 // 3214 <CK_CPU_EnAllNormalIrq>
UARTTransmit(UART1,buff,len);
3470: 1160 lrw r3, 0x2000003c // 34f0 <BUS485_Send+0xc8>
3472: 9300 ld.w r0, (r3, 0x0)
3474: 9841 ld.w r2, (r14, 0x4)
3476: 9822 ld.w r1, (r14, 0x8)
3478: e3fff890 bsr 0x2598 // 2598 <UARTTransmit>
do{
delay_nus(100);
347c: 3064 movi r0, 100
347e: e3fff943 bsr 0x2704 // 2704 <delay_nus>
delay_cnt ++;
3482: 2600 addi r6, 1
if(delay_cnt >= 100){
3484: 3363 movi r3, 99
3486: 658c cmphs r3, r6
3488: 0c08 bf 0x3498 // 3498 <BUS485_Send+0x70>
break;
}
}while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成
348a: 9462 ld.w r3, (r4, 0x8)
348c: 9841 ld.w r2, (r14, 0x4)
348e: 648d cmplt r3, r2
3490: 0bf6 bt 0x347c // 347c <BUS485_Send+0x54>
3492: 9463 ld.w r3, (r4, 0xc)
3494: 648d cmplt r3, r2
3496: 0bf3 bt 0x347c // 347c <BUS485_Send+0x54>
CK_CPU_DisAllNormalIrq();
3498: e3fffec1 bsr 0x321a // 321a <CK_CPU_DisAllNormalIrq>
WRITE_LOW_DR; //485_DR
349c: 3107 movi r1, 7
349e: 9500 ld.w r0, (r5, 0x0)
34a0: e3fff648 bsr 0x2130 // 2130 <GPIO_Write_Low>
RS485_Comm_Flag = 0x00;
34a4: 3300 movi r3, 0
34a6: b461 st.w r3, (r4, 0x4)
m_send.BusState_Tick = SysTick_1ms;
34a8: 9840 ld.w r2, (r14, 0x0)
34aa: 1073 lrw r3, 0x200000a4 // 34f4 <BUS485_Send+0xcc>
34ac: 9360 ld.w r3, (r3, 0x0)
34ae: b266 st.w r3, (r2, 0x18)
m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态
34b0: 6ccb mov r3, r2
34b2: 3200 movi r2, 0
34b4: a342 st.b r2, (r3, 0x2)
CK_CPU_EnAllNormalIrq();
34b6: e3fffeaf bsr 0x3214 // 3214 <CK_CPU_EnAllNormalIrq>
TX_LED_OFF;
34ba: 9500 ld.w r0, (r5, 0x0)
34bc: 3100 movi r1, 0
34be: e3fff635 bsr 0x2128 // 2128 <GPIO_Write_High>
{
return UART_BUSBUSY; //发送失败
}
return 0x02; //传入状态无效
}
34c2: 6c1f mov r0, r7
34c4: 1403 addi r14, r14, 12
34c6: 1494 pop r4-r7, r15
delay_nus(100);
34c8: 3064 movi r0, 100
34ca: e3fff91d bsr 0x2704 // 2704 <delay_nus>
delay_cnt ++;
34ce: 2600 addi r6, 1
if(delay_cnt >= 100){
34d0: 3364 movi r3, 100
34d2: 64da cmpne r6, r3
34d4: 0fb4 bf 0x343c // 343c <BUS485_Send+0x14>
REVERISE_DR; //485_DR
34d6: 3107 movi r1, 7
34d8: 9500 ld.w r0, (r5, 0x0)
34da: e3fff62f bsr 0x2138 // 2138 <GPIO_Reverse>
34de: 07ac br 0x3436 // 3436 <BUS485_Send+0xe>
return UART_BUSBUSY; //发送失败
34e0: 3701 movi r7, 1
34e2: 07f0 br 0x34c2 // 34c2 <BUS485_Send+0x9a>
34e4: 200000a8 .long 0x200000a8
34e8: 2000004c .long 0x2000004c
34ec: 20000338 .long 0x20000338
34f0: 2000003c .long 0x2000003c
34f4: 200000a4 .long 0x200000a4
Disassembly of section .text.MultSend_Task:
000034f8 <MultSend_Task>:
* DatSd,0x00:0x01
*
* @retval 0x00: 0x01: 0x02:
* */
U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd)
{
34f8: 14d3 push r4-r6, r15
if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR;
34fa: 5963 subi r3, r1, 1
34fc: 74cd zexth r3, r3
34fe: 347f movi r4, 127
3500: 64d0 cmphs r4, r3
3502: 0c23 bf 0x3548 // 3548 <MultSend_Task+0x50>
if(DatSd == 0x01)
3504: 3a41 cmpnei r2, 1
3506: 0c03 bf 0x350c // 350c <MultSend_Task+0x14>
}else{
Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt );
return RETRY_END;//没有重发次数
}
}
return BUSSEND_WAIT;//等待
3508: 3001 movi r0, 1
}
350a: 1493 pop r4-r6, r15
if( m_send.ResendCnt < m_send.TotalCnt) //
350c: 1092 lrw r4, 0x20000338 // 3554 <MultSend_Task+0x5c>
350e: 8444 ld.b r2, (r4, 0x4)
3510: 8466 ld.b r3, (r4, 0x6)
3512: 64c8 cmphs r2, r3
3514: 081c bt 0x354c // 354c <MultSend_Task+0x54>
if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time)
3516: 10b1 lrw r5, 0x200000a4 // 3558 <MultSend_Task+0x60>
3518: 9560 ld.w r3, (r5, 0x0)
351a: 94c8 ld.w r6, (r4, 0x20)
351c: 60da subu r3, r6
351e: 94c5 ld.w r6, (r4, 0x14)
3520: 658c cmphs r3, r6
3522: 0817 bt 0x3550 // 3550 <MultSend_Task+0x58>
if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//
3524: 3a40 cmpnei r2, 0
3526: 0c07 bf 0x3534 // 3534 <MultSend_Task+0x3c>
3528: 9447 ld.w r2, (r4, 0x1c)
352a: 9560 ld.w r3, (r5, 0x0)
352c: 60ca subu r3, r2
352e: 9444 ld.w r2, (r4, 0x10)
3530: 648c cmphs r3, r2
3532: 0feb bf 0x3508 // 3508 <MultSend_Task+0x10>
if(BUS485_Send(buff,len) == UART_BUSIDLE){ //
3534: e3ffff7a bsr 0x3428 // 3428 <BUS485_Send>
3538: 3840 cmpnei r0, 0
353a: 0be7 bt 0x3508 // 3508 <MultSend_Task+0x10>
m_send.ASend_Tick = SysTick_1ms;
353c: 9560 ld.w r3, (r5, 0x0)
353e: b467 st.w r3, (r4, 0x1c)
m_send.ResendCnt++;
3540: 8464 ld.b r3, (r4, 0x4)
3542: 2300 addi r3, 1
3544: a464 st.b r3, (r4, 0x4)
3546: 07e2 br 0x350a // 350a <MultSend_Task+0x12>
if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR;
3548: 3004 movi r0, 4
354a: 07e0 br 0x350a // 350a <MultSend_Task+0x12>
return RETRY_END;//没有重发次数
354c: 3003 movi r0, 3
354e: 07de br 0x350a // 350a <MultSend_Task+0x12>
return DATA_END;//数据有效期结束
3550: 3002 movi r0, 2
3552: 07dc br 0x350a // 350a <MultSend_Task+0x12>
3554: 20000338 .long 0x20000338
3558: 200000a4 .long 0x200000a4
Disassembly of section .text.Set_GroupSend:
0000355c <Set_GroupSend>:
* indate
* tim_val :
* @retval None
* */
void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val)
{
355c: 14d4 push r4-r7, r15
355e: 1421 subi r14, r14, 4
3560: 6dcf mov r7, r3
3562: 9866 ld.w r3, (r14, 0x18)
3564: b860 st.w r3, (r14, 0x0)
if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return;
3566: 5963 subi r3, r1, 1
{
3568: 6d4b mov r5, r2
if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return;
356a: 74cd zexth r3, r3
356c: 327f movi r2, 127
356e: 64c8 cmphs r2, r3
{
3570: 6d83 mov r6, r0
3572: 6d07 mov r4, r1
if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return;
3574: 0c19 bf 0x35a6 // 35a6 <Set_GroupSend+0x4a>
memset(m_send.SendBuffer,0, USART_SEND_SIZE);
3576: 3280 movi r2, 128
3578: 3100 movi r1, 0
357a: 100d lrw r0, 0x200002b8 // 35ac <Set_GroupSend+0x50>
357c: e3fff200 bsr 0x197c // 197c <__memset_fast>
memcpy(m_send.SendBuffer,data,sled);
3580: 6c93 mov r2, r4
3582: 6c5b mov r1, r6
3584: 100a lrw r0, 0x200002b8 // 35ac <Set_GroupSend+0x50>
3586: e3fff23f bsr 0x1a04 // 1a04 <__memcpy_fast>
m_send.SendLen = sled;
358a: 106a lrw r3, 0x20000338 // 35b0 <Set_GroupSend+0x54>
m_send.DataValid_Time = indate;//数据有效期
m_send.TotalCnt = SCnt; //数据发送次数
m_send.DataWait_Time = tim_val;//发送数据间隔
358c: 9840 ld.w r2, (r14, 0x0)
358e: b344 st.w r2, (r3, 0x10)
m_send.ASend_Flag = 0x01;
3590: 3201 movi r2, 1
3592: a345 st.b r2, (r3, 0x5)
m_send.SendState = BUSSEND_WAIT;
3594: a343 st.b r2, (r3, 0x3)
m_send.ResendCnt = 0x00;
3596: 3200 movi r2, 0
3598: a344 st.b r2, (r3, 0x4)
m_send.SendLen = sled;
359a: ab85 st.h r4, (r3, 0xa)
m_send.DataValid_Time = indate;//数据有效期
359c: b3e5 st.w r7, (r3, 0x14)
m_send.TotalCnt = SCnt; //数据发送次数
359e: a3a6 st.b r5, (r3, 0x6)
m_send.BusbusyTimeout = SysTick_1ms;
35a0: 1045 lrw r2, 0x200000a4 // 35b4 <Set_GroupSend+0x58>
35a2: 9240 ld.w r2, (r2, 0x0)
35a4: b348 st.w r2, (r3, 0x20)
}
35a6: 1401 addi r14, r14, 4
35a8: 1494 pop r4-r7, r15
35aa: 0000 bkpt
35ac: 200002b8 .long 0x200002b8
35b0: 20000338 .long 0x20000338
35b4: 200000a4 .long 0x200000a4
Disassembly of section .text.BUS485Send_Task:
000035b8 <BUS485Send_Task>:
m_send.Jump_Flag = jump;
}
//485
void BUS485Send_Task(void) //2025-03-29
{
35b8: 14d1 push r4, r15
//
if(m_send.ASend_Flag == 0x01)
35ba: 1089 lrw r4, 0x20000338 // 35dc <BUS485Send_Task+0x24>
35bc: 8465 ld.b r3, (r4, 0x5)
35be: 3b41 cmpnei r3, 1
35c0: 080d bt 0x35da // 35da <BUS485Send_Task+0x22>
{
m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag);
35c2: 8c25 ld.h r1, (r4, 0xa)
35c4: 3201 movi r2, 1
35c6: 1007 lrw r0, 0x200002b8 // 35e0 <BUS485Send_Task+0x28>
35c8: e3ffff98 bsr 0x34f8 // 34f8 <MultSend_Task>
35cc: a403 st.b r0, (r4, 0x3)
if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//
35ce: 2801 subi r0, 2
35d0: 7400 zextb r0, r0
35d2: 3801 cmphsi r0, 2
35d4: 0803 bt 0x35da // 35da <BUS485Send_Task+0x22>
{
Dbg_Println(DBG_BIT_Debug_STATUS,"send end");
m_send.ASend_Flag = 0x00; //清除发送标志位
35d6: 3300 movi r3, 0
35d8: a465 st.b r3, (r4, 0x5)
}
}
}
35da: 1491 pop r4, r15
35dc: 20000338 .long 0x20000338
35e0: 200002b8 .long 0x200002b8
Disassembly of section .text.BusIdle_Task:
000035e4 <BusIdle_Task>:
/**********************************************************
* @brief 2025-03-25线
* @retval None
* */
void BusIdle_Task(void)
{
35e4: 14d1 push r4, r15
if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01))
35e6: 108d lrw r4, 0x20000338 // 3618 <BusIdle_Task+0x34>
35e8: 8460 ld.b r3, (r4, 0x0)
35ea: 3b40 cmpnei r3, 0
35ec: 0c15 bf 0x3616 // 3616 <BusIdle_Task+0x32>
35ee: 8462 ld.b r3, (r4, 0x2)
35f0: 3b41 cmpnei r3, 1
35f2: 0c12 bf 0x3616 // 3616 <BusIdle_Task+0x32>
{
CK_CPU_DisAllNormalIrq();
35f4: e3fffe13 bsr 0x321a // 321a <CK_CPU_DisAllNormalIrq>
if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) )
35f8: 8461 ld.b r3, (r4, 0x1)
35fa: 3b41 cmpnei r3, 1
35fc: 080b bt 0x3612 // 3612 <BusIdle_Task+0x2e>
35fe: 1068 lrw r3, 0x200000a4 // 361c <BusIdle_Task+0x38>
3600: 9340 ld.w r2, (r3, 0x0)
3602: 9466 ld.w r3, (r4, 0x18)
3604: 608e subu r2, r3
3606: 9463 ld.w r3, (r4, 0xc)
3608: 2305 addi r3, 6
360a: 64c8 cmphs r2, r3
360c: 0c03 bf 0x3612 // 3612 <BusIdle_Task+0x2e>
{
m_send.BusState_Flag = UART_BUSIDLE;
360e: 3300 movi r3, 0
3610: a460 st.b r3, (r4, 0x0)
}
CK_CPU_EnAllNormalIrq();
3612: e3fffe01 bsr 0x3214 // 3214 <CK_CPU_EnAllNormalIrq>
}
}
3616: 1491 pop r4, r15
3618: 20000338 .long 0x20000338
361c: 200000a4 .long 0x200000a4
Disassembly of section .text.BusBusy_Task:
00003620 <BusBusy_Task>:
/*******************************************************************
* @brief 线RX引脚的外部中断服务函数里调用
* @retval None
* */
void BusBusy_Task(void)
{
3620: 14d2 push r4-r5, r15
CK_CPU_DisAllNormalIrq();
3622: e3fffdfc bsr 0x321a // 321a <CK_CPU_DisAllNormalIrq>
m_send.BusState_Flag = UART_BUSBUSY;
3626: 1091 lrw r4, 0x20000338 // 3668 <BusBusy_Task+0x48>
3628: 3301 movi r3, 1
362a: a460 st.b r3, (r4, 0x0)
m_send.BusState_Tick = SysTick_1ms;
m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时
362c: 310a movi r1, 10
m_send.BusState_Tick = SysTick_1ms;
362e: 1070 lrw r3, 0x200000a4 // 366c <BusBusy_Task+0x4c>
if(READ_RX_LEVEL_STATE == 0x01){
3630: 10b0 lrw r5, 0x2000004c // 3670 <BusBusy_Task+0x50>
m_send.BusState_Tick = SysTick_1ms;
3632: 9340 ld.w r2, (r3, 0x0)
m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时
3634: 9300 ld.w r0, (r3, 0x0)
3636: 9467 ld.w r3, (r4, 0x1c)
m_send.BusState_Tick = SysTick_1ms;
3638: b446 st.w r2, (r4, 0x18)
m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时
363a: 600e subu r0, r3
363c: e3fffdda bsr 0x31f0 // 31f0 <__umodsi3>
3640: b403 st.w r0, (r4, 0xc)
if(READ_RX_LEVEL_STATE == 0x01){
3642: 310f movi r1, 15
3644: 9500 ld.w r0, (r5, 0x0)
3646: e3fff584 bsr 0x214e // 214e <GPIO_Read_Status>
364a: 3841 cmpnei r0, 1
364c: 0806 bt 0x3658 // 3658 <BusBusy_Task+0x38>
m_send.HighBit_Flag = 0x01; //高电平标志置位
364e: 3301 movi r3, 1
}else if(READ_RX_LEVEL_STATE == 0x00){
m_send.HighBit_Flag = 0x00; //低电平
3650: a461 st.b r3, (r4, 0x1)
}
CK_CPU_EnAllNormalIrq();
3652: e3fffde1 bsr 0x3214 // 3214 <CK_CPU_EnAllNormalIrq>
}
3656: 1492 pop r4-r5, r15
}else if(READ_RX_LEVEL_STATE == 0x00){
3658: 9500 ld.w r0, (r5, 0x0)
365a: 310f movi r1, 15
365c: e3fff579 bsr 0x214e // 214e <GPIO_Read_Status>
3660: 3840 cmpnei r0, 0
3662: 0bf8 bt 0x3652 // 3652 <BusBusy_Task+0x32>
m_send.HighBit_Flag = 0x00; //低电平
3664: 3300 movi r3, 0
3666: 07f5 br 0x3650 // 3650 <BusBusy_Task+0x30>
3668: 20000338 .long 0x20000338
366c: 200000a4 .long 0x200000a4
3670: 2000004c .long 0x2000004c
Disassembly of section .text.Dbg_Println:
00003674 <Dbg_Println>:
}
#endif
}
void Dbg_Println(int DbgOptBit, const char *cmd, ...){
3674: 1423 subi r14, r14, 12
3676: b862 st.w r3, (r14, 0x8)
3678: b841 st.w r2, (r14, 0x4)
367a: b820 st.w r1, (r14, 0x0)
}
#endif
}
367c: 1403 addi r14, r14, 12
367e: 783c jmp r15
Disassembly of section .text.Dbg_Print_Buff:
00003680 <Dbg_Print_Buff>:
DBG_Printf("\r\n",2);
}
#endif
}
3680: 783c jmp r15
Disassembly of section .text.DIP_GetSwitchState:
00003684 <DIP_GetSwitchState>:
/* - */
Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.addr);
}
U8_T DIP_GetSwitchState(U8_T i){
3684: 14d0 push r15
U8_T val = 0;
switch (i)
3686: 3841 cmpnei r0, 1
3688: 0c0d bf 0x36a2 // 36a2 <DIP_GetSwitchState+0x1e>
368a: 3840 cmpnei r0, 0
368c: 0c05 bf 0x3696 // 3696 <DIP_GetSwitchState+0x12>
368e: 3842 cmpnei r0, 2
3690: 0c0d bf 0x36aa // 36aa <DIP_GetSwitchState+0x26>
U8_T val = 0;
3692: 3000 movi r0, 0
3694: 0406 br 0x36a0 // 36a0 <DIP_GetSwitchState+0x1c>
{
case DIP_CH1:
val = GPIO_Read_Status(GPIOA0,10);
3696: 1068 lrw r3, 0x2000004c // 36b4 <DIP_GetSwitchState+0x30>
3698: 310a movi r1, 10
369a: 9300 ld.w r0, (r3, 0x0)
break;
case DIP_CH2:
val = GPIO_Read_Status(GPIOA0,9);
break;
case DIP_CH3:
val = GPIO_Read_Status(GPIOA0,8);
369c: e3fff559 bsr 0x214e // 214e <GPIO_Read_Status>
break;
}
return val;
}
36a0: 1490 pop r15
val = GPIO_Read_Status(GPIOA0,9);
36a2: 1065 lrw r3, 0x2000004c // 36b4 <DIP_GetSwitchState+0x30>
36a4: 3109 movi r1, 9
36a6: 9300 ld.w r0, (r3, 0x0)
36a8: 07fa br 0x369c // 369c <DIP_GetSwitchState+0x18>
val = GPIO_Read_Status(GPIOA0,8);
36aa: 1063 lrw r3, 0x2000004c // 36b4 <DIP_GetSwitchState+0x30>
36ac: 3108 movi r1, 8
36ae: 9300 ld.w r0, (r3, 0x0)
36b0: 07f6 br 0x369c // 369c <DIP_GetSwitchState+0x18>
36b2: 0000 bkpt
36b4: 2000004c .long 0x2000004c
Disassembly of section .text.DIP_Switch_Init:
000036b8 <DIP_Switch_Init>:
void DIP_Switch_Init(void){
36b8: 14d2 push r4-r5, r15
GPIO_Init(GPIOA0,10,Intput);
36ba: 1181 lrw r4, 0x2000004c // 373c <DIP_Switch_Init+0x84>
36bc: 3201 movi r2, 1
36be: 9400 ld.w r0, (r4, 0x0)
36c0: 310a movi r1, 10
36c2: e3fff3ad bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_Init(GPIOA0,9,Intput);
36c6: 9400 ld.w r0, (r4, 0x0)
36c8: 3201 movi r2, 1
36ca: 3109 movi r1, 9
36cc: e3fff3a8 bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_Init(GPIOA0,8,Intput);
36d0: 3201 movi r2, 1
36d2: 9400 ld.w r0, (r4, 0x0)
36d4: 3108 movi r1, 8
36d6: e3fff3a3 bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_PullHigh_Init(GPIOA0,10);
36da: 9400 ld.w r0, (r4, 0x0)
36dc: 310a movi r1, 10
36de: e3fff40f bsr 0x1efc // 1efc <GPIO_PullHigh_Init>
GPIO_PullHigh_Init(GPIOA0,9);
36e2: 9400 ld.w r0, (r4, 0x0)
36e4: 3109 movi r1, 9
36e6: e3fff40b bsr 0x1efc // 1efc <GPIO_PullHigh_Init>
GPIO_PullHigh_Init(GPIOA0,8);
36ea: 9400 ld.w r0, (r4, 0x0)
36ec: 3108 movi r1, 8
36ee: e3fff407 bsr 0x1efc // 1efc <GPIO_PullHigh_Init>
memset(&g_Dip,0,sizeof(DIP_t));
36f2: 3210 movi r2, 16
36f4: 3100 movi r1, 0
36f6: 1013 lrw r0, 0x2000035c // 3740 <DIP_Switch_Init+0x88>
36f8: e3fff142 bsr 0x197c // 197c <__memset_fast>
delay_nms(20);
36fc: 3014 movi r0, 20
36fe: e3fff7ed bsr 0x26d8 // 26d8 <delay_nms>
3702: 3400 movi r4, 0
g_Dip.DIP_val |= DIP_VAL_ON << i;
3704: 10af lrw r5, 0x2000035c // 3740 <DIP_Switch_Init+0x88>
if(DIP_GetSwitchState(i) == DIP_PRESS){
3706: 7410 zextb r0, r4
3708: e3ffffbe bsr 0x3684 // 3684 <DIP_GetSwitchState>
370c: 3840 cmpnei r0, 0
370e: 0807 bt 0x371c // 371c <DIP_Switch_Init+0x64>
g_Dip.DIP_val |= DIP_VAL_ON << i;
3710: 3301 movi r3, 1
3712: 70d0 lsl r3, r4
3714: 6c8f mov r2, r3
3716: 9562 ld.w r3, (r5, 0x8)
3718: 6cc8 or r3, r2
371a: b562 st.w r3, (r5, 0x8)
371c: 2400 addi r4, 1
for (U8_T i = 0; i < DIP_CHN_MAX; i++) {
371e: 3c43 cmpnei r4, 3
3720: 0bf3 bt 0x3706 // 3706 <DIP_Switch_Init+0x4e>
g_Dip.DIP_last_val = g_Dip.DIP_val;
3722: 1068 lrw r3, 0x2000035c // 3740 <DIP_Switch_Init+0x88>
g_Dip.addr = ((g_Dip.DIP_val & 0x07)+20);
3724: 3107 movi r1, 7
g_Dip.DIP_last_val = g_Dip.DIP_val;
3726: 9342 ld.w r2, (r3, 0x8)
3728: b343 st.w r2, (r3, 0xc)
g_Dip.addr = ((g_Dip.DIP_val & 0x07)+20);
372a: 6884 and r2, r1
372c: 2213 addi r2, 20
372e: 7488 zextb r2, r2
Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.addr);
3730: 1025 lrw r1, 0x4dbf // 3744 <DIP_Switch_Init+0x8c>
3732: 3000 movi r0, 0
g_Dip.addr = ((g_Dip.DIP_val & 0x07)+20);
3734: a346 st.b r2, (r3, 0x6)
Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.addr);
3736: e3ffff9f bsr 0x3674 // 3674 <Dbg_Println>
}
373a: 1492 pop r4-r5, r15
373c: 2000004c .long 0x2000004c
3740: 2000035c .long 0x2000035c
3744: 00004dbf .long 0x00004dbf
Disassembly of section .text.DIP_ScanTask:
00003748 <DIP_ScanTask>:
void DIP_ScanTask(void)
{
3748: 14d3 push r4-r6, r15
static U32_T update_20ms = 0;
if (SysTick_1ms - update_20ms > DIP_SCAN_Time)
374a: 1123 lrw r1, 0x200000a4 // 37d4 <DIP_ScanTask+0x8c>
374c: 1143 lrw r2, 0x200000b8 // 37d8 <DIP_ScanTask+0x90>
374e: 11a4 lrw r5, 0x2000035c // 37dc <DIP_ScanTask+0x94>
3750: 9200 ld.w r0, (r2, 0x0)
3752: 9160 ld.w r3, (r1, 0x0)
3754: 60c2 subu r3, r0
3756: 3b14 cmphsi r3, 21
3758: 0806 bt 0x3764 // 3764 <DIP_ScanTask+0x1c>
}
}
}
}
if(g_Dip.DIP_val != g_Dip.DIP_last_val)
375a: 9542 ld.w r2, (r5, 0x8)
375c: 9563 ld.w r3, (r5, 0xc)
375e: 64ca cmpne r2, r3
3760: 082e bt 0x37bc // 37bc <DIP_ScanTask+0x74>
Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.addr);
}
}
3762: 1493 pop r4-r6, r15
update_20ms = SysTick_1ms;
3764: 9160 ld.w r3, (r1, 0x0)
3766: b260 st.w r3, (r2, 0x0)
3768: 6d17 mov r4, r5
376a: 3600 movi r6, 0
if (DIP_GetSwitchState(i) == DIP_PRESS)
376c: 7418 zextb r0, r6
376e: e3ffff8b bsr 0x3684 // 3684 <DIP_GetSwitchState>
3772: 3840 cmpnei r0, 0
g_Dip.delayCnt_OFF[i] = 0;
3774: 3300 movi r3, 0
if (DIP_GetSwitchState(i) == DIP_PRESS)
3776: 0814 bt 0x379e // 379e <DIP_ScanTask+0x56>
g_Dip.delayCnt_OFF[i] = 0;
3778: a463 st.b r3, (r4, 0x3)
if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT)
377a: 8460 ld.b r3, (r4, 0x0)
377c: 3b04 cmphsi r3, 5
377e: 0808 bt 0x378e // 378e <DIP_ScanTask+0x46>
g_Dip.delayCnt_ON[i]++;
3780: 2300 addi r3, 1
g_Dip.delayCnt_ON[i] = 0;
3782: a460 st.b r3, (r4, 0x0)
3784: 2600 addi r6, 1
for (U8_T i = 0; i < DIP_CHN_MAX; i++)
3786: 3e43 cmpnei r6, 3
3788: 2400 addi r4, 1
378a: 0bf1 bt 0x376c // 376c <DIP_ScanTask+0x24>
378c: 07e7 br 0x375a // 375a <DIP_ScanTask+0x12>
g_Dip.DIP_val |= (DIP_VAL_ON << i);
378e: 3301 movi r3, 1
3790: 70d8 lsl r3, r6
3792: 6c8f mov r2, r3
3794: 9562 ld.w r3, (r5, 0x8)
3796: 6cc8 or r3, r2
3798: b562 st.w r3, (r5, 0x8)
g_Dip.delayCnt_ON[i] = 0;
379a: 3300 movi r3, 0
379c: 07f3 br 0x3782 // 3782 <DIP_ScanTask+0x3a>
g_Dip.delayCnt_ON[i] = 0;
379e: a460 st.b r3, (r4, 0x0)
if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT)
37a0: 8463 ld.b r3, (r4, 0x3)
37a2: 3b04 cmphsi r3, 5
37a4: 0804 bt 0x37ac // 37ac <DIP_ScanTask+0x64>
g_Dip.delayCnt_OFF[i]++;
37a6: 2300 addi r3, 1
g_Dip.delayCnt_OFF[i] = 0;
37a8: a463 st.b r3, (r4, 0x3)
37aa: 07ed br 0x3784 // 3784 <DIP_ScanTask+0x3c>
g_Dip.DIP_val &= ~(DIP_VAL_ON << i);
37ac: 3300 movi r3, 0
37ae: 2b01 subi r3, 2
37b0: 9542 ld.w r2, (r5, 0x8)
37b2: 70db rotl r3, r6
37b4: 68c8 and r3, r2
37b6: b562 st.w r3, (r5, 0x8)
g_Dip.delayCnt_OFF[i] = 0;
37b8: 3300 movi r3, 0
37ba: 07f7 br 0x37a8 // 37a8 <DIP_ScanTask+0x60>
g_Dip.addr = ((g_Dip.DIP_val & 0x07)+20);
37bc: 3307 movi r3, 7
g_Dip.DIP_last_val = g_Dip.DIP_val;
37be: b543 st.w r2, (r5, 0xc)
g_Dip.addr = ((g_Dip.DIP_val & 0x07)+20);
37c0: 688c and r2, r3
37c2: 2213 addi r2, 20
37c4: 7488 zextb r2, r2
Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.addr);
37c6: 1027 lrw r1, 0x4dbf // 37e0 <DIP_ScanTask+0x98>
37c8: 3000 movi r0, 0
g_Dip.addr = ((g_Dip.DIP_val & 0x07)+20);
37ca: a546 st.b r2, (r5, 0x6)
Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.addr);
37cc: e3ffff54 bsr 0x3674 // 3674 <Dbg_Println>
}
37d0: 07c9 br 0x3762 // 3762 <DIP_ScanTask+0x1a>
37d2: 0000 bkpt
37d4: 200000a4 .long 0x200000a4
37d8: 200000b8 .long 0x200000b8
37dc: 2000035c .long 0x2000035c
37e0: 00004dbf .long 0x00004dbf
Disassembly of section .text.Relay_Init:
000037e4 <Relay_Init>:
#include "includes.h"
ZERO_CTRL_RLY c_rly;
void Relay_Init(void)
{
37e4: 14d2 push r4-r5, r15
37e6: 1429 subi r14, r14, 36
memset(&c_rly,0, sizeof(ZERO_CTRL_RLY));
37e8: 11ac lrw r5, 0x2000036c // 3898 <Relay_Init+0xb4>
37ea: 3218 movi r2, 24
37ec: 3100 movi r1, 0
37ee: 6c17 mov r0, r5
37f0: e3fff0c6 bsr 0x197c // 197c <__memset_fast>
EEPROM_Init();
37f4: e000059e bsr 0x4330 // 4330 <EEPROM_Init>
GPT_IO_Init(GPT_CHB_PB00);
37f8: 3005 movi r0, 5
37fa: e3fff513 bsr 0x2220 // 2220 <GPT_IO_Init>
GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0);
GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO);
37fe: 3400 movi r4, 0
GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0);
3800: 3300 movi r3, 0
3802: 3240 movi r2, 64
3804: 3100 movi r1, 0
3806: 3001 movi r0, 1
3808: e3fff55c bsr 0x22c0 // 22c0 <GPT_Configure>
GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO);
380c: b885 st.w r4, (r14, 0x14)
380e: b884 st.w r4, (r14, 0x10)
3810: b883 st.w r4, (r14, 0xc)
3812: b882 st.w r4, (r14, 0x8)
3814: b881 st.w r4, (r14, 0x4)
3816: b880 st.w r4, (r14, 0x0)
3818: 3300 movi r3, 0
381a: 3208 movi r2, 8
381c: 3100 movi r1, 0
381e: 3000 movi r0, 0
3820: e3fff55a bsr 0x22d4 // 22d4 <GPT_WaveCtrl_Configure>
GPT_Period_CMP_Write(10000,0,0);
3824: 3200 movi r2, 0
3826: 3100 movi r1, 0
3828: 101d lrw r0, 0x2710 // 389c <Relay_Init+0xb8>
382a: e3fff5e3 bsr 0x23f0 // 23f0 <GPT_Period_CMP_Write>
GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO);
382e: 3320 movi r3, 32
3830: 3204 movi r2, 4
3832: 3100 movi r1, 0
3834: 3001 movi r0, 1
3836: e3fff571 bsr 0x2318 // 2318 <GPT_WaveLoad_Configure>
GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0);
383a: 3301 movi r3, 1
383c: 3200 movi r2, 0
383e: b888 st.w r4, (r14, 0x20)
3840: b887 st.w r4, (r14, 0x1c)
3842: b886 st.w r4, (r14, 0x18)
3844: b885 st.w r4, (r14, 0x14)
3846: b884 st.w r4, (r14, 0x10)
3848: b883 st.w r4, (r14, 0xc)
384a: b862 st.w r3, (r14, 0x8)
384c: b861 st.w r3, (r14, 0x4)
384e: b880 st.w r4, (r14, 0x0)
3850: 3302 movi r3, 2
3852: 3100 movi r1, 0
3854: 3001 movi r0, 1
3856: e3fff56b bsr 0x232c // 232c <GPT_WaveOut_Configure>
GPT_Start();
385a: e3fff5c3 bsr 0x23e0 // 23e0 <GPT_Start>
GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND);
385e: 3180 movi r1, 128
//-
GPIO_Init(GPIOA0,12,Output);
3860: 1090 lrw r4, 0x2000004c // 38a0 <Relay_Init+0xbc>
GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND);
3862: 4129 lsli r1, r1, 9
3864: 3001 movi r0, 1
3866: e3fff5cd bsr 0x2400 // 2400 <GPT_ConfigInterrupt_CMD>
GPIO_Init(GPIOA0,12,Output);
386a: 9400 ld.w r0, (r4, 0x0)
386c: 3200 movi r2, 0
386e: 310c movi r1, 12
3870: e3fff2d6 bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_Init(GPIOA0,13,Output);
3874: 3200 movi r2, 0
3876: 9400 ld.w r0, (r4, 0x0)
3878: 310d movi r1, 13
387a: e3fff2d1 bsr 0x1e1c // 1e1c <GPIO_Init>
RLY_1_CLOSE;
387e: 9400 ld.w r0, (r4, 0x0)
3880: 310d movi r1, 13
3882: e3fff457 bsr 0x2130 // 2130 <GPIO_Write_Low>
RLY_2_CLOSE;
3886: 9400 ld.w r0, (r4, 0x0)
3888: 310c movi r1, 12
388a: e3fff453 bsr 0x2130 // 2130 <GPIO_Write_Low>
c_rly.rly_control = 0x01; //继电器控制标志位
388e: 3301 movi r3, 1
3890: a560 st.b r3, (r5, 0x0)
}
3892: 1409 addi r14, r14, 36
3894: 1492 pop r4-r5, r15
3896: 0000 bkpt
3898: 2000036c .long 0x2000036c
389c: 00002710 .long 0x00002710
38a0: 2000004c .long 0x2000004c
Disassembly of section .text.CheckSum:
000038a4 <CheckSum>:
* @param data:
* @param len:
* @retval
******************************************/
U8_T CheckSum(U8_T *data,U16_T len)
{
38a4: 6040 addu r1, r0
U16_T data_sum = 0;
38a6: 3300 movi r3, 0
for(U16_T i = 0;i<len;i++)
38a8: 6442 cmpne r0, r1
38aa: 0803 bt 0x38b0 // 38b0 <CheckSum+0xc>
{
data_sum += data[i];
}
return data_sum;
38ac: 740c zextb r0, r3
}
38ae: 783c jmp r15
data_sum += data[i];
38b0: 8040 ld.b r2, (r0, 0x0)
38b2: 60c8 addu r3, r2
38b4: 74cd zexth r3, r3
38b6: 2000 addi r0, 1
38b8: 07f8 br 0x38a8 // 38a8 <CheckSum+0x4>
Disassembly of section .text.CheckSum_Check:
000038ba <CheckSum_Check>:
* @param data:
* @param len:
* @retval
******************************************/
U8_T CheckSum_Check(U8_T *data,U16_T len)
{
38ba: 6040 addu r1, r0
U16_T data_sum = 0;
38bc: 3300 movi r3, 0
for(U16_T i = 0;i<len;i++)
38be: 6442 cmpne r0, r1
38c0: 0804 bt 0x38c8 // 38c8 <CheckSum_Check+0xe>
{
data_sum += data[i];
}
return ~data_sum;
38c2: 6cce nor r3, r3
38c4: 740c zextb r0, r3
}
38c6: 783c jmp r15
data_sum += data[i];
38c8: 8040 ld.b r2, (r0, 0x0)
38ca: 60c8 addu r3, r2
38cc: 74cd zexth r3, r3
38ce: 2000 addi r0, 1
38d0: 07f7 br 0x38be // 38be <CheckSum_Check+0x4>
Disassembly of section .text.CheckSum_Overlook_Check:
000038d2 <CheckSum_Overlook_Check>:
U8_T CheckSum_Overlook_Check(U8_T *data, U16_T len, U16_T check_id)
{
38d2: 14c2 push r4-r5
U8_T data_sum = 0;
for(U8_T i = 0;i<len;i++)
38d4: 3400 movi r4, 0
U8_T data_sum = 0;
38d6: 3300 movi r3, 0
for(U8_T i = 0;i<len;i++)
38d8: 7551 zexth r5, r4
38da: 6454 cmphs r5, r1
38dc: 0c04 bf 0x38e4 // 38e4 <CheckSum_Overlook_Check+0x12>
{
if(check_id != i) data_sum += data[i];
}
return ~data_sum;
38de: 6cce nor r3, r3
38e0: 740c zextb r0, r3
}
38e2: 1482 pop r4-r5
if(check_id != i) data_sum += data[i];
38e4: 6496 cmpne r5, r2
38e6: 0c05 bf 0x38f0 // 38f0 <CheckSum_Overlook_Check+0x1e>
38e8: 58b0 addu r5, r0, r4
38ea: 85a0 ld.b r5, (r5, 0x0)
38ec: 60d4 addu r3, r5
38ee: 74cc zextb r3, r3
for(U8_T i = 0;i<len;i++)
38f0: 2400 addi r4, 1
38f2: 7510 zextb r4, r4
38f4: 07f2 br 0x38d8 // 38d8 <CheckSum_Overlook_Check+0x6>
Disassembly of section .text.Change_OUTV:
000038f8 <Change_OUTV>:
//0 - 10000mV
U8_T Change_OUTV(U16_T VolOut)
{
if(VolOut > 10000) return 0x01;
38f8: 1065 lrw r3, 0x2710 // 390c <Change_OUTV+0x14>
38fa: 640c cmphs r3, r0
38fc: 0c06 bf 0x3908 // 3908 <Change_OUTV+0x10>
GPT0->CMPA = VolOut;
38fe: 1065 lrw r3, 0x20000024 // 3910 <Change_OUTV+0x18>
3900: 9360 ld.w r3, (r3, 0x0)
3902: b30b st.w r0, (r3, 0x2c)
#if DBG_LOG_EN
Dbg_Println(DBG_BIT_SYS_STATUS,"CMPA:%d",VolOut);
#endif
return 0x00;
3904: 3000 movi r0, 0
}
3906: 783c jmp r15
if(VolOut > 10000) return 0x01;
3908: 3001 movi r0, 1
390a: 07fe br 0x3906 // 3906 <Change_OUTV+0xe>
390c: 00002710 .long 0x00002710
3910: 20000024 .long 0x20000024
Disassembly of section .text.BLV_VolOut_Ctrl:
00003914 <BLV_VolOut_Ctrl>:
* @param
* @retval None
* */
void BLV_VolOut_Ctrl(void)
{
3914: 14d1 push r4, r15
c_rly.wind = WIND_STOP;
3916: 1095 lrw r4, 0x2000036c // 3968 <BLV_VolOut_Ctrl+0x54>
3918: 3300 movi r3, 0
391a: a46d st.b r3, (r4, 0xd)
if(c_rly.rly_state[WINDRLY_HIGH] == Control_ON) // >> ,
391c: 8465 ld.b r3, (r4, 0x5)
391e: 3b41 cmpnei r3, 1
3920: 0804 bt 0x3928 // 3928 <BLV_VolOut_Ctrl+0x14>
{
#if DBG_LOG_EN
Dbg_Println(DBG_BIT_SYS_STATUS,"WIND_HIGH");
#endif
c_rly.wind = WIND_HIGH;
3922: 3303 movi r3, 3
}else if(c_rly.rly_state[WINDRLY_LOW] == Control_ON)
{
#if DBG_LOG_EN
Dbg_Println(DBG_BIT_SYS_STATUS,"WIND_LOW");
#endif
c_rly.wind = WIND_LOW;
3924: a46d st.b r3, (r4, 0xd)
3926: 0409 br 0x3938 // 3938 <BLV_VolOut_Ctrl+0x24>
}else if(c_rly.rly_state[WINDRLY_MID] == Control_ON)
3928: 8464 ld.b r3, (r4, 0x4)
392a: 3b41 cmpnei r3, 1
392c: 0803 bt 0x3932 // 3932 <BLV_VolOut_Ctrl+0x1e>
c_rly.wind = WIND_MID;
392e: 3302 movi r3, 2
3930: 07fa br 0x3924 // 3924 <BLV_VolOut_Ctrl+0x10>
}else if(c_rly.rly_state[WINDRLY_LOW] == Control_ON)
3932: 8463 ld.b r3, (r4, 0x3)
3934: 3b41 cmpnei r3, 1
3936: 0ff7 bf 0x3924 // 3924 <BLV_VolOut_Ctrl+0x10>
}
Dbg_Println(DBG_BIT_SYS_STATUS,"VolOut_Ctrl wind:%d",c_rly.wind);
3938: 844d ld.b r2, (r4, 0xd)
393a: 102d lrw r1, 0x4dcb // 396c <BLV_VolOut_Ctrl+0x58>
393c: 3000 movi r0, 0
393e: e3fffe9b bsr 0x3674 // 3674 <Dbg_Println>
if(c_rly.wind == WIND_STOP){
3942: 846d ld.b r3, (r4, 0xd)
3944: 3b40 cmpnei r3, 0
3946: 0805 bt 0x3950 // 3950 <BLV_VolOut_Ctrl+0x3c>
Change_OUTV(c_rly.wind_STOP_vol);
3948: 8c08 ld.h r0, (r4, 0x10)
}else if(c_rly.wind == WIND_LOW){
Change_OUTV(c_rly.wind_LOW_vol);
}else if(c_rly.wind == WIND_MID){
Change_OUTV(c_rly.wind_MID_vol);
}else if(c_rly.wind == WIND_HIGH){
Change_OUTV(c_rly.wind_HIGH_vol);
394a: e3ffffd7 bsr 0x38f8 // 38f8 <Change_OUTV>
}
}
394e: 1491 pop r4, r15
}else if(c_rly.wind == WIND_LOW){
3950: 3b41 cmpnei r3, 1
3952: 0803 bt 0x3958 // 3958 <BLV_VolOut_Ctrl+0x44>
Change_OUTV(c_rly.wind_LOW_vol);
3954: 8c09 ld.h r0, (r4, 0x12)
3956: 07fa br 0x394a // 394a <BLV_VolOut_Ctrl+0x36>
}else if(c_rly.wind == WIND_MID){
3958: 3b42 cmpnei r3, 2
395a: 0803 bt 0x3960 // 3960 <BLV_VolOut_Ctrl+0x4c>
Change_OUTV(c_rly.wind_MID_vol);
395c: 8c0a ld.h r0, (r4, 0x14)
395e: 07f6 br 0x394a // 394a <BLV_VolOut_Ctrl+0x36>
}else if(c_rly.wind == WIND_HIGH){
3960: 3b43 cmpnei r3, 3
3962: 0bf6 bt 0x394e // 394e <BLV_VolOut_Ctrl+0x3a>
Change_OUTV(c_rly.wind_HIGH_vol);
3964: 8c0b ld.h r0, (r4, 0x16)
3966: 07f2 br 0x394a // 394a <BLV_VolOut_Ctrl+0x36>
3968: 2000036c .long 0x2000036c
396c: 00004dcb .long 0x00004dcb
Disassembly of section .text.BLV_RLY_Ctrl_Purpose:
00003970 <BLV_RLY_Ctrl_Purpose>:
* @param rly_id:id
* @param state
* @retval None
* */
void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state)
{
3970: 14d0 push r15
if(rly_id >= RLY_MAX) return;
3972: 3804 cmphsi r0, 5
3974: 0807 bt 0x3982 // 3982 <BLV_RLY_Ctrl_Purpose+0x12>
switch(state)
3976: 3941 cmpnei r1, 1
3978: 0c06 bf 0x3984 // 3984 <BLV_RLY_Ctrl_Purpose+0x14>
397a: 3940 cmpnei r1, 0
397c: 0c13 bf 0x39a2 // 39a2 <BLV_RLY_Ctrl_Purpose+0x32>
397e: 3942 cmpnei r1, 2
3980: 0c20 bf 0x39c0 // 39c0 <BLV_RLY_Ctrl_Purpose+0x50>
}
}
break;
}
}
3982: 1490 pop r15
if(c_rly.rly_state[rly_id] != Control_ON)
3984: 1078 lrw r3, 0x2000036c // 39e4 <BLV_RLY_Ctrl_Purpose+0x74>
3986: 60c0 addu r3, r0
3988: 8341 ld.b r2, (r3, 0x1)
398a: 3a41 cmpnei r2, 1
398c: 0ffb bf 0x3982 // 3982 <BLV_RLY_Ctrl_Purpose+0x12>
c_rly.rly_state[rly_id] = Control_ON;
398e: 3201 movi r2, 1
if(rly_id == CTRL_RLY1){
3990: 3840 cmpnei r0, 0
c_rly.rly_state[rly_id] = Control_ON;
3992: a341 st.b r2, (r3, 0x1)
if(rly_id == CTRL_RLY1){
3994: 0822 bt 0x39d8 // 39d8 <BLV_RLY_Ctrl_Purpose+0x68>
RLY_1_OPEN;
3996: 1075 lrw r3, 0x2000004c // 39e8 <BLV_RLY_Ctrl_Purpose+0x78>
3998: 310d movi r1, 13
399a: 9300 ld.w r0, (r3, 0x0)
RLY_2_OPEN;
399c: e3fff3c6 bsr 0x2128 // 2128 <GPIO_Write_High>
39a0: 07f1 br 0x3982 // 3982 <BLV_RLY_Ctrl_Purpose+0x12>
if(c_rly.rly_state[rly_id] != Control_OFF)
39a2: 1071 lrw r3, 0x2000036c // 39e4 <BLV_RLY_Ctrl_Purpose+0x74>
39a4: 60c0 addu r3, r0
39a6: 8341 ld.b r2, (r3, 0x1)
39a8: 3a40 cmpnei r2, 0
39aa: 0fec bf 0x3982 // 3982 <BLV_RLY_Ctrl_Purpose+0x12>
c_rly.rly_state[rly_id] = Control_OFF;
39ac: 3200 movi r2, 0
if(rly_id == CTRL_RLY1){
39ae: 3840 cmpnei r0, 0
c_rly.rly_state[rly_id] = Control_OFF;
39b0: a341 st.b r2, (r3, 0x1)
if(rly_id == CTRL_RLY1){
39b2: 080d bt 0x39cc // 39cc <BLV_RLY_Ctrl_Purpose+0x5c>
RLY_1_CLOSE;
39b4: 106d lrw r3, 0x2000004c // 39e8 <BLV_RLY_Ctrl_Purpose+0x78>
39b6: 310d movi r1, 13
39b8: 9300 ld.w r0, (r3, 0x0)
RLY_2_CLOSE;
39ba: e3fff3bb bsr 0x2130 // 2130 <GPIO_Write_Low>
39be: 07e2 br 0x3982 // 3982 <BLV_RLY_Ctrl_Purpose+0x12>
if(c_rly.rly_state[rly_id] != Control_OFF)
39c0: 1069 lrw r3, 0x2000036c // 39e4 <BLV_RLY_Ctrl_Purpose+0x74>
39c2: 60c0 addu r3, r0
39c4: 8341 ld.b r2, (r3, 0x1)
39c6: 3a40 cmpnei r2, 0
39c8: 0fe3 bf 0x398e // 398e <BLV_RLY_Ctrl_Purpose+0x1e>
39ca: 07f1 br 0x39ac // 39ac <BLV_RLY_Ctrl_Purpose+0x3c>
}else if(rly_id == CTRL_RLY2){
39cc: 3841 cmpnei r0, 1
39ce: 0bda bt 0x3982 // 3982 <BLV_RLY_Ctrl_Purpose+0x12>
RLY_2_CLOSE;
39d0: 1066 lrw r3, 0x2000004c // 39e8 <BLV_RLY_Ctrl_Purpose+0x78>
39d2: 310c movi r1, 12
39d4: 9300 ld.w r0, (r3, 0x0)
39d6: 07f2 br 0x39ba // 39ba <BLV_RLY_Ctrl_Purpose+0x4a>
}else if(rly_id == CTRL_RLY2){
39d8: 3841 cmpnei r0, 1
39da: 0bd4 bt 0x3982 // 3982 <BLV_RLY_Ctrl_Purpose+0x12>
RLY_2_OPEN;
39dc: 1063 lrw r3, 0x2000004c // 39e8 <BLV_RLY_Ctrl_Purpose+0x78>
39de: 310c movi r1, 12
39e0: 9300 ld.w r0, (r3, 0x0)
39e2: 07dd br 0x399c // 399c <BLV_RLY_Ctrl_Purpose+0x2c>
39e4: 2000036c .long 0x2000036c
39e8: 2000004c .long 0x2000004c
Disassembly of section .text.BLV_RLY_Task:
000039ec <BLV_RLY_Task>:
//
void BLV_RLY_Task(void)
{
39ec: 14d3 push r4-r6, r15
if(c_rly.rly_control != 0x01)return;
39ee: 10b1 lrw r5, 0x2000036c // 3a30 <BLV_RLY_Task+0x44>
39f0: 8560 ld.b r3, (r5, 0x0)
39f2: 3b41 cmpnei r3, 1
39f4: 0815 bt 0x3a1e // 3a1e <BLV_RLY_Task+0x32>
39f6: 6d97 mov r6, r5
39f8: 3400 movi r4, 0
for(U8_T i = 0;i<RLY_MAX;i++)
{
if(c_rly.rly_ctrl_state[i] == RLY_OFF)
39fa: 8666 ld.b r3, (r6, 0x6)
39fc: 3b41 cmpnei r3, 1
39fe: 0811 bt 0x3a20 // 3a20 <BLV_RLY_Task+0x34>
{
BLV_RLY_Ctrl_Purpose(i,Control_OFF);
3a00: 3100 movi r1, 0
{
BLV_RLY_Ctrl_Purpose(i,Control_ON);
}else if(c_rly.rly_ctrl_state[i] == RLY_RES)
{
BLV_RLY_Ctrl_Purpose(i,Cnotrol_RES);
3a02: 6c13 mov r0, r4
3a04: e3ffffb6 bsr 0x3970 // 3970 <BLV_RLY_Ctrl_Purpose>
for(U8_T i = 0;i<RLY_MAX;i++)
3a08: 2400 addi r4, 1
3a0a: 7510 zextb r4, r4
}
c_rly.rly_ctrl_state[i] = NO_CTRL;
3a0c: 3300 movi r3, 0
for(U8_T i = 0;i<RLY_MAX;i++)
3a0e: 3c45 cmpnei r4, 5
c_rly.rly_ctrl_state[i] = NO_CTRL;
3a10: a666 st.b r3, (r6, 0x6)
3a12: 2600 addi r6, 1
for(U8_T i = 0;i<RLY_MAX;i++)
3a14: 0bf3 bt 0x39fa // 39fa <BLV_RLY_Task+0xe>
}
BLV_VolOut_Ctrl(); //风速判断输出pwm
3a16: e3ffff7f bsr 0x3914 // 3914 <BLV_VolOut_Ctrl>
#if DBG_LOG_EN
Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_RLY_Task");
#endif
c_rly.rly_control = 0x00;
3a1a: 3300 movi r3, 0
3a1c: a560 st.b r3, (r5, 0x0)
}
3a1e: 1493 pop r4-r6, r15
else if(c_rly.rly_ctrl_state[i] == RLY_ON)
3a20: 3b42 cmpnei r3, 2
3a22: 0803 bt 0x3a28 // 3a28 <BLV_RLY_Task+0x3c>
BLV_RLY_Ctrl_Purpose(i,Control_ON);
3a24: 3101 movi r1, 1
3a26: 07ee br 0x3a02 // 3a02 <BLV_RLY_Task+0x16>
}else if(c_rly.rly_ctrl_state[i] == RLY_RES)
3a28: 3b43 cmpnei r3, 3
3a2a: 0bef bt 0x3a08 // 3a08 <BLV_RLY_Task+0x1c>
BLV_RLY_Ctrl_Purpose(i,Cnotrol_RES);
3a2c: 3102 movi r1, 2
3a2e: 07ea br 0x3a02 // 3a02 <BLV_RLY_Task+0x16>
3a30: 2000036c .long 0x2000036c
Disassembly of section .text.BLV_A9RLY_CMD_SET_Processing:
00003a34 <BLV_A9RLY_CMD_SET_Processing>:
//1
U8_T BLV_A9RLY_CMD_SET_Processing(U8_T *data,U16_T len)
{
3a34: 14d3 push r4-r6, r15
3a36: 1429 subi r14, r14, 36
if(len < 9) return 0x01;
3a38: 3908 cmphsi r1, 9
3a3a: 0c48 bf 0x3aca // 3aca <BLV_A9RLY_CMD_SET_Processing+0x96>
U16_T RLY_STATE = 0x00;
// if(len >= 9)
{
RLY_STATE =(data[SEND_PARA] + (data[SEND_PARA+1]<<8));
3a3c: 8048 ld.b r2, (r0, 0x8)
3a3e: 8067 ld.b r3, (r0, 0x7)
3a40: 4248 lsli r2, r2, 8
3a42: 608c addu r2, r3
c_rly.rly_control = 0x01; //继电器控制标志
3a44: 3101 movi r1, 1
3a46: 1163 lrw r3, 0x2000036c // 3ad0 <BLV_A9RLY_CMD_SET_Processing+0x9c>
RLY_STATE =(data[SEND_PARA] + (data[SEND_PARA+1]<<8));
3a48: 7489 zexth r2, r2
c_rly.rly_control = 0x01; //继电器控制标志
3a4a: a320 st.b r1, (r3, 0x0)
3a4c: 3400 movi r4, 0
3a4e: 6d4f mov r5, r3
for(U8_T i = 0;i<RLY_MAX;i++)
{
t = ((RLY_STATE>>(2*i)) & 0x03);
3a50: 3603 movi r6, 3
3a52: 6c4b mov r1, r2
3a54: 7052 asr r1, r4
3a56: 6858 and r1, r6
3a58: 7444 zextb r1, r1
if(t == NO_CTRL){
3a5a: 3940 cmpnei r1, 0
3a5c: 0831 bt 0x3abe // 3abe <BLV_A9RLY_CMD_SET_Processing+0x8a>
3a5e: 2401 addi r4, 2
for(U8_T i = 0;i<RLY_MAX;i++)
3a60: 3c4a cmpnei r4, 10
}else if(t == RLY_OFF){
c_rly.rly_ctrl_state[i] = RLY_OFF;
}else if(t == RLY_ON){
c_rly.rly_ctrl_state[i] = RLY_ON;
}else if(t == RLY_RES){
c_rly.rly_ctrl_state[i] = RLY_RES;
3a62: a326 st.b r1, (r3, 0x6)
3a64: 2300 addi r3, 1
for(U8_T i = 0;i<RLY_MAX;i++)
3a66: 0bf6 bt 0x3a52 // 3a52 <BLV_A9RLY_CMD_SET_Processing+0x1e>
}
}
}
//BLV_RLY_Task();
c_rly.SN = (data[1]&0x0F);
3a68: 8061 ld.b r3, (r0, 0x1)
3a6a: 320f movi r2, 15
3a6c: 68c8 and r3, r2
3a6e: a56c st.b r3, (r5, 0xc)
//
SendData[SendLen++] = g_Dip.addr;
SendData[SendLen++] = c_rly.SN; //SN
3a70: dc6e0005 st.b r3, (r14, 0x5)
SendData[SendLen++] = data[2];
3a74: 8062 ld.b r3, (r0, 0x2)
3a76: dc6e0006 st.b r3, (r14, 0x6)
SendData[SendLen++] = data[0];
3a7a: 8060 ld.b r3, (r0, 0x0)
3a7c: dc6e0007 st.b r3, (r14, 0x7)
SendData[SendLen++] = 0x00; //len
SendData[SendLen++] = 0x00; //sum
3a80: 3300 movi r3, 0
3a82: dc6e0009 st.b r3, (r14, 0x9)
SendData[SendLen++] = CMD_SET_RLYSTATE_REPLY; //回复CMD
3a86: 3330 movi r3, 48
SendData[SendLen++] = g_Dip.addr;
3a88: 1053 lrw r2, 0x2000035c // 3ad4 <BLV_A9RLY_CMD_SET_Processing+0xa0>
3a8a: 8246 ld.b r2, (r2, 0x6)
SendData[SendLen++] = CMD_SET_RLYSTATE_REPLY; //回复CMD
3a8c: dc6e000a st.b r3, (r14, 0xa)
SendLen = 0x07;
SendData[SEND_LEN] = SendLen; //len
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3a90: 3107 movi r1, 7
SendData[SEND_LEN] = SendLen; //len
3a92: 3307 movi r3, 7
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3a94: 1801 addi r0, r14, 4
SendData[SendLen++] = g_Dip.addr;
3a96: dc4e0004 st.b r2, (r14, 0x4)
SendData[SEND_LEN] = SendLen; //len
3a9a: dc6e0008 st.b r3, (r14, 0x8)
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3a9e: e3ffff0e bsr 0x38ba // 38ba <CheckSum_Check>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3aa2: 3314 movi r3, 20
3aa4: b860 st.w r3, (r14, 0x0)
3aa6: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3aa8: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3aac: 4361 lsli r3, r3, 1
3aae: 1801 addi r0, r14, 4
3ab0: 3201 movi r2, 1
3ab2: 3107 movi r1, 7
3ab4: e3fffd54 bsr 0x355c // 355c <Set_GroupSend>
3ab8: 3000 movi r0, 0
return 0x00;
}
3aba: 1409 addi r14, r14, 36
3abc: 1493 pop r4-r6, r15
}else if(t == RLY_OFF){
3abe: 3941 cmpnei r1, 1
3ac0: 0fcf bf 0x3a5e // 3a5e <BLV_A9RLY_CMD_SET_Processing+0x2a>
}else if(t == RLY_ON){
3ac2: 3942 cmpnei r1, 2
3ac4: 0fcd bf 0x3a5e // 3a5e <BLV_A9RLY_CMD_SET_Processing+0x2a>
c_rly.rly_ctrl_state[i] = RLY_RES;
3ac6: 3103 movi r1, 3
3ac8: 07cb br 0x3a5e // 3a5e <BLV_A9RLY_CMD_SET_Processing+0x2a>
if(len < 9) return 0x01;
3aca: 3001 movi r0, 1
3acc: 07f7 br 0x3aba // 3aba <BLV_A9RLY_CMD_SET_Processing+0x86>
3ace: 0000 bkpt
3ad0: 2000036c .long 0x2000036c
3ad4: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_A9RLY_CMD_READ_Processing:
00003ad8 <BLV_A9RLY_CMD_READ_Processing>:
//2
void BLV_A9RLY_CMD_READ_Processing(U8_T *data,U16_T len)
{
3ad8: 14d2 push r4-r5, r15
3ada: 1429 subi r14, r14, 36
3adc: 11a0 lrw r5, 0x2000036c // 3b5c <BLV_A9RLY_CMD_READ_Processing+0x84>
3ade: 3200 movi r2, 0
U8_T SendData[30];
U16_T SendLen = 0x00;
U8_T RLY_State2 = 0x00;
3ae0: 3400 movi r4, 0
3ae2: 6c57 mov r1, r5
for(U8_T i = 0;i<RLY_MAX;i++)
{
if(c_rly.rly_state[i] == Control_ON)
3ae4: 8561 ld.b r3, (r5, 0x1)
3ae6: 3b41 cmpnei r3, 1
3ae8: 0804 bt 0x3af0 // 3af0 <BLV_A9RLY_CMD_READ_Processing+0x18>
{
RLY_State2 |= (0x01<<i);
3aea: 70c8 lsl r3, r2
3aec: 6cd0 or r3, r4
3aee: 750c zextb r4, r3
3af0: 2200 addi r2, 1
for(U8_T i = 0;i<RLY_MAX;i++)
3af2: 3a45 cmpnei r2, 5
3af4: 2500 addi r5, 1
3af6: 0bf7 bt 0x3ae4 // 3ae4 <BLV_A9RLY_CMD_READ_Processing+0xc>
}
}
c_rly.SN = (data[1]&0x0F);
3af8: 8041 ld.b r2, (r0, 0x1)
3afa: 330f movi r3, 15
3afc: 688c and r2, r3
//
SendData[SendLen++] = g_Dip.addr;
3afe: 1079 lrw r3, 0x2000035c // 3b60 <BLV_A9RLY_CMD_READ_Processing+0x88>
3b00: 8366 ld.b r3, (r3, 0x6)
c_rly.SN = (data[1]&0x0F);
3b02: a14c st.b r2, (r1, 0xc)
SendData[SendLen++] = g_Dip.addr;
3b04: dc6e0004 st.b r3, (r14, 0x4)
SendData[SendLen++] = c_rly.SN;
SendData[SendLen++] = data[2];
3b08: 8062 ld.b r3, (r0, 0x2)
3b0a: dc6e0006 st.b r3, (r14, 0x6)
SendData[SendLen++] = data[0];
3b0e: 8060 ld.b r3, (r0, 0x0)
3b10: dc6e0007 st.b r3, (r14, 0x7)
SendData[SendLen++] = 0x00; //len
SendData[SendLen++] = 0x00; //sum
3b14: 3300 movi r3, 0
3b16: dc6e0009 st.b r3, (r14, 0x9)
SendData[SendLen++] = CMD_READ_RLYSTATE_REPLY; //回复CMD
3b1a: 3334 movi r3, 52
3b1c: dc6e000a st.b r3, (r14, 0xa)
SendData[SendLen++] = RLY_State2;
SendData[SendLen++] = 0x00;
3b20: 3300 movi r3, 0
3b22: dc6e000c st.b r3, (r14, 0xc)
SendData[SendLen++] = 0x00;
3b26: dc6e000d st.b r3, (r14, 0xd)
SendLen = 0x0A;
SendData[SEND_LEN] = 0x0A; //len
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3b2a: 310a movi r1, 10
SendData[SEND_LEN] = 0x0A; //len
3b2c: 330a movi r3, 10
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3b2e: 1801 addi r0, r14, 4
SendData[SendLen++] = c_rly.SN;
3b30: dc4e0005 st.b r2, (r14, 0x5)
SendData[SEND_LEN] = 0x0A; //len
3b34: dc6e0008 st.b r3, (r14, 0x8)
SendData[SendLen++] = RLY_State2;
3b38: dc8e000b st.b r4, (r14, 0xb)
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3b3c: e3fffebf bsr 0x38ba // 38ba <CheckSum_Check>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3b40: 3314 movi r3, 20
3b42: b860 st.w r3, (r14, 0x0)
3b44: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3b46: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3b4a: 4361 lsli r3, r3, 1
3b4c: 3201 movi r2, 1
3b4e: 310a movi r1, 10
3b50: 1801 addi r0, r14, 4
3b52: e3fffd05 bsr 0x355c // 355c <Set_GroupSend>
}
3b56: 1409 addi r14, r14, 36
3b58: 1492 pop r4-r5, r15
3b5a: 0000 bkpt
3b5c: 2000036c .long 0x2000036c
3b60: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_WINDOUT_CMD_SET_Processing:
00003b64 <BLV_WINDOUT_CMD_SET_Processing>:
//3
U8_T BLV_WINDOUT_CMD_SET_Processing(U8_T *data,U16_T len)
{
3b64: 14d4 push r4-r7, r15
3b66: 1429 subi r14, r14, 36
if(len < 15) return 0x01;
3b68: 390e cmphsi r1, 15
{
3b6a: 6d03 mov r4, r0
if(len < 15) return 0x01;
3b6c: 0c5f bf 0x3c2a // 3c2a <BLV_WINDOUT_CMD_SET_Processing+0xc6>
3b6e: 58ba addi r5, r0, 7
3b70: 3300 movi r3, 0
3b72: 3100 movi r1, 0
// if(len >= 15)
{
for(U8_T i = 0x00; i < 0x04; i++)
{
SetVol = (data[(SEND_PARA+(i*2))] + (data[(SEND_PARA+(i*2+1))]<<8 ));
if(SetVol <= 10000){
3b74: 11cf lrw r6, 0x2710 // 3c30 <BLV_WINDOUT_CMD_SET_Processing+0xcc>
3b76: 1110 lrw r0, 0x2000036c // 3c34 <BLV_WINDOUT_CMD_SET_Processing+0xd0>
SetVol = (data[(SEND_PARA+(i*2))] + (data[(SEND_PARA+(i*2+1))]<<8 ));
3b78: 8541 ld.b r2, (r5, 0x1)
3b7a: 4248 lsli r2, r2, 8
3b7c: 85e0 ld.b r7, (r5, 0x0)
3b7e: 609c addu r2, r7
3b80: 7489 zexth r2, r2
if(SetVol <= 10000){
3b82: 6498 cmphs r6, r2
3b84: 0c0d bf 0x3b9e // 3b9e <BLV_WINDOUT_CMD_SET_Processing+0x3a>
switch(i){
3b86: 3942 cmpnei r1, 2
3b88: 0c47 bf 0x3c16 // 3c16 <BLV_WINDOUT_CMD_SET_Processing+0xb2>
3b8a: 3943 cmpnei r1, 3
3b8c: 0c4a bf 0x3c20 // 3c20 <BLV_WINDOUT_CMD_SET_Processing+0xbc>
3b8e: 3941 cmpnei r1, 1
3b90: 0c3e bf 0x3c0c // 3c0c <BLV_WINDOUT_CMD_SET_Processing+0xa8>
case 0x00:
if(c_rly.wind_STOP_vol != SetVol){
3b92: 88e8 ld.h r7, (r0, 0x10)
3b94: 649e cmpne r7, r2
3b96: 0c04 bf 0x3b9e // 3b9e <BLV_WINDOUT_CMD_SET_Processing+0x3a>
c_rly.wind_STOP_vol = SetVol;
3b98: a848 st.h r2, (r0, 0x10)
}
break;
case 0x03:
if(c_rly.wind_HIGH_vol != SetVol){
c_rly.wind_HIGH_vol = SetVol;
save_flag++;
3b9a: 2300 addi r3, 1
3b9c: 74cc zextb r3, r3
for(U8_T i = 0x00; i < 0x04; i++)
3b9e: 2100 addi r1, 1
3ba0: 7444 zextb r1, r1
3ba2: 3944 cmpnei r1, 4
3ba4: 2501 addi r5, 2
3ba6: 0be9 bt 0x3b78 // 3b78 <BLV_WINDOUT_CMD_SET_Processing+0x14>
}
}
}
}
if(save_flag != 0x00)
3ba8: 3b40 cmpnei r3, 0
3baa: 0c03 bf 0x3bb0 // 3bb0 <BLV_WINDOUT_CMD_SET_Processing+0x4c>
{
EEPROM_WritePara(); //保存flash
3bac: e00002cc bsr 0x4144 // 4144 <EEPROM_WritePara>
}
BLV_VolOut_Ctrl();
3bb0: e3fffeb2 bsr 0x3914 // 3914 <BLV_VolOut_Ctrl>
c_rly.SN = (data[1]&0x0F);
3bb4: 8461 ld.b r3, (r4, 0x1)
3bb6: 320f movi r2, 15
3bb8: 68c8 and r3, r2
3bba: 105f lrw r2, 0x2000036c // 3c34 <BLV_WINDOUT_CMD_SET_Processing+0xd0>
SendData[SendLen++] = 0x00; //sum
SendData[SendLen++] = CMD_SET_WINDOUTVOL_REPLY; //回复CMD
SendLen = 0x07;
SendData[SEND_LEN] = SendLen; //len
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3bbc: 3107 movi r1, 7
c_rly.SN = (data[1]&0x0F);
3bbe: a26c st.b r3, (r2, 0xc)
SendData[SendLen++] = c_rly.SN;
3bc0: dc6e0005 st.b r3, (r14, 0x5)
SendData[SendLen++] = data[2];
3bc4: 8462 ld.b r3, (r4, 0x2)
3bc6: dc6e0006 st.b r3, (r14, 0x6)
SendData[SendLen++] = data[0];
3bca: 8460 ld.b r3, (r4, 0x0)
3bcc: dc6e0007 st.b r3, (r14, 0x7)
SendData[SendLen++] = 0x00; //sum
3bd0: 3300 movi r3, 0
3bd2: dc6e0009 st.b r3, (r14, 0x9)
SendData[SendLen++] = CMD_SET_WINDOUTVOL_REPLY; //回复CMD
3bd6: 3337 movi r3, 55
SendData[SendLen++] = g_Dip.addr;
3bd8: 1058 lrw r2, 0x2000035c // 3c38 <BLV_WINDOUT_CMD_SET_Processing+0xd4>
3bda: 8246 ld.b r2, (r2, 0x6)
SendData[SendLen++] = CMD_SET_WINDOUTVOL_REPLY; //回复CMD
3bdc: dc6e000a st.b r3, (r14, 0xa)
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3be0: 1801 addi r0, r14, 4
SendData[SEND_LEN] = SendLen; //len
3be2: 3307 movi r3, 7
SendData[SendLen++] = g_Dip.addr;
3be4: dc4e0004 st.b r2, (r14, 0x4)
SendData[SEND_LEN] = SendLen; //len
3be8: dc6e0008 st.b r3, (r14, 0x8)
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3bec: e3fffe67 bsr 0x38ba // 38ba <CheckSum_Check>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3bf0: 3314 movi r3, 20
3bf2: b860 st.w r3, (r14, 0x0)
3bf4: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3bf6: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3bfa: 4361 lsli r3, r3, 1
3bfc: 1801 addi r0, r14, 4
3bfe: 3201 movi r2, 1
3c00: 3107 movi r1, 7
3c02: e3fffcad bsr 0x355c // 355c <Set_GroupSend>
3c06: 3000 movi r0, 0
return 0x00;
}
3c08: 1409 addi r14, r14, 36
3c0a: 1494 pop r4-r7, r15
if(c_rly.wind_LOW_vol != SetVol){
3c0c: 88e9 ld.h r7, (r0, 0x12)
3c0e: 649e cmpne r7, r2
3c10: 0fc7 bf 0x3b9e // 3b9e <BLV_WINDOUT_CMD_SET_Processing+0x3a>
c_rly.wind_LOW_vol = SetVol;
3c12: a849 st.h r2, (r0, 0x12)
3c14: 07c3 br 0x3b9a // 3b9a <BLV_WINDOUT_CMD_SET_Processing+0x36>
if(c_rly.wind_MID_vol != SetVol){
3c16: 88ea ld.h r7, (r0, 0x14)
3c18: 649e cmpne r7, r2
3c1a: 0fc2 bf 0x3b9e // 3b9e <BLV_WINDOUT_CMD_SET_Processing+0x3a>
c_rly.wind_MID_vol = SetVol;
3c1c: a84a st.h r2, (r0, 0x14)
3c1e: 07be br 0x3b9a // 3b9a <BLV_WINDOUT_CMD_SET_Processing+0x36>
if(c_rly.wind_HIGH_vol != SetVol){
3c20: 88eb ld.h r7, (r0, 0x16)
3c22: 649e cmpne r7, r2
3c24: 0fbd bf 0x3b9e // 3b9e <BLV_WINDOUT_CMD_SET_Processing+0x3a>
c_rly.wind_HIGH_vol = SetVol;
3c26: a84b st.h r2, (r0, 0x16)
3c28: 07b9 br 0x3b9a // 3b9a <BLV_WINDOUT_CMD_SET_Processing+0x36>
if(len < 15) return 0x01;
3c2a: 3001 movi r0, 1
3c2c: 07ee br 0x3c08 // 3c08 <BLV_WINDOUT_CMD_SET_Processing+0xa4>
3c2e: 0000 bkpt
3c30: 00002710 .long 0x00002710
3c34: 2000036c .long 0x2000036c
3c38: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_WINDOUT_CMD_READ_Processing:
00003c3c <BLV_WINDOUT_CMD_READ_Processing>:
//4
U8_T BLV_WINDOUT_CMD_READ_Processing(U8_T *data,U16_T len)
{
3c3c: 14d0 push r15
3c3e: 1429 subi r14, r14, 36
U8_T SendData[30];
U16_T SendLen = 0x00;
c_rly.SN = (data[1]&0x0F);
3c40: 8041 ld.b r2, (r0, 0x1)
3c42: 330f movi r3, 15
3c44: 688c and r2, r3
3c46: 1161 lrw r3, 0x2000036c // 3cc8 <BLV_WINDOUT_CMD_READ_Processing+0x8c>
//
SendData[SendLen++] = g_Dip.addr;
3c48: 1121 lrw r1, 0x2000035c // 3ccc <BLV_WINDOUT_CMD_READ_Processing+0x90>
3c4a: 8126 ld.b r1, (r1, 0x6)
c_rly.SN = (data[1]&0x0F);
3c4c: a34c st.b r2, (r3, 0xc)
SendData[SendLen++] = c_rly.SN;
3c4e: dc4e0005 st.b r2, (r14, 0x5)
SendData[SendLen++] = data[2];
3c52: 8042 ld.b r2, (r0, 0x2)
3c54: dc4e0006 st.b r2, (r14, 0x6)
SendData[SendLen++] = data[0];
3c58: 8040 ld.b r2, (r0, 0x0)
3c5a: dc4e0007 st.b r2, (r14, 0x7)
SendData[SendLen++] = 0x00; //len
SendData[SendLen++] = 0x00; //sum
3c5e: 3200 movi r2, 0
3c60: dc4e0009 st.b r2, (r14, 0x9)
SendData[SendLen++] = CMD_READ_WINDOUTVOL_REPLY; //回复CMD
3c64: 3239 movi r2, 57
3c66: dc4e000a st.b r2, (r14, 0xa)
SendData[SendLen++] = (c_rly.wind_STOP_vol & 0xFF);
3c6a: 8b48 ld.h r2, (r3, 0x10)
3c6c: dc4e000b st.b r2, (r14, 0xb)
SendData[SendLen++] = (c_rly.wind_STOP_vol >> 8) & 0xFF;
3c70: 4a48 lsri r2, r2, 8
3c72: dc4e000c st.b r2, (r14, 0xc)
SendData[SendLen++] = (c_rly.wind_LOW_vol & 0xFF);
3c76: 8b49 ld.h r2, (r3, 0x12)
3c78: dc4e000d st.b r2, (r14, 0xd)
SendData[SendLen++] = (c_rly.wind_LOW_vol >> 8) & 0xFF;
3c7c: 4a48 lsri r2, r2, 8
3c7e: dc4e000e st.b r2, (r14, 0xe)
SendData[SendLen++] = (c_rly.wind_MID_vol & 0xFF);
3c82: 8b4a ld.h r2, (r3, 0x14)
SendData[SendLen++] = (c_rly.wind_MID_vol >> 8) & 0xFF;
SendData[SendLen++] = (c_rly.wind_HIGH_vol & 0xFF);
3c84: 8b6b ld.h r3, (r3, 0x16)
3c86: dc6e0011 st.b r3, (r14, 0x11)
SendData[SendLen++] = (c_rly.wind_HIGH_vol >> 8) & 0xFF;
3c8a: 4b68 lsri r3, r3, 8
SendData[SendLen++] = g_Dip.addr;
3c8c: dc2e0004 st.b r1, (r14, 0x4)
SendData[SendLen++] = (c_rly.wind_MID_vol & 0xFF);
3c90: dc4e000f st.b r2, (r14, 0xf)
SendData[SendLen++] = (c_rly.wind_HIGH_vol >> 8) & 0xFF;
3c94: dc6e0012 st.b r3, (r14, 0x12)
SendData[SendLen++] = (c_rly.wind_MID_vol >> 8) & 0xFF;
3c98: 4a48 lsri r2, r2, 8
SendLen = 0x0F;
SendData[SEND_LEN] = SendLen; //len
3c9a: 330f movi r3, 15
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3c9c: 310f movi r1, 15
3c9e: 1801 addi r0, r14, 4
SendData[SendLen++] = (c_rly.wind_MID_vol >> 8) & 0xFF;
3ca0: dc4e0010 st.b r2, (r14, 0x10)
SendData[SEND_LEN] = SendLen; //len
3ca4: dc6e0008 st.b r3, (r14, 0x8)
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3ca8: e3fffe09 bsr 0x38ba // 38ba <CheckSum_Check>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3cac: 3314 movi r3, 20
3cae: b860 st.w r3, (r14, 0x0)
3cb0: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3cb2: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3cb6: 4361 lsli r3, r3, 1
3cb8: 1801 addi r0, r14, 4
3cba: 3201 movi r2, 1
3cbc: 310f movi r1, 15
3cbe: e3fffc4f bsr 0x355c // 355c <Set_GroupSend>
return 0x00;
}
3cc2: 3000 movi r0, 0
3cc4: 1409 addi r14, r14, 36
3cc6: 1490 pop r15
3cc8: 2000036c .long 0x2000036c
3ccc: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_DEVPROT_CMD_SET_Processing:
00003cd0 <BLV_DEVPROT_CMD_SET_Processing>:
//5
U8_T BLV_DEVPROT_CMD_SET_Processing(U8_T *data,U16_T len)
{
3cd0: 14d2 push r4-r5, r15
3cd2: 1429 subi r14, r14, 36
if(len != 0x08) return 0x01;
3cd4: 3948 cmpnei r1, 8
{
3cd6: 6d43 mov r5, r0
if(len != 0x08) return 0x01;
3cd8: 0838 bt 0x3d48 // 3d48 <BLV_DEVPROT_CMD_SET_Processing+0x78>
U8_T SendData[30];
U16_T SendLen = 0x00;
if((data[SEND_PARA] == ACTIVE_PORT)||((data[SEND_PARA] == POLLING_PORT)))
3cda: 8067 ld.b r3, (r0, 0x7)
3cdc: 5b43 subi r2, r3, 1
3cde: 7488 zextb r2, r2
3ce0: 3a01 cmphsi r2, 2
3ce2: 0835 bt 0x3d4c // 3d4c <BLV_DEVPROT_CMD_SET_Processing+0x7c>
{
if(data[SEND_PARA] != c_rly.dev_port){
3ce4: 109b lrw r4, 0x2000036c // 3d50 <BLV_DEVPROT_CMD_SET_Processing+0x80>
3ce6: 844b ld.b r2, (r4, 0xb)
3ce8: 64ca cmpne r2, r3
3cea: 0c04 bf 0x3cf2 // 3cf2 <BLV_DEVPROT_CMD_SET_Processing+0x22>
c_rly.dev_port = data[SEND_PARA];
3cec: a46b st.b r3, (r4, 0xb)
EEPROM_WritePara(); //保存flash
3cee: e000022b bsr 0x4144 // 4144 <EEPROM_WritePara>
}
}else{
return 0x02;//设置的端口不合法
}
c_rly.SN = (data[1]&0x0F);
3cf2: 8561 ld.b r3, (r5, 0x1)
3cf4: 320f movi r2, 15
3cf6: 68c8 and r3, r2
3cf8: a46c st.b r3, (r4, 0xc)
//
SendData[SendLen++] = g_Dip.addr;
SendData[SendLen++] = c_rly.SN;
3cfa: dc6e0005 st.b r3, (r14, 0x5)
SendData[SendLen++] = data[2];
3cfe: 8562 ld.b r3, (r5, 0x2)
3d00: dc6e0006 st.b r3, (r14, 0x6)
SendData[SendLen++] = data[0];
3d04: 8560 ld.b r3, (r5, 0x0)
3d06: dc6e0007 st.b r3, (r14, 0x7)
SendData[SendLen++] = 0x00; //len
SendData[SendLen++] = 0x00; //sum
3d0a: 3300 movi r3, 0
3d0c: dc6e0009 st.b r3, (r14, 0x9)
SendData[SendLen++] = CMD_SET_DEVPORT_REPLY; //回复CMD
3d10: 3338 movi r3, 56
SendData[SendLen++] = g_Dip.addr;
3d12: 1051 lrw r2, 0x2000035c // 3d54 <BLV_DEVPROT_CMD_SET_Processing+0x84>
3d14: 8246 ld.b r2, (r2, 0x6)
SendData[SendLen++] = CMD_SET_DEVPORT_REPLY; //回复CMD
3d16: dc6e000a st.b r3, (r14, 0xa)
SendLen = 0x07;
SendData[SEND_LEN] = SendLen; //len
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3d1a: 3107 movi r1, 7
SendData[SEND_LEN] = SendLen; //len
3d1c: 3307 movi r3, 7
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3d1e: 1801 addi r0, r14, 4
SendData[SendLen++] = g_Dip.addr;
3d20: dc4e0004 st.b r2, (r14, 0x4)
SendData[SEND_LEN] = SendLen; //len
3d24: dc6e0008 st.b r3, (r14, 0x8)
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3d28: e3fffdc9 bsr 0x38ba // 38ba <CheckSum_Check>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3d2c: 3314 movi r3, 20
3d2e: b860 st.w r3, (r14, 0x0)
3d30: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3d32: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3d36: 4361 lsli r3, r3, 1
3d38: 1801 addi r0, r14, 4
3d3a: 3201 movi r2, 1
3d3c: 3107 movi r1, 7
3d3e: e3fffc0f bsr 0x355c // 355c <Set_GroupSend>
3d42: 3000 movi r0, 0
return 0x00;
}
3d44: 1409 addi r14, r14, 36
3d46: 1492 pop r4-r5, r15
if(len != 0x08) return 0x01;
3d48: 3001 movi r0, 1
3d4a: 07fd br 0x3d44 // 3d44 <BLV_DEVPROT_CMD_SET_Processing+0x74>
return 0x02;//设置的端口不合法
3d4c: 3002 movi r0, 2
3d4e: 07fb br 0x3d44 // 3d44 <BLV_DEVPROT_CMD_SET_Processing+0x74>
3d50: 2000036c .long 0x2000036c
3d54: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_DEVPROT_CMD_READ_Processing:
00003d58 <BLV_DEVPROT_CMD_READ_Processing>:
//6
U8_T BLV_DEVPROT_CMD_READ_Processing(U8_T *data,U16_T len)
{
3d58: 14d0 push r15
3d5a: 1429 subi r14, r14, 36
U8_T SendData[30];
U16_T SendLen = 0x00;
c_rly.SN = (data[1]&0x0F);
3d5c: 8061 ld.b r3, (r0, 0x1)
3d5e: 320f movi r2, 15
3d60: 68c8 and r3, r2
3d62: 1059 lrw r2, 0x2000036c // 3dc4 <BLV_DEVPROT_CMD_READ_Processing+0x6c>
//
SendData[SendLen++] = g_Dip.addr;
3d64: 1039 lrw r1, 0x2000035c // 3dc8 <BLV_DEVPROT_CMD_READ_Processing+0x70>
3d66: 8126 ld.b r1, (r1, 0x6)
c_rly.SN = (data[1]&0x0F);
3d68: a26c st.b r3, (r2, 0xc)
SendData[SendLen++] = c_rly.SN;
3d6a: dc6e0005 st.b r3, (r14, 0x5)
SendData[SendLen++] = data[2];
3d6e: 8062 ld.b r3, (r0, 0x2)
3d70: dc6e0006 st.b r3, (r14, 0x6)
SendData[SendLen++] = data[0];
3d74: 8060 ld.b r3, (r0, 0x0)
3d76: dc6e0007 st.b r3, (r14, 0x7)
SendData[SendLen++] = 0x00; //len
SendData[SendLen++] = 0x00; //sum
3d7a: 3300 movi r3, 0
3d7c: dc6e0009 st.b r3, (r14, 0x9)
SendData[SendLen++] = CMD_READ_DEVPORT_REPLY; //回复CMD
3d80: 333a movi r3, 58
3d82: dc6e000a st.b r3, (r14, 0xa)
SendData[SendLen++] = c_rly.dev_port; //端口模式
3d86: 826b ld.b r3, (r2, 0xb)
3d88: dc6e000b st.b r3, (r14, 0xb)
SendData[SendLen++] = Project_FW_Version; //软件版本号
3d8c: 3302 movi r3, 2
SendData[SendLen++] = g_Dip.addr;
3d8e: dc2e0004 st.b r1, (r14, 0x4)
SendData[SendLen++] = Project_FW_Version; //软件版本号
3d92: dc6e000c st.b r3, (r14, 0xc)
SendData[SendLen++] = Project_HW_Version; //硬件版本号
3d96: dc6e000d st.b r3, (r14, 0xd)
SendLen = 0x0A;
SendData[SEND_LEN] = SendLen; //len
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3d9a: 310a movi r1, 10
SendData[SEND_LEN] = SendLen; //len
3d9c: 330a movi r3, 10
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3d9e: 1801 addi r0, r14, 4
SendData[SEND_LEN] = SendLen; //len
3da0: dc6e0008 st.b r3, (r14, 0x8)
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3da4: e3fffd8b bsr 0x38ba // 38ba <CheckSum_Check>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3da8: 3314 movi r3, 20
3daa: b860 st.w r3, (r14, 0x0)
3dac: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum_Check(SendData,SendLen);
3dae: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3db2: 4361 lsli r3, r3, 1
3db4: 1801 addi r0, r14, 4
3db6: 3201 movi r2, 1
3db8: 310a movi r1, 10
3dba: e3fffbd1 bsr 0x355c // 355c <Set_GroupSend>
return 0x00;
}
3dbe: 3000 movi r0, 0
3dc0: 1409 addi r14, r14, 36
3dc2: 1490 pop r15
3dc4: 2000036c .long 0x2000036c
3dc8: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_RLY_RS485_Pro:
00003dcc <BLV_RLY_RS485_Pro>:
U8_T BLV_RLY_RS485_Pro(U8_T *RecData, U16_T Len)
{
3dcc: 14d3 push r4-r6, r15
U8_T ret = 0x00;
if(Len < 0x07)
3dce: 3906 cmphsi r1, 7
{
3dd0: 6d03 mov r4, r0
3dd2: 6d47 mov r5, r1
if(Len < 0x07)
3dd4: 0807 bt 0x3de2 // 3de2 <BLV_RLY_RS485_Pro+0x16>
{
Dbg_Println(DBG_BIT_SYS_STATUS,"Data Len Err");
3dd6: 1136 lrw r1, 0x4ddf // 3eac <BLV_RLY_RS485_Pro+0xe0>
return 0x01;
}
if(RecData[4] != Len)
{
Dbg_Println(DBG_BIT_SYS_STATUS,"Len Check Err");
3dd8: 3000 movi r0, 0
3dda: e3fffc4d bsr 0x3674 // 3674 <Dbg_Println>
return 0x01;
3dde: 3001 movi r0, 1
case CMD_READ_DEVPORT:
BLV_DEVPROT_CMD_READ_Processing(RecData,Len);
break;
}
}
3de0: 1493 pop r4-r6, r15
if(RecData[4] != Len)
3de2: 80c4 ld.b r6, (r0, 0x4)
3de4: 645a cmpne r6, r1
3de6: 0c03 bf 0x3dec // 3dec <BLV_RLY_RS485_Pro+0x20>
Dbg_Println(DBG_BIT_SYS_STATUS,"Len Check Err");
3de8: 1132 lrw r1, 0x4dec // 3eb0 <BLV_RLY_RS485_Pro+0xe4>
3dea: 07f7 br 0x3dd8 // 3dd8 <BLV_RLY_RS485_Pro+0xc>
if(RecData[2] != A9EXPANDTYPE) //A9继电器设备类型
3dec: 8062 ld.b r3, (r0, 0x2)
3dee: 3b4e cmpnei r3, 14
3df0: 0c07 bf 0x3dfe // 3dfe <BLV_RLY_RS485_Pro+0x32>
Dbg_Println(DBG_BIT_SYS_STATUS,"Type Check Err");
3df2: 3000 movi r0, 0
3df4: 1130 lrw r1, 0x4dfa // 3eb4 <BLV_RLY_RS485_Pro+0xe8>
3df6: e3fffc3f bsr 0x3674 // 3674 <Dbg_Println>
return 0x02;
3dfa: 3002 movi r0, 2
3dfc: 07f2 br 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
if(RecData[3] != g_Dip.addr) //
3dfe: 116f lrw r3, 0x2000035c // 3eb8 <BLV_RLY_RS485_Pro+0xec>
3e00: 8043 ld.b r2, (r0, 0x3)
3e02: 8366 ld.b r3, (r3, 0x6)
3e04: 64ca cmpne r2, r3
3e06: 0c07 bf 0x3e14 // 3e14 <BLV_RLY_RS485_Pro+0x48>
Dbg_Println(DBG_BIT_SYS_STATUS,"Addr Check Err ");
3e08: 3000 movi r0, 0
3e0a: 112d lrw r1, 0x4e09 // 3ebc <BLV_RLY_RS485_Pro+0xf0>
3e0c: e3fffc34 bsr 0x3674 // 3674 <Dbg_Println>
return 0x03;
3e10: 3003 movi r0, 3
3e12: 07e7 br 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
if( CheckSum_Overlook_Check(RecData,Len,SEND_SUM) != RecData[SEND_SUM] ) //
3e14: 3205 movi r2, 5
3e16: 6c5b mov r1, r6
3e18: e3fffd5d bsr 0x38d2 // 38d2 <CheckSum_Overlook_Check>
3e1c: 8445 ld.b r2, (r4, 0x5)
3e1e: 6482 cmpne r0, r2
3e20: 6cc3 mov r3, r0
3e22: 0c0d bf 0x3e3c // 3e3c <BLV_RLY_RS485_Pro+0x70>
Dbg_Println(DBG_BIT_SYS_STATUS,"Sum Check Err: %02x,%02x",RecData[SEND_SUM],CheckSum_Overlook_Check(RecData,Len,SEND_SUM));
3e24: 1127 lrw r1, 0x4e19 // 3ec0 <BLV_RLY_RS485_Pro+0xf4>
3e26: 3000 movi r0, 0
3e28: e3fffc26 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"Sum Check Err: ",RecData,Len);
3e2c: 3000 movi r0, 0
3e2e: 6cdb mov r3, r6
3e30: 6c93 mov r2, r4
3e32: 1125 lrw r1, 0x4e32 // 3ec4 <BLV_RLY_RS485_Pro+0xf8>
3e34: e3fffc26 bsr 0x3680 // 3680 <Dbg_Print_Buff>
return 0x05;
3e38: 3005 movi r0, 5
3e3a: 07d3 br 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
3e3c: 320f movi r2, 15
3e3e: 8461 ld.b r3, (r4, 0x1)
3e40: 68c8 and r3, r2
if((RecData[SEND_SN]&0x0F) == c_rly.SN)
3e42: 1142 lrw r2, 0x2000036c // 3ec8 <BLV_RLY_RS485_Pro+0xfc>
3e44: 824c ld.b r2, (r2, 0xc)
3e46: 64ca cmpne r2, r3
3e48: 0807 bt 0x3e56 // 3e56 <BLV_RLY_RS485_Pro+0x8a>
Dbg_Println(DBG_BIT_SYS_STATUS,"SN is Equal: %02x",c_rly.SN);
3e4a: 3000 movi r0, 0
3e4c: 1120 lrw r1, 0x4e42 // 3ecc <BLV_RLY_RS485_Pro+0x100>
3e4e: e3fffc13 bsr 0x3674 // 3674 <Dbg_Println>
return 0x00;
3e52: 3000 movi r0, 0
3e54: 07c6 br 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
switch(RecData[0x06])
3e56: 8406 ld.b r0, (r4, 0x6)
3e58: 281f subi r0, 32
3e5a: 380a cmphsi r0, 11
3e5c: 0bc2 bt 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
3e5e: e3ffe74f bsr 0xcfc // cfc <___gnu_csky_case_sqi>
3e62: bf06 .short 0xbf06
3e64: bf0bbfbf .long 0xbf0bbfbf
3e68: 151a10bf .long 0x151a10bf
3e6c: 001f .short 0x001f
BLV_A9RLY_CMD_SET_Processing(RecData,Len);
3e6e: 6c57 mov r1, r5
3e70: 6c13 mov r0, r4
3e72: e3fffde1 bsr 0x3a34 // 3a34 <BLV_A9RLY_CMD_SET_Processing>
break;
3e76: 07b5 br 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
BLV_A9RLY_CMD_READ_Processing(RecData,Len);
3e78: 6c57 mov r1, r5
3e7a: 6c13 mov r0, r4
3e7c: e3fffe2e bsr 0x3ad8 // 3ad8 <BLV_A9RLY_CMD_READ_Processing>
break;
3e80: 07b0 br 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
BLV_WINDOUT_CMD_SET_Processing(RecData,Len);
3e82: 6c57 mov r1, r5
3e84: 6c13 mov r0, r4
3e86: e3fffe6f bsr 0x3b64 // 3b64 <BLV_WINDOUT_CMD_SET_Processing>
break;
3e8a: 07ab br 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
BLV_WINDOUT_CMD_READ_Processing(RecData,Len);
3e8c: 6c57 mov r1, r5
3e8e: 6c13 mov r0, r4
3e90: e3fffed6 bsr 0x3c3c // 3c3c <BLV_WINDOUT_CMD_READ_Processing>
break;
3e94: 07a6 br 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
BLV_DEVPROT_CMD_SET_Processing(RecData,Len);
3e96: 6c57 mov r1, r5
3e98: 6c13 mov r0, r4
3e9a: e3ffff1b bsr 0x3cd0 // 3cd0 <BLV_DEVPROT_CMD_SET_Processing>
break;
3e9e: 07a1 br 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
BLV_DEVPROT_CMD_READ_Processing(RecData,Len);
3ea0: 6c57 mov r1, r5
3ea2: 6c13 mov r0, r4
3ea4: e3ffff5a bsr 0x3d58 // 3d58 <BLV_DEVPROT_CMD_READ_Processing>
}
3ea8: 079c br 0x3de0 // 3de0 <BLV_RLY_RS485_Pro+0x14>
3eaa: 0000 bkpt
3eac: 00004ddf .long 0x00004ddf
3eb0: 00004dec .long 0x00004dec
3eb4: 00004dfa .long 0x00004dfa
3eb8: 2000035c .long 0x2000035c
3ebc: 00004e09 .long 0x00004e09
3ec0: 00004e19 .long 0x00004e19
3ec4: 00004e32 .long 0x00004e32
3ec8: 2000036c .long 0x2000036c
3ecc: 00004e42 .long 0x00004e42
Disassembly of section .text.CTRL_LEDStatus_Task:
00003ed0 <CTRL_LEDStatus_Task>:
void CTRL_LEDStatus_Task(void)
{
3ed0: 14d0 push r15
static U32_T Ctrl_LED_tick = 0x00;
if(SysTick_1ms - Ctrl_LED_tick >= 500)
3ed2: 1029 lrw r1, 0x200000a4 // 3ef4 <CTRL_LEDStatus_Task+0x24>
3ed4: 1049 lrw r2, 0x200000bc // 3ef8 <CTRL_LEDStatus_Task+0x28>
3ed6: 9160 ld.w r3, (r1, 0x0)
3ed8: 9200 ld.w r0, (r2, 0x0)
3eda: 60c2 subu r3, r0
3edc: 1008 lrw r0, 0x1f3 // 3efc <CTRL_LEDStatus_Task+0x2c>
3ede: 64c0 cmphs r0, r3
3ee0: 0808 bt 0x3ef0 // 3ef0 <CTRL_LEDStatus_Task+0x20>
{
Ctrl_LED_tick = SysTick_1ms;
3ee2: 9160 ld.w r3, (r1, 0x0)
3ee4: b260 st.w r3, (r2, 0x0)
REVERISE_STATUS;
3ee6: 3104 movi r1, 4
3ee8: 1066 lrw r3, 0x2000004c // 3f00 <CTRL_LEDStatus_Task+0x30>
3eea: 9300 ld.w r0, (r3, 0x0)
3eec: e3fff126 bsr 0x2138 // 2138 <GPIO_Reverse>
}
3ef0: 1490 pop r15
3ef2: 0000 bkpt
3ef4: 200000a4 .long 0x200000a4
3ef8: 200000bc .long 0x200000bc
3efc: 000001f3 .long 0x000001f3
3f00: 2000004c .long 0x2000004c
Disassembly of section .text.EEPROM_CheckSum:
00003f04 <EEPROM_CheckSum>:
#include "includes.h"
E_MCU_DEV_INFO g_mcu_dev;
U8_T EEPROM_CheckSum(U8_T *data,U16_T len)
{
3f04: 6cc3 mov r3, r0
3f06: 6040 addu r1, r0
U8_T data_sum = 0;
3f08: 3000 movi r0, 0
for(U16_T i = 0;i<len;i++)
3f0a: 644e cmpne r3, r1
3f0c: 0802 bt 0x3f10 // 3f10 <EEPROM_CheckSum+0xc>
{
data_sum += data[i];
}
return data_sum;
}
3f0e: 783c jmp r15
data_sum += data[i];
3f10: 8340 ld.b r2, (r3, 0x0)
3f12: 6008 addu r0, r2
3f14: 7400 zextb r0, r0
3f16: 2300 addi r3, 1
3f18: 07f9 br 0x3f0a // 3f0a <EEPROM_CheckSum+0x6>
Disassembly of section .text.EEPROM_ReadPara:
00003f1c <EEPROM_ReadPara>:
* Description :
* Parameter :
* info
*******************************************************************************/
U8_T EEPROM_ReadPara(void)
{
3f1c: 14d1 push r4, r15
3f1e: 1430 subi r14, r14, 64
U32_T temp_addr = EEPROM_PARA_SaveAddr;
U8_T read_info[10];
U8_T para_data[EEPROM_PARA_Size];
UINT16 read_len = 0;
memset(read_info,0,sizeof(read_info));
3f20: 6c3b mov r0, r14
3f22: 320a movi r2, 10
3f24: 3100 movi r1, 0
3f26: e3ffed2b bsr 0x197c // 197c <__memset_fast>
memset(para_data,0,sizeof(para_data));
3f2a: 3232 movi r2, 50
3f2c: 3100 movi r1, 0
3f2e: 1803 addi r0, r14, 12
3f30: e3ffed26 bsr 0x197c // 197c <__memset_fast>
ReadDataArry_U8(temp_addr,4,read_info);
3f34: 6cbb mov r2, r14
3f36: 3104 movi r1, 4
3f38: 1214 lrw r0, 0x10000100 // 4088 <EEPROM_ReadPara+0x16c>
3f3a: e3fff3a3 bsr 0x2680 // 2680 <ReadDataArry_U8>
if(read_info[0] == EEPROM_SAVE_Flag){
3f3e: d84e0000 ld.b r2, (r14, 0x0)
3f42: 33a5 movi r3, 165
3f44: 64ca cmpne r2, r3
3f46: 1292 lrw r4, 0x2000036c // 408c <EEPROM_ReadPara+0x170>
3f48: 0872 bt 0x402c // 402c <EEPROM_ReadPara+0x110>
read_len = read_info[2];
read_len <<= 8;
read_len |= read_info[1];
3f4a: d86e0002 ld.b r3, (r14, 0x2)
3f4e: d84e0001 ld.b r2, (r14, 0x1)
3f52: 4368 lsli r3, r3, 8
if((read_len <= EEPROM_PARA_Size) && (read_len == 0x0A)){
3f54: 6cc8 or r3, r2
3f56: 3b4a cmpnei r3, 10
3f58: 086a bt 0x402c // 402c <EEPROM_ReadPara+0x110>
temp_addr += EEPROM_Data_Offset;
ReadDataArry_U8(temp_addr,read_len,para_data);
3f5a: 1a03 addi r2, r14, 12
3f5c: 310a movi r1, 10
3f5e: 120d lrw r0, 0x10000104 // 4090 <EEPROM_ReadPara+0x174>
3f60: e3fff390 bsr 0x2680 // 2680 <ReadDataArry_U8>
if(CheckSum(para_data,read_len) == read_info[3]){
3f64: 310a movi r1, 10
3f66: 1803 addi r0, r14, 12
3f68: e3fffc9e bsr 0x38a4 // 38a4 <CheckSum>
3f6c: d86e0003 ld.b r3, (r14, 0x3)
3f70: 640e cmpne r3, r0
3f72: 085d bt 0x402c // 402c <EEPROM_ReadPara+0x110>
// -
c_rly.wind_STOP_vol = (para_data[0] + (para_data[1]<<8));
3f74: d86e000d ld.b r3, (r14, 0xd)
3f78: d84e000c ld.b r2, (r14, 0xc)
3f7c: 4368 lsli r3, r3, 8
3f7e: 60c8 addu r3, r2
3f80: 74cd zexth r3, r3
if(c_rly.wind_STOP_vol > 10000){
3f82: 1245 lrw r2, 0x2710 // 4094 <EEPROM_ReadPara+0x178>
3f84: 64c8 cmphs r2, r3
3f86: 0c48 bf 0x4016 // 4016 <EEPROM_ReadPara+0xfa>
c_rly.wind_STOP_vol = EEPROM_WINDSTOP_OUT_Default;
3f88: ac68 st.h r3, (r4, 0x10)
}
c_rly.wind_LOW_vol = (para_data[2] + (para_data[3]<<8));
3f8a: d86e000f ld.b r3, (r14, 0xf)
3f8e: d84e000e ld.b r2, (r14, 0xe)
3f92: 4368 lsli r3, r3, 8
3f94: 60c8 addu r3, r2
3f96: 74cd zexth r3, r3
if(c_rly.wind_LOW_vol > 10000){
3f98: 115f lrw r2, 0x2710 // 4094 <EEPROM_ReadPara+0x178>
3f9a: 64c8 cmphs r2, r3
3f9c: 0c3f bf 0x401a // 401a <EEPROM_ReadPara+0xfe>
c_rly.wind_LOW_vol = EEPROM_WINDLOW_OUT_Default;
3f9e: ac69 st.h r3, (r4, 0x12)
}
c_rly.wind_MID_vol = (para_data[4] + (para_data[5]<<8));
3fa0: d86e0011 ld.b r3, (r14, 0x11)
3fa4: d84e0010 ld.b r2, (r14, 0x10)
3fa8: 4368 lsli r3, r3, 8
3faa: 60c8 addu r3, r2
3fac: 74cd zexth r3, r3
if(c_rly.wind_MID_vol > 10000){
3fae: 115a lrw r2, 0x2710 // 4094 <EEPROM_ReadPara+0x178>
3fb0: 64c8 cmphs r2, r3
3fb2: 0c36 bf 0x401e // 401e <EEPROM_ReadPara+0x102>
c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default;
3fb4: ac6a st.h r3, (r4, 0x14)
}
c_rly.wind_HIGH_vol = (para_data[6] + (para_data[7]<<8));
3fb6: d86e0013 ld.b r3, (r14, 0x13)
3fba: d84e0012 ld.b r2, (r14, 0x12)
3fbe: 4368 lsli r3, r3, 8
3fc0: 60c8 addu r3, r2
3fc2: 74cd zexth r3, r3
if(c_rly.wind_HIGH_vol > 10000){
3fc4: 1154 lrw r2, 0x2710 // 4094 <EEPROM_ReadPara+0x178>
3fc6: 64c8 cmphs r2, r3
3fc8: 0c2d bf 0x4022 // 4022 <EEPROM_ReadPara+0x106>
c_rly.wind_HIGH_vol = (para_data[6] + (para_data[7]<<8));
3fca: ac6b st.h r3, (r4, 0x16)
c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default;
}
//
c_rly.dev_port = para_data[9];
3fcc: d84e0015 ld.b r2, (r14, 0x15)
if((c_rly.dev_port != ACTIVE_PORT)&&(c_rly.dev_port != POLLING_PORT))
3fd0: 5a63 subi r3, r2, 1
3fd2: 74cc zextb r3, r3
3fd4: 3b01 cmphsi r3, 2
3fd6: 0828 bt 0x4026 // 4026 <EEPROM_ReadPara+0x10a>
c_rly.dev_port = para_data[9];
3fd8: a44b st.b r2, (r4, 0xb)
{
c_rly.dev_port = POLLING_PORT;
}
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_STOP_vol : %d",c_rly.wind_STOP_vol);
3fda: 8c48 ld.h r2, (r4, 0x10)
3fdc: 112f lrw r1, 0x4e54 // 4098 <EEPROM_ReadPara+0x17c>
3fde: 3000 movi r0, 0
3fe0: e3fffb4a bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_LOW_vol : %d",c_rly.wind_LOW_vol);
3fe4: 8c49 ld.h r2, (r4, 0x12)
3fe6: 112e lrw r1, 0x4e77 // 409c <EEPROM_ReadPara+0x180>
3fe8: 3000 movi r0, 0
3fea: e3fffb45 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_MID_vol : %d",c_rly.wind_MID_vol);
3fee: 8c4a ld.h r2, (r4, 0x14)
3ff0: 112c lrw r1, 0x4e9a // 40a0 <EEPROM_ReadPara+0x184>
3ff2: 3000 movi r0, 0
3ff4: e3fffb40 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_HIGH_vol : %d",c_rly.wind_HIGH_vol);
3ff8: 8c4b ld.h r2, (r4, 0x16)
3ffa: 112b lrw r1, 0x4ebd // 40a4 <EEPROM_ReadPara+0x188>
3ffc: 3000 movi r0, 0
3ffe: e3fffb3b bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara dev_port : %d",c_rly.dev_port);
4002: 3000 movi r0, 0
4004: 844b ld.b r2, (r4, 0xb)
4006: 1129 lrw r1, 0x4ee0 // 40a8 <EEPROM_ReadPara+0x18c>
4008: e3fffb36 bsr 0x3674 // 3674 <Dbg_Println>
SYSCON_IWDCNT_Reload();
400c: e3ffee4c bsr 0x1ca4 // 1ca4 <SYSCON_IWDCNT_Reload>
return 0x00;
4010: 3000 movi r0, 0
Dbg_Println(DBG_BIT_SYS_STATUS,"wind_MID_vol : %d",c_rly.wind_MID_vol);
Dbg_Println(DBG_BIT_SYS_STATUS,"wind_HIGH_vol : %d",c_rly.wind_HIGH_vol);
Dbg_Println(DBG_BIT_SYS_STATUS,"dev_port : %d",c_rly.dev_port);
SYSCON_IWDCNT_Reload();
return 0x01;
}
4012: 1410 addi r14, r14, 64
4014: 1491 pop r4, r15
c_rly.wind_STOP_vol = EEPROM_WINDSTOP_OUT_Default;
4016: 3300 movi r3, 0
4018: 07b8 br 0x3f88 // 3f88 <EEPROM_ReadPara+0x6c>
c_rly.wind_LOW_vol = EEPROM_WINDLOW_OUT_Default;
401a: 116b lrw r3, 0xbb8 // 40c4 <EEPROM_ReadPara+0x1a8>
401c: 07c1 br 0x3f9e // 3f9e <EEPROM_ReadPara+0x82>
c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default;
401e: 116b lrw r3, 0x1770 // 40c8 <EEPROM_ReadPara+0x1ac>
4020: 07ca br 0x3fb4 // 3fb4 <EEPROM_ReadPara+0x98>
c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default;
4022: ac4b st.h r2, (r4, 0x16)
4024: 07d4 br 0x3fcc // 3fcc <EEPROM_ReadPara+0xb0>
c_rly.dev_port = POLLING_PORT;
4026: 3301 movi r3, 1
4028: a46b st.b r3, (r4, 0xb)
402a: 07d8 br 0x3fda // 3fda <EEPROM_ReadPara+0xbe>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara Default!");
402c: 1120 lrw r1, 0x4f03 // 40ac <EEPROM_ReadPara+0x190>
402e: 3000 movi r0, 0
4030: e3fffb22 bsr 0x3674 // 3674 <Dbg_Println>
c_rly.wind_STOP_vol = EEPROM_WINDSTOP_OUT_Default;
4034: 3300 movi r3, 0
4036: ac68 st.h r3, (r4, 0x10)
c_rly.wind_LOW_vol = EEPROM_WINDLOW_OUT_Default;
4038: 1163 lrw r3, 0xbb8 // 40c4 <EEPROM_ReadPara+0x1a8>
403a: ac69 st.h r3, (r4, 0x12)
c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default;
403c: 1163 lrw r3, 0x1770 // 40c8 <EEPROM_ReadPara+0x1ac>
403e: ac6a st.h r3, (r4, 0x14)
c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default;
4040: 1163 lrw r3, 0x2710 // 40cc <EEPROM_ReadPara+0x1b0>
4042: ac6b st.h r3, (r4, 0x16)
c_rly.dev_port = POLLING_PORT;
4044: 3301 movi r3, 1
4046: a46b st.b r3, (r4, 0xb)
SYSCON_IWDCNT_Reload();
4048: e3ffee2e bsr 0x1ca4 // 1ca4 <SYSCON_IWDCNT_Reload>
Dbg_Println(DBG_BIT_SYS_STATUS,"wind_STOP_vol : %d",c_rly.wind_STOP_vol);
404c: 8c48 ld.h r2, (r4, 0x10)
404e: 1039 lrw r1, 0x4e64 // 40b0 <EEPROM_ReadPara+0x194>
4050: 3000 movi r0, 0
4052: e3fffb11 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"wind_LOW_vol : %d",c_rly.wind_LOW_vol);
4056: 8c49 ld.h r2, (r4, 0x12)
4058: 1037 lrw r1, 0x4e87 // 40b4 <EEPROM_ReadPara+0x198>
405a: 3000 movi r0, 0
405c: e3fffb0c bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"wind_MID_vol : %d",c_rly.wind_MID_vol);
4060: 8c4a ld.h r2, (r4, 0x14)
4062: 1036 lrw r1, 0x4eaa // 40b8 <EEPROM_ReadPara+0x19c>
4064: 3000 movi r0, 0
4066: e3fffb07 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"wind_HIGH_vol : %d",c_rly.wind_HIGH_vol);
406a: 8c4b ld.h r2, (r4, 0x16)
406c: 1034 lrw r1, 0x4ecd // 40bc <EEPROM_ReadPara+0x1a0>
406e: 3000 movi r0, 0
4070: e3fffb02 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"dev_port : %d",c_rly.dev_port);
4074: 3000 movi r0, 0
4076: 844b ld.b r2, (r4, 0xb)
4078: 1032 lrw r1, 0x4ef0 // 40c0 <EEPROM_ReadPara+0x1a4>
407a: e3fffafd bsr 0x3674 // 3674 <Dbg_Println>
SYSCON_IWDCNT_Reload();
407e: e3ffee13 bsr 0x1ca4 // 1ca4 <SYSCON_IWDCNT_Reload>
return 0x01;
4082: 3001 movi r0, 1
4084: 07c7 br 0x4012 // 4012 <EEPROM_ReadPara+0xf6>
4086: 0000 bkpt
4088: 10000100 .long 0x10000100
408c: 2000036c .long 0x2000036c
4090: 10000104 .long 0x10000104
4094: 00002710 .long 0x00002710
4098: 00004e54 .long 0x00004e54
409c: 00004e77 .long 0x00004e77
40a0: 00004e9a .long 0x00004e9a
40a4: 00004ebd .long 0x00004ebd
40a8: 00004ee0 .long 0x00004ee0
40ac: 00004f03 .long 0x00004f03
40b0: 00004e64 .long 0x00004e64
40b4: 00004e87 .long 0x00004e87
40b8: 00004eaa .long 0x00004eaa
40bc: 00004ecd .long 0x00004ecd
40c0: 00004ef0 .long 0x00004ef0
40c4: 00000bb8 .long 0x00000bb8
40c8: 00001770 .long 0x00001770
40cc: 00002710 .long 0x00002710
Disassembly of section .text.EEPROM_ValidateWrite:
000040d0 <EEPROM_ValidateWrite>:
/*******************************************************************************
* Function Name : EEPROM_ValidateWrite
* Description :
*******************************************************************************/
U8_T EEPROM_ValidateWrite(U32_T Eeprom_Write_SaveAddr,U8_T* Write_Data,U16_T Write_Len){
40d0: 1425 subi r14, r14, 20
40d2: dd0e2003 st.w r8, (r14, 0xc)
40d6: 6e3b mov r8, r14
40d8: b880 st.w r4, (r14, 0x0)
40da: b8a1 st.w r5, (r14, 0x4)
40dc: b8c2 st.w r6, (r14, 0x8)
40de: ddee2004 st.w r15, (r14, 0x10)
U8_T Read_para[Write_Len];
40e2: 5a6a addi r3, r2, 3
U8_T EEPROM_ValidateWrite(U32_T Eeprom_Write_SaveAddr,U8_T* Write_Data,U16_T Write_Len){
40e4: 6d0b mov r4, r2
U8_T Read_para[Write_Len];
40e6: 4b62 lsri r3, r3, 2
40e8: 3280 movi r2, 128
U8_T EEPROM_ValidateWrite(U32_T Eeprom_Write_SaveAddr,U8_T* Write_Data,U16_T Write_Len){
40ea: 6d83 mov r6, r0
40ec: 6d47 mov r5, r1
U8_T Read_para[Write_Len];
40ee: 4362 lsli r3, r3, 2
40f0: 4245 lsli r2, r2, 5
40f2: 64c8 cmphs r2, r3
40f4: 0806 bt 0x4100 // 4100 <EEPROM_ValidateWrite+0x30>
40f6: 638a subu r14, r2
40f8: ddce2000 st.w r14, (r14, 0x0)
40fc: 60ca subu r3, r2
40fe: 07fa br 0x40f2 // 40f2 <EEPROM_ValidateWrite+0x22>
4100: 638e subu r14, r3
U16_T i = 0;
memset(Read_para,0,sizeof(Read_para));
4102: 6c93 mov r2, r4
4104: 3100 movi r1, 0
4106: 6c3b mov r0, r14
4108: e3ffec3a bsr 0x197c // 197c <__memset_fast>
ReadDataArry_U8(Eeprom_Write_SaveAddr,Write_Len,Read_para);
410c: 6c53 mov r1, r4
410e: 6cbb mov r2, r14
4110: 6c1b mov r0, r6
4112: e3fff2b7 bsr 0x2680 // 2680 <ReadDataArry_U8>
4116: 6138 addu r4, r14
4118: 6cfb mov r3, r14
for(i=0;i<Write_Len;i++){
411a: 650e cmpne r3, r4
411c: 080c bt 0x4134 // 4134 <EEPROM_ValidateWrite+0x64>
if (Read_para[i]!=Write_Data[i]) {
return 0x01;
}
}
return 0x00;
411e: 3000 movi r0, 0
}
4120: 6fa3 mov r14, r8
4122: d9ee2004 ld.w r15, (r14, 0x10)
4126: d90e2003 ld.w r8, (r14, 0xc)
412a: 98c2 ld.w r6, (r14, 0x8)
412c: 98a1 ld.w r5, (r14, 0x4)
412e: 9880 ld.w r4, (r14, 0x0)
4130: 1405 addi r14, r14, 20
4132: 783c jmp r15
if (Read_para[i]!=Write_Data[i]) {
4134: 8320 ld.b r1, (r3, 0x0)
4136: 8540 ld.b r2, (r5, 0x0)
4138: 6486 cmpne r1, r2
413a: 2300 addi r3, 1
413c: 2500 addi r5, 1
413e: 0fee bf 0x411a // 411a <EEPROM_ValidateWrite+0x4a>
return 0x01;
4140: 3001 movi r0, 1
4142: 07ef br 0x4120 // 4120 <EEPROM_ValidateWrite+0x50>
Disassembly of section .text.EEPROM_WritePara:
00004144 <EEPROM_WritePara>:
/*******************************************************************************
* Function Name : EEPROM_WritePara
* Description :
*******************************************************************************/
U8_T EEPROM_WritePara(void)
{
4144: 14d1 push r4, r15
4146: 142f subi r14, r14, 60
U32_T temp_addr = EEPROM_PARA_SaveAddr;
U8_T save_para[EEPROM_PARA_Size+10];
UINT16 save_len = 0x0A;
memset(save_para,0,sizeof(save_para));
4148: 6c3b mov r0, r14
414a: 323c movi r2, 60
414c: 3100 movi r1, 0
414e: e3ffec17 bsr 0x197c // 197c <__memset_fast>
if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size;
save_para[0] = EEPROM_SAVE_Flag;
4152: 3300 movi r3, 0
4154: 2b5a subi r3, 91
4156: dc6e0000 st.b r3, (r14, 0x0)
save_para[1] = save_len & 0xFF;
415a: 330a movi r3, 10
415c: dc6e0001 st.b r3, (r14, 0x1)
save_para[12] = g_Dip.addr;
save_para[13] = c_rly.dev_port; //端口模式
save_para[3] = CheckSum(&save_para[4],save_len);
4160: 310a movi r1, 10
save_para[4] = c_rly.wind_STOP_vol & 0xFF;
4162: 1160 lrw r3, 0x2000036c // 41e0 <EEPROM_WritePara+0x9c>
4164: 8b48 ld.h r2, (r3, 0x10)
4166: dc4e0004 st.b r2, (r14, 0x4)
save_para[5] = (c_rly.wind_STOP_vol >> 8) & 0xFF;
416a: 4a48 lsri r2, r2, 8
416c: dc4e0005 st.b r2, (r14, 0x5)
save_para[6] = c_rly.wind_LOW_vol & 0xFF;
4170: 8b49 ld.h r2, (r3, 0x12)
4172: dc4e0006 st.b r2, (r14, 0x6)
save_para[7] = (c_rly.wind_LOW_vol >> 8) & 0xFF;
4176: 4a48 lsri r2, r2, 8
4178: dc4e0007 st.b r2, (r14, 0x7)
save_para[8] = c_rly.wind_MID_vol & 0xFF;
417c: 8b4a ld.h r2, (r3, 0x14)
417e: dc4e0008 st.b r2, (r14, 0x8)
save_para[9] = (c_rly.wind_MID_vol >> 8) & 0xFF;
4182: 4a48 lsri r2, r2, 8
4184: dc4e0009 st.b r2, (r14, 0x9)
save_para[10] = c_rly.wind_HIGH_vol & 0xFF;
4188: 8b4b ld.h r2, (r3, 0x16)
418a: dc4e000a st.b r2, (r14, 0xa)
save_para[11] = (c_rly.wind_HIGH_vol >> 8) & 0xFF;
418e: 4a48 lsri r2, r2, 8
4190: dc4e000b st.b r2, (r14, 0xb)
save_para[13] = c_rly.dev_port; //端口模式
4194: 836b ld.b r3, (r3, 0xb)
save_para[12] = g_Dip.addr;
4196: 1054 lrw r2, 0x2000035c // 41e4 <EEPROM_WritePara+0xa0>
4198: 8246 ld.b r2, (r2, 0x6)
save_para[3] = CheckSum(&save_para[4],save_len);
419a: 1801 addi r0, r14, 4
save_para[13] = c_rly.dev_port; //端口模式
419c: dc6e000d st.b r3, (r14, 0xd)
save_para[12] = g_Dip.addr;
41a0: dc4e000c st.b r2, (r14, 0xc)
save_para[3] = CheckSum(&save_para[4],save_len);
41a4: e3fffb80 bsr 0x38a4 // 38a4 <CheckSum>
41a8: dc0e0003 st.b r0, (r14, 0x3)
save_len += 4;
Page_ProgramData(temp_addr,save_len,save_para);
41ac: 6cbb mov r2, r14
41ae: 310e movi r1, 14
41b0: 100e lrw r0, 0x10000100 // 41e8 <EEPROM_WritePara+0xa4>
41b2: e3fff217 bsr 0x25e0 // 25e0 <Page_ProgramData>
if(EEPROM_ValidateWrite(temp_addr,save_para,save_len)){
41b6: 320e movi r2, 14
41b8: 6c7b mov r1, r14
41ba: 100c lrw r0, 0x10000100 // 41e8 <EEPROM_WritePara+0xa4>
41bc: e3ffff8a bsr 0x40d0 // 40d0 <EEPROM_ValidateWrite>
41c0: 3840 cmpnei r0, 0
41c2: 6d03 mov r4, r0
41c4: 0c09 bf 0x41d6 // 41d6 <EEPROM_WritePara+0x92>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para Err");
41c6: 102a lrw r1, 0x4f1c // 41ec <EEPROM_WritePara+0xa8>
41c8: 3000 movi r0, 0
41ca: e3fffa55 bsr 0x3674 // 3674 <Dbg_Println>
return 0x01;
41ce: 3401 movi r4, 1
}
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para");
return 0;
}
41d0: 6c13 mov r0, r4
41d2: 140f addi r14, r14, 60
41d4: 1491 pop r4, r15
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para");
41d6: 1027 lrw r1, 0x4f3b // 41f0 <EEPROM_WritePara+0xac>
41d8: 3000 movi r0, 0
41da: e3fffa4d bsr 0x3674 // 3674 <Dbg_Println>
return 0;
41de: 07f9 br 0x41d0 // 41d0 <EEPROM_WritePara+0x8c>
41e0: 2000036c .long 0x2000036c
41e4: 2000035c .long 0x2000035c
41e8: 10000100 .long 0x10000100
41ec: 00004f1c .long 0x00004f1c
41f0: 00004f3b .long 0x00004f3b
Disassembly of section .text.EEPROM_ReadMCUDevInfo:
000041f4 <EEPROM_ReadMCUDevInfo>:
/*******************************************************************************
* Function Name : EEPROM_ReadMCUDevInfo
* Description : EEPROM中读取设备信息
*******************************************************************************/
U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info)
{
41f4: 14d1 push r4, r15
41f6: 1432 subi r14, r14, 72
41f8: 6d03 mov r4, r0
U8_T read_info[6];
U8_T para_data[EEPROM_DATA_Size_Max];
U16_T read_len = 0;
memset(read_info,0,sizeof(read_info));
41fa: 3300 movi r3, 0
memset(para_data,0,sizeof(para_data));
41fc: 3240 movi r2, 64
41fe: 3100 movi r1, 0
4200: 1802 addi r0, r14, 8
memset(read_info,0,sizeof(read_info));
4202: b860 st.w r3, (r14, 0x0)
4204: dc6e1002 st.h r3, (r14, 0x4)
memset(para_data,0,sizeof(para_data));
4208: e3ffebba bsr 0x197c // 197c <__memset_fast>
ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info);
420c: 3080 movi r0, 128
420e: 6cbb mov r2, r14
4210: 3104 movi r1, 4
4212: 4015 lsli r0, r0, 21
4214: e3fff236 bsr 0x2680 // 2680 <ReadDataArry_U8>
if(read_info[0] == EEPROM_SVAE_FLAG){
4218: d84e0000 ld.b r2, (r14, 0x0)
421c: 33ae movi r3, 174
421e: 64ca cmpne r2, r3
4220: 0c04 bf 0x4228 // 4228 <EEPROM_ReadMCUDevInfo+0x34>
return 0x00;
}
}
}
return 0x01;
4222: 3001 movi r0, 1
}
4224: 1412 addi r14, r14, 72
4226: 1491 pop r4, r15
read_len |= read_info[1];
4228: d82e0002 ld.b r1, (r14, 0x2)
422c: d86e0001 ld.b r3, (r14, 0x1)
4230: 4128 lsli r1, r1, 8
4232: 6c4c or r1, r3
if(read_len <= EEPROM_DATA_Size_Max){
4234: 3340 movi r3, 64
4236: 644c cmphs r3, r1
4238: 0ff5 bf 0x4222 // 4222 <EEPROM_ReadMCUDevInfo+0x2e>
ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data);
423a: 1a02 addi r2, r14, 8
423c: 1009 lrw r0, 0x10000004 // 4260 <EEPROM_ReadMCUDevInfo+0x6c>
423e: e3fff221 bsr 0x2680 // 2680 <ReadDataArry_U8>
if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){
4242: 3125 movi r1, 37
4244: 1802 addi r0, r14, 8
4246: e3fffe5f bsr 0x3f04 // 3f04 <EEPROM_CheckSum>
424a: d86e0003 ld.b r3, (r14, 0x3)
424e: 640e cmpne r3, r0
4250: 0be9 bt 0x4222 // 4222 <EEPROM_ReadMCUDevInfo+0x2e>
memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO));
4252: 3225 movi r2, 37
4254: 1902 addi r1, r14, 8
4256: 6c13 mov r0, r4
4258: e3ffebd6 bsr 0x1a04 // 1a04 <__memcpy_fast>
return 0x00;
425c: 3000 movi r0, 0
425e: 07e3 br 0x4224 // 4224 <EEPROM_ReadMCUDevInfo+0x30>
4260: 10000004 .long 0x10000004
Disassembly of section .text.EEPROM_WriteMCUDevInfo:
00004264 <EEPROM_WriteMCUDevInfo>:
/*******************************************************************************
* Function Name : EEPROM_WriteMCUDevInfo
* Description : EEPROM中
*******************************************************************************/
U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info)
{
4264: 14d0 push r15
4266: 1432 subi r14, r14, 72
U8_T save_data[EEPROM_DATA_Size_Max + 6];
U16_T save_len = sizeof(E_MCU_DEV_INFO);
if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max;
save_data[0] = EEPROM_SVAE_FLAG;
4268: 3300 movi r3, 0
426a: 2b51 subi r3, 82
426c: dc6e0000 st.b r3, (r14, 0x0)
save_data[1] = save_len & 0xFF;
4270: 3325 movi r3, 37
4272: dc6e0001 st.b r3, (r14, 0x1)
save_data[2] = (save_len >> 8) & 0xFF;
4276: 3300 movi r3, 0
4278: dc6e0002 st.b r3, (r14, 0x2)
memcpy(&save_data[4],(uint8_t *)info,save_len);
427c: 1b01 addi r3, r14, 4
{
427e: 6c43 mov r1, r0
memcpy(&save_data[4],(uint8_t *)info,save_len);
4280: 3225 movi r2, 37
4282: 6c0f mov r0, r3
4284: e3ffebc0 bsr 0x1a04 // 1a04 <__memcpy_fast>
save_data[3] = EEPROM_CheckSum(&save_data[4],save_len);
4288: 3125 movi r1, 37
428a: e3fffe3d bsr 0x3f04 // 3f04 <EEPROM_CheckSum>
428e: dc0e0003 st.b r0, (r14, 0x3)
save_len+=4;
Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data);
4292: 3080 movi r0, 128
4294: 4015 lsli r0, r0, 21
4296: 6cbb mov r2, r14
4298: 3129 movi r1, 41
429a: e3fff1a3 bsr 0x25e0 // 25e0 <Page_ProgramData>
return 0;
}
429e: 3000 movi r0, 0
42a0: 1412 addi r14, r14, 72
42a2: 1490 pop r15
Disassembly of section .text.EEPROM_Default_MCUDevInfo:
000042a4 <EEPROM_Default_MCUDevInfo>:
/*******************************************************************************
* Function Name : EEPROM_Default_MCUDevInfo
* Description : EEPROM中参数恢复默认值EEPROM中
*******************************************************************************/
void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info)
{
42a4: 14d2 push r4-r5, r15
memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len);
EEPROM_WriteMCUDevInfo(info);
#elif (Project_Area == 0x02)
/*APP */
info->dev_addr = 0x00;
42a6: 3300 movi r3, 0
42a8: a060 st.b r3, (r0, 0x0)
info->dev_type = Project_Type;
42aa: a061 st.b r3, (r0, 0x1)
info->dev_app_ver = Project_FW_Version;
42ac: 3302 movi r3, 2
42ae: a063 st.b r3, (r0, 0x3)
info->dev_name_len = sizeof(Peoject_Name);
memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size);
42b0: 58b2 addi r5, r0, 5
info->dev_name_len = sizeof(Peoject_Name);
42b2: 330f movi r3, 15
42b4: a064 st.b r3, (r0, 0x4)
{
42b6: 6d03 mov r4, r0
memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size);
42b8: 3220 movi r2, 32
42ba: 3100 movi r1, 0
42bc: 6c17 mov r0, r5
42be: e3ffeb5f bsr 0x197c // 197c <__memset_fast>
memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len);
42c2: 320f movi r2, 15
42c4: 1024 lrw r1, 0x4f56 // 42d4 <EEPROM_Default_MCUDevInfo+0x30>
42c6: 6c17 mov r0, r5
42c8: e3ffeb9e bsr 0x1a04 // 1a04 <__memcpy_fast>
EEPROM_WriteMCUDevInfo(info);
42cc: 6c13 mov r0, r4
42ce: e3ffffcb bsr 0x4264 // 4264 <EEPROM_WriteMCUDevInfo>
#endif
}
42d2: 1492 pop r4-r5, r15
42d4: 00004f56 .long 0x00004f56
Disassembly of section .text.EEPROM_Validate_MCUDevInfo:
000042d8 <EEPROM_Validate_MCUDevInfo>:
* Description : EEPROM 便
APP区域中APP参数与EEPROM中记录的是否一致
Boot区域中Boot参数与EEPROM中记录的是否一致
*******************************************************************************/
void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info)
{
42d8: 14d3 push r4-r6, r15
}
#elif (Project_Area == 0x02)
/*APP */
U8_T save_flag = 0;
if(info->dev_app_ver != Project_FW_Version)
42da: 8063 ld.b r3, (r0, 0x3)
42dc: 3b42 cmpnei r3, 2
{
42de: 6d03 mov r4, r0
if(info->dev_app_ver != Project_FW_Version)
42e0: 0c21 bf 0x4322 // 4322 <EEPROM_Validate_MCUDevInfo+0x4a>
{
info->dev_app_ver = Project_FW_Version;
42e2: 3302 movi r3, 2
42e4: a063 st.b r3, (r0, 0x3)
save_flag = 0x01;
42e6: 3501 movi r5, 1
}
if(info->dev_type != Project_Type)
42e8: 8461 ld.b r3, (r4, 0x1)
42ea: 3b40 cmpnei r3, 0
42ec: 0c04 bf 0x42f4 // 42f4 <EEPROM_Validate_MCUDevInfo+0x1c>
{
info->dev_type = Project_Type;
42ee: 3300 movi r3, 0
42f0: a461 st.b r3, (r4, 0x1)
save_flag = 0x01;
42f2: 3501 movi r5, 1
}
if(info->dev_name_len != sizeof(Peoject_Name))
42f4: 8464 ld.b r3, (r4, 0x4)
42f6: 3b4f cmpnei r3, 15
42f8: 0c04 bf 0x4300 // 4300 <EEPROM_Validate_MCUDevInfo+0x28>
{
info->dev_name_len = sizeof(Peoject_Name);
42fa: 330f movi r3, 15
42fc: a464 st.b r3, (r4, 0x4)
save_flag = 0x01;
42fe: 3501 movi r5, 1
}
if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name)))
4300: 5cd2 addi r6, r4, 5
4302: 320f movi r2, 15
4304: 102a lrw r1, 0x4f56 // 432c <EEPROM_Validate_MCUDevInfo+0x54>
4306: 6c1b mov r0, r6
4308: e3ffebb0 bsr 0x1a68 // 1a68 <__GI_strncmp>
430c: 3840 cmpnei r0, 0
430e: 0c0c bf 0x4326 // 4326 <EEPROM_Validate_MCUDevInfo+0x4e>
{
memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len);
4310: 8444 ld.b r2, (r4, 0x4)
4312: 1027 lrw r1, 0x4f56 // 432c <EEPROM_Validate_MCUDevInfo+0x54>
4314: 6c1b mov r0, r6
4316: e3ffeb77 bsr 0x1a04 // 1a04 <__memcpy_fast>
save_flag = 0x01;
}
if(save_flag == 0x01)
{
EEPROM_WriteMCUDevInfo(info);
431a: 6c13 mov r0, r4
431c: e3ffffa4 bsr 0x4264 // 4264 <EEPROM_WriteMCUDevInfo>
}
#endif
}
4320: 0405 br 0x432a // 432a <EEPROM_Validate_MCUDevInfo+0x52>
U8_T save_flag = 0;
4322: 3500 movi r5, 0
4324: 07e2 br 0x42e8 // 42e8 <EEPROM_Validate_MCUDevInfo+0x10>
if(save_flag == 0x01)
4326: 3d41 cmpnei r5, 1
4328: 0ff9 bf 0x431a // 431a <EEPROM_Validate_MCUDevInfo+0x42>
}
432a: 1493 pop r4-r6, r15
432c: 00004f56 .long 0x00004f56
Disassembly of section .text.EEPROM_Init:
00004330 <EEPROM_Init>:
{
4330: 14d2 push r4-r5, r15
EnIFCClk; //使能 IFC 时钟
4332: 1074 lrw r3, 0x20000060 // 4380 <EEPROM_Init+0x50>
4334: 3201 movi r2, 1
4336: 9360 ld.w r3, (r3, 0x0)
4338: b341 st.w r2, (r3, 0x4)
IFC->MR |= 0x10002; //高速模式,延迟 2 个周期
433a: 9345 ld.w r2, (r3, 0x14)
433c: 3aa1 bseti r2, 1
433e: 3ab0 bseti r2, 16
4340: b345 st.w r2, (r3, 0x14)
EEPROM_ReadPara();
4342: e3fffded bsr 0x3f1c // 3f1c <EEPROM_ReadPara>
memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO));
4346: 1090 lrw r4, 0x20000384 // 4384 <EEPROM_Init+0x54>
4348: 3225 movi r2, 37
434a: 3100 movi r1, 0
434c: 6c13 mov r0, r4
434e: e3ffeb17 bsr 0x197c // 197c <__memset_fast>
rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev);
4352: 6c13 mov r0, r4
4354: e3ffff50 bsr 0x41f4 // 41f4 <EEPROM_ReadMCUDevInfo>
if(g_Dip.addr != g_mcu_dev.dev_addr){
4358: 106c lrw r3, 0x2000035c // 4388 <EEPROM_Init+0x58>
435a: 8366 ld.b r3, (r3, 0x6)
435c: 8440 ld.b r2, (r4, 0x0)
435e: 64ca cmpne r2, r3
rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev);
4360: 6d43 mov r5, r0
if(g_Dip.addr != g_mcu_dev.dev_addr){
4362: 0c05 bf 0x436c // 436c <EEPROM_Init+0x3c>
EEPROM_WriteMCUDevInfo(&g_mcu_dev);
4364: 6c13 mov r0, r4
g_mcu_dev.dev_addr = g_Dip.addr;
4366: a460 st.b r3, (r4, 0x0)
EEPROM_WriteMCUDevInfo(&g_mcu_dev);
4368: e3ffff7e bsr 0x4264 // 4264 <EEPROM_WriteMCUDevInfo>
if(rev == 0x00){
436c: 3d40 cmpnei r5, 0
EEPROM_Validate_MCUDevInfo(&g_mcu_dev);
436e: 1006 lrw r0, 0x20000384 // 4384 <EEPROM_Init+0x54>
if(rev == 0x00){
4370: 0804 bt 0x4378 // 4378 <EEPROM_Init+0x48>
EEPROM_Validate_MCUDevInfo(&g_mcu_dev);
4372: e3ffffb3 bsr 0x42d8 // 42d8 <EEPROM_Validate_MCUDevInfo>
}
4376: 1492 pop r4-r5, r15
EEPROM_Default_MCUDevInfo(&g_mcu_dev);
4378: e3ffff96 bsr 0x42a4 // 42a4 <EEPROM_Default_MCUDevInfo>
}
437c: 07fd br 0x4376 // 4376 <EEPROM_Init+0x46>
437e: 0000 bkpt
4380: 20000060 .long 0x20000060
4384: 20000384 .long 0x20000384
4388: 2000035c .long 0x2000035c
Disassembly of section .text.TK_Sampling_prog:
0000438c <TK_Sampling_prog>:
438c: 14c4 push r4-r7
438e: 1072 lrw r3, 0x20000054 // 43d4 <TK_Sampling_prog+0x48>
4390: 1012 lrw r0, 0x20000652 // 43d8 <TK_Sampling_prog+0x4c>
4392: 1093 lrw r4, 0x200004c3 // 43dc <TK_Sampling_prog+0x50>
4394: 6d83 mov r6, r0
4396: 93a0 ld.w r5, (r3, 0x0)
4398: 3300 movi r3, 0
439a: 4342 lsli r2, r3, 2
439c: 6094 addu r2, r5
439e: 9220 ld.w r1, (r2, 0x0)
43a0: 4341 lsli r2, r3, 1
43a2: 6080 addu r2, r0
43a4: 7445 zexth r1, r1
43a6: aa20 st.h r1, (r2, 0x0)
43a8: 8440 ld.b r2, (r4, 0x0)
43aa: 3a41 cmpnei r2, 1
43ac: 080f bt 0x43ca // 43ca <TK_Sampling_prog+0x3e>
43ae: 3300 movi r3, 0
43b0: 10ec lrw r7, 0x200003ac // 43e0 <TK_Sampling_prog+0x54>
43b2: 4341 lsli r2, r3, 1
43b4: 5e28 addu r1, r6, r2
43b6: 8920 ld.h r1, (r1, 0x0)
43b8: 2300 addi r3, 1
43ba: 7445 zexth r1, r1
43bc: 609c addu r2, r7
43be: 3b51 cmpnei r3, 17
43c0: aa20 st.h r1, (r2, 0x0)
43c2: 0bf8 bt 0x43b2 // 43b2 <TK_Sampling_prog+0x26>
43c4: 3300 movi r3, 0
43c6: a460 st.b r3, (r4, 0x0)
43c8: 3311 movi r3, 17
43ca: 2300 addi r3, 1
43cc: 74cc zextb r3, r3
43ce: 3b10 cmphsi r3, 17
43d0: 0fe5 bf 0x439a // 439a <TK_Sampling_prog+0xe>
43d2: 1484 pop r4-r7
43d4: 20000054 .long 0x20000054
43d8: 20000652 .long 0x20000652
43dc: 200004c3 .long 0x200004c3
43e0: 200003ac .long 0x200003ac
Disassembly of section .text.TKEYIntHandler:
000043e4 <TKEYIntHandler>:
43e4: 1460 nie
43e6: 1462 ipush
43e8: 14d1 push r4, r15
43ea: 109e lrw r4, 0x20000068 // 4460 <TKEYIntHandler+0x7c>
43ec: 9460 ld.w r3, (r4, 0x0)
43ee: 3b40 cmpnei r3, 0
43f0: 080b bt 0x4406 // 4406 <TKEYIntHandler+0x22>
43f2: 3301 movi r3, 1
43f4: b460 st.w r3, (r4, 0x0)
43f6: 107c lrw r3, 0x20000440 // 4464 <TKEYIntHandler+0x80>
43f8: 8360 ld.b r3, (r3, 0x0)
43fa: 3b41 cmpnei r3, 1
43fc: 0805 bt 0x4406 // 4406 <TKEYIntHandler+0x22>
43fe: e3ffffc7 bsr 0x438c // 438c <TK_Sampling_prog>
4402: 3301 movi r3, 1
4404: a464 st.b r3, (r4, 0x4)
4406: 1079 lrw r3, 0x20000058 // 4468 <TKEYIntHandler+0x84>
4408: 3101 movi r1, 1
440a: 9360 ld.w r3, (r3, 0x0)
440c: 934a ld.w r2, (r3, 0x28)
440e: 6884 and r2, r1
4410: 3a40 cmpnei r2, 0
4412: 0c02 bf 0x4416 // 4416 <TKEYIntHandler+0x32>
4414: b32c st.w r1, (r3, 0x30)
4416: 934a ld.w r2, (r3, 0x28)
4418: 3102 movi r1, 2
441a: 6884 and r2, r1
441c: 3a40 cmpnei r2, 0
441e: 0c02 bf 0x4422 // 4422 <TKEYIntHandler+0x3e>
4420: b32c st.w r1, (r3, 0x30)
4422: 934a ld.w r2, (r3, 0x28)
4424: 3104 movi r1, 4
4426: 6884 and r2, r1
4428: 3a40 cmpnei r2, 0
442a: 0c02 bf 0x442e // 442e <TKEYIntHandler+0x4a>
442c: b32c st.w r1, (r3, 0x30)
442e: 934a ld.w r2, (r3, 0x28)
4430: 3108 movi r1, 8
4432: 6884 and r2, r1
4434: 3a40 cmpnei r2, 0
4436: 0c02 bf 0x443a // 443a <TKEYIntHandler+0x56>
4438: b32c st.w r1, (r3, 0x30)
443a: 934a ld.w r2, (r3, 0x28)
443c: 3110 movi r1, 16
443e: 6884 and r2, r1
4440: 3a40 cmpnei r2, 0
4442: 0c02 bf 0x4446 // 4446 <TKEYIntHandler+0x62>
4444: b32c st.w r1, (r3, 0x30)
4446: 934a ld.w r2, (r3, 0x28)
4448: 3120 movi r1, 32
444a: 6884 and r2, r1
444c: 3a40 cmpnei r2, 0
444e: 0c02 bf 0x4452 // 4452 <TKEYIntHandler+0x6e>
4450: b32c st.w r1, (r3, 0x30)
4452: d9ee2001 ld.w r15, (r14, 0x4)
4456: 9880 ld.w r4, (r14, 0x0)
4458: 1402 addi r14, r14, 8
445a: 1463 ipop
445c: 1461 nir
445e: 0000 bkpt
4460: 20000068 .long 0x20000068
4464: 20000440 .long 0x20000440
4468: 20000058 .long 0x20000058
Disassembly of section .text.get_key_number:
0000446c <get_key_number>:
446c: 14c2 push r4-r5
446e: 3200 movi r2, 0
4470: 3000 movi r0, 0
4472: 1088 lrw r4, 0x200004e0 // 4490 <get_key_number+0x24>
4474: 3501 movi r5, 1
4476: 3120 movi r1, 32
4478: 9460 ld.w r3, (r4, 0x0)
447a: 70c9 lsr r3, r2
447c: 68d4 and r3, r5
447e: 3b40 cmpnei r3, 0
4480: 0c02 bf 0x4484 // 4484 <get_key_number+0x18>
4482: 2000 addi r0, 1
4484: 2200 addi r2, 1
4486: 644a cmpne r2, r1
4488: 0bf8 bt 0x4478 // 4478 <get_key_number+0xc>
448a: 7400 zextb r0, r0
448c: 1482 pop r4-r5
448e: 0000 bkpt
4490: 200004e0 .long 0x200004e0
Disassembly of section .text.TK_Scan_Start:
00004494 <TK_Scan_Start>:
4494: 1046 lrw r2, 0x20000068 // 44ac <TK_Scan_Start+0x18>
4496: 8264 ld.b r3, (r2, 0x4)
4498: 74cc zextb r3, r3
449a: 3b41 cmpnei r3, 1
449c: 0807 bt 0x44aa // 44aa <TK_Scan_Start+0x16>
449e: 1025 lrw r1, 0x20000058 // 44b0 <TK_Scan_Start+0x1c>
44a0: 9120 ld.w r1, (r1, 0x0)
44a2: b162 st.w r3, (r1, 0x8)
44a4: 3300 movi r3, 0
44a6: b260 st.w r3, (r2, 0x0)
44a8: a264 st.b r3, (r2, 0x4)
44aa: 783c jmp r15
44ac: 20000068 .long 0x20000068
44b0: 20000058 .long 0x20000058
Disassembly of section .text.TK_Keymap_prog:
000044b4 <TK_Keymap_prog>:
44b4: 14d4 push r4-r7, r15
44b6: 1425 subi r14, r14, 20
44b8: 1271 lrw r3, 0x200000ec // 45fc <TK_Keymap_prog+0x148>
44ba: 8360 ld.b r3, (r3, 0x0)
44bc: b860 st.w r3, (r14, 0x0)
44be: 3400 movi r4, 0
44c0: 1270 lrw r3, 0x200000c0 // 4600 <TK_Keymap_prog+0x14c>
44c2: 8360 ld.b r3, (r3, 0x0)
44c4: b861 st.w r3, (r14, 0x4)
44c6: 12f0 lrw r7, 0x20000456 // 4604 <TK_Keymap_prog+0x150>
44c8: 1270 lrw r3, 0x200000c9 // 4608 <TK_Keymap_prog+0x154>
44ca: 83a0 ld.b r5, (r3, 0x0)
44cc: 1270 lrw r3, 0x200000c8 // 460c <TK_Keymap_prog+0x158>
44ce: 8360 ld.b r3, (r3, 0x0)
44d0: b862 st.w r3, (r14, 0x8)
44d2: 6d9f mov r6, r7
44d4: 126f lrw r3, 0x20000652 // 4610 <TK_Keymap_prog+0x15c>
44d6: b863 st.w r3, (r14, 0xc)
44d8: 4461 lsli r3, r4, 1
44da: 9843 ld.w r2, (r14, 0xc)
44dc: 608c addu r2, r3
44de: 122e lrw r1, 0x200003ac // 4614 <TK_Keymap_prog+0x160>
44e0: 604c addu r1, r3
44e2: 8a40 ld.h r2, (r2, 0x0)
44e4: 8920 ld.h r1, (r1, 0x0)
44e6: 6086 subu r2, r1
44e8: 748b sexth r2, r2
44ea: 5f2c addu r1, r7, r3
44ec: a940 st.h r2, (r1, 0x0)
44ee: 8940 ld.h r2, (r1, 0x0)
44f0: 748b sexth r2, r2
44f2: 3adf btsti r2, 31
44f4: 1249 lrw r2, 0x2000060e // 4618 <TK_Keymap_prog+0x164>
44f6: 608c addu r2, r3
44f8: 0c37 bf 0x4566 // 4566 <TK_Keymap_prog+0xb2>
44fa: 3100 movi r1, 0
44fc: aa20 st.h r1, (r2, 0x0)
44fe: 9840 ld.w r2, (r14, 0x0)
4500: 3a01 cmphsi r2, 2
4502: 0c6d bf 0x45dc // 45dc <TK_Keymap_prog+0x128>
4504: 4461 lsli r3, r4, 1
4506: 5e2c addu r1, r6, r3
4508: 1205 lrw r0, 0x2000011a // 461c <TK_Keymap_prog+0x168>
450a: 8940 ld.h r2, (r1, 0x0)
450c: 60c0 addu r3, r0
450e: 748b sexth r2, r2
4510: 8b60 ld.h r3, (r3, 0x0)
4512: 648d cmplt r3, r2
4514: 9840 ld.w r2, (r14, 0x0)
4516: 7cc8 mult r3, r2
4518: 0c2a bf 0x456c // 456c <TK_Keymap_prog+0xb8>
451a: 8940 ld.h r2, (r1, 0x0)
451c: 748b sexth r2, r2
451e: 64c9 cmplt r2, r3
4520: 0c26 bf 0x456c // 456c <TK_Keymap_prog+0xb8>
4522: 1240 lrw r2, 0x20000444 // 4620 <TK_Keymap_prog+0x16c>
4524: 6090 addu r2, r4
4526: 8260 ld.b r3, (r2, 0x0)
4528: 2300 addi r3, 1
452a: 74cc zextb r3, r3
452c: a260 st.b r3, (r2, 0x0)
452e: 3100 movi r1, 0
4530: 117d lrw r3, 0x2000042a // 4624 <TK_Keymap_prog+0x170>
4532: 60d0 addu r3, r4
4534: a320 st.b r1, (r3, 0x0)
4536: 117d lrw r3, 0x20000506 // 4628 <TK_Keymap_prog+0x174>
4538: 60d0 addu r3, r4
453a: a320 st.b r1, (r3, 0x0)
453c: 117c lrw r3, 0x20000580 // 462c <TK_Keymap_prog+0x178>
453e: 60d0 addu r3, r4
4540: a320 st.b r1, (r3, 0x0)
4542: 8260 ld.b r3, (r2, 0x0)
4544: 9821 ld.w r1, (r14, 0x4)
4546: 64c4 cmphs r1, r3
4548: 081f bt 0x4586 // 4586 <TK_Keymap_prog+0xd2>
454a: 3d40 cmpnei r5, 0
454c: 0852 bt 0x45f0 // 45f0 <TK_Keymap_prog+0x13c>
454e: 1139 lrw r1, 0x2000043c // 4630 <TK_Keymap_prog+0x17c>
4550: 9160 ld.w r3, (r1, 0x0)
4552: 3b40 cmpnei r3, 0
4554: 0806 bt 0x4560 // 4560 <TK_Keymap_prog+0xac>
4556: 9100 ld.w r0, (r1, 0x0)
4558: 3301 movi r3, 1
455a: 70d0 lsl r3, r4
455c: 6cc0 or r3, r0
455e: b160 st.w r3, (r1, 0x0)
4560: 3300 movi r3, 0
4562: a260 st.b r3, (r2, 0x0)
4564: 0411 br 0x4586 // 4586 <TK_Keymap_prog+0xd2>
4566: 8920 ld.h r1, (r1, 0x0)
4568: 7445 zexth r1, r1
456a: 07c9 br 0x44fc // 44fc <TK_Keymap_prog+0x48>
456c: 4441 lsli r2, r4, 1
456e: 6098 addu r2, r6
4570: 8a40 ld.h r2, (r2, 0x0)
4572: 748b sexth r2, r2
4574: 648d cmplt r3, r2
4576: 0c08 bf 0x4586 // 4586 <TK_Keymap_prog+0xd2>
4578: 3300 movi r3, 0
457a: 114e lrw r2, 0x2000043c // 4630 <TK_Keymap_prog+0x17c>
457c: 2b01 subi r3, 2
457e: 9220 ld.w r1, (r2, 0x0)
4580: 70d3 rotl r3, r4
4582: 68c4 and r3, r1
4584: b260 st.w r3, (r2, 0x0)
4586: 4441 lsli r2, r4, 1
4588: 5e68 addu r3, r6, r2
458a: 8b60 ld.h r3, (r3, 0x0)
458c: 74cf sexth r3, r3
458e: b864 st.w r3, (r14, 0x10)
4590: 3105 movi r1, 5
4592: 1163 lrw r3, 0x2000011a // 461c <TK_Keymap_prog+0x168>
4594: 608c addu r2, r3
4596: 8a00 ld.h r0, (r2, 0x0)
4598: 4002 lsli r0, r0, 2
459a: e3fff607 bsr 0x31a8 // 31a8 <__divsi3>
459e: 9864 ld.w r3, (r14, 0x10)
45a0: 640d cmplt r3, r0
45a2: 0c18 bf 0x45d2 // 45d2 <TK_Keymap_prog+0x11e>
45a4: 1140 lrw r2, 0x2000042a // 4624 <TK_Keymap_prog+0x170>
45a6: 6090 addu r2, r4
45a8: 8260 ld.b r3, (r2, 0x0)
45aa: 2300 addi r3, 1
45ac: 74cc zextb r3, r3
45ae: a260 st.b r3, (r2, 0x0)
45b0: 3100 movi r1, 0
45b2: 107c lrw r3, 0x20000444 // 4620 <TK_Keymap_prog+0x16c>
45b4: 60d0 addu r3, r4
45b6: a320 st.b r1, (r3, 0x0)
45b8: 8260 ld.b r3, (r2, 0x0)
45ba: 9822 ld.w r1, (r14, 0x8)
45bc: 64c4 cmphs r1, r3
45be: 080a bt 0x45d2 // 45d2 <TK_Keymap_prog+0x11e>
45c0: 3300 movi r3, 0
45c2: 103c lrw r1, 0x2000043c // 4630 <TK_Keymap_prog+0x17c>
45c4: 2b01 subi r3, 2
45c6: 9100 ld.w r0, (r1, 0x0)
45c8: 70d3 rotl r3, r4
45ca: 68c0 and r3, r0
45cc: b160 st.w r3, (r1, 0x0)
45ce: 3300 movi r3, 0
45d0: a260 st.b r3, (r2, 0x0)
45d2: 2400 addi r4, 1
45d4: 3c51 cmpnei r4, 17
45d6: 0b81 bt 0x44d8 // 44d8 <TK_Keymap_prog+0x24>
45d8: 1405 addi r14, r14, 20
45da: 1494 pop r4-r7, r15
45dc: 60d8 addu r3, r6
45de: 4441 lsli r2, r4, 1
45e0: 102f lrw r1, 0x2000011a // 461c <TK_Keymap_prog+0x168>
45e2: 8b60 ld.h r3, (r3, 0x0)
45e4: 6084 addu r2, r1
45e6: 74cf sexth r3, r3
45e8: 8a40 ld.h r2, (r2, 0x0)
45ea: 64c9 cmplt r2, r3
45ec: 0fcd bf 0x4586 // 4586 <TK_Keymap_prog+0xd2>
45ee: 079a br 0x4522 // 4522 <TK_Keymap_prog+0x6e>
45f0: 3d41 cmpnei r5, 1
45f2: 0bb7 bt 0x4560 // 4560 <TK_Keymap_prog+0xac>
45f4: 102f lrw r1, 0x2000043c // 4630 <TK_Keymap_prog+0x17c>
45f6: 6cd7 mov r3, r5
45f8: 9100 ld.w r0, (r1, 0x0)
45fa: 07b0 br 0x455a // 455a <TK_Keymap_prog+0xa6>
45fc: 200000ec .long 0x200000ec
4600: 200000c0 .long 0x200000c0
4604: 20000456 .long 0x20000456
4608: 200000c9 .long 0x200000c9
460c: 200000c8 .long 0x200000c8
4610: 20000652 .long 0x20000652
4614: 200003ac .long 0x200003ac
4618: 2000060e .long 0x2000060e
461c: 2000011a .long 0x2000011a
4620: 20000444 .long 0x20000444
4624: 2000042a .long 0x2000042a
4628: 20000506 .long 0x20000506
462c: 20000580 .long 0x20000580
4630: 2000043c .long 0x2000043c
Disassembly of section .text.TK_overflow_predict:
00004634 <TK_overflow_predict>:
4634: 14d4 push r4-r7, r15
4636: 1421 subi r14, r14, 4
4638: 11d9 lrw r6, 0x20000068 // 471c <TK_overflow_predict+0xe8>
463a: 8665 ld.b r3, (r6, 0x5)
463c: 3b41 cmpnei r3, 1
463e: 085f bt 0x46fc // 46fc <TK_overflow_predict+0xc8>
4640: 1158 lrw r2, 0x2000055c // 4720 <TK_overflow_predict+0xec>
4642: 8260 ld.b r3, (r2, 0x0)
4644: 2300 addi r3, 1
4646: 74cc zextb r3, r3
4648: a260 st.b r3, (r2, 0x0)
464a: 8260 ld.b r3, (r2, 0x0)
464c: 1136 lrw r1, 0x200000ed // 4724 <TK_overflow_predict+0xf0>
464e: 8120 ld.b r1, (r1, 0x0)
4650: 64c4 cmphs r1, r3
4652: 0855 bt 0x46fc // 46fc <TK_overflow_predict+0xc8>
4654: 3300 movi r3, 0
4656: a260 st.b r3, (r2, 0x0)
4658: 3500 movi r5, 0
465a: 11f4 lrw r7, 0x200000f0 // 4728 <TK_overflow_predict+0xf4>
465c: 2605 addi r6, 6
465e: 9760 ld.w r3, (r7, 0x0)
4660: 70d5 lsr r3, r5
4662: 3201 movi r2, 1
4664: 68c8 and r3, r2
4666: 3b40 cmpnei r3, 0
4668: 0c34 bf 0x46d0 // 46d0 <TK_overflow_predict+0x9c>
466a: 4581 lsli r4, r5, 1
466c: 5e70 addu r3, r6, r4
466e: 8b00 ld.h r0, (r3, 0x0)
4670: e3ffe7a4 bsr 0x15b8 // 15b8 <__floatunsidf>
4674: 6cc7 mov r3, r1
4676: 3180 movi r1, 128
4678: 6c83 mov r2, r0
467a: 4137 lsli r1, r1, 23
467c: 3000 movi r0, 0
467e: e3ffdd9b bsr 0x1b4 // 1b4 <__GI_pow>
4682: 116b lrw r3, 0x200000f6 // 472c <TK_overflow_predict+0xf8>
4684: 60d0 addu r3, r4
4686: 8b60 ld.h r3, (r3, 0x0)
4688: 4364 lsli r3, r3, 4
468a: 230e addi r3, 15
468c: b860 st.w r3, (r14, 0x0)
468e: e3ffe34d bsr 0xd28 // d28 <__fixunsdfsi>
4692: 9860 ld.w r3, (r14, 0x0)
4694: 7cc0 mult r3, r0
4696: 1147 lrw r2, 0x200005ec // 4730 <TK_overflow_predict+0xfc>
4698: 740d zexth r0, r3
469a: 6090 addu r2, r4
469c: 1166 lrw r3, 0x20000652 // 4734 <TK_overflow_predict+0x100>
469e: 60d0 addu r3, r4
46a0: aa00 st.h r0, (r2, 0x0)
46a2: 8b60 ld.h r3, (r3, 0x0)
46a4: 8a00 ld.h r0, (r2, 0x0)
46a6: 7401 zexth r0, r0
46a8: 325f movi r2, 95
46aa: 74cd zexth r3, r3
46ac: 7c08 mult r0, r2
46ae: 3164 movi r1, 100
46b0: b860 st.w r3, (r14, 0x0)
46b2: e3fff57b bsr 0x31a8 // 31a8 <__divsi3>
46b6: 9860 ld.w r3, (r14, 0x0)
46b8: 64c1 cmplt r0, r3
46ba: 0c0b bf 0x46d0 // 46d0 <TK_overflow_predict+0x9c>
46bc: 107f lrw r3, 0x200000ca // 4738 <TK_overflow_predict+0x104>
46be: 610c addu r4, r3
46c0: 8c60 ld.h r3, (r4, 0x0)
46c2: 3b06 cmphsi r3, 7
46c4: 0806 bt 0x46d0 // 46d0 <TK_overflow_predict+0x9c>
46c6: 2300 addi r3, 1
46c8: ac60 st.h r3, (r4, 0x0)
46ca: 3201 movi r2, 1
46cc: 107c lrw r3, 0x200004b1 // 473c <TK_overflow_predict+0x108>
46ce: a340 st.b r2, (r3, 0x0)
46d0: 2500 addi r5, 1
46d2: 3d51 cmpnei r5, 17
46d4: 0bc5 bt 0x465e // 465e <TK_overflow_predict+0x2a>
46d6: 107a lrw r3, 0x200004b1 // 473c <TK_overflow_predict+0x108>
46d8: 8340 ld.b r2, (r3, 0x0)
46da: 3a41 cmpnei r2, 1
46dc: 0810 bt 0x46fc // 46fc <TK_overflow_predict+0xc8>
46de: 3200 movi r2, 0
46e0: a340 st.b r2, (r3, 0x0)
46e2: 3200 movi r2, 0
46e4: 1077 lrw r3, 0x20000058 // 4740 <TK_overflow_predict+0x10c>
46e6: 1018 lrw r0, 0x2000057f // 4744 <TK_overflow_predict+0x110>
46e8: 10b8 lrw r5, 0x200005b8 // 4748 <TK_overflow_predict+0x114>
46ea: 10d4 lrw r6, 0x200000ca // 4738 <TK_overflow_predict+0x104>
46ec: 9360 ld.w r3, (r3, 0x0)
46ee: b342 st.w r2, (r3, 0x8)
46f0: 1077 lrw r3, 0x20000054 // 474c <TK_overflow_predict+0x118>
46f2: 9380 ld.w r4, (r3, 0x0)
46f4: 3300 movi r3, 0
46f6: 8040 ld.b r2, (r0, 0x0)
46f8: 648c cmphs r3, r2
46fa: 0c03 bf 0x4700 // 4700 <TK_overflow_predict+0xcc>
46fc: 1401 addi r14, r14, 4
46fe: 1494 pop r4-r7, r15
4700: 5d4c addu r2, r5, r3
4702: 8240 ld.b r2, (r2, 0x0)
4704: 4241 lsli r2, r2, 1
4706: 4322 lsli r1, r3, 2
4708: 6098 addu r2, r6
470a: 6050 addu r1, r4
470c: 8a40 ld.h r2, (r2, 0x0)
470e: 91f2 ld.w r7, (r1, 0x48)
4710: 4254 lsli r2, r2, 20
4712: 6c9c or r2, r7
4714: 2300 addi r3, 1
4716: b152 st.w r2, (r1, 0x48)
4718: 74cc zextb r3, r3
471a: 07ee br 0x46f6 // 46f6 <TK_overflow_predict+0xc2>
471c: 20000068 .long 0x20000068
4720: 2000055c .long 0x2000055c
4724: 200000ed .long 0x200000ed
4728: 200000f0 .long 0x200000f0
472c: 200000f6 .long 0x200000f6
4730: 200005ec .long 0x200005ec
4734: 20000652 .long 0x20000652
4738: 200000ca .long 0x200000ca
473c: 200004b1 .long 0x200004b1
4740: 20000058 .long 0x20000058
4744: 2000057f .long 0x2000057f
4748: 200005b8 .long 0x200005b8
474c: 20000054 .long 0x20000054
Disassembly of section .text.TK_Baseline_tracking:
00004750 <TK_Baseline_tracking>:
4750: 14c4 push r4-r7
4752: 1422 subi r14, r14, 8
4754: 1348 lrw r2, 0x200004de // 48f4 <TK_Baseline_tracking+0x1a4>
4756: 8260 ld.b r3, (r2, 0x0)
4758: 2300 addi r3, 1
475a: 74cc zextb r3, r3
475c: a260 st.b r3, (r2, 0x0)
475e: 8260 ld.b r3, (r2, 0x0)
4760: 1326 lrw r1, 0x200000ed // 48f8 <TK_Baseline_tracking+0x1a8>
4762: 8120 ld.b r1, (r1, 0x0)
4764: 644c cmphs r3, r1
4766: 0cad bf 0x48c0 // 48c0 <TK_Baseline_tracking+0x170>
4768: 3300 movi r3, 0
476a: a260 st.b r3, (r2, 0x0)
476c: 1364 lrw r3, 0x2000043c // 48fc <TK_Baseline_tracking+0x1ac>
476e: 9360 ld.w r3, (r3, 0x0)
4770: 3b40 cmpnei r3, 0
4772: 08a7 bt 0x48c0 // 48c0 <TK_Baseline_tracking+0x170>
4774: 1323 lrw r1, 0x20000456 // 4900 <TK_Baseline_tracking+0x1b0>
4776: 6dc7 mov r7, r1
4778: b820 st.w r1, (r14, 0x0)
477a: 3200 movi r2, 0
477c: 1362 lrw r3, 0x2000011a // 4904 <TK_Baseline_tracking+0x1b4>
477e: 1323 lrw r1, 0x200003ac // 4908 <TK_Baseline_tracking+0x1b8>
4780: 4201 lsli r0, r2, 1
4782: 9880 ld.w r4, (r14, 0x0)
4784: 6100 addu r4, r0
4786: 8c80 ld.h r4, (r4, 0x0)
4788: 7513 sexth r4, r4
478a: 3cdf btsti r4, 31
478c: 0c27 bf 0x47da // 47da <TK_Baseline_tracking+0x8a>
478e: 13a0 lrw r5, 0x20000652 // 490c <TK_Baseline_tracking+0x1bc>
4790: 5980 addu r4, r1, r0
4792: 6014 addu r0, r5
4794: b881 st.w r4, (r14, 0x4)
4796: 8c80 ld.h r4, (r4, 0x0)
4798: 88c0 ld.h r6, (r0, 0x0)
479a: 7511 zexth r4, r4
479c: 7599 zexth r6, r6
479e: 8ba0 ld.h r5, (r3, 0x0)
47a0: 611a subu r4, r6
47a2: 6551 cmplt r4, r5
47a4: 081b bt 0x47da // 47da <TK_Baseline_tracking+0x8a>
47a6: 9881 ld.w r4, (r14, 0x4)
47a8: 8c80 ld.h r4, (r4, 0x0)
47aa: 8800 ld.h r0, (r0, 0x0)
47ac: 7511 zexth r4, r4
47ae: 7401 zexth r0, r0
47b0: 5c01 subu r0, r4, r0
47b2: 4581 lsli r4, r5, 1
47b4: 6150 addu r5, r4
47b6: 6541 cmplt r0, r5
47b8: 0c11 bf 0x47da // 47da <TK_Baseline_tracking+0x8a>
47ba: 1296 lrw r4, 0x20000580 // 4910 <TK_Baseline_tracking+0x1c0>
47bc: 6108 addu r4, r2
47be: 8400 ld.b r0, (r4, 0x0)
47c0: 2000 addi r0, 1
47c2: 7400 zextb r0, r0
47c4: a400 st.b r0, (r4, 0x0)
47c6: 1214 lrw r0, 0x20000088 // 4914 <TK_Baseline_tracking+0x1c4>
47c8: 84a0 ld.b r5, (r4, 0x0)
47ca: 8008 ld.b r0, (r0, 0x8)
47cc: 6540 cmphs r0, r5
47ce: 0806 bt 0x47da // 47da <TK_Baseline_tracking+0x8a>
47d0: 1212 lrw r0, 0x200004c3 // 4918 <TK_Baseline_tracking+0x1c8>
47d2: 3501 movi r5, 1
47d4: a0a0 st.b r5, (r0, 0x0)
47d6: 3000 movi r0, 0
47d8: a400 st.b r0, (r4, 0x0)
47da: 4201 lsli r0, r2, 1
47dc: 5f80 addu r4, r7, r0
47de: 8c80 ld.h r4, (r4, 0x0)
47e0: 7513 sexth r4, r4
47e2: 3c20 cmplti r4, 1
47e4: 0870 bt 0x48c4 // 48c4 <TK_Baseline_tracking+0x174>
47e6: 128a lrw r4, 0x20000652 // 490c <TK_Baseline_tracking+0x1bc>
47e8: 6100 addu r4, r0
47ea: 59a0 addu r5, r1, r0
47ec: 8c80 ld.h r4, (r4, 0x0)
47ee: 8da0 ld.h r5, (r5, 0x0)
47f0: 7555 zexth r5, r5
47f2: 7511 zexth r4, r4
47f4: 6116 subu r4, r5
47f6: 8ba0 ld.h r5, (r3, 0x0)
47f8: 45a2 lsli r5, r5, 2
47fa: 6551 cmplt r4, r5
47fc: 0864 bt 0x48c4 // 48c4 <TK_Baseline_tracking+0x174>
47fe: 1288 lrw r4, 0x20000506 // 491c <TK_Baseline_tracking+0x1cc>
4800: 6108 addu r4, r2
4802: 84a0 ld.b r5, (r4, 0x0)
4804: 2500 addi r5, 1
4806: 7554 zextb r5, r5
4808: a4a0 st.b r5, (r4, 0x0)
480a: 12a3 lrw r5, 0x20000088 // 4914 <TK_Baseline_tracking+0x1c4>
480c: 84c0 ld.b r6, (r4, 0x0)
480e: 85a9 ld.b r5, (r5, 0x9)
4810: 6594 cmphs r5, r6
4812: 0806 bt 0x481e // 481e <TK_Baseline_tracking+0xce>
4814: 12a1 lrw r5, 0x200004c3 // 4918 <TK_Baseline_tracking+0x1c8>
4816: 3601 movi r6, 1
4818: a5c0 st.b r6, (r5, 0x0)
481a: 3500 movi r5, 0
481c: a4a0 st.b r5, (r4, 0x0)
481e: 5f80 addu r4, r7, r0
4820: 8c80 ld.h r4, (r4, 0x0)
4822: 7513 sexth r4, r4
4824: 3cdf btsti r4, 31
4826: 0c10 bf 0x4846 // 4846 <TK_Baseline_tracking+0xf6>
4828: 11d9 lrw r6, 0x20000652 // 490c <TK_Baseline_tracking+0x1bc>
482a: 59a0 addu r5, r1, r0
482c: 6180 addu r6, r0
482e: 8d80 ld.h r4, (r5, 0x0)
4830: 8ec0 ld.h r6, (r6, 0x0)
4832: 7599 zexth r6, r6
4834: 7511 zexth r4, r4
4836: 611a subu r4, r6
4838: 8bc0 ld.h r6, (r3, 0x0)
483a: 6591 cmplt r4, r6
483c: 0c05 bf 0x4846 // 4846 <TK_Baseline_tracking+0xf6>
483e: 8d80 ld.h r4, (r5, 0x0)
4840: 2c00 subi r4, 1
4842: 7511 zexth r4, r4
4844: ad80 st.h r4, (r5, 0x0)
4846: 5f80 addu r4, r7, r0
4848: 8c80 ld.h r4, (r4, 0x0)
484a: 7513 sexth r4, r4
484c: 3cdf btsti r4, 31
484e: 0c11 bf 0x4870 // 4870 <TK_Baseline_tracking+0x120>
4850: 11cf lrw r6, 0x20000652 // 490c <TK_Baseline_tracking+0x1bc>
4852: 59a0 addu r5, r1, r0
4854: 6180 addu r6, r0
4856: 8d80 ld.h r4, (r5, 0x0)
4858: 8ec0 ld.h r6, (r6, 0x0)
485a: 7599 zexth r6, r6
485c: 7511 zexth r4, r4
485e: 611a subu r4, r6
4860: 8bc0 ld.h r6, (r3, 0x0)
4862: 4ec1 lsri r6, r6, 1
4864: 6591 cmplt r4, r6
4866: 0805 bt 0x4870 // 4870 <TK_Baseline_tracking+0x120>
4868: 8d80 ld.h r4, (r5, 0x0)
486a: 2c01 subi r4, 2
486c: 7511 zexth r4, r4
486e: ad80 st.h r4, (r5, 0x0)
4870: 5fa0 addu r5, r7, r0
4872: 8d80 ld.h r4, (r5, 0x0)
4874: 7513 sexth r4, r4
4876: 3c20 cmplti r4, 1
4878: 080c bt 0x4890 // 4890 <TK_Baseline_tracking+0x140>
487a: 8da0 ld.h r5, (r5, 0x0)
487c: 8b80 ld.h r4, (r3, 0x0)
487e: 7557 sexth r5, r5
4880: 4c81 lsri r4, r4, 1
4882: 6515 cmplt r5, r4
4884: 0c06 bf 0x4890 // 4890 <TK_Baseline_tracking+0x140>
4886: 59a0 addu r5, r1, r0
4888: 8d80 ld.h r4, (r5, 0x0)
488a: 2400 addi r4, 1
488c: 7511 zexth r4, r4
488e: ad80 st.h r4, (r5, 0x0)
4890: 5fa0 addu r5, r7, r0
4892: 8d80 ld.h r4, (r5, 0x0)
4894: 7513 sexth r4, r4
4896: 3c20 cmplti r4, 1
4898: 0810 bt 0x48b8 // 48b8 <TK_Baseline_tracking+0x168>
489a: 8dc0 ld.h r6, (r5, 0x0)
489c: 759b sexth r6, r6
489e: 8b80 ld.h r4, (r3, 0x0)
48a0: 6519 cmplt r6, r4
48a2: 0c0b bf 0x48b8 // 48b8 <TK_Baseline_tracking+0x168>
48a4: 8da0 ld.h r5, (r5, 0x0)
48a6: 7557 sexth r5, r5
48a8: 4c81 lsri r4, r4, 1
48aa: 6515 cmplt r5, r4
48ac: 0806 bt 0x48b8 // 48b8 <TK_Baseline_tracking+0x168>
48ae: 6004 addu r0, r1
48b0: 8880 ld.h r4, (r0, 0x0)
48b2: 2401 addi r4, 2
48b4: 7511 zexth r4, r4
48b6: a880 st.h r4, (r0, 0x0)
48b8: 2200 addi r2, 1
48ba: 3a51 cmpnei r2, 17
48bc: 2301 addi r3, 2
48be: 0b61 bt 0x4780 // 4780 <TK_Baseline_tracking+0x30>
48c0: 1402 addi r14, r14, 8
48c2: 1484 pop r4-r7
48c4: 5f80 addu r4, r7, r0
48c6: 8c80 ld.h r4, (r4, 0x0)
48c8: 7513 sexth r4, r4
48ca: 3cdf btsti r4, 31
48cc: 0fa9 bf 0x481e // 481e <TK_Baseline_tracking+0xce>
48ce: 10b0 lrw r5, 0x20000652 // 490c <TK_Baseline_tracking+0x1bc>
48d0: 5980 addu r4, r1, r0
48d2: 6140 addu r5, r0
48d4: 8c80 ld.h r4, (r4, 0x0)
48d6: 8da0 ld.h r5, (r5, 0x0)
48d8: 7555 zexth r5, r5
48da: 8bc0 ld.h r6, (r3, 0x0)
48dc: 7511 zexth r4, r4
48de: 6116 subu r4, r5
48e0: 46a1 lsli r5, r6, 1
48e2: 6158 addu r5, r6
48e4: 6551 cmplt r4, r5
48e6: 0b9c bt 0x481e // 481e <TK_Baseline_tracking+0xce>
48e8: 108c lrw r4, 0x200004c3 // 4918 <TK_Baseline_tracking+0x1c8>
48ea: 3501 movi r5, 1
48ec: a4a0 st.b r5, (r4, 0x0)
48ee: 6c03 mov r0, r0
48f0: 0797 br 0x481e // 481e <TK_Baseline_tracking+0xce>
48f2: 0000 bkpt
48f4: 200004de .long 0x200004de
48f8: 200000ed .long 0x200000ed
48fc: 2000043c .long 0x2000043c
4900: 20000456 .long 0x20000456
4904: 2000011a .long 0x2000011a
4908: 200003ac .long 0x200003ac
490c: 20000652 .long 0x20000652
4910: 20000580 .long 0x20000580
4914: 20000088 .long 0x20000088
4918: 200004c3 .long 0x200004c3
491c: 20000506 .long 0x20000506
Disassembly of section .text.TK_result_prog:
00004920 <TK_result_prog>:
4920: 14d2 push r4-r5, r15
4922: 1050 lrw r2, 0x2000043c // 4960 <TK_result_prog+0x40>
4924: 1090 lrw r4, 0x200004e0 // 4964 <TK_result_prog+0x44>
4926: 9260 ld.w r3, (r2, 0x0)
4928: 3b40 cmpnei r3, 0
492a: 0c02 bf 0x492e // 492e <TK_result_prog+0xe>
492c: 9260 ld.w r3, (r2, 0x0)
492e: b460 st.w r3, (r4, 0x0)
4930: 9460 ld.w r3, (r4, 0x0)
4932: 3b40 cmpnei r3, 0
4934: 10ad lrw r5, 0x200005b4 // 4968 <TK_result_prog+0x48>
4936: 0c11 bf 0x4958 // 4958 <TK_result_prog+0x38>
4938: 9440 ld.w r2, (r4, 0x0)
493a: 9560 ld.w r3, (r5, 0x0)
493c: 64ca cmpne r2, r3
493e: 0c03 bf 0x4944 // 4944 <TK_result_prog+0x24>
4940: 9460 ld.w r3, (r4, 0x0)
4942: b560 st.w r3, (r5, 0x0)
4944: e3fffd94 bsr 0x446c // 446c <get_key_number>
4948: 1069 lrw r3, 0x200000f4 // 496c <TK_result_prog+0x4c>
494a: 8360 ld.b r3, (r3, 0x0)
494c: 640c cmphs r3, r0
494e: 0804 bt 0x4956 // 4956 <TK_result_prog+0x36>
4950: 3300 movi r3, 0
4952: b460 st.w r3, (r4, 0x0)
4954: b560 st.w r3, (r5, 0x0)
4956: 1492 pop r4-r5, r15
4958: 1046 lrw r2, 0x200004d8 // 4970 <TK_result_prog+0x50>
495a: b560 st.w r3, (r5, 0x0)
495c: b260 st.w r3, (r2, 0x0)
495e: 07fc br 0x4956 // 4956 <TK_result_prog+0x36>
4960: 2000043c .long 0x2000043c
4964: 200004e0 .long 0x200004e0
4968: 200005b4 .long 0x200005b4
496c: 200000f4 .long 0x200000f4
4970: 200004d8 .long 0x200004d8
Disassembly of section .text.CORETHandler:
00004974 <CORETHandler>:
4974: 1460 nie
4976: 1462 ipush
4978: 14d1 push r4, r15
497a: 1077 lrw r3, 0x20000064 // 49d4 <CORETHandler+0x60>
497c: 3400 movi r4, 0
497e: 9360 ld.w r3, (r3, 0x0)
4980: b386 st.w r4, (r3, 0x18)
4982: 1076 lrw r3, 0x20000440 // 49d8 <CORETHandler+0x64>
4984: 8360 ld.b r3, (r3, 0x0)
4986: 3b41 cmpnei r3, 1
4988: 0820 bt 0x49c8 // 49c8 <CORETHandler+0x54>
498a: e3fffd85 bsr 0x4494 // 4494 <TK_Scan_Start>
498e: e3fffd93 bsr 0x44b4 // 44b4 <TK_Keymap_prog>
4992: e3fffe51 bsr 0x4634 // 4634 <TK_overflow_predict>
4996: e3fffedd bsr 0x4750 // 4750 <TK_Baseline_tracking>
499a: e3ffffc3 bsr 0x4920 // 4920 <TK_result_prog>
499e: 1070 lrw r3, 0x200004e0 // 49dc <CORETHandler+0x68>
49a0: 9360 ld.w r3, (r3, 0x0)
49a2: 3b40 cmpnei r3, 0
49a4: 0c12 bf 0x49c8 // 49c8 <CORETHandler+0x54>
49a6: 106f lrw r3, 0x200000c4 // 49e0 <CORETHandler+0x6c>
49a8: 9340 ld.w r2, (r3, 0x0)
49aa: 3a40 cmpnei r2, 0
49ac: 0c0e bf 0x49c8 // 49c8 <CORETHandler+0x54>
49ae: 106e lrw r3, 0x200004d8 // 49e4 <CORETHandler+0x70>
49b0: 3064 movi r0, 100
49b2: 9320 ld.w r1, (r3, 0x0)
49b4: 2100 addi r1, 1
49b6: b320 st.w r1, (r3, 0x0)
49b8: 9320 ld.w r1, (r3, 0x0)
49ba: 7c80 mult r2, r0
49bc: 6448 cmphs r2, r1
49be: 0805 bt 0x49c8 // 49c8 <CORETHandler+0x54>
49c0: 104a lrw r2, 0x200004c3 // 49e8 <CORETHandler+0x74>
49c2: 3101 movi r1, 1
49c4: a220 st.b r1, (r2, 0x0)
49c6: b380 st.w r4, (r3, 0x0)
49c8: d9ee2001 ld.w r15, (r14, 0x4)
49cc: 9880 ld.w r4, (r14, 0x0)
49ce: 1402 addi r14, r14, 8
49d0: 1463 ipop
49d2: 1461 nir
49d4: 20000064 .long 0x20000064
49d8: 20000440 .long 0x20000440
49dc: 200004e0 .long 0x200004e0
49e0: 200000c4 .long 0x200000c4
49e4: 200004d8 .long 0x200004d8
49e8: 200004c3 .long 0x200004c3
Disassembly of section .text.std_clk_calib:
000049ec <std_clk_calib>:
49ec: 14d4 push r4-r7, r15
49ee: 142d subi r14, r14, 52
49f0: 3201 movi r2, 1
49f2: 03ce lrw r6, 0x2000005c // 4c34 <std_clk_calib+0x248>
49f4: 6cc3 mov r3, r0
49f6: dc4e000a st.b r2, (r14, 0xa)
49fa: 9640 ld.w r2, (r6, 0x0)
49fc: 9247 ld.w r2, (r2, 0x1c)
49fe: 7488 zextb r2, r2
4a00: dc4e0009 st.b r2, (r14, 0x9)
4a04: d84e0009 ld.b r2, (r14, 0x9)
4a08: 3a40 cmpnei r2, 0
4a0a: 0c08 bf 0x4a1a // 4a1a <std_clk_calib+0x2e>
4a0c: d84e0009 ld.b r2, (r14, 0x9)
4a10: 3a42 cmpnei r2, 2
4a12: 0c04 bf 0x4a1a // 4a1a <std_clk_calib+0x2e>
4a14: 3000 movi r0, 0
4a16: 140d addi r14, r14, 52
4a18: 1494 pop r4-r7, r15
4a1a: 0397 lrw r4, 0x2000000c // 4c38 <std_clk_calib+0x24c>
4a1c: 3209 movi r2, 9
4a1e: 9400 ld.w r0, (r4, 0x0)
4a20: 3b40 cmpnei r3, 0
4a22: b041 st.w r2, (r0, 0x4)
4a24: 0857 bt 0x4ad2 // 4ad2 <std_clk_calib+0xe6>
4a26: 3307 movi r3, 7
4a28: dc6e000b st.b r3, (r14, 0xb)
4a2c: 037b lrw r3, 0x2dc6c00 // 4c3c <std_clk_calib+0x250>
4a2e: b863 st.w r3, (r14, 0xc)
4a30: 3380 movi r3, 128
4a32: 4362 lsli r3, r3, 2
4a34: b867 st.w r3, (r14, 0x1c)
4a36: d86e000b ld.b r3, (r14, 0xb)
4a3a: 74cc zextb r3, r3
4a3c: b062 st.w r3, (r0, 0x8)
4a3e: 037e lrw r3, 0xffff // 4c40 <std_clk_calib+0x254>
4a40: b063 st.w r3, (r0, 0xc)
4a42: 3201 movi r2, 1
4a44: 3101 movi r1, 1
4a46: 03bf lrw r5, 0x20000014 // 4c44 <std_clk_calib+0x258>
4a48: e3ffebda bsr 0x21fc // 21fc <BT_ConfigInterrupt_CMD>
4a4c: 95e0 ld.w r7, (r5, 0x0)
4a4e: 137f lrw r3, 0xbe9c0005 // 4c48 <std_clk_calib+0x25c>
4a50: b760 st.w r3, (r7, 0x0)
4a52: 135f lrw r2, 0x30010 // 4c4c <std_clk_calib+0x260>
4a54: 3300 movi r3, 0
4a56: b762 st.w r3, (r7, 0x8)
4a58: b743 st.w r2, (r7, 0xc)
4a5a: 32d8 movi r2, 216
4a5c: b745 st.w r2, (r7, 0x14)
4a5e: 974f ld.w r2, (r7, 0x3c)
4a60: 3aa2 bseti r2, 2
4a62: b74f st.w r2, (r7, 0x3c)
4a64: 9803 ld.w r0, (r14, 0xc)
4a66: d82e000b ld.b r1, (r14, 0xb)
4a6a: 327d movi r2, 125
4a6c: 2100 addi r1, 1
4a6e: 7c48 mult r1, r2
4a70: b861 st.w r3, (r14, 0x4)
4a72: e3fff3ad bsr 0x31cc // 31cc <__udivsi3>
4a76: b804 st.w r0, (r14, 0x10)
4a78: 32fa movi r2, 250
4a7a: 9824 ld.w r1, (r14, 0x10)
4a7c: 4242 lsli r2, r2, 2
4a7e: 6448 cmphs r2, r1
4a80: 0bca bt 0x4a14 // 4a14 <std_clk_calib+0x28>
4a82: 9844 ld.w r2, (r14, 0x10)
4a84: 3178 movi r1, 120
4a86: 9804 ld.w r0, (r14, 0x10)
4a88: b840 st.w r2, (r14, 0x0)
4a8a: e3fff3a1 bsr 0x31cc // 31cc <__udivsi3>
4a8e: 9840 ld.w r2, (r14, 0x0)
4a90: 6082 subu r2, r0
4a92: b845 st.w r2, (r14, 0x14)
4a94: 9804 ld.w r0, (r14, 0x10)
4a96: 3178 movi r1, 120
4a98: 9844 ld.w r2, (r14, 0x10)
4a9a: b840 st.w r2, (r14, 0x0)
4a9c: e3fff398 bsr 0x31cc // 31cc <__udivsi3>
4aa0: 9840 ld.w r2, (r14, 0x0)
4aa2: 6008 addu r0, r2
4aa4: b806 st.w r0, (r14, 0x18)
4aa6: c0807020 psrclr ie
4aaa: 9640 ld.w r2, (r6, 0x0)
4aac: 9254 ld.w r2, (r2, 0x50)
4aae: b848 st.w r2, (r14, 0x20)
4ab0: 9861 ld.w r3, (r14, 0x4)
4ab2: 9440 ld.w r2, (r4, 0x0)
4ab4: b260 st.w r3, (r2, 0x0)
4ab6: b761 st.w r3, (r7, 0x4)
4ab8: d86e000a ld.b r3, (r14, 0xa)
4abc: 3b40 cmpnei r3, 0
4abe: 083e bt 0x4b3a // 4b3a <std_clk_calib+0x14e>
4ac0: e3ffeb50 bsr 0x2160 // 2160 <LPT_Soft_Reset>
4ac4: 9400 ld.w r0, (r4, 0x0)
4ac6: e3ffeb71 bsr 0x21a8 // 21a8 <BT_Soft_Reset>
4aca: c1807420 psrset ee, ie
4ace: 3001 movi r0, 1
4ad0: 07a3 br 0x4a16 // 4a16 <std_clk_calib+0x2a>
4ad2: 3b41 cmpnei r3, 1
4ad4: 0806 bt 0x4ae0 // 4ae0 <std_clk_calib+0xf4>
4ad6: 3303 movi r3, 3
4ad8: dc6e000b st.b r3, (r14, 0xb)
4adc: 127d lrw r3, 0x16e3600 // 4c50 <std_clk_calib+0x264>
4ade: 07a8 br 0x4a2e // 4a2e <std_clk_calib+0x42>
4ae0: 3b42 cmpnei r3, 2
4ae2: 0806 bt 0x4aee // 4aee <std_clk_calib+0x102>
4ae4: 3301 movi r3, 1
4ae6: dc6e000b st.b r3, (r14, 0xb)
4aea: 127b lrw r3, 0xb71b00 // 4c54 <std_clk_calib+0x268>
4aec: 07a1 br 0x4a2e // 4a2e <std_clk_calib+0x42>
4aee: 3b43 cmpnei r3, 3
4af0: 0806 bt 0x4afc // 4afc <std_clk_calib+0x110>
4af2: 3300 movi r3, 0
4af4: dc6e000b st.b r3, (r14, 0xb)
4af8: 1278 lrw r3, 0x5b8d80 // 4c58 <std_clk_calib+0x26c>
4afa: 079a br 0x4a2e // 4a2e <std_clk_calib+0x42>
4afc: 3b44 cmpnei r3, 4
4afe: 0809 bt 0x4b10 // 4b10 <std_clk_calib+0x124>
4b00: 3300 movi r3, 0
4b02: dc6e000b st.b r3, (r14, 0xb)
4b06: 1276 lrw r3, 0x54c720 // 4c5c <std_clk_calib+0x270>
4b08: b863 st.w r3, (r14, 0xc)
4b0a: 3380 movi r3, 128
4b0c: 4369 lsli r3, r3, 9
4b0e: 0793 br 0x4a34 // 4a34 <std_clk_calib+0x48>
4b10: 3b45 cmpnei r3, 5
4b12: 0806 bt 0x4b1e // 4b1e <std_clk_calib+0x132>
4b14: 3300 movi r3, 0
4b16: dc6e000b st.b r3, (r14, 0xb)
4b1a: 1272 lrw r3, 0x3ffed0 // 4c60 <std_clk_calib+0x274>
4b1c: 07f6 br 0x4b08 // 4b08 <std_clk_calib+0x11c>
4b1e: 3b46 cmpnei r3, 6
4b20: 0806 bt 0x4b2c // 4b2c <std_clk_calib+0x140>
4b22: 3300 movi r3, 0
4b24: dc6e000b st.b r3, (r14, 0xb)
4b28: 126f lrw r3, 0x1fff68 // 4c64 <std_clk_calib+0x278>
4b2a: 07ef br 0x4b08 // 4b08 <std_clk_calib+0x11c>
4b2c: 3b47 cmpnei r3, 7
4b2e: 0b84 bt 0x4a36 // 4a36 <std_clk_calib+0x4a>
4b30: 3300 movi r3, 0
4b32: dc6e000b st.b r3, (r14, 0xb)
4b36: 126d lrw r3, 0x1ffb8 // 4c68 <std_clk_calib+0x27c>
4b38: 07e8 br 0x4b08 // 4b08 <std_clk_calib+0x11c>
4b3a: 9560 ld.w r3, (r5, 0x0)
4b3c: 3101 movi r1, 1
4b3e: 9440 ld.w r2, (r4, 0x0)
4b40: b321 st.w r1, (r3, 0x4)
4b42: b220 st.w r1, (r2, 0x0)
4b44: 3100 movi r1, 0
4b46: b327 st.w r1, (r3, 0x1c)
4b48: 3004 movi r0, 4
4b4a: b225 st.w r1, (r2, 0x14)
4b4c: 932e ld.w r1, (r3, 0x38)
4b4e: 6840 and r1, r0
4b50: 3940 cmpnei r1, 0
4b52: 0ffd bf 0x4b4c // 4b4c <std_clk_calib+0x160>
4b54: 9225 ld.w r1, (r2, 0x14)
4b56: b82a st.w r1, (r14, 0x28)
4b58: 3100 movi r1, 0
4b5a: b310 st.w r0, (r3, 0x40)
4b5c: b327 st.w r1, (r3, 0x1c)
4b5e: 3004 movi r0, 4
4b60: b225 st.w r1, (r2, 0x14)
4b62: 932e ld.w r1, (r3, 0x38)
4b64: 6840 and r1, r0
4b66: 3940 cmpnei r1, 0
4b68: 0ffd bf 0x4b62 // 4b62 <std_clk_calib+0x176>
4b6a: 9225 ld.w r1, (r2, 0x14)
4b6c: b82b st.w r1, (r14, 0x2c)
4b6e: 3100 movi r1, 0
4b70: b310 st.w r0, (r3, 0x40)
4b72: b327 st.w r1, (r3, 0x1c)
4b74: 3004 movi r0, 4
4b76: b225 st.w r1, (r2, 0x14)
4b78: 932e ld.w r1, (r3, 0x38)
4b7a: 6840 and r1, r0
4b7c: 3940 cmpnei r1, 0
4b7e: 0ffd bf 0x4b78 // 4b78 <std_clk_calib+0x18c>
4b80: 9225 ld.w r1, (r2, 0x14)
4b82: b82c st.w r1, (r14, 0x30)
4b84: b310 st.w r0, (r3, 0x40)
4b86: 982b ld.w r1, (r14, 0x2c)
4b88: 980c ld.w r0, (r14, 0x30)
4b8a: 6040 addu r1, r0
4b8c: b829 st.w r1, (r14, 0x24)
4b8e: 9829 ld.w r1, (r14, 0x24)
4b90: 4921 lsri r1, r1, 1
4b92: b829 st.w r1, (r14, 0x24)
4b94: 3100 movi r1, 0
4b96: b321 st.w r1, (r3, 0x4)
4b98: b220 st.w r1, (r2, 0x0)
4b9a: b327 st.w r1, (r3, 0x1c)
4b9c: b225 st.w r1, (r2, 0x14)
4b9e: d86e0009 ld.b r3, (r14, 0x9)
4ba2: 3b42 cmpnei r3, 2
4ba4: 9849 ld.w r2, (r14, 0x24)
4ba6: 082c bt 0x4bfe // 4bfe <std_clk_calib+0x212>
4ba8: 1171 lrw r3, 0x7ff // 4c6c <std_clk_calib+0x280>
4baa: 648c cmphs r3, r2
4bac: 0c03 bf 0x4bb2 // 4bb2 <std_clk_calib+0x1c6>
4bae: 3300 movi r3, 0
4bb0: 040f br 0x4bce // 4bce <std_clk_calib+0x1e2>
4bb2: 9849 ld.w r2, (r14, 0x24)
4bb4: 9866 ld.w r3, (r14, 0x18)
4bb6: 648c cmphs r3, r2
4bb8: 080e bt 0x4bd4 // 4bd4 <std_clk_calib+0x1e8>
4bba: 9868 ld.w r3, (r14, 0x20)
4bbc: 9847 ld.w r2, (r14, 0x1c)
4bbe: 60ca subu r3, r2
4bc0: b868 st.w r3, (r14, 0x20)
4bc2: 32fe movi r2, 254
4bc4: 9868 ld.w r3, (r14, 0x20)
4bc6: 4248 lsli r2, r2, 8
4bc8: 68c8 and r3, r2
4bca: 3b40 cmpnei r3, 0
4bcc: 0812 bt 0x4bf0 // 4bf0 <std_clk_calib+0x204>
4bce: dc6e000a st.b r3, (r14, 0xa)
4bd2: 0721 br 0x4a14 // 4a14 <std_clk_calib+0x28>
4bd4: 9849 ld.w r2, (r14, 0x24)
4bd6: 9865 ld.w r3, (r14, 0x14)
4bd8: 64c8 cmphs r2, r3
4bda: 0829 bt 0x4c2c // 4c2c <std_clk_calib+0x240>
4bdc: 9868 ld.w r3, (r14, 0x20)
4bde: 9847 ld.w r2, (r14, 0x1c)
4be0: 60c8 addu r3, r2
4be2: b868 st.w r3, (r14, 0x20)
4be4: 33fe movi r3, 254
4be6: 9848 ld.w r2, (r14, 0x20)
4be8: 4368 lsli r3, r3, 8
4bea: 688c and r2, r3
4bec: 64ca cmpne r2, r3
4bee: 0fe0 bf 0x4bae // 4bae <std_clk_calib+0x1c2>
4bf0: 9660 ld.w r3, (r6, 0x0)
4bf2: 9848 ld.w r2, (r14, 0x20)
4bf4: b354 st.w r2, (r3, 0x50)
4bf6: 3001 movi r0, 1
4bf8: e3ffed70 bsr 0x26d8 // 26d8 <delay_nms>
4bfc: 075e br 0x4ab8 // 4ab8 <std_clk_calib+0xcc>
4bfe: 9866 ld.w r3, (r14, 0x18)
4c00: 648c cmphs r3, r2
4c02: 0809 bt 0x4c14 // 4c14 <std_clk_calib+0x228>
4c04: 9868 ld.w r3, (r14, 0x20)
4c06: 9847 ld.w r2, (r14, 0x1c)
4c08: 60ca subu r3, r2
4c0a: b868 st.w r3, (r14, 0x20)
4c0c: 32ff movi r2, 255
4c0e: 9868 ld.w r3, (r14, 0x20)
4c10: 4250 lsli r2, r2, 16
4c12: 07db br 0x4bc8 // 4bc8 <std_clk_calib+0x1dc>
4c14: 9849 ld.w r2, (r14, 0x24)
4c16: 9865 ld.w r3, (r14, 0x14)
4c18: 64c8 cmphs r2, r3
4c1a: 0809 bt 0x4c2c // 4c2c <std_clk_calib+0x240>
4c1c: 9868 ld.w r3, (r14, 0x20)
4c1e: 9847 ld.w r2, (r14, 0x1c)
4c20: 60c8 addu r3, r2
4c22: b868 st.w r3, (r14, 0x20)
4c24: 33ff movi r3, 255
4c26: 9848 ld.w r2, (r14, 0x20)
4c28: 4370 lsli r3, r3, 16
4c2a: 07e0 br 0x4bea // 4bea <std_clk_calib+0x1fe>
4c2c: 3300 movi r3, 0
4c2e: dc6e000a st.b r3, (r14, 0xa)
4c32: 07e2 br 0x4bf6 // 4bf6 <std_clk_calib+0x20a>
4c34: 2000005c .long 0x2000005c
4c38: 2000000c .long 0x2000000c
4c3c: 02dc6c00 .long 0x02dc6c00
4c40: 0000ffff .long 0x0000ffff
4c44: 20000014 .long 0x20000014
4c48: be9c0005 .long 0xbe9c0005
4c4c: 00030010 .long 0x00030010
4c50: 016e3600 .long 0x016e3600
4c54: 00b71b00 .long 0x00b71b00
4c58: 005b8d80 .long 0x005b8d80
4c5c: 0054c720 .long 0x0054c720
4c60: 003ffed0 .long 0x003ffed0
4c64: 001fff68 .long 0x001fff68
4c68: 0001ffb8 .long 0x0001ffb8
4c6c: 000007ff .long 0x000007ff