Files
RS485_10VRLY/Source/Lst/RLY_10V485_V01_20250625.asm
yeyangwen c05052b637 feat:提交0_10V温控继电器固件
feat:提交0_10V温控继电器固件
2026-04-02 16:39:09 +08:00

12538 lines
504 KiB
NASM
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.//Obj/RLY_10V485_V01_20250625.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: 00004944 .long 0x00004944
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: 000043b4 .long 0x000043b4
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, 0x4c40 // 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: 00004c40 .long 0x00004c40
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, 0x4c40 // 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, 0x4c40 // 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: 00004c40 .long 0x00004c40
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, 0x4c70 // 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: 00004c70 .long 0x00004c70
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, 0x4c70 // 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: 00004c70 .long 0x00004c70
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, 0x4c70 // 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: 00004c70 .long 0x00004c70
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, 0x4c84 // 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: 00004c84 .long 0x00004c84
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, 0x4f20 // 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: 00004f20 .long 0x00004f20
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, 0x4d84 // 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: e000083f bsr 0x3740 // 3740 <DIP_ScanTask>
BLV_RLY_Task();
26c6: e0000975 bsr 0x39b0 // 39b0 <BLV_RLY_Task>
CTRL_LEDStatus_Task();
26ca: e0000beb bsr 0x3ea0 // 3ea0 <CTRL_LEDStatus_Task>
BUS485Send_Task();
26ce: e0000775 bsr 0x35b8 // 35b8 <BUS485Send_Task>
26d2: 07f4 br 0x26ba // 26ba <main+0xe>
26d4: 00004d84 .long 0x00004d84
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: e00010ed bsr 0x49bc // 49bc <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, 0x3d90 // 2834 <APT32F102_init+0x48>
281c: 3001 movi r0, 1
281e: e0000501 bsr 0x3220 // 3220 <UARTx_Init>
DIP_Switch_Init();
2822: e0000749 bsr 0x36b4 // 36b4 <DIP_Switch_Init>
Relay_Init();
2826: e00007d3 bsr 0x37cc // 37cc <Relay_Init>
}
282a: 1490 pop r15
282c: 2000005c .long 0x2000005c
2830: 0fffffff .long 0x0fffffff
2834: 00003d90 .long 0x00003d90
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
// /*Boot处理函数 */
// if(rev != 0x00)
// {
// Boot_Comm_UpgradeProcess(g_uart1.DealBuffer,g_uart1.DealLen);
// }
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.DIP_GetSwitchState:
00003680 <DIP_GetSwitchState>:
/* - */
Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.DIP_val);
}
U8_T DIP_GetSwitchState(U8_T i){
3680: 14d0 push r15
U8_T val = 0;
switch (i)
3682: 3841 cmpnei r0, 1
3684: 0c0d bf 0x369e // 369e <DIP_GetSwitchState+0x1e>
3686: 3840 cmpnei r0, 0
3688: 0c05 bf 0x3692 // 3692 <DIP_GetSwitchState+0x12>
368a: 3842 cmpnei r0, 2
368c: 0c0d bf 0x36a6 // 36a6 <DIP_GetSwitchState+0x26>
U8_T val = 0;
368e: 3000 movi r0, 0
3690: 0406 br 0x369c // 369c <DIP_GetSwitchState+0x1c>
{
case DIP_CH1:
val = GPIO_Read_Status(GPIOA0,10);
3692: 1068 lrw r3, 0x2000004c // 36b0 <DIP_GetSwitchState+0x30>
3694: 310a movi r1, 10
3696: 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);
3698: e3fff55b bsr 0x214e // 214e <GPIO_Read_Status>
break;
}
return val;
}
369c: 1490 pop r15
val = GPIO_Read_Status(GPIOA0,9);
369e: 1065 lrw r3, 0x2000004c // 36b0 <DIP_GetSwitchState+0x30>
36a0: 3109 movi r1, 9
36a2: 9300 ld.w r0, (r3, 0x0)
36a4: 07fa br 0x3698 // 3698 <DIP_GetSwitchState+0x18>
val = GPIO_Read_Status(GPIOA0,8);
36a6: 1063 lrw r3, 0x2000004c // 36b0 <DIP_GetSwitchState+0x30>
36a8: 3108 movi r1, 8
36aa: 9300 ld.w r0, (r3, 0x0)
36ac: 07f6 br 0x3698 // 3698 <DIP_GetSwitchState+0x18>
36ae: 0000 bkpt
36b0: 2000004c .long 0x2000004c
Disassembly of section .text.DIP_Switch_Init:
000036b4 <DIP_Switch_Init>:
void DIP_Switch_Init(void){
36b4: 14d2 push r4-r5, r15
GPIO_Init(GPIOA0,10,Intput);
36b6: 1180 lrw r4, 0x2000004c // 3734 <DIP_Switch_Init+0x80>
36b8: 3201 movi r2, 1
36ba: 9400 ld.w r0, (r4, 0x0)
36bc: 310a movi r1, 10
36be: e3fff3af bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_Init(GPIOA0,9,Intput);
36c2: 9400 ld.w r0, (r4, 0x0)
36c4: 3201 movi r2, 1
36c6: 3109 movi r1, 9
36c8: e3fff3aa bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_Init(GPIOA0,8,Intput);
36cc: 3201 movi r2, 1
36ce: 9400 ld.w r0, (r4, 0x0)
36d0: 3108 movi r1, 8
36d2: e3fff3a5 bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_PullHigh_Init(GPIOA0,10);
36d6: 9400 ld.w r0, (r4, 0x0)
36d8: 310a movi r1, 10
36da: e3fff411 bsr 0x1efc // 1efc <GPIO_PullHigh_Init>
GPIO_PullHigh_Init(GPIOA0,9);
36de: 9400 ld.w r0, (r4, 0x0)
36e0: 3109 movi r1, 9
36e2: e3fff40d bsr 0x1efc // 1efc <GPIO_PullHigh_Init>
GPIO_PullHigh_Init(GPIOA0,8);
36e6: 9400 ld.w r0, (r4, 0x0)
36e8: 3108 movi r1, 8
36ea: e3fff409 bsr 0x1efc // 1efc <GPIO_PullHigh_Init>
memset(&g_Dip,0,sizeof(DIP_t));
36ee: 3210 movi r2, 16
36f0: 3100 movi r1, 0
36f2: 1012 lrw r0, 0x2000035c // 3738 <DIP_Switch_Init+0x84>
36f4: e3fff144 bsr 0x197c // 197c <__memset_fast>
delay_nms(20);
36f8: 3014 movi r0, 20
36fa: e3fff7ef bsr 0x26d8 // 26d8 <delay_nms>
36fe: 3400 movi r4, 0
g_Dip.DIP_val |= DIP_VAL_ON << i;
3700: 10ae lrw r5, 0x2000035c // 3738 <DIP_Switch_Init+0x84>
if(DIP_GetSwitchState(i) == DIP_PRESS){
3702: 7410 zextb r0, r4
3704: e3ffffbe bsr 0x3680 // 3680 <DIP_GetSwitchState>
3708: 3840 cmpnei r0, 0
370a: 0807 bt 0x3718 // 3718 <DIP_Switch_Init+0x64>
g_Dip.DIP_val |= DIP_VAL_ON << i;
370c: 3301 movi r3, 1
370e: 70d0 lsl r3, r4
3710: 6c8f mov r2, r3
3712: 9562 ld.w r3, (r5, 0x8)
3714: 6cc8 or r3, r2
3716: b562 st.w r3, (r5, 0x8)
3718: 2400 addi r4, 1
for (U8_T i = 0; i < DIP_CHN_MAX; i++) {
371a: 3c43 cmpnei r4, 3
371c: 0bf3 bt 0x3702 // 3702 <DIP_Switch_Init+0x4e>
g_Dip.DIP_last_val = g_Dip.DIP_val;
371e: 1067 lrw r3, 0x2000035c // 3738 <DIP_Switch_Init+0x84>
g_Dip.addr = g_Dip.DIP_val & 0x07;
3720: 3107 movi r1, 7
g_Dip.DIP_last_val = g_Dip.DIP_val;
3722: 9342 ld.w r2, (r3, 0x8)
g_Dip.addr = g_Dip.DIP_val & 0x07;
3724: 6848 and r1, r2
3726: a326 st.b r1, (r3, 0x6)
Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.DIP_val);
3728: 3000 movi r0, 0
372a: 1025 lrw r1, 0x4d8f // 373c <DIP_Switch_Init+0x88>
g_Dip.DIP_last_val = g_Dip.DIP_val;
372c: b343 st.w r2, (r3, 0xc)
Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.DIP_val);
372e: e3ffffa3 bsr 0x3674 // 3674 <Dbg_Println>
}
3732: 1492 pop r4-r5, r15
3734: 2000004c .long 0x2000004c
3738: 2000035c .long 0x2000035c
373c: 00004d8f .long 0x00004d8f
Disassembly of section .text.DIP_ScanTask:
00003740 <DIP_ScanTask>:
void DIP_ScanTask(void)
{
3740: 14d3 push r4-r6, r15
static U32_T update_20ms = 0;
if (SysTick_1ms - update_20ms > DIP_SCAN_Time)
3742: 1120 lrw r1, 0x200000a4 // 37c0 <DIP_ScanTask+0x80>
3744: 1140 lrw r2, 0x200000b8 // 37c4 <DIP_ScanTask+0x84>
3746: 11a1 lrw r5, 0x2000035c // 37c8 <DIP_ScanTask+0x88>
3748: 9200 ld.w r0, (r2, 0x0)
374a: 9160 ld.w r3, (r1, 0x0)
374c: 60c2 subu r3, r0
374e: 3b14 cmphsi r3, 21
3750: 0806 bt 0x375c // 375c <DIP_ScanTask+0x1c>
}
}
}
}
if(g_Dip.DIP_val != g_Dip.DIP_last_val)
3752: 9562 ld.w r3, (r5, 0x8)
3754: 9543 ld.w r2, (r5, 0xc)
3756: 648e cmpne r3, r2
3758: 082e bt 0x37b4 // 37b4 <DIP_ScanTask+0x74>
g_Dip.addr = g_Dip.DIP_val & 0x07;
}
}
375a: 1493 pop r4-r6, r15
update_20ms = SysTick_1ms;
375c: 9160 ld.w r3, (r1, 0x0)
375e: b260 st.w r3, (r2, 0x0)
3760: 6d17 mov r4, r5
3762: 3600 movi r6, 0
if (DIP_GetSwitchState(i) == DIP_PRESS)
3764: 7418 zextb r0, r6
3766: e3ffff8d bsr 0x3680 // 3680 <DIP_GetSwitchState>
376a: 3840 cmpnei r0, 0
g_Dip.delayCnt_OFF[i] = 0;
376c: 3300 movi r3, 0
if (DIP_GetSwitchState(i) == DIP_PRESS)
376e: 0814 bt 0x3796 // 3796 <DIP_ScanTask+0x56>
g_Dip.delayCnt_OFF[i] = 0;
3770: a463 st.b r3, (r4, 0x3)
if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT)
3772: 8460 ld.b r3, (r4, 0x0)
3774: 3b04 cmphsi r3, 5
3776: 0808 bt 0x3786 // 3786 <DIP_ScanTask+0x46>
g_Dip.delayCnt_ON[i]++;
3778: 2300 addi r3, 1
g_Dip.delayCnt_ON[i] = 0;
377a: a460 st.b r3, (r4, 0x0)
377c: 2600 addi r6, 1
for (U8_T i = 0; i < DIP_CHN_MAX; i++)
377e: 3e43 cmpnei r6, 3
3780: 2400 addi r4, 1
3782: 0bf1 bt 0x3764 // 3764 <DIP_ScanTask+0x24>
3784: 07e7 br 0x3752 // 3752 <DIP_ScanTask+0x12>
g_Dip.DIP_val |= (DIP_VAL_ON << i);
3786: 3301 movi r3, 1
3788: 70d8 lsl r3, r6
378a: 6c8f mov r2, r3
378c: 9562 ld.w r3, (r5, 0x8)
378e: 6cc8 or r3, r2
3790: b562 st.w r3, (r5, 0x8)
g_Dip.delayCnt_ON[i] = 0;
3792: 3300 movi r3, 0
3794: 07f3 br 0x377a // 377a <DIP_ScanTask+0x3a>
g_Dip.delayCnt_ON[i] = 0;
3796: a460 st.b r3, (r4, 0x0)
if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT)
3798: 8463 ld.b r3, (r4, 0x3)
379a: 3b04 cmphsi r3, 5
379c: 0804 bt 0x37a4 // 37a4 <DIP_ScanTask+0x64>
g_Dip.delayCnt_OFF[i]++;
379e: 2300 addi r3, 1
g_Dip.delayCnt_OFF[i] = 0;
37a0: a463 st.b r3, (r4, 0x3)
37a2: 07ed br 0x377c // 377c <DIP_ScanTask+0x3c>
g_Dip.DIP_val &= ~(DIP_VAL_ON << i);
37a4: 3300 movi r3, 0
37a6: 2b01 subi r3, 2
37a8: 9542 ld.w r2, (r5, 0x8)
37aa: 70db rotl r3, r6
37ac: 68c8 and r3, r2
37ae: b562 st.w r3, (r5, 0x8)
g_Dip.delayCnt_OFF[i] = 0;
37b0: 3300 movi r3, 0
37b2: 07f7 br 0x37a0 // 37a0 <DIP_ScanTask+0x60>
g_Dip.addr = g_Dip.DIP_val & 0x07;
37b4: 3207 movi r2, 7
g_Dip.DIP_last_val = g_Dip.DIP_val;
37b6: b563 st.w r3, (r5, 0xc)
g_Dip.addr = g_Dip.DIP_val & 0x07;
37b8: 68c8 and r3, r2
37ba: a566 st.b r3, (r5, 0x6)
}
37bc: 07cf br 0x375a // 375a <DIP_ScanTask+0x1a>
37be: 0000 bkpt
37c0: 200000a4 .long 0x200000a4
37c4: 200000b8 .long 0x200000b8
37c8: 2000035c .long 0x2000035c
Disassembly of section .text.Relay_Init:
000037cc <Relay_Init>:
#include "includes.h"
ZERO_CTRL_RLY c_rly;
void Relay_Init(void)
{
37cc: 14d2 push r4-r5, r15
37ce: 1429 subi r14, r14, 36
memset(&c_rly,0, sizeof(ZERO_CTRL_RLY));
37d0: 11ac lrw r5, 0x2000036c // 3880 <Relay_Init+0xb4>
37d2: 3218 movi r2, 24
37d4: 3100 movi r1, 0
37d6: 6c17 mov r0, r5
37d8: e3fff0d2 bsr 0x197c // 197c <__memset_fast>
EEPROM_Init();
37dc: e0000592 bsr 0x4300 // 4300 <EEPROM_Init>
GPT_IO_Init(GPT_CHB_PB00);
37e0: 3005 movi r0, 5
37e2: e3fff51f 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);
37e6: 3400 movi r4, 0
GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0);
37e8: 3300 movi r3, 0
37ea: 3240 movi r2, 64
37ec: 3100 movi r1, 0
37ee: 3001 movi r0, 1
37f0: e3fff568 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);
37f4: b885 st.w r4, (r14, 0x14)
37f6: b884 st.w r4, (r14, 0x10)
37f8: b883 st.w r4, (r14, 0xc)
37fa: b882 st.w r4, (r14, 0x8)
37fc: b881 st.w r4, (r14, 0x4)
37fe: b880 st.w r4, (r14, 0x0)
3800: 3300 movi r3, 0
3802: 3208 movi r2, 8
3804: 3100 movi r1, 0
3806: 3000 movi r0, 0
3808: e3fff566 bsr 0x22d4 // 22d4 <GPT_WaveCtrl_Configure>
GPT_Period_CMP_Write(10000,0,0);
380c: 3200 movi r2, 0
380e: 3100 movi r1, 0
3810: 101d lrw r0, 0x2710 // 3884 <Relay_Init+0xb8>
3812: e3fff5ef bsr 0x23f0 // 23f0 <GPT_Period_CMP_Write>
GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO);
3816: 3320 movi r3, 32
3818: 3204 movi r2, 4
381a: 3100 movi r1, 0
381c: 3001 movi r0, 1
381e: e3fff57d 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);
3822: 3301 movi r3, 1
3824: 3200 movi r2, 0
3826: b888 st.w r4, (r14, 0x20)
3828: b887 st.w r4, (r14, 0x1c)
382a: b886 st.w r4, (r14, 0x18)
382c: b885 st.w r4, (r14, 0x14)
382e: b884 st.w r4, (r14, 0x10)
3830: b883 st.w r4, (r14, 0xc)
3832: b862 st.w r3, (r14, 0x8)
3834: b861 st.w r3, (r14, 0x4)
3836: b880 st.w r4, (r14, 0x0)
3838: 3302 movi r3, 2
383a: 3100 movi r1, 0
383c: 3001 movi r0, 1
383e: e3fff577 bsr 0x232c // 232c <GPT_WaveOut_Configure>
GPT_Start();
3842: e3fff5cf bsr 0x23e0 // 23e0 <GPT_Start>
GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND);
3846: 3180 movi r1, 128
//-
GPIO_Init(GPIOA0,12,Output);
3848: 1090 lrw r4, 0x2000004c // 3888 <Relay_Init+0xbc>
GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND);
384a: 4129 lsli r1, r1, 9
384c: 3001 movi r0, 1
384e: e3fff5d9 bsr 0x2400 // 2400 <GPT_ConfigInterrupt_CMD>
GPIO_Init(GPIOA0,12,Output);
3852: 9400 ld.w r0, (r4, 0x0)
3854: 3200 movi r2, 0
3856: 310c movi r1, 12
3858: e3fff2e2 bsr 0x1e1c // 1e1c <GPIO_Init>
GPIO_Init(GPIOA0,13,Output);
385c: 3200 movi r2, 0
385e: 9400 ld.w r0, (r4, 0x0)
3860: 310d movi r1, 13
3862: e3fff2dd bsr 0x1e1c // 1e1c <GPIO_Init>
RLY_1_CLOSE;
3866: 9400 ld.w r0, (r4, 0x0)
3868: 310d movi r1, 13
386a: e3fff463 bsr 0x2130 // 2130 <GPIO_Write_Low>
RLY_2_CLOSE;
386e: 9400 ld.w r0, (r4, 0x0)
3870: 310c movi r1, 12
3872: e3fff45f bsr 0x2130 // 2130 <GPIO_Write_Low>
c_rly.rly_control = 0x01; //继电器控制标志位
3876: 3301 movi r3, 1
3878: a560 st.b r3, (r5, 0x0)
}
387a: 1409 addi r14, r14, 36
387c: 1492 pop r4-r5, r15
387e: 0000 bkpt
3880: 2000036c .long 0x2000036c
3884: 00002710 .long 0x00002710
3888: 2000004c .long 0x2000004c
Disassembly of section .text.CheckSum:
0000388c <CheckSum>:
* @param data:
* @param len:
* @retval
******************************************/
U8_T CheckSum(U8_T *data,U16_T len)
{
388c: 6cc3 mov r3, r0
388e: 6040 addu r1, r0
U8_T data_sum = 0;
3890: 3000 movi r0, 0
for(U16_T i = 0;i<len;i++)
3892: 644e cmpne r3, r1
3894: 0802 bt 0x3898 // 3898 <CheckSum+0xc>
{
data_sum += data[i];
}
return data_sum;
}
3896: 783c jmp r15
data_sum += data[i];
3898: 8340 ld.b r2, (r3, 0x0)
389a: 6008 addu r0, r2
389c: 7400 zextb r0, r0
389e: 2300 addi r3, 1
38a0: 07f9 br 0x3892 // 3892 <CheckSum+0x6>
Disassembly of section .text.CheckSum2:
000038a2 <CheckSum2>:
* @param data:
* @param len:
* @retval
******************************************/
U8_T CheckSum2(U8_T *data,U16_T len)
{
38a2: 6040 addu r1, r0
U8_T data_sum = 0;
38a4: 3300 movi r3, 0
for(U16_T i = 0;i<len;i++)
38a6: 6442 cmpne r0, r1
38a8: 0804 bt 0x38b0 // 38b0 <CheckSum2+0xe>
{
data_sum += data[i];
}
return ~(data_sum);
38aa: 6cce nor r3, r3
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: 74cc zextb r3, r3
38b6: 2000 addi r0, 1
38b8: 07f7 br 0x38a6 // 38a6 <CheckSum2+0x4>
Disassembly of section .text.Change_OUTV:
000038bc <Change_OUTV>:
//0 - 10000mV
U8_T Change_OUTV(U16_T VolOut)
{
if(VolOut > 10000) return 0x01;
38bc: 1065 lrw r3, 0x2710 // 38d0 <Change_OUTV+0x14>
38be: 640c cmphs r3, r0
38c0: 0c06 bf 0x38cc // 38cc <Change_OUTV+0x10>
GPT0->CMPA = VolOut;
38c2: 1065 lrw r3, 0x20000024 // 38d4 <Change_OUTV+0x18>
38c4: 9360 ld.w r3, (r3, 0x0)
38c6: b30b st.w r0, (r3, 0x2c)
#if DBG_LOG_EN
Dbg_Println(DBG_BIT_SYS_STATUS,"CMPA:%d",VolOut);
#endif
return 0x00;
38c8: 3000 movi r0, 0
}
38ca: 783c jmp r15
if(VolOut > 10000) return 0x01;
38cc: 3001 movi r0, 1
38ce: 07fe br 0x38ca // 38ca <Change_OUTV+0xe>
38d0: 00002710 .long 0x00002710
38d4: 20000024 .long 0x20000024
Disassembly of section .text.BLV_VolOut_Ctrl:
000038d8 <BLV_VolOut_Ctrl>:
* @param
* @retval None
* */
void BLV_VolOut_Ctrl(void)
{
38d8: 14d1 push r4, r15
c_rly.wind = WIND_STOP;
38da: 1095 lrw r4, 0x2000036c // 392c <BLV_VolOut_Ctrl+0x54>
38dc: 3300 movi r3, 0
38de: a46d st.b r3, (r4, 0xd)
if(c_rly.rly_state[WINDRLY_HIGH] == Control_ON) // >> ,
38e0: 8465 ld.b r3, (r4, 0x5)
38e2: 3b41 cmpnei r3, 1
38e4: 0804 bt 0x38ec // 38ec <BLV_VolOut_Ctrl+0x14>
{
#if DBG_LOG_EN
Dbg_Println(DBG_BIT_SYS_STATUS,"WIND_HIGH");
#endif
c_rly.wind = WIND_HIGH;
38e6: 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;
38e8: a46d st.b r3, (r4, 0xd)
38ea: 0409 br 0x38fc // 38fc <BLV_VolOut_Ctrl+0x24>
}else if(c_rly.rly_state[WINDRLY_MID] == Control_ON)
38ec: 8464 ld.b r3, (r4, 0x4)
38ee: 3b41 cmpnei r3, 1
38f0: 0803 bt 0x38f6 // 38f6 <BLV_VolOut_Ctrl+0x1e>
c_rly.wind = WIND_MID;
38f2: 3302 movi r3, 2
38f4: 07fa br 0x38e8 // 38e8 <BLV_VolOut_Ctrl+0x10>
}else if(c_rly.rly_state[WINDRLY_LOW] == Control_ON)
38f6: 8463 ld.b r3, (r4, 0x3)
38f8: 3b41 cmpnei r3, 1
38fa: 0ff7 bf 0x38e8 // 38e8 <BLV_VolOut_Ctrl+0x10>
}
Dbg_Println(DBG_BIT_SYS_STATUS,"VolOut_Ctrl wind:%d",c_rly.wind);
38fc: 844d ld.b r2, (r4, 0xd)
38fe: 102d lrw r1, 0x4d9b // 3930 <BLV_VolOut_Ctrl+0x58>
3900: 3000 movi r0, 0
3902: e3fffeb9 bsr 0x3674 // 3674 <Dbg_Println>
if(c_rly.wind == WIND_STOP){
3906: 846d ld.b r3, (r4, 0xd)
3908: 3b40 cmpnei r3, 0
390a: 0805 bt 0x3914 // 3914 <BLV_VolOut_Ctrl+0x3c>
Change_OUTV(c_rly.wind_STOP_vol);
390c: 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);
390e: e3ffffd7 bsr 0x38bc // 38bc <Change_OUTV>
}
}
3912: 1491 pop r4, r15
}else if(c_rly.wind == WIND_LOW){
3914: 3b41 cmpnei r3, 1
3916: 0803 bt 0x391c // 391c <BLV_VolOut_Ctrl+0x44>
Change_OUTV(c_rly.wind_LOW_vol);
3918: 8c09 ld.h r0, (r4, 0x12)
391a: 07fa br 0x390e // 390e <BLV_VolOut_Ctrl+0x36>
}else if(c_rly.wind == WIND_MID){
391c: 3b42 cmpnei r3, 2
391e: 0803 bt 0x3924 // 3924 <BLV_VolOut_Ctrl+0x4c>
Change_OUTV(c_rly.wind_MID_vol);
3920: 8c0a ld.h r0, (r4, 0x14)
3922: 07f6 br 0x390e // 390e <BLV_VolOut_Ctrl+0x36>
}else if(c_rly.wind == WIND_HIGH){
3924: 3b43 cmpnei r3, 3
3926: 0bf6 bt 0x3912 // 3912 <BLV_VolOut_Ctrl+0x3a>
Change_OUTV(c_rly.wind_HIGH_vol);
3928: 8c0b ld.h r0, (r4, 0x16)
392a: 07f2 br 0x390e // 390e <BLV_VolOut_Ctrl+0x36>
392c: 2000036c .long 0x2000036c
3930: 00004d9b .long 0x00004d9b
Disassembly of section .text.BLV_RLY_Ctrl_Purpose:
00003934 <BLV_RLY_Ctrl_Purpose>:
* @param rly_id:id
* @param state
* @retval None
* */
void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state)
{
3934: 14d0 push r15
if(rly_id >= RLY_MAX) return;
3936: 3804 cmphsi r0, 5
3938: 0807 bt 0x3946 // 3946 <BLV_RLY_Ctrl_Purpose+0x12>
switch(state)
393a: 3941 cmpnei r1, 1
393c: 0c06 bf 0x3948 // 3948 <BLV_RLY_Ctrl_Purpose+0x14>
393e: 3940 cmpnei r1, 0
3940: 0c13 bf 0x3966 // 3966 <BLV_RLY_Ctrl_Purpose+0x32>
3942: 3942 cmpnei r1, 2
3944: 0c20 bf 0x3984 // 3984 <BLV_RLY_Ctrl_Purpose+0x50>
}
}
break;
}
}
3946: 1490 pop r15
if(c_rly.rly_state[rly_id] != Control_ON)
3948: 1078 lrw r3, 0x2000036c // 39a8 <BLV_RLY_Ctrl_Purpose+0x74>
394a: 60c0 addu r3, r0
394c: 8341 ld.b r2, (r3, 0x1)
394e: 3a41 cmpnei r2, 1
3950: 0ffb bf 0x3946 // 3946 <BLV_RLY_Ctrl_Purpose+0x12>
c_rly.rly_state[rly_id] = Control_ON;
3952: 3201 movi r2, 1
if(rly_id == CTRL_RLY1){
3954: 3840 cmpnei r0, 0
c_rly.rly_state[rly_id] = Control_ON;
3956: a341 st.b r2, (r3, 0x1)
if(rly_id == CTRL_RLY1){
3958: 0822 bt 0x399c // 399c <BLV_RLY_Ctrl_Purpose+0x68>
RLY_1_OPEN;
395a: 1075 lrw r3, 0x2000004c // 39ac <BLV_RLY_Ctrl_Purpose+0x78>
395c: 310d movi r1, 13
395e: 9300 ld.w r0, (r3, 0x0)
RLY_2_OPEN;
3960: e3fff3e4 bsr 0x2128 // 2128 <GPIO_Write_High>
3964: 07f1 br 0x3946 // 3946 <BLV_RLY_Ctrl_Purpose+0x12>
if(c_rly.rly_state[rly_id] != Control_OFF)
3966: 1071 lrw r3, 0x2000036c // 39a8 <BLV_RLY_Ctrl_Purpose+0x74>
3968: 60c0 addu r3, r0
396a: 8341 ld.b r2, (r3, 0x1)
396c: 3a40 cmpnei r2, 0
396e: 0fec bf 0x3946 // 3946 <BLV_RLY_Ctrl_Purpose+0x12>
c_rly.rly_state[rly_id] = Control_OFF;
3970: 3200 movi r2, 0
if(rly_id == CTRL_RLY1){
3972: 3840 cmpnei r0, 0
c_rly.rly_state[rly_id] = Control_OFF;
3974: a341 st.b r2, (r3, 0x1)
if(rly_id == CTRL_RLY1){
3976: 080d bt 0x3990 // 3990 <BLV_RLY_Ctrl_Purpose+0x5c>
RLY_1_CLOSE;
3978: 106d lrw r3, 0x2000004c // 39ac <BLV_RLY_Ctrl_Purpose+0x78>
397a: 310d movi r1, 13
397c: 9300 ld.w r0, (r3, 0x0)
RLY_2_CLOSE;
397e: e3fff3d9 bsr 0x2130 // 2130 <GPIO_Write_Low>
3982: 07e2 br 0x3946 // 3946 <BLV_RLY_Ctrl_Purpose+0x12>
if(c_rly.rly_state[rly_id] != Control_OFF)
3984: 1069 lrw r3, 0x2000036c // 39a8 <BLV_RLY_Ctrl_Purpose+0x74>
3986: 60c0 addu r3, r0
3988: 8341 ld.b r2, (r3, 0x1)
398a: 3a40 cmpnei r2, 0
398c: 0fe3 bf 0x3952 // 3952 <BLV_RLY_Ctrl_Purpose+0x1e>
398e: 07f1 br 0x3970 // 3970 <BLV_RLY_Ctrl_Purpose+0x3c>
}else if(rly_id == CTRL_RLY2){
3990: 3841 cmpnei r0, 1
3992: 0bda bt 0x3946 // 3946 <BLV_RLY_Ctrl_Purpose+0x12>
RLY_2_CLOSE;
3994: 1066 lrw r3, 0x2000004c // 39ac <BLV_RLY_Ctrl_Purpose+0x78>
3996: 310c movi r1, 12
3998: 9300 ld.w r0, (r3, 0x0)
399a: 07f2 br 0x397e // 397e <BLV_RLY_Ctrl_Purpose+0x4a>
}else if(rly_id == CTRL_RLY2){
399c: 3841 cmpnei r0, 1
399e: 0bd4 bt 0x3946 // 3946 <BLV_RLY_Ctrl_Purpose+0x12>
RLY_2_OPEN;
39a0: 1063 lrw r3, 0x2000004c // 39ac <BLV_RLY_Ctrl_Purpose+0x78>
39a2: 310c movi r1, 12
39a4: 9300 ld.w r0, (r3, 0x0)
39a6: 07dd br 0x3960 // 3960 <BLV_RLY_Ctrl_Purpose+0x2c>
39a8: 2000036c .long 0x2000036c
39ac: 2000004c .long 0x2000004c
Disassembly of section .text.BLV_RLY_Task:
000039b0 <BLV_RLY_Task>:
//
void BLV_RLY_Task(void)
{
39b0: 14d3 push r4-r6, r15
if(c_rly.rly_control != 0x01)return;
39b2: 10b1 lrw r5, 0x2000036c // 39f4 <BLV_RLY_Task+0x44>
39b4: 8560 ld.b r3, (r5, 0x0)
39b6: 3b41 cmpnei r3, 1
39b8: 0815 bt 0x39e2 // 39e2 <BLV_RLY_Task+0x32>
39ba: 6d97 mov r6, r5
39bc: 3400 movi r4, 0
for(U8_T i = 0;i<RLY_MAX;i++)
{
if(c_rly.rly_ctrl_state[i] == RLY_OFF)
39be: 8666 ld.b r3, (r6, 0x6)
39c0: 3b41 cmpnei r3, 1
39c2: 0811 bt 0x39e4 // 39e4 <BLV_RLY_Task+0x34>
{
BLV_RLY_Ctrl_Purpose(i,Control_OFF);
39c4: 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);
39c6: 6c13 mov r0, r4
39c8: e3ffffb6 bsr 0x3934 // 3934 <BLV_RLY_Ctrl_Purpose>
for(U8_T i = 0;i<RLY_MAX;i++)
39cc: 2400 addi r4, 1
39ce: 7510 zextb r4, r4
}
c_rly.rly_ctrl_state[i] = NO_CTRL;
39d0: 3300 movi r3, 0
for(U8_T i = 0;i<RLY_MAX;i++)
39d2: 3c45 cmpnei r4, 5
c_rly.rly_ctrl_state[i] = NO_CTRL;
39d4: a666 st.b r3, (r6, 0x6)
39d6: 2600 addi r6, 1
for(U8_T i = 0;i<RLY_MAX;i++)
39d8: 0bf3 bt 0x39be // 39be <BLV_RLY_Task+0xe>
}
BLV_VolOut_Ctrl(); //风速判断输出pwm
39da: e3ffff7f bsr 0x38d8 // 38d8 <BLV_VolOut_Ctrl>
#if DBG_LOG_EN
Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_RLY_Task");
#endif
c_rly.rly_control = 0x00;
39de: 3300 movi r3, 0
39e0: a560 st.b r3, (r5, 0x0)
}
39e2: 1493 pop r4-r6, r15
else if(c_rly.rly_ctrl_state[i] == RLY_ON)
39e4: 3b42 cmpnei r3, 2
39e6: 0803 bt 0x39ec // 39ec <BLV_RLY_Task+0x3c>
BLV_RLY_Ctrl_Purpose(i,Control_ON);
39e8: 3101 movi r1, 1
39ea: 07ee br 0x39c6 // 39c6 <BLV_RLY_Task+0x16>
}else if(c_rly.rly_ctrl_state[i] == RLY_RES)
39ec: 3b43 cmpnei r3, 3
39ee: 0bef bt 0x39cc // 39cc <BLV_RLY_Task+0x1c>
BLV_RLY_Ctrl_Purpose(i,Cnotrol_RES);
39f0: 3102 movi r1, 2
39f2: 07ea br 0x39c6 // 39c6 <BLV_RLY_Task+0x16>
39f4: 2000036c .long 0x2000036c
Disassembly of section .text.BLV_A9RLY_CMD_SET_Processing:
000039f8 <BLV_A9RLY_CMD_SET_Processing>:
//1
U8_T BLV_A9RLY_CMD_SET_Processing(U8_T *data,U16_T len)
{
39f8: 14d3 push r4-r6, r15
39fa: 1429 subi r14, r14, 36
if(len < 9) return 0x01;
39fc: 3908 cmphsi r1, 9
39fe: 0c48 bf 0x3a8e // 3a8e <BLV_A9RLY_CMD_SET_Processing+0x96>
U16_T RLY_STATE = 0x00;
// if(len >= 9)
{
RLY_STATE =(data[SEND_PARA] + (data[SEND_PARA+1]<<8));
3a00: 8048 ld.b r2, (r0, 0x8)
3a02: 8067 ld.b r3, (r0, 0x7)
3a04: 4248 lsli r2, r2, 8
3a06: 608c addu r2, r3
c_rly.rly_control = 0x01; //继电器控制标志
3a08: 3101 movi r1, 1
3a0a: 1163 lrw r3, 0x2000036c // 3a94 <BLV_A9RLY_CMD_SET_Processing+0x9c>
RLY_STATE =(data[SEND_PARA] + (data[SEND_PARA+1]<<8));
3a0c: 7489 zexth r2, r2
c_rly.rly_control = 0x01; //继电器控制标志
3a0e: a320 st.b r1, (r3, 0x0)
3a10: 3400 movi r4, 0
3a12: 6d4f mov r5, r3
for(U8_T i = 0;i<RLY_MAX;i++)
{
t = ((RLY_STATE>>(2*i)) & 0x03);
3a14: 3603 movi r6, 3
3a16: 6c4b mov r1, r2
3a18: 7052 asr r1, r4
3a1a: 6858 and r1, r6
3a1c: 7444 zextb r1, r1
if(t == NO_CTRL){
3a1e: 3940 cmpnei r1, 0
3a20: 0831 bt 0x3a82 // 3a82 <BLV_A9RLY_CMD_SET_Processing+0x8a>
3a22: 2401 addi r4, 2
for(U8_T i = 0;i<RLY_MAX;i++)
3a24: 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;
3a26: a326 st.b r1, (r3, 0x6)
3a28: 2300 addi r3, 1
for(U8_T i = 0;i<RLY_MAX;i++)
3a2a: 0bf6 bt 0x3a16 // 3a16 <BLV_A9RLY_CMD_SET_Processing+0x1e>
}
}
}
//BLV_RLY_Task();
c_rly.SN = (data[1]&0x0F);
3a2c: 8061 ld.b r3, (r0, 0x1)
3a2e: 320f movi r2, 15
3a30: 68c8 and r3, r2
3a32: a56c st.b r3, (r5, 0xc)
//
SendData[SendLen++] = g_Dip.addr;
SendData[SendLen++] = c_rly.SN; //SN
3a34: dc6e0005 st.b r3, (r14, 0x5)
SendData[SendLen++] = data[2];
3a38: 8062 ld.b r3, (r0, 0x2)
3a3a: dc6e0006 st.b r3, (r14, 0x6)
SendData[SendLen++] = data[0];
3a3e: 8060 ld.b r3, (r0, 0x0)
3a40: dc6e0007 st.b r3, (r14, 0x7)
SendData[SendLen++] = 0x00; //len
SendData[SendLen++] = 0x00; //sum
3a44: 3300 movi r3, 0
3a46: dc6e0009 st.b r3, (r14, 0x9)
SendData[SendLen++] = CMD_SET_RLYSTATE_REPLY; //回复CMD
3a4a: 3330 movi r3, 48
SendData[SendLen++] = g_Dip.addr;
3a4c: 1053 lrw r2, 0x2000035c // 3a98 <BLV_A9RLY_CMD_SET_Processing+0xa0>
3a4e: 8246 ld.b r2, (r2, 0x6)
SendData[SendLen++] = CMD_SET_RLYSTATE_REPLY; //回复CMD
3a50: dc6e000a st.b r3, (r14, 0xa)
SendLen = 0x07;
SendData[SEND_LEN] = SendLen; //len
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3a54: 3107 movi r1, 7
SendData[SEND_LEN] = SendLen; //len
3a56: 3307 movi r3, 7
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3a58: 1801 addi r0, r14, 4
SendData[SendLen++] = g_Dip.addr;
3a5a: dc4e0004 st.b r2, (r14, 0x4)
SendData[SEND_LEN] = SendLen; //len
3a5e: dc6e0008 st.b r3, (r14, 0x8)
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3a62: e3ffff20 bsr 0x38a2 // 38a2 <CheckSum2>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3a66: 3314 movi r3, 20
3a68: b860 st.w r3, (r14, 0x0)
3a6a: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3a6c: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3a70: 4361 lsli r3, r3, 1
3a72: 1801 addi r0, r14, 4
3a74: 3201 movi r2, 1
3a76: 3107 movi r1, 7
3a78: e3fffd72 bsr 0x355c // 355c <Set_GroupSend>
3a7c: 3000 movi r0, 0
return 0x00;
}
3a7e: 1409 addi r14, r14, 36
3a80: 1493 pop r4-r6, r15
}else if(t == RLY_OFF){
3a82: 3941 cmpnei r1, 1
3a84: 0fcf bf 0x3a22 // 3a22 <BLV_A9RLY_CMD_SET_Processing+0x2a>
}else if(t == RLY_ON){
3a86: 3942 cmpnei r1, 2
3a88: 0fcd bf 0x3a22 // 3a22 <BLV_A9RLY_CMD_SET_Processing+0x2a>
c_rly.rly_ctrl_state[i] = RLY_RES;
3a8a: 3103 movi r1, 3
3a8c: 07cb br 0x3a22 // 3a22 <BLV_A9RLY_CMD_SET_Processing+0x2a>
if(len < 9) return 0x01;
3a8e: 3001 movi r0, 1
3a90: 07f7 br 0x3a7e // 3a7e <BLV_A9RLY_CMD_SET_Processing+0x86>
3a92: 0000 bkpt
3a94: 2000036c .long 0x2000036c
3a98: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_A9RLY_CMD_READ_Processing:
00003a9c <BLV_A9RLY_CMD_READ_Processing>:
//2
void BLV_A9RLY_CMD_READ_Processing(U8_T *data,U16_T len)
{
3a9c: 14d2 push r4-r5, r15
3a9e: 1429 subi r14, r14, 36
3aa0: 11a0 lrw r5, 0x2000036c // 3b20 <BLV_A9RLY_CMD_READ_Processing+0x84>
3aa2: 3200 movi r2, 0
U8_T SendData[30];
U16_T SendLen = 0x00;
U8_T RLY_State2 = 0x00;
3aa4: 3400 movi r4, 0
3aa6: 6c57 mov r1, r5
for(U8_T i = 0;i<RLY_MAX;i++)
{
if(c_rly.rly_state[i] == Control_ON)
3aa8: 8561 ld.b r3, (r5, 0x1)
3aaa: 3b41 cmpnei r3, 1
3aac: 0804 bt 0x3ab4 // 3ab4 <BLV_A9RLY_CMD_READ_Processing+0x18>
{
RLY_State2 |= (0x01<<i);
3aae: 70c8 lsl r3, r2
3ab0: 6cd0 or r3, r4
3ab2: 750c zextb r4, r3
3ab4: 2200 addi r2, 1
for(U8_T i = 0;i<RLY_MAX;i++)
3ab6: 3a45 cmpnei r2, 5
3ab8: 2500 addi r5, 1
3aba: 0bf7 bt 0x3aa8 // 3aa8 <BLV_A9RLY_CMD_READ_Processing+0xc>
}
}
c_rly.SN = (data[1]&0x0F);
3abc: 8041 ld.b r2, (r0, 0x1)
3abe: 330f movi r3, 15
3ac0: 688c and r2, r3
//
SendData[SendLen++] = g_Dip.addr;
3ac2: 1079 lrw r3, 0x2000035c // 3b24 <BLV_A9RLY_CMD_READ_Processing+0x88>
3ac4: 8366 ld.b r3, (r3, 0x6)
c_rly.SN = (data[1]&0x0F);
3ac6: a14c st.b r2, (r1, 0xc)
SendData[SendLen++] = g_Dip.addr;
3ac8: dc6e0004 st.b r3, (r14, 0x4)
SendData[SendLen++] = c_rly.SN;
SendData[SendLen++] = data[2];
3acc: 8062 ld.b r3, (r0, 0x2)
3ace: dc6e0006 st.b r3, (r14, 0x6)
SendData[SendLen++] = data[0];
3ad2: 8060 ld.b r3, (r0, 0x0)
3ad4: dc6e0007 st.b r3, (r14, 0x7)
SendData[SendLen++] = 0x00; //len
SendData[SendLen++] = 0x00; //sum
3ad8: 3300 movi r3, 0
3ada: dc6e0009 st.b r3, (r14, 0x9)
SendData[SendLen++] = CMD_READ_RLYSTATE_REPLY; //回复CMD
3ade: 3334 movi r3, 52
3ae0: dc6e000a st.b r3, (r14, 0xa)
SendData[SendLen++] = RLY_State2;
SendData[SendLen++] = 0x00;
3ae4: 3300 movi r3, 0
3ae6: dc6e000c st.b r3, (r14, 0xc)
SendData[SendLen++] = 0x00;
3aea: dc6e000d st.b r3, (r14, 0xd)
SendLen = 0x0A;
SendData[SEND_LEN] = 0x0A; //len
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3aee: 310a movi r1, 10
SendData[SEND_LEN] = 0x0A; //len
3af0: 330a movi r3, 10
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3af2: 1801 addi r0, r14, 4
SendData[SendLen++] = c_rly.SN;
3af4: dc4e0005 st.b r2, (r14, 0x5)
SendData[SEND_LEN] = 0x0A; //len
3af8: dc6e0008 st.b r3, (r14, 0x8)
SendData[SendLen++] = RLY_State2;
3afc: dc8e000b st.b r4, (r14, 0xb)
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3b00: e3fffed1 bsr 0x38a2 // 38a2 <CheckSum2>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3b04: 3314 movi r3, 20
3b06: b860 st.w r3, (r14, 0x0)
3b08: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3b0a: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3b0e: 4361 lsli r3, r3, 1
3b10: 3201 movi r2, 1
3b12: 310a movi r1, 10
3b14: 1801 addi r0, r14, 4
3b16: e3fffd23 bsr 0x355c // 355c <Set_GroupSend>
}
3b1a: 1409 addi r14, r14, 36
3b1c: 1492 pop r4-r5, r15
3b1e: 0000 bkpt
3b20: 2000036c .long 0x2000036c
3b24: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_WINDOUT_CMD_SET_Processing:
00003b28 <BLV_WINDOUT_CMD_SET_Processing>:
//3
U8_T BLV_WINDOUT_CMD_SET_Processing(U8_T *data,U16_T len)
{
3b28: 14d4 push r4-r7, r15
3b2a: 1429 subi r14, r14, 36
if(len < 15) return 0x01;
3b2c: 390e cmphsi r1, 15
{
3b2e: 6d03 mov r4, r0
if(len < 15) return 0x01;
3b30: 0c5f bf 0x3bee // 3bee <BLV_WINDOUT_CMD_SET_Processing+0xc6>
3b32: 58ba addi r5, r0, 7
3b34: 3300 movi r3, 0
3b36: 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){
3b38: 11cf lrw r6, 0x2710 // 3bf4 <BLV_WINDOUT_CMD_SET_Processing+0xcc>
3b3a: 1110 lrw r0, 0x2000036c // 3bf8 <BLV_WINDOUT_CMD_SET_Processing+0xd0>
SetVol = (data[(SEND_PARA+(i*2))] + (data[(SEND_PARA+(i*2+1))]<<8 ));
3b3c: 8541 ld.b r2, (r5, 0x1)
3b3e: 4248 lsli r2, r2, 8
3b40: 85e0 ld.b r7, (r5, 0x0)
3b42: 609c addu r2, r7
3b44: 7489 zexth r2, r2
if(SetVol <= 10000){
3b46: 6498 cmphs r6, r2
3b48: 0c0d bf 0x3b62 // 3b62 <BLV_WINDOUT_CMD_SET_Processing+0x3a>
switch(i){
3b4a: 3942 cmpnei r1, 2
3b4c: 0c47 bf 0x3bda // 3bda <BLV_WINDOUT_CMD_SET_Processing+0xb2>
3b4e: 3943 cmpnei r1, 3
3b50: 0c4a bf 0x3be4 // 3be4 <BLV_WINDOUT_CMD_SET_Processing+0xbc>
3b52: 3941 cmpnei r1, 1
3b54: 0c3e bf 0x3bd0 // 3bd0 <BLV_WINDOUT_CMD_SET_Processing+0xa8>
case 0x00:
if(c_rly.wind_STOP_vol != SetVol){
3b56: 88e8 ld.h r7, (r0, 0x10)
3b58: 649e cmpne r7, r2
3b5a: 0c04 bf 0x3b62 // 3b62 <BLV_WINDOUT_CMD_SET_Processing+0x3a>
c_rly.wind_STOP_vol = SetVol;
3b5c: a848 st.h r2, (r0, 0x10)
}
break;
case 0x03:
if(c_rly.wind_HIGH_vol != SetVol){
c_rly.wind_HIGH_vol = SetVol;
save_flag++;
3b5e: 2300 addi r3, 1
3b60: 74cc zextb r3, r3
for(U8_T i = 0x00; i < 0x04; i++)
3b62: 2100 addi r1, 1
3b64: 7444 zextb r1, r1
3b66: 3944 cmpnei r1, 4
3b68: 2501 addi r5, 2
3b6a: 0be9 bt 0x3b3c // 3b3c <BLV_WINDOUT_CMD_SET_Processing+0x14>
}
}
}
}
if(save_flag != 0x00)
3b6c: 3b40 cmpnei r3, 0
3b6e: 0c03 bf 0x3b74 // 3b74 <BLV_WINDOUT_CMD_SET_Processing+0x4c>
{
EEPROM_WritePara(); //保存flash
3b70: e00002d2 bsr 0x4114 // 4114 <EEPROM_WritePara>
}
BLV_VolOut_Ctrl();
3b74: e3fffeb2 bsr 0x38d8 // 38d8 <BLV_VolOut_Ctrl>
c_rly.SN = (data[1]&0x0F);
3b78: 8461 ld.b r3, (r4, 0x1)
3b7a: 320f movi r2, 15
3b7c: 68c8 and r3, r2
3b7e: 105f lrw r2, 0x2000036c // 3bf8 <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] = CheckSum2(SendData,SendLen);
3b80: 3107 movi r1, 7
c_rly.SN = (data[1]&0x0F);
3b82: a26c st.b r3, (r2, 0xc)
SendData[SendLen++] = c_rly.SN;
3b84: dc6e0005 st.b r3, (r14, 0x5)
SendData[SendLen++] = data[2];
3b88: 8462 ld.b r3, (r4, 0x2)
3b8a: dc6e0006 st.b r3, (r14, 0x6)
SendData[SendLen++] = data[0];
3b8e: 8460 ld.b r3, (r4, 0x0)
3b90: dc6e0007 st.b r3, (r14, 0x7)
SendData[SendLen++] = 0x00; //sum
3b94: 3300 movi r3, 0
3b96: dc6e0009 st.b r3, (r14, 0x9)
SendData[SendLen++] = CMD_SET_WINDOUTVOL_REPLY; //回复CMD
3b9a: 3337 movi r3, 55
SendData[SendLen++] = g_Dip.addr;
3b9c: 1058 lrw r2, 0x2000035c // 3bfc <BLV_WINDOUT_CMD_SET_Processing+0xd4>
3b9e: 8246 ld.b r2, (r2, 0x6)
SendData[SendLen++] = CMD_SET_WINDOUTVOL_REPLY; //回复CMD
3ba0: dc6e000a st.b r3, (r14, 0xa)
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3ba4: 1801 addi r0, r14, 4
SendData[SEND_LEN] = SendLen; //len
3ba6: 3307 movi r3, 7
SendData[SendLen++] = g_Dip.addr;
3ba8: dc4e0004 st.b r2, (r14, 0x4)
SendData[SEND_LEN] = SendLen; //len
3bac: dc6e0008 st.b r3, (r14, 0x8)
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3bb0: e3fffe79 bsr 0x38a2 // 38a2 <CheckSum2>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3bb4: 3314 movi r3, 20
3bb6: b860 st.w r3, (r14, 0x0)
3bb8: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3bba: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3bbe: 4361 lsli r3, r3, 1
3bc0: 1801 addi r0, r14, 4
3bc2: 3201 movi r2, 1
3bc4: 3107 movi r1, 7
3bc6: e3fffccb bsr 0x355c // 355c <Set_GroupSend>
3bca: 3000 movi r0, 0
return 0x00;
}
3bcc: 1409 addi r14, r14, 36
3bce: 1494 pop r4-r7, r15
if(c_rly.wind_LOW_vol != SetVol){
3bd0: 88e9 ld.h r7, (r0, 0x12)
3bd2: 649e cmpne r7, r2
3bd4: 0fc7 bf 0x3b62 // 3b62 <BLV_WINDOUT_CMD_SET_Processing+0x3a>
c_rly.wind_LOW_vol = SetVol;
3bd6: a849 st.h r2, (r0, 0x12)
3bd8: 07c3 br 0x3b5e // 3b5e <BLV_WINDOUT_CMD_SET_Processing+0x36>
if(c_rly.wind_MID_vol != SetVol){
3bda: 88ea ld.h r7, (r0, 0x14)
3bdc: 649e cmpne r7, r2
3bde: 0fc2 bf 0x3b62 // 3b62 <BLV_WINDOUT_CMD_SET_Processing+0x3a>
c_rly.wind_MID_vol = SetVol;
3be0: a84a st.h r2, (r0, 0x14)
3be2: 07be br 0x3b5e // 3b5e <BLV_WINDOUT_CMD_SET_Processing+0x36>
if(c_rly.wind_HIGH_vol != SetVol){
3be4: 88eb ld.h r7, (r0, 0x16)
3be6: 649e cmpne r7, r2
3be8: 0fbd bf 0x3b62 // 3b62 <BLV_WINDOUT_CMD_SET_Processing+0x3a>
c_rly.wind_HIGH_vol = SetVol;
3bea: a84b st.h r2, (r0, 0x16)
3bec: 07b9 br 0x3b5e // 3b5e <BLV_WINDOUT_CMD_SET_Processing+0x36>
if(len < 15) return 0x01;
3bee: 3001 movi r0, 1
3bf0: 07ee br 0x3bcc // 3bcc <BLV_WINDOUT_CMD_SET_Processing+0xa4>
3bf2: 0000 bkpt
3bf4: 00002710 .long 0x00002710
3bf8: 2000036c .long 0x2000036c
3bfc: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_WINDOUT_CMD_READ_Processing:
00003c00 <BLV_WINDOUT_CMD_READ_Processing>:
//4
U8_T BLV_WINDOUT_CMD_READ_Processing(U8_T *data,U16_T len)
{
3c00: 14d0 push r15
3c02: 1429 subi r14, r14, 36
U8_T SendData[30];
U16_T SendLen = 0x00;
c_rly.SN = (data[1]&0x0F);
3c04: 8041 ld.b r2, (r0, 0x1)
3c06: 330f movi r3, 15
3c08: 688c and r2, r3
3c0a: 1161 lrw r3, 0x2000036c // 3c8c <BLV_WINDOUT_CMD_READ_Processing+0x8c>
//
SendData[SendLen++] = g_Dip.addr;
3c0c: 1121 lrw r1, 0x2000035c // 3c90 <BLV_WINDOUT_CMD_READ_Processing+0x90>
3c0e: 8126 ld.b r1, (r1, 0x6)
c_rly.SN = (data[1]&0x0F);
3c10: a34c st.b r2, (r3, 0xc)
SendData[SendLen++] = c_rly.SN;
3c12: dc4e0005 st.b r2, (r14, 0x5)
SendData[SendLen++] = data[2];
3c16: 8042 ld.b r2, (r0, 0x2)
3c18: dc4e0006 st.b r2, (r14, 0x6)
SendData[SendLen++] = data[0];
3c1c: 8040 ld.b r2, (r0, 0x0)
3c1e: dc4e0007 st.b r2, (r14, 0x7)
SendData[SendLen++] = 0x00; //len
SendData[SendLen++] = 0x00; //sum
3c22: 3200 movi r2, 0
3c24: dc4e0009 st.b r2, (r14, 0x9)
SendData[SendLen++] = CMD_READ_WINDOUTVOL_REPLY; //回复CMD
3c28: 3239 movi r2, 57
3c2a: dc4e000a st.b r2, (r14, 0xa)
SendData[SendLen++] = (c_rly.wind_STOP_vol & 0xFF);
3c2e: 8b48 ld.h r2, (r3, 0x10)
3c30: dc4e000b st.b r2, (r14, 0xb)
SendData[SendLen++] = (c_rly.wind_STOP_vol >> 8) & 0xFF;
3c34: 4a48 lsri r2, r2, 8
3c36: dc4e000c st.b r2, (r14, 0xc)
SendData[SendLen++] = (c_rly.wind_LOW_vol & 0xFF);
3c3a: 8b49 ld.h r2, (r3, 0x12)
3c3c: dc4e000d st.b r2, (r14, 0xd)
SendData[SendLen++] = (c_rly.wind_LOW_vol >> 8) & 0xFF;
3c40: 4a48 lsri r2, r2, 8
3c42: dc4e000e st.b r2, (r14, 0xe)
SendData[SendLen++] = (c_rly.wind_MID_vol & 0xFF);
3c46: 8b4a ld.h r2, (r3, 0x14)
SendData[SendLen++] = (c_rly.wind_MID_vol >> 8) & 0xFF;
SendData[SendLen++] = (c_rly.wind_HIGH_vol & 0xFF);
3c48: 8b6b ld.h r3, (r3, 0x16)
3c4a: dc6e0011 st.b r3, (r14, 0x11)
SendData[SendLen++] = (c_rly.wind_HIGH_vol >> 8) & 0xFF;
3c4e: 4b68 lsri r3, r3, 8
SendData[SendLen++] = g_Dip.addr;
3c50: dc2e0004 st.b r1, (r14, 0x4)
SendData[SendLen++] = (c_rly.wind_MID_vol & 0xFF);
3c54: dc4e000f st.b r2, (r14, 0xf)
SendData[SendLen++] = (c_rly.wind_HIGH_vol >> 8) & 0xFF;
3c58: dc6e0012 st.b r3, (r14, 0x12)
SendData[SendLen++] = (c_rly.wind_MID_vol >> 8) & 0xFF;
3c5c: 4a48 lsri r2, r2, 8
SendLen = 0x0F;
SendData[SEND_LEN] = SendLen; //len
3c5e: 330f movi r3, 15
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3c60: 310f movi r1, 15
3c62: 1801 addi r0, r14, 4
SendData[SendLen++] = (c_rly.wind_MID_vol >> 8) & 0xFF;
3c64: dc4e0010 st.b r2, (r14, 0x10)
SendData[SEND_LEN] = SendLen; //len
3c68: dc6e0008 st.b r3, (r14, 0x8)
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3c6c: e3fffe1b bsr 0x38a2 // 38a2 <CheckSum2>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3c70: 3314 movi r3, 20
3c72: b860 st.w r3, (r14, 0x0)
3c74: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3c76: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3c7a: 4361 lsli r3, r3, 1
3c7c: 1801 addi r0, r14, 4
3c7e: 3201 movi r2, 1
3c80: 310f movi r1, 15
3c82: e3fffc6d bsr 0x355c // 355c <Set_GroupSend>
return 0x00;
}
3c86: 3000 movi r0, 0
3c88: 1409 addi r14, r14, 36
3c8a: 1490 pop r15
3c8c: 2000036c .long 0x2000036c
3c90: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_DEVPROT_CMD_SET_Processing:
00003c94 <BLV_DEVPROT_CMD_SET_Processing>:
//5
U8_T BLV_DEVPROT_CMD_SET_Processing(U8_T *data,U16_T len)
{
3c94: 14d2 push r4-r5, r15
3c96: 1429 subi r14, r14, 36
if(len != 0x08) return 0x01;
3c98: 3948 cmpnei r1, 8
{
3c9a: 6d43 mov r5, r0
if(len != 0x08) return 0x01;
3c9c: 0838 bt 0x3d0c // 3d0c <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)))
3c9e: 8067 ld.b r3, (r0, 0x7)
3ca0: 5b43 subi r2, r3, 1
3ca2: 7488 zextb r2, r2
3ca4: 3a01 cmphsi r2, 2
3ca6: 0835 bt 0x3d10 // 3d10 <BLV_DEVPROT_CMD_SET_Processing+0x7c>
{
if(data[SEND_PARA] != c_rly.dev_port){
3ca8: 109b lrw r4, 0x2000036c // 3d14 <BLV_DEVPROT_CMD_SET_Processing+0x80>
3caa: 844b ld.b r2, (r4, 0xb)
3cac: 64ca cmpne r2, r3
3cae: 0c04 bf 0x3cb6 // 3cb6 <BLV_DEVPROT_CMD_SET_Processing+0x22>
c_rly.dev_port = data[SEND_PARA];
3cb0: a46b st.b r3, (r4, 0xb)
EEPROM_WritePara(); //保存flash
3cb2: e0000231 bsr 0x4114 // 4114 <EEPROM_WritePara>
}
}else{
return 0x02;//设置的端口不合法
}
c_rly.SN = (data[1]&0x0F);
3cb6: 8561 ld.b r3, (r5, 0x1)
3cb8: 320f movi r2, 15
3cba: 68c8 and r3, r2
3cbc: a46c st.b r3, (r4, 0xc)
//
SendData[SendLen++] = g_Dip.addr;
SendData[SendLen++] = c_rly.SN;
3cbe: dc6e0005 st.b r3, (r14, 0x5)
SendData[SendLen++] = data[2];
3cc2: 8562 ld.b r3, (r5, 0x2)
3cc4: dc6e0006 st.b r3, (r14, 0x6)
SendData[SendLen++] = data[0];
3cc8: 8560 ld.b r3, (r5, 0x0)
3cca: dc6e0007 st.b r3, (r14, 0x7)
SendData[SendLen++] = 0x00; //len
SendData[SendLen++] = 0x00; //sum
3cce: 3300 movi r3, 0
3cd0: dc6e0009 st.b r3, (r14, 0x9)
SendData[SendLen++] = CMD_SET_DEVPORT_REPLY; //回复CMD
3cd4: 3338 movi r3, 56
SendData[SendLen++] = g_Dip.addr;
3cd6: 1051 lrw r2, 0x2000035c // 3d18 <BLV_DEVPROT_CMD_SET_Processing+0x84>
3cd8: 8246 ld.b r2, (r2, 0x6)
SendData[SendLen++] = CMD_SET_DEVPORT_REPLY; //回复CMD
3cda: dc6e000a st.b r3, (r14, 0xa)
SendLen = 0x07;
SendData[SEND_LEN] = SendLen; //len
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3cde: 3107 movi r1, 7
SendData[SEND_LEN] = SendLen; //len
3ce0: 3307 movi r3, 7
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3ce2: 1801 addi r0, r14, 4
SendData[SendLen++] = g_Dip.addr;
3ce4: dc4e0004 st.b r2, (r14, 0x4)
SendData[SEND_LEN] = SendLen; //len
3ce8: dc6e0008 st.b r3, (r14, 0x8)
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3cec: e3fffddb bsr 0x38a2 // 38a2 <CheckSum2>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3cf0: 3314 movi r3, 20
3cf2: b860 st.w r3, (r14, 0x0)
3cf4: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3cf6: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3cfa: 4361 lsli r3, r3, 1
3cfc: 1801 addi r0, r14, 4
3cfe: 3201 movi r2, 1
3d00: 3107 movi r1, 7
3d02: e3fffc2d bsr 0x355c // 355c <Set_GroupSend>
3d06: 3000 movi r0, 0
return 0x00;
}
3d08: 1409 addi r14, r14, 36
3d0a: 1492 pop r4-r5, r15
if(len != 0x08) return 0x01;
3d0c: 3001 movi r0, 1
3d0e: 07fd br 0x3d08 // 3d08 <BLV_DEVPROT_CMD_SET_Processing+0x74>
return 0x02;//设置的端口不合法
3d10: 3002 movi r0, 2
3d12: 07fb br 0x3d08 // 3d08 <BLV_DEVPROT_CMD_SET_Processing+0x74>
3d14: 2000036c .long 0x2000036c
3d18: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_DEVPROT_CMD_READ_Processing:
00003d1c <BLV_DEVPROT_CMD_READ_Processing>:
//6
U8_T BLV_DEVPROT_CMD_READ_Processing(U8_T *data,U16_T len)
{
3d1c: 14d0 push r15
3d1e: 1429 subi r14, r14, 36
U8_T SendData[30];
U16_T SendLen = 0x00;
c_rly.SN = (data[1]&0x0F);
3d20: 8061 ld.b r3, (r0, 0x1)
3d22: 320f movi r2, 15
3d24: 68c8 and r3, r2
3d26: 1059 lrw r2, 0x2000036c // 3d88 <BLV_DEVPROT_CMD_READ_Processing+0x6c>
//
SendData[SendLen++] = g_Dip.addr;
3d28: 1039 lrw r1, 0x2000035c // 3d8c <BLV_DEVPROT_CMD_READ_Processing+0x70>
3d2a: 8126 ld.b r1, (r1, 0x6)
c_rly.SN = (data[1]&0x0F);
3d2c: a26c st.b r3, (r2, 0xc)
SendData[SendLen++] = c_rly.SN;
3d2e: dc6e0005 st.b r3, (r14, 0x5)
SendData[SendLen++] = data[2];
3d32: 8062 ld.b r3, (r0, 0x2)
3d34: dc6e0006 st.b r3, (r14, 0x6)
SendData[SendLen++] = data[0];
3d38: 8060 ld.b r3, (r0, 0x0)
3d3a: dc6e0007 st.b r3, (r14, 0x7)
SendData[SendLen++] = 0x00; //len
SendData[SendLen++] = 0x00; //sum
3d3e: 3300 movi r3, 0
3d40: dc6e0009 st.b r3, (r14, 0x9)
SendData[SendLen++] = CMD_READ_DEVPORT_REPLY; //回复CMD
3d44: 333a movi r3, 58
3d46: dc6e000a st.b r3, (r14, 0xa)
SendData[SendLen++] = c_rly.dev_port; //端口模式
3d4a: 826b ld.b r3, (r2, 0xb)
3d4c: dc6e000b st.b r3, (r14, 0xb)
SendData[SendLen++] = Project_FW_Version; //软件版本号
3d50: 3301 movi r3, 1
SendData[SendLen++] = g_Dip.addr;
3d52: dc2e0004 st.b r1, (r14, 0x4)
SendData[SendLen++] = Project_FW_Version; //软件版本号
3d56: dc6e000c st.b r3, (r14, 0xc)
SendData[SendLen++] = Project_HW_Version; //硬件版本号
3d5a: dc6e000d st.b r3, (r14, 0xd)
SendLen = 0x0A;
SendData[SEND_LEN] = SendLen; //len
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3d5e: 310a movi r1, 10
SendData[SEND_LEN] = SendLen; //len
3d60: 330a movi r3, 10
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3d62: 1801 addi r0, r14, 4
SendData[SEND_LEN] = SendLen; //len
3d64: dc6e0008 st.b r3, (r14, 0x8)
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3d68: e3fffd9d bsr 0x38a2 // 38a2 <CheckSum2>
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3d6c: 3314 movi r3, 20
3d6e: b860 st.w r3, (r14, 0x0)
3d70: 3396 movi r3, 150
SendData[SEND_SUM] = CheckSum2(SendData,SendLen);
3d72: dc0e0009 st.b r0, (r14, 0x9)
Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包
3d76: 4361 lsli r3, r3, 1
3d78: 1801 addi r0, r14, 4
3d7a: 3201 movi r2, 1
3d7c: 310a movi r1, 10
3d7e: e3fffbef bsr 0x355c // 355c <Set_GroupSend>
return 0x00;
}
3d82: 3000 movi r0, 0
3d84: 1409 addi r14, r14, 36
3d86: 1490 pop r15
3d88: 2000036c .long 0x2000036c
3d8c: 2000035c .long 0x2000035c
Disassembly of section .text.BLV_RLY_RS485_Pro:
00003d90 <BLV_RLY_RS485_Pro>:
U8_T BLV_RLY_RS485_Pro(U8_T *RecData, U16_T Len)
{
3d90: 14d3 push r4-r6, r15
3d92: 142d subi r14, r14, 52
U8_T ret = 0x00;
U8_T ckdata[50];
if(Len < 0x05)
3d94: 3904 cmphsi r1, 5
{
3d96: 6d03 mov r4, r0
3d98: 6d47 mov r5, r1
if(Len < 0x05)
3d9a: 0808 bt 0x3daa // 3daa <BLV_RLY_RS485_Pro+0x1a>
{
Dbg_Println(DBG_BIT_SYS_STATUS,"Data Len Err");
3d9c: 1139 lrw r1, 0x4daf // 3e80 <BLV_RLY_RS485_Pro+0xf0>
return 0x01;
}
if(RecData[4] != Len)
{
Dbg_Println(DBG_BIT_SYS_STATUS,"Len Check Err");
3d9e: 3000 movi r0, 0
3da0: e3fffc6a bsr 0x3674 // 3674 <Dbg_Println>
return 0x01;
3da4: 3001 movi r0, 1
case CMD_READ_DEVPORT:
BLV_DEVPROT_CMD_READ_Processing(RecData,Len);
break;
}
}
3da6: 140d addi r14, r14, 52
3da8: 1493 pop r4-r6, r15
if(RecData[4] != Len)
3daa: 80c4 ld.b r6, (r0, 0x4)
3dac: 645a cmpne r6, r1
3dae: 0c03 bf 0x3db4 // 3db4 <BLV_RLY_RS485_Pro+0x24>
Dbg_Println(DBG_BIT_SYS_STATUS,"Len Check Err");
3db0: 1135 lrw r1, 0x4dbc // 3e84 <BLV_RLY_RS485_Pro+0xf4>
3db2: 07f6 br 0x3d9e // 3d9e <BLV_RLY_RS485_Pro+0xe>
if(RecData[2] != A9EXPANDTYPE) //A9继电器设备类型
3db4: 8062 ld.b r3, (r0, 0x2)
3db6: 3b4e cmpnei r3, 14
3db8: 0c07 bf 0x3dc6 // 3dc6 <BLV_RLY_RS485_Pro+0x36>
Dbg_Println(DBG_BIT_SYS_STATUS,"Type Check Err");
3dba: 3000 movi r0, 0
3dbc: 1133 lrw r1, 0x4dca // 3e88 <BLV_RLY_RS485_Pro+0xf8>
3dbe: e3fffc5b bsr 0x3674 // 3674 <Dbg_Println>
return 0x02;
3dc2: 3002 movi r0, 2
3dc4: 07f1 br 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
if(RecData[3] != g_Dip.addr) //
3dc6: 1172 lrw r3, 0x2000035c // 3e8c <BLV_RLY_RS485_Pro+0xfc>
3dc8: 8043 ld.b r2, (r0, 0x3)
3dca: 8366 ld.b r3, (r3, 0x6)
3dcc: 64ca cmpne r2, r3
3dce: 0c07 bf 0x3ddc // 3ddc <BLV_RLY_RS485_Pro+0x4c>
Dbg_Println(DBG_BIT_SYS_STATUS,"Addr Check Err ");
3dd0: 3000 movi r0, 0
3dd2: 1130 lrw r1, 0x4dd9 // 3e90 <BLV_RLY_RS485_Pro+0x100>
3dd4: e3fffc50 bsr 0x3674 // 3674 <Dbg_Println>
return 0x03;
3dd8: 3003 movi r0, 3
3dda: 07e6 br 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
memcpy(ckdata,RecData,Len);
3ddc: 6c43 mov r1, r0
3dde: 6c9b mov r2, r6
3de0: 6c3b mov r0, r14
3de2: e3ffee11 bsr 0x1a04 // 1a04 <__memcpy_fast>
ckdata[SEND_SUM] = 0x00;
3de6: 3300 movi r3, 0
if(CheckSum2(ckdata,Len) != RecData[SEND_SUM]) //
3de8: 6c5b mov r1, r6
3dea: 6c3b mov r0, r14
ckdata[SEND_SUM] = 0x00;
3dec: dc6e0005 st.b r3, (r14, 0x5)
if(CheckSum2(ckdata,Len) != RecData[SEND_SUM]) //
3df0: e3fffd59 bsr 0x38a2 // 38a2 <CheckSum2>
3df4: 8465 ld.b r3, (r4, 0x5)
3df6: 640e cmpne r3, r0
3df8: 0c0c bf 0x3e10 // 3e10 <BLV_RLY_RS485_Pro+0x80>
Dbg_Println(DBG_BIT_SYS_STATUS,"Sum Check Err: %02x",CheckSum(ckdata,Len));
3dfa: 6c5b mov r1, r6
3dfc: 6c3b mov r0, r14
3dfe: e3fffd47 bsr 0x388c // 388c <CheckSum>
3e02: 6c83 mov r2, r0
3e04: 1124 lrw r1, 0x4de9 // 3e94 <BLV_RLY_RS485_Pro+0x104>
3e06: 3000 movi r0, 0
3e08: e3fffc36 bsr 0x3674 // 3674 <Dbg_Println>
return 0x05;
3e0c: 3005 movi r0, 5
3e0e: 07cc br 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
3e10: 320f movi r2, 15
3e12: 8461 ld.b r3, (r4, 0x1)
3e14: 68c8 and r3, r2
if((RecData[SEND_SN]&0x0F) == c_rly.SN)
3e16: 1141 lrw r2, 0x2000036c // 3e98 <BLV_RLY_RS485_Pro+0x108>
3e18: 824c ld.b r2, (r2, 0xc)
3e1a: 64ca cmpne r2, r3
3e1c: 0807 bt 0x3e2a // 3e2a <BLV_RLY_RS485_Pro+0x9a>
Dbg_Println(DBG_BIT_SYS_STATUS,"SN is Equal: %02x",c_rly.SN);
3e1e: 3000 movi r0, 0
3e20: 103f lrw r1, 0x4dfd // 3e9c <BLV_RLY_RS485_Pro+0x10c>
3e22: e3fffc29 bsr 0x3674 // 3674 <Dbg_Println>
return 0x00;
3e26: 3000 movi r0, 0
3e28: 07bf br 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
switch(RecData[0x06])
3e2a: 8406 ld.b r0, (r4, 0x6)
3e2c: 281f subi r0, 32
3e2e: 380a cmphsi r0, 11
3e30: 0bbb bt 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
3e32: e3ffe765 bsr 0xcfc // cfc <___gnu_csky_case_sqi>
3e36: b806 .short 0xb806
3e38: b80bb8b8 .long 0xb80bb8b8
3e3c: 151a10b8 .long 0x151a10b8
3e40: 001f .short 0x001f
BLV_A9RLY_CMD_SET_Processing(RecData,Len);
3e42: 6c57 mov r1, r5
3e44: 6c13 mov r0, r4
3e46: e3fffdd9 bsr 0x39f8 // 39f8 <BLV_A9RLY_CMD_SET_Processing>
break;
3e4a: 07ae br 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
BLV_A9RLY_CMD_READ_Processing(RecData,Len);
3e4c: 6c57 mov r1, r5
3e4e: 6c13 mov r0, r4
3e50: e3fffe26 bsr 0x3a9c // 3a9c <BLV_A9RLY_CMD_READ_Processing>
break;
3e54: 07a9 br 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
BLV_WINDOUT_CMD_SET_Processing(RecData,Len);
3e56: 6c57 mov r1, r5
3e58: 6c13 mov r0, r4
3e5a: e3fffe67 bsr 0x3b28 // 3b28 <BLV_WINDOUT_CMD_SET_Processing>
break;
3e5e: 07a4 br 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
BLV_WINDOUT_CMD_READ_Processing(RecData,Len);
3e60: 6c57 mov r1, r5
3e62: 6c13 mov r0, r4
3e64: e3fffece bsr 0x3c00 // 3c00 <BLV_WINDOUT_CMD_READ_Processing>
break;
3e68: 079f br 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
BLV_DEVPROT_CMD_SET_Processing(RecData,Len);
3e6a: 6c57 mov r1, r5
3e6c: 6c13 mov r0, r4
3e6e: e3ffff13 bsr 0x3c94 // 3c94 <BLV_DEVPROT_CMD_SET_Processing>
break;
3e72: 079a br 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
BLV_DEVPROT_CMD_READ_Processing(RecData,Len);
3e74: 6c57 mov r1, r5
3e76: 6c13 mov r0, r4
3e78: e3ffff52 bsr 0x3d1c // 3d1c <BLV_DEVPROT_CMD_READ_Processing>
}
3e7c: 0795 br 0x3da6 // 3da6 <BLV_RLY_RS485_Pro+0x16>
3e7e: 0000 bkpt
3e80: 00004daf .long 0x00004daf
3e84: 00004dbc .long 0x00004dbc
3e88: 00004dca .long 0x00004dca
3e8c: 2000035c .long 0x2000035c
3e90: 00004dd9 .long 0x00004dd9
3e94: 00004de9 .long 0x00004de9
3e98: 2000036c .long 0x2000036c
3e9c: 00004dfd .long 0x00004dfd
Disassembly of section .text.CTRL_LEDStatus_Task:
00003ea0 <CTRL_LEDStatus_Task>:
void CTRL_LEDStatus_Task(void)
{
3ea0: 14d0 push r15
static U32_T Ctrl_LED_tick = 0x00;
if(SysTick_1ms - Ctrl_LED_tick >= 500)
3ea2: 1029 lrw r1, 0x200000a4 // 3ec4 <CTRL_LEDStatus_Task+0x24>
3ea4: 1049 lrw r2, 0x200000bc // 3ec8 <CTRL_LEDStatus_Task+0x28>
3ea6: 9160 ld.w r3, (r1, 0x0)
3ea8: 9200 ld.w r0, (r2, 0x0)
3eaa: 60c2 subu r3, r0
3eac: 1008 lrw r0, 0x1f3 // 3ecc <CTRL_LEDStatus_Task+0x2c>
3eae: 64c0 cmphs r0, r3
3eb0: 0808 bt 0x3ec0 // 3ec0 <CTRL_LEDStatus_Task+0x20>
{
Ctrl_LED_tick = SysTick_1ms;
3eb2: 9160 ld.w r3, (r1, 0x0)
3eb4: b260 st.w r3, (r2, 0x0)
REVERISE_STATUS;
3eb6: 3104 movi r1, 4
3eb8: 1066 lrw r3, 0x2000004c // 3ed0 <CTRL_LEDStatus_Task+0x30>
3eba: 9300 ld.w r0, (r3, 0x0)
3ebc: e3fff13e bsr 0x2138 // 2138 <GPIO_Reverse>
}
3ec0: 1490 pop r15
3ec2: 0000 bkpt
3ec4: 200000a4 .long 0x200000a4
3ec8: 200000bc .long 0x200000bc
3ecc: 000001f3 .long 0x000001f3
3ed0: 2000004c .long 0x2000004c
Disassembly of section .text.EEPROM_CheckSum:
00003ed4 <EEPROM_CheckSum>:
#include "includes.h"
E_MCU_DEV_INFO g_mcu_dev;
U8_T EEPROM_CheckSum(U8_T *data,U16_T len)
{
3ed4: 6cc3 mov r3, r0
3ed6: 6040 addu r1, r0
U8_T data_sum = 0;
3ed8: 3000 movi r0, 0
for(U16_T i = 0;i<len;i++)
3eda: 644e cmpne r3, r1
3edc: 0802 bt 0x3ee0 // 3ee0 <EEPROM_CheckSum+0xc>
{
data_sum += data[i];
}
return data_sum;
}
3ede: 783c jmp r15
data_sum += data[i];
3ee0: 8340 ld.b r2, (r3, 0x0)
3ee2: 6008 addu r0, r2
3ee4: 7400 zextb r0, r0
3ee6: 2300 addi r3, 1
3ee8: 07f9 br 0x3eda // 3eda <EEPROM_CheckSum+0x6>
Disassembly of section .text.EEPROM_ReadPara:
00003eec <EEPROM_ReadPara>:
* Description :
* Parameter :
* info
*******************************************************************************/
U8_T EEPROM_ReadPara(void)
{
3eec: 14d1 push r4, r15
3eee: 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));
3ef0: 6c3b mov r0, r14
3ef2: 320a movi r2, 10
3ef4: 3100 movi r1, 0
3ef6: e3ffed43 bsr 0x197c // 197c <__memset_fast>
memset(para_data,0,sizeof(para_data));
3efa: 3232 movi r2, 50
3efc: 3100 movi r1, 0
3efe: 1803 addi r0, r14, 12
3f00: e3ffed3e bsr 0x197c // 197c <__memset_fast>
ReadDataArry_U8(temp_addr,4,read_info);
3f04: 6cbb mov r2, r14
3f06: 3104 movi r1, 4
3f08: 1214 lrw r0, 0x10000100 // 4058 <EEPROM_ReadPara+0x16c>
3f0a: e3fff3bb bsr 0x2680 // 2680 <ReadDataArry_U8>
if(read_info[0] == EEPROM_SAVE_Flag){
3f0e: d84e0000 ld.b r2, (r14, 0x0)
3f12: 33a5 movi r3, 165
3f14: 64ca cmpne r2, r3
3f16: 1292 lrw r4, 0x2000036c // 405c <EEPROM_ReadPara+0x170>
3f18: 0872 bt 0x3ffc // 3ffc <EEPROM_ReadPara+0x110>
read_len = read_info[2];
read_len <<= 8;
read_len |= read_info[1];
3f1a: d86e0002 ld.b r3, (r14, 0x2)
3f1e: d84e0001 ld.b r2, (r14, 0x1)
3f22: 4368 lsli r3, r3, 8
if((read_len <= EEPROM_PARA_Size) && (read_len == 0x0A)){
3f24: 6cc8 or r3, r2
3f26: 3b4a cmpnei r3, 10
3f28: 086a bt 0x3ffc // 3ffc <EEPROM_ReadPara+0x110>
temp_addr += EEPROM_Data_Offset;
ReadDataArry_U8(temp_addr,read_len,para_data);
3f2a: 1a03 addi r2, r14, 12
3f2c: 310a movi r1, 10
3f2e: 120d lrw r0, 0x10000104 // 4060 <EEPROM_ReadPara+0x174>
3f30: e3fff3a8 bsr 0x2680 // 2680 <ReadDataArry_U8>
if(CheckSum(para_data,read_len) == read_info[3]){
3f34: 310a movi r1, 10
3f36: 1803 addi r0, r14, 12
3f38: e3fffcaa bsr 0x388c // 388c <CheckSum>
3f3c: d86e0003 ld.b r3, (r14, 0x3)
3f40: 640e cmpne r3, r0
3f42: 085d bt 0x3ffc // 3ffc <EEPROM_ReadPara+0x110>
// -
c_rly.wind_STOP_vol = (para_data[0] + (para_data[1]<<8));
3f44: d86e000d ld.b r3, (r14, 0xd)
3f48: d84e000c ld.b r2, (r14, 0xc)
3f4c: 4368 lsli r3, r3, 8
3f4e: 60c8 addu r3, r2
3f50: 74cd zexth r3, r3
if(c_rly.wind_STOP_vol > 10000){
3f52: 1245 lrw r2, 0x2710 // 4064 <EEPROM_ReadPara+0x178>
3f54: 64c8 cmphs r2, r3
3f56: 0c48 bf 0x3fe6 // 3fe6 <EEPROM_ReadPara+0xfa>
c_rly.wind_STOP_vol = EEPROM_WINDSTOP_OUT_Default;
3f58: ac68 st.h r3, (r4, 0x10)
}
c_rly.wind_LOW_vol = (para_data[2] + (para_data[3]<<8));
3f5a: d86e000f ld.b r3, (r14, 0xf)
3f5e: d84e000e ld.b r2, (r14, 0xe)
3f62: 4368 lsli r3, r3, 8
3f64: 60c8 addu r3, r2
3f66: 74cd zexth r3, r3
if(c_rly.wind_LOW_vol > 10000){
3f68: 115f lrw r2, 0x2710 // 4064 <EEPROM_ReadPara+0x178>
3f6a: 64c8 cmphs r2, r3
3f6c: 0c3f bf 0x3fea // 3fea <EEPROM_ReadPara+0xfe>
c_rly.wind_LOW_vol = EEPROM_WINDLOW_OUT_Default;
3f6e: ac69 st.h r3, (r4, 0x12)
}
c_rly.wind_MID_vol = (para_data[4] + (para_data[5]<<8));
3f70: d86e0011 ld.b r3, (r14, 0x11)
3f74: d84e0010 ld.b r2, (r14, 0x10)
3f78: 4368 lsli r3, r3, 8
3f7a: 60c8 addu r3, r2
3f7c: 74cd zexth r3, r3
if(c_rly.wind_MID_vol > 10000){
3f7e: 115a lrw r2, 0x2710 // 4064 <EEPROM_ReadPara+0x178>
3f80: 64c8 cmphs r2, r3
3f82: 0c36 bf 0x3fee // 3fee <EEPROM_ReadPara+0x102>
c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default;
3f84: ac6a st.h r3, (r4, 0x14)
}
c_rly.wind_HIGH_vol = (para_data[6] + (para_data[7]<<8));
3f86: d86e0013 ld.b r3, (r14, 0x13)
3f8a: d84e0012 ld.b r2, (r14, 0x12)
3f8e: 4368 lsli r3, r3, 8
3f90: 60c8 addu r3, r2
3f92: 74cd zexth r3, r3
if(c_rly.wind_HIGH_vol > 10000){
3f94: 1154 lrw r2, 0x2710 // 4064 <EEPROM_ReadPara+0x178>
3f96: 64c8 cmphs r2, r3
3f98: 0c2d bf 0x3ff2 // 3ff2 <EEPROM_ReadPara+0x106>
c_rly.wind_HIGH_vol = (para_data[6] + (para_data[7]<<8));
3f9a: ac6b st.h r3, (r4, 0x16)
c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default;
}
//
c_rly.dev_port = para_data[9];
3f9c: d84e0015 ld.b r2, (r14, 0x15)
if((c_rly.dev_port != ACTIVE_PORT)&&(c_rly.dev_port != POLLING_PORT))
3fa0: 5a63 subi r3, r2, 1
3fa2: 74cc zextb r3, r3
3fa4: 3b01 cmphsi r3, 2
3fa6: 0828 bt 0x3ff6 // 3ff6 <EEPROM_ReadPara+0x10a>
c_rly.dev_port = para_data[9];
3fa8: 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);
3faa: 8c48 ld.h r2, (r4, 0x10)
3fac: 112f lrw r1, 0x4e0f // 4068 <EEPROM_ReadPara+0x17c>
3fae: 3000 movi r0, 0
3fb0: e3fffb62 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_LOW_vol : %d",c_rly.wind_LOW_vol);
3fb4: 8c49 ld.h r2, (r4, 0x12)
3fb6: 112e lrw r1, 0x4e32 // 406c <EEPROM_ReadPara+0x180>
3fb8: 3000 movi r0, 0
3fba: e3fffb5d bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_MID_vol : %d",c_rly.wind_MID_vol);
3fbe: 8c4a ld.h r2, (r4, 0x14)
3fc0: 112c lrw r1, 0x4e55 // 4070 <EEPROM_ReadPara+0x184>
3fc2: 3000 movi r0, 0
3fc4: e3fffb58 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_HIGH_vol : %d",c_rly.wind_HIGH_vol);
3fc8: 8c4b ld.h r2, (r4, 0x16)
3fca: 112b lrw r1, 0x4e78 // 4074 <EEPROM_ReadPara+0x188>
3fcc: 3000 movi r0, 0
3fce: e3fffb53 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara dev_port : %d",c_rly.dev_port);
3fd2: 3000 movi r0, 0
3fd4: 844b ld.b r2, (r4, 0xb)
3fd6: 1129 lrw r1, 0x4e9b // 4078 <EEPROM_ReadPara+0x18c>
3fd8: e3fffb4e bsr 0x3674 // 3674 <Dbg_Println>
SYSCON_IWDCNT_Reload();
3fdc: e3ffee64 bsr 0x1ca4 // 1ca4 <SYSCON_IWDCNT_Reload>
return 0x00;
3fe0: 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;
}
3fe2: 1410 addi r14, r14, 64
3fe4: 1491 pop r4, r15
c_rly.wind_STOP_vol = EEPROM_WINDSTOP_OUT_Default;
3fe6: 3300 movi r3, 0
3fe8: 07b8 br 0x3f58 // 3f58 <EEPROM_ReadPara+0x6c>
c_rly.wind_LOW_vol = EEPROM_WINDLOW_OUT_Default;
3fea: 116b lrw r3, 0xbb8 // 4094 <EEPROM_ReadPara+0x1a8>
3fec: 07c1 br 0x3f6e // 3f6e <EEPROM_ReadPara+0x82>
c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default;
3fee: 116b lrw r3, 0x1770 // 4098 <EEPROM_ReadPara+0x1ac>
3ff0: 07ca br 0x3f84 // 3f84 <EEPROM_ReadPara+0x98>
c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default;
3ff2: ac4b st.h r2, (r4, 0x16)
3ff4: 07d4 br 0x3f9c // 3f9c <EEPROM_ReadPara+0xb0>
c_rly.dev_port = POLLING_PORT;
3ff6: 3301 movi r3, 1
3ff8: a46b st.b r3, (r4, 0xb)
3ffa: 07d8 br 0x3faa // 3faa <EEPROM_ReadPara+0xbe>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara Default!");
3ffc: 1120 lrw r1, 0x4ebe // 407c <EEPROM_ReadPara+0x190>
3ffe: 3000 movi r0, 0
4000: e3fffb3a bsr 0x3674 // 3674 <Dbg_Println>
c_rly.wind_STOP_vol = EEPROM_WINDSTOP_OUT_Default;
4004: 3300 movi r3, 0
4006: ac68 st.h r3, (r4, 0x10)
c_rly.wind_LOW_vol = EEPROM_WINDLOW_OUT_Default;
4008: 1163 lrw r3, 0xbb8 // 4094 <EEPROM_ReadPara+0x1a8>
400a: ac69 st.h r3, (r4, 0x12)
c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default;
400c: 1163 lrw r3, 0x1770 // 4098 <EEPROM_ReadPara+0x1ac>
400e: ac6a st.h r3, (r4, 0x14)
c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default;
4010: 1163 lrw r3, 0x2710 // 409c <EEPROM_ReadPara+0x1b0>
4012: ac6b st.h r3, (r4, 0x16)
c_rly.dev_port = POLLING_PORT;
4014: 3301 movi r3, 1
4016: a46b st.b r3, (r4, 0xb)
SYSCON_IWDCNT_Reload();
4018: e3ffee46 bsr 0x1ca4 // 1ca4 <SYSCON_IWDCNT_Reload>
Dbg_Println(DBG_BIT_SYS_STATUS,"wind_STOP_vol : %d",c_rly.wind_STOP_vol);
401c: 8c48 ld.h r2, (r4, 0x10)
401e: 1039 lrw r1, 0x4e1f // 4080 <EEPROM_ReadPara+0x194>
4020: 3000 movi r0, 0
4022: e3fffb29 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"wind_LOW_vol : %d",c_rly.wind_LOW_vol);
4026: 8c49 ld.h r2, (r4, 0x12)
4028: 1037 lrw r1, 0x4e42 // 4084 <EEPROM_ReadPara+0x198>
402a: 3000 movi r0, 0
402c: e3fffb24 bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"wind_MID_vol : %d",c_rly.wind_MID_vol);
4030: 8c4a ld.h r2, (r4, 0x14)
4032: 1036 lrw r1, 0x4e65 // 4088 <EEPROM_ReadPara+0x19c>
4034: 3000 movi r0, 0
4036: e3fffb1f bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"wind_HIGH_vol : %d",c_rly.wind_HIGH_vol);
403a: 8c4b ld.h r2, (r4, 0x16)
403c: 1034 lrw r1, 0x4e88 // 408c <EEPROM_ReadPara+0x1a0>
403e: 3000 movi r0, 0
4040: e3fffb1a bsr 0x3674 // 3674 <Dbg_Println>
Dbg_Println(DBG_BIT_SYS_STATUS,"dev_port : %d",c_rly.dev_port);
4044: 3000 movi r0, 0
4046: 844b ld.b r2, (r4, 0xb)
4048: 1032 lrw r1, 0x4eab // 4090 <EEPROM_ReadPara+0x1a4>
404a: e3fffb15 bsr 0x3674 // 3674 <Dbg_Println>
SYSCON_IWDCNT_Reload();
404e: e3ffee2b bsr 0x1ca4 // 1ca4 <SYSCON_IWDCNT_Reload>
return 0x01;
4052: 3001 movi r0, 1
4054: 07c7 br 0x3fe2 // 3fe2 <EEPROM_ReadPara+0xf6>
4056: 0000 bkpt
4058: 10000100 .long 0x10000100
405c: 2000036c .long 0x2000036c
4060: 10000104 .long 0x10000104
4064: 00002710 .long 0x00002710
4068: 00004e0f .long 0x00004e0f
406c: 00004e32 .long 0x00004e32
4070: 00004e55 .long 0x00004e55
4074: 00004e78 .long 0x00004e78
4078: 00004e9b .long 0x00004e9b
407c: 00004ebe .long 0x00004ebe
4080: 00004e1f .long 0x00004e1f
4084: 00004e42 .long 0x00004e42
4088: 00004e65 .long 0x00004e65
408c: 00004e88 .long 0x00004e88
4090: 00004eab .long 0x00004eab
4094: 00000bb8 .long 0x00000bb8
4098: 00001770 .long 0x00001770
409c: 00002710 .long 0x00002710
Disassembly of section .text.EEPROM_ValidateWrite:
000040a0 <EEPROM_ValidateWrite>:
/*******************************************************************************
* Function Name : EEPROM_ValidateWrite
* Description :
*******************************************************************************/
U8_T EEPROM_ValidateWrite(U32_T Eeprom_Write_SaveAddr,U8_T* Write_Data,U16_T Write_Len){
40a0: 1425 subi r14, r14, 20
40a2: dd0e2003 st.w r8, (r14, 0xc)
40a6: 6e3b mov r8, r14
40a8: b880 st.w r4, (r14, 0x0)
40aa: b8a1 st.w r5, (r14, 0x4)
40ac: b8c2 st.w r6, (r14, 0x8)
40ae: ddee2004 st.w r15, (r14, 0x10)
U8_T Read_para[Write_Len];
40b2: 5a6a addi r3, r2, 3
U8_T EEPROM_ValidateWrite(U32_T Eeprom_Write_SaveAddr,U8_T* Write_Data,U16_T Write_Len){
40b4: 6d0b mov r4, r2
U8_T Read_para[Write_Len];
40b6: 4b62 lsri r3, r3, 2
40b8: 3280 movi r2, 128
U8_T EEPROM_ValidateWrite(U32_T Eeprom_Write_SaveAddr,U8_T* Write_Data,U16_T Write_Len){
40ba: 6d83 mov r6, r0
40bc: 6d47 mov r5, r1
U8_T Read_para[Write_Len];
40be: 4362 lsli r3, r3, 2
40c0: 4245 lsli r2, r2, 5
40c2: 64c8 cmphs r2, r3
40c4: 0806 bt 0x40d0 // 40d0 <EEPROM_ValidateWrite+0x30>
40c6: 638a subu r14, r2
40c8: ddce2000 st.w r14, (r14, 0x0)
40cc: 60ca subu r3, r2
40ce: 07fa br 0x40c2 // 40c2 <EEPROM_ValidateWrite+0x22>
40d0: 638e subu r14, r3
U16_T i = 0;
memset(Read_para,0,sizeof(Read_para));
40d2: 6c93 mov r2, r4
40d4: 3100 movi r1, 0
40d6: 6c3b mov r0, r14
40d8: e3ffec52 bsr 0x197c // 197c <__memset_fast>
ReadDataArry_U8(Eeprom_Write_SaveAddr,Write_Len,Read_para);
40dc: 6c53 mov r1, r4
40de: 6cbb mov r2, r14
40e0: 6c1b mov r0, r6
40e2: e3fff2cf bsr 0x2680 // 2680 <ReadDataArry_U8>
40e6: 6138 addu r4, r14
40e8: 6cfb mov r3, r14
for(i=0;i<Write_Len;i++){
40ea: 650e cmpne r3, r4
40ec: 080c bt 0x4104 // 4104 <EEPROM_ValidateWrite+0x64>
if (Read_para[i]!=Write_Data[i]) {
return 0x01;
}
}
return 0x00;
40ee: 3000 movi r0, 0
}
40f0: 6fa3 mov r14, r8
40f2: d9ee2004 ld.w r15, (r14, 0x10)
40f6: d90e2003 ld.w r8, (r14, 0xc)
40fa: 98c2 ld.w r6, (r14, 0x8)
40fc: 98a1 ld.w r5, (r14, 0x4)
40fe: 9880 ld.w r4, (r14, 0x0)
4100: 1405 addi r14, r14, 20
4102: 783c jmp r15
if (Read_para[i]!=Write_Data[i]) {
4104: 8320 ld.b r1, (r3, 0x0)
4106: 8540 ld.b r2, (r5, 0x0)
4108: 6486 cmpne r1, r2
410a: 2300 addi r3, 1
410c: 2500 addi r5, 1
410e: 0fee bf 0x40ea // 40ea <EEPROM_ValidateWrite+0x4a>
return 0x01;
4110: 3001 movi r0, 1
4112: 07ef br 0x40f0 // 40f0 <EEPROM_ValidateWrite+0x50>
Disassembly of section .text.EEPROM_WritePara:
00004114 <EEPROM_WritePara>:
/*******************************************************************************
* Function Name : EEPROM_WritePara
* Description :
*******************************************************************************/
U8_T EEPROM_WritePara(void)
{
4114: 14d1 push r4, r15
4116: 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));
4118: 6c3b mov r0, r14
411a: 323c movi r2, 60
411c: 3100 movi r1, 0
411e: e3ffec2f bsr 0x197c // 197c <__memset_fast>
if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size;
save_para[0] = EEPROM_SAVE_Flag;
4122: 3300 movi r3, 0
4124: 2b5a subi r3, 91
4126: dc6e0000 st.b r3, (r14, 0x0)
save_para[1] = save_len & 0xFF;
412a: 330a movi r3, 10
412c: 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);
4130: 310a movi r1, 10
save_para[4] = c_rly.wind_STOP_vol & 0xFF;
4132: 1160 lrw r3, 0x2000036c // 41b0 <EEPROM_WritePara+0x9c>
4134: 8b48 ld.h r2, (r3, 0x10)
4136: dc4e0004 st.b r2, (r14, 0x4)
save_para[5] = (c_rly.wind_STOP_vol >> 8) & 0xFF;
413a: 4a48 lsri r2, r2, 8
413c: dc4e0005 st.b r2, (r14, 0x5)
save_para[6] = c_rly.wind_LOW_vol & 0xFF;
4140: 8b49 ld.h r2, (r3, 0x12)
4142: dc4e0006 st.b r2, (r14, 0x6)
save_para[7] = (c_rly.wind_LOW_vol >> 8) & 0xFF;
4146: 4a48 lsri r2, r2, 8
4148: dc4e0007 st.b r2, (r14, 0x7)
save_para[8] = c_rly.wind_MID_vol & 0xFF;
414c: 8b4a ld.h r2, (r3, 0x14)
414e: dc4e0008 st.b r2, (r14, 0x8)
save_para[9] = (c_rly.wind_MID_vol >> 8) & 0xFF;
4152: 4a48 lsri r2, r2, 8
4154: dc4e0009 st.b r2, (r14, 0x9)
save_para[10] = c_rly.wind_HIGH_vol & 0xFF;
4158: 8b4b ld.h r2, (r3, 0x16)
415a: dc4e000a st.b r2, (r14, 0xa)
save_para[11] = (c_rly.wind_HIGH_vol >> 8) & 0xFF;
415e: 4a48 lsri r2, r2, 8
4160: dc4e000b st.b r2, (r14, 0xb)
save_para[13] = c_rly.dev_port; //端口模式
4164: 836b ld.b r3, (r3, 0xb)
save_para[12] = g_Dip.addr;
4166: 1054 lrw r2, 0x2000035c // 41b4 <EEPROM_WritePara+0xa0>
4168: 8246 ld.b r2, (r2, 0x6)
save_para[3] = CheckSum(&save_para[4],save_len);
416a: 1801 addi r0, r14, 4
save_para[13] = c_rly.dev_port; //端口模式
416c: dc6e000d st.b r3, (r14, 0xd)
save_para[12] = g_Dip.addr;
4170: dc4e000c st.b r2, (r14, 0xc)
save_para[3] = CheckSum(&save_para[4],save_len);
4174: e3fffb8c bsr 0x388c // 388c <CheckSum>
4178: dc0e0003 st.b r0, (r14, 0x3)
save_len += 4;
Page_ProgramData(temp_addr,save_len,save_para);
417c: 6cbb mov r2, r14
417e: 310e movi r1, 14
4180: 100e lrw r0, 0x10000100 // 41b8 <EEPROM_WritePara+0xa4>
4182: e3fff22f bsr 0x25e0 // 25e0 <Page_ProgramData>
if(EEPROM_ValidateWrite(temp_addr,save_para,save_len)){
4186: 320e movi r2, 14
4188: 6c7b mov r1, r14
418a: 100c lrw r0, 0x10000100 // 41b8 <EEPROM_WritePara+0xa4>
418c: e3ffff8a bsr 0x40a0 // 40a0 <EEPROM_ValidateWrite>
4190: 3840 cmpnei r0, 0
4192: 6d03 mov r4, r0
4194: 0c09 bf 0x41a6 // 41a6 <EEPROM_WritePara+0x92>
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para Err");
4196: 102a lrw r1, 0x4ed7 // 41bc <EEPROM_WritePara+0xa8>
4198: 3000 movi r0, 0
419a: e3fffa6d bsr 0x3674 // 3674 <Dbg_Println>
return 0x01;
419e: 3401 movi r4, 1
}
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para");
return 0;
}
41a0: 6c13 mov r0, r4
41a2: 140f addi r14, r14, 60
41a4: 1491 pop r4, r15
Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para");
41a6: 1027 lrw r1, 0x4ef6 // 41c0 <EEPROM_WritePara+0xac>
41a8: 3000 movi r0, 0
41aa: e3fffa65 bsr 0x3674 // 3674 <Dbg_Println>
return 0;
41ae: 07f9 br 0x41a0 // 41a0 <EEPROM_WritePara+0x8c>
41b0: 2000036c .long 0x2000036c
41b4: 2000035c .long 0x2000035c
41b8: 10000100 .long 0x10000100
41bc: 00004ed7 .long 0x00004ed7
41c0: 00004ef6 .long 0x00004ef6
Disassembly of section .text.EEPROM_ReadMCUDevInfo:
000041c4 <EEPROM_ReadMCUDevInfo>:
/*******************************************************************************
* Function Name : EEPROM_ReadMCUDevInfo
* Description : EEPROM中读取设备信息
*******************************************************************************/
U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info)
{
41c4: 14d1 push r4, r15
41c6: 1432 subi r14, r14, 72
41c8: 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));
41ca: 3300 movi r3, 0
memset(para_data,0,sizeof(para_data));
41cc: 3240 movi r2, 64
41ce: 3100 movi r1, 0
41d0: 1802 addi r0, r14, 8
memset(read_info,0,sizeof(read_info));
41d2: b860 st.w r3, (r14, 0x0)
41d4: dc6e1002 st.h r3, (r14, 0x4)
memset(para_data,0,sizeof(para_data));
41d8: e3ffebd2 bsr 0x197c // 197c <__memset_fast>
ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info);
41dc: 3080 movi r0, 128
41de: 6cbb mov r2, r14
41e0: 3104 movi r1, 4
41e2: 4015 lsli r0, r0, 21
41e4: e3fff24e bsr 0x2680 // 2680 <ReadDataArry_U8>
if(read_info[0] == EEPROM_SVAE_FLAG){
41e8: d84e0000 ld.b r2, (r14, 0x0)
41ec: 33ae movi r3, 174
41ee: 64ca cmpne r2, r3
41f0: 0c04 bf 0x41f8 // 41f8 <EEPROM_ReadMCUDevInfo+0x34>
return 0x00;
}
}
}
return 0x01;
41f2: 3001 movi r0, 1
}
41f4: 1412 addi r14, r14, 72
41f6: 1491 pop r4, r15
read_len |= read_info[1];
41f8: d82e0002 ld.b r1, (r14, 0x2)
41fc: d86e0001 ld.b r3, (r14, 0x1)
4200: 4128 lsli r1, r1, 8
4202: 6c4c or r1, r3
if(read_len <= EEPROM_DATA_Size_Max){
4204: 3340 movi r3, 64
4206: 644c cmphs r3, r1
4208: 0ff5 bf 0x41f2 // 41f2 <EEPROM_ReadMCUDevInfo+0x2e>
ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data);
420a: 1a02 addi r2, r14, 8
420c: 1009 lrw r0, 0x10000004 // 4230 <EEPROM_ReadMCUDevInfo+0x6c>
420e: e3fff239 bsr 0x2680 // 2680 <ReadDataArry_U8>
if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){
4212: 3125 movi r1, 37
4214: 1802 addi r0, r14, 8
4216: e3fffe5f bsr 0x3ed4 // 3ed4 <EEPROM_CheckSum>
421a: d86e0003 ld.b r3, (r14, 0x3)
421e: 640e cmpne r3, r0
4220: 0be9 bt 0x41f2 // 41f2 <EEPROM_ReadMCUDevInfo+0x2e>
memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO));
4222: 3225 movi r2, 37
4224: 1902 addi r1, r14, 8
4226: 6c13 mov r0, r4
4228: e3ffebee bsr 0x1a04 // 1a04 <__memcpy_fast>
return 0x00;
422c: 3000 movi r0, 0
422e: 07e3 br 0x41f4 // 41f4 <EEPROM_ReadMCUDevInfo+0x30>
4230: 10000004 .long 0x10000004
Disassembly of section .text.EEPROM_WriteMCUDevInfo:
00004234 <EEPROM_WriteMCUDevInfo>:
/*******************************************************************************
* Function Name : EEPROM_WriteMCUDevInfo
* Description : EEPROM中
*******************************************************************************/
U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info)
{
4234: 14d0 push r15
4236: 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;
4238: 3300 movi r3, 0
423a: 2b51 subi r3, 82
423c: dc6e0000 st.b r3, (r14, 0x0)
save_data[1] = save_len & 0xFF;
4240: 3325 movi r3, 37
4242: dc6e0001 st.b r3, (r14, 0x1)
save_data[2] = (save_len >> 8) & 0xFF;
4246: 3300 movi r3, 0
4248: dc6e0002 st.b r3, (r14, 0x2)
memcpy(&save_data[4],(uint8_t *)info,save_len);
424c: 1b01 addi r3, r14, 4
{
424e: 6c43 mov r1, r0
memcpy(&save_data[4],(uint8_t *)info,save_len);
4250: 3225 movi r2, 37
4252: 6c0f mov r0, r3
4254: e3ffebd8 bsr 0x1a04 // 1a04 <__memcpy_fast>
save_data[3] = EEPROM_CheckSum(&save_data[4],save_len);
4258: 3125 movi r1, 37
425a: e3fffe3d bsr 0x3ed4 // 3ed4 <EEPROM_CheckSum>
425e: dc0e0003 st.b r0, (r14, 0x3)
save_len+=4;
Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data);
4262: 3080 movi r0, 128
4264: 4015 lsli r0, r0, 21
4266: 6cbb mov r2, r14
4268: 3129 movi r1, 41
426a: e3fff1bb bsr 0x25e0 // 25e0 <Page_ProgramData>
return 0;
}
426e: 3000 movi r0, 0
4270: 1412 addi r14, r14, 72
4272: 1490 pop r15
Disassembly of section .text.EEPROM_Default_MCUDevInfo:
00004274 <EEPROM_Default_MCUDevInfo>:
/*******************************************************************************
* Function Name : EEPROM_Default_MCUDevInfo
* Description : EEPROM中参数恢复默认值EEPROM中
*******************************************************************************/
void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info)
{
4274: 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;
4276: 3300 movi r3, 0
4278: a060 st.b r3, (r0, 0x0)
info->dev_type = Project_Type;
427a: a061 st.b r3, (r0, 0x1)
info->dev_app_ver = Project_FW_Version;
427c: 3301 movi r3, 1
427e: a063 st.b r3, (r0, 0x3)
info->dev_name_len = sizeof(Peoject_Name);
memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size);
4280: 58b2 addi r5, r0, 5
info->dev_name_len = sizeof(Peoject_Name);
4282: 330f movi r3, 15
4284: a064 st.b r3, (r0, 0x4)
{
4286: 6d03 mov r4, r0
memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size);
4288: 3220 movi r2, 32
428a: 3100 movi r1, 0
428c: 6c17 mov r0, r5
428e: e3ffeb77 bsr 0x197c // 197c <__memset_fast>
memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len);
4292: 320f movi r2, 15
4294: 1024 lrw r1, 0x4f11 // 42a4 <EEPROM_Default_MCUDevInfo+0x30>
4296: 6c17 mov r0, r5
4298: e3ffebb6 bsr 0x1a04 // 1a04 <__memcpy_fast>
EEPROM_WriteMCUDevInfo(info);
429c: 6c13 mov r0, r4
429e: e3ffffcb bsr 0x4234 // 4234 <EEPROM_WriteMCUDevInfo>
#endif
}
42a2: 1492 pop r4-r5, r15
42a4: 00004f11 .long 0x00004f11
Disassembly of section .text.EEPROM_Validate_MCUDevInfo:
000042a8 <EEPROM_Validate_MCUDevInfo>:
* Description : EEPROM 便
APP区域中APP参数与EEPROM中记录的是否一致
Boot区域中Boot参数与EEPROM中记录的是否一致
*******************************************************************************/
void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info)
{
42a8: 14d3 push r4-r6, r15
}
#elif (Project_Area == 0x02)
/*APP */
U8_T save_flag = 0;
if(info->dev_app_ver != Project_FW_Version)
42aa: 8063 ld.b r3, (r0, 0x3)
42ac: 3b41 cmpnei r3, 1
{
42ae: 6d03 mov r4, r0
if(info->dev_app_ver != Project_FW_Version)
42b0: 0c21 bf 0x42f2 // 42f2 <EEPROM_Validate_MCUDevInfo+0x4a>
{
info->dev_app_ver = Project_FW_Version;
42b2: 3301 movi r3, 1
42b4: a063 st.b r3, (r0, 0x3)
save_flag = 0x01;
42b6: 3501 movi r5, 1
}
if(info->dev_type != Project_Type)
42b8: 8461 ld.b r3, (r4, 0x1)
42ba: 3b40 cmpnei r3, 0
42bc: 0c04 bf 0x42c4 // 42c4 <EEPROM_Validate_MCUDevInfo+0x1c>
{
info->dev_type = Project_Type;
42be: 3300 movi r3, 0
42c0: a461 st.b r3, (r4, 0x1)
save_flag = 0x01;
42c2: 3501 movi r5, 1
}
if(info->dev_name_len != sizeof(Peoject_Name))
42c4: 8464 ld.b r3, (r4, 0x4)
42c6: 3b4f cmpnei r3, 15
42c8: 0c04 bf 0x42d0 // 42d0 <EEPROM_Validate_MCUDevInfo+0x28>
{
info->dev_name_len = sizeof(Peoject_Name);
42ca: 330f movi r3, 15
42cc: a464 st.b r3, (r4, 0x4)
save_flag = 0x01;
42ce: 3501 movi r5, 1
}
if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name)))
42d0: 5cd2 addi r6, r4, 5
42d2: 320f movi r2, 15
42d4: 102a lrw r1, 0x4f11 // 42fc <EEPROM_Validate_MCUDevInfo+0x54>
42d6: 6c1b mov r0, r6
42d8: e3ffebc8 bsr 0x1a68 // 1a68 <__GI_strncmp>
42dc: 3840 cmpnei r0, 0
42de: 0c0c bf 0x42f6 // 42f6 <EEPROM_Validate_MCUDevInfo+0x4e>
{
memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len);
42e0: 8444 ld.b r2, (r4, 0x4)
42e2: 1027 lrw r1, 0x4f11 // 42fc <EEPROM_Validate_MCUDevInfo+0x54>
42e4: 6c1b mov r0, r6
42e6: e3ffeb8f bsr 0x1a04 // 1a04 <__memcpy_fast>
save_flag = 0x01;
}
if(save_flag == 0x01)
{
EEPROM_WriteMCUDevInfo(info);
42ea: 6c13 mov r0, r4
42ec: e3ffffa4 bsr 0x4234 // 4234 <EEPROM_WriteMCUDevInfo>
}
#endif
}
42f0: 0405 br 0x42fa // 42fa <EEPROM_Validate_MCUDevInfo+0x52>
U8_T save_flag = 0;
42f2: 3500 movi r5, 0
42f4: 07e2 br 0x42b8 // 42b8 <EEPROM_Validate_MCUDevInfo+0x10>
if(save_flag == 0x01)
42f6: 3d41 cmpnei r5, 1
42f8: 0ff9 bf 0x42ea // 42ea <EEPROM_Validate_MCUDevInfo+0x42>
}
42fa: 1493 pop r4-r6, r15
42fc: 00004f11 .long 0x00004f11
Disassembly of section .text.EEPROM_Init:
00004300 <EEPROM_Init>:
{
4300: 14d2 push r4-r5, r15
EnIFCClk; //使能 IFC 时钟
4302: 1074 lrw r3, 0x20000060 // 4350 <EEPROM_Init+0x50>
4304: 3201 movi r2, 1
4306: 9360 ld.w r3, (r3, 0x0)
4308: b341 st.w r2, (r3, 0x4)
IFC->MR |= 0x10002; //高速模式,延迟 2 个周期
430a: 9345 ld.w r2, (r3, 0x14)
430c: 3aa1 bseti r2, 1
430e: 3ab0 bseti r2, 16
4310: b345 st.w r2, (r3, 0x14)
EEPROM_ReadPara();
4312: e3fffded bsr 0x3eec // 3eec <EEPROM_ReadPara>
memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO));
4316: 1090 lrw r4, 0x20000384 // 4354 <EEPROM_Init+0x54>
4318: 3225 movi r2, 37
431a: 3100 movi r1, 0
431c: 6c13 mov r0, r4
431e: e3ffeb2f bsr 0x197c // 197c <__memset_fast>
rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev);
4322: 6c13 mov r0, r4
4324: e3ffff50 bsr 0x41c4 // 41c4 <EEPROM_ReadMCUDevInfo>
if(g_Dip.addr != g_mcu_dev.dev_addr){
4328: 106c lrw r3, 0x2000035c // 4358 <EEPROM_Init+0x58>
432a: 8366 ld.b r3, (r3, 0x6)
432c: 8440 ld.b r2, (r4, 0x0)
432e: 64ca cmpne r2, r3
rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev);
4330: 6d43 mov r5, r0
if(g_Dip.addr != g_mcu_dev.dev_addr){
4332: 0c05 bf 0x433c // 433c <EEPROM_Init+0x3c>
EEPROM_WriteMCUDevInfo(&g_mcu_dev);
4334: 6c13 mov r0, r4
g_mcu_dev.dev_addr = g_Dip.addr;
4336: a460 st.b r3, (r4, 0x0)
EEPROM_WriteMCUDevInfo(&g_mcu_dev);
4338: e3ffff7e bsr 0x4234 // 4234 <EEPROM_WriteMCUDevInfo>
if(rev == 0x00){
433c: 3d40 cmpnei r5, 0
EEPROM_Validate_MCUDevInfo(&g_mcu_dev);
433e: 1006 lrw r0, 0x20000384 // 4354 <EEPROM_Init+0x54>
if(rev == 0x00){
4340: 0804 bt 0x4348 // 4348 <EEPROM_Init+0x48>
EEPROM_Validate_MCUDevInfo(&g_mcu_dev);
4342: e3ffffb3 bsr 0x42a8 // 42a8 <EEPROM_Validate_MCUDevInfo>
}
4346: 1492 pop r4-r5, r15
EEPROM_Default_MCUDevInfo(&g_mcu_dev);
4348: e3ffff96 bsr 0x4274 // 4274 <EEPROM_Default_MCUDevInfo>
}
434c: 07fd br 0x4346 // 4346 <EEPROM_Init+0x46>
434e: 0000 bkpt
4350: 20000060 .long 0x20000060
4354: 20000384 .long 0x20000384
4358: 2000035c .long 0x2000035c
Disassembly of section .text.TK_Sampling_prog:
0000435c <TK_Sampling_prog>:
435c: 14c4 push r4-r7
435e: 1072 lrw r3, 0x20000054 // 43a4 <TK_Sampling_prog+0x48>
4360: 1012 lrw r0, 0x20000652 // 43a8 <TK_Sampling_prog+0x4c>
4362: 1093 lrw r4, 0x200004c3 // 43ac <TK_Sampling_prog+0x50>
4364: 6d83 mov r6, r0
4366: 93a0 ld.w r5, (r3, 0x0)
4368: 3300 movi r3, 0
436a: 4342 lsli r2, r3, 2
436c: 6094 addu r2, r5
436e: 9220 ld.w r1, (r2, 0x0)
4370: 4341 lsli r2, r3, 1
4372: 6080 addu r2, r0
4374: 7445 zexth r1, r1
4376: aa20 st.h r1, (r2, 0x0)
4378: 8440 ld.b r2, (r4, 0x0)
437a: 3a41 cmpnei r2, 1
437c: 080f bt 0x439a // 439a <TK_Sampling_prog+0x3e>
437e: 3300 movi r3, 0
4380: 10ec lrw r7, 0x200003ac // 43b0 <TK_Sampling_prog+0x54>
4382: 4341 lsli r2, r3, 1
4384: 5e28 addu r1, r6, r2
4386: 8920 ld.h r1, (r1, 0x0)
4388: 2300 addi r3, 1
438a: 7445 zexth r1, r1
438c: 609c addu r2, r7
438e: 3b51 cmpnei r3, 17
4390: aa20 st.h r1, (r2, 0x0)
4392: 0bf8 bt 0x4382 // 4382 <TK_Sampling_prog+0x26>
4394: 3300 movi r3, 0
4396: a460 st.b r3, (r4, 0x0)
4398: 3311 movi r3, 17
439a: 2300 addi r3, 1
439c: 74cc zextb r3, r3
439e: 3b10 cmphsi r3, 17
43a0: 0fe5 bf 0x436a // 436a <TK_Sampling_prog+0xe>
43a2: 1484 pop r4-r7
43a4: 20000054 .long 0x20000054
43a8: 20000652 .long 0x20000652
43ac: 200004c3 .long 0x200004c3
43b0: 200003ac .long 0x200003ac
Disassembly of section .text.TKEYIntHandler:
000043b4 <TKEYIntHandler>:
43b4: 1460 nie
43b6: 1462 ipush
43b8: 14d1 push r4, r15
43ba: 109e lrw r4, 0x20000068 // 4430 <TKEYIntHandler+0x7c>
43bc: 9460 ld.w r3, (r4, 0x0)
43be: 3b40 cmpnei r3, 0
43c0: 080b bt 0x43d6 // 43d6 <TKEYIntHandler+0x22>
43c2: 3301 movi r3, 1
43c4: b460 st.w r3, (r4, 0x0)
43c6: 107c lrw r3, 0x20000440 // 4434 <TKEYIntHandler+0x80>
43c8: 8360 ld.b r3, (r3, 0x0)
43ca: 3b41 cmpnei r3, 1
43cc: 0805 bt 0x43d6 // 43d6 <TKEYIntHandler+0x22>
43ce: e3ffffc7 bsr 0x435c // 435c <TK_Sampling_prog>
43d2: 3301 movi r3, 1
43d4: a464 st.b r3, (r4, 0x4)
43d6: 1079 lrw r3, 0x20000058 // 4438 <TKEYIntHandler+0x84>
43d8: 3101 movi r1, 1
43da: 9360 ld.w r3, (r3, 0x0)
43dc: 934a ld.w r2, (r3, 0x28)
43de: 6884 and r2, r1
43e0: 3a40 cmpnei r2, 0
43e2: 0c02 bf 0x43e6 // 43e6 <TKEYIntHandler+0x32>
43e4: b32c st.w r1, (r3, 0x30)
43e6: 934a ld.w r2, (r3, 0x28)
43e8: 3102 movi r1, 2
43ea: 6884 and r2, r1
43ec: 3a40 cmpnei r2, 0
43ee: 0c02 bf 0x43f2 // 43f2 <TKEYIntHandler+0x3e>
43f0: b32c st.w r1, (r3, 0x30)
43f2: 934a ld.w r2, (r3, 0x28)
43f4: 3104 movi r1, 4
43f6: 6884 and r2, r1
43f8: 3a40 cmpnei r2, 0
43fa: 0c02 bf 0x43fe // 43fe <TKEYIntHandler+0x4a>
43fc: b32c st.w r1, (r3, 0x30)
43fe: 934a ld.w r2, (r3, 0x28)
4400: 3108 movi r1, 8
4402: 6884 and r2, r1
4404: 3a40 cmpnei r2, 0
4406: 0c02 bf 0x440a // 440a <TKEYIntHandler+0x56>
4408: b32c st.w r1, (r3, 0x30)
440a: 934a ld.w r2, (r3, 0x28)
440c: 3110 movi r1, 16
440e: 6884 and r2, r1
4410: 3a40 cmpnei r2, 0
4412: 0c02 bf 0x4416 // 4416 <TKEYIntHandler+0x62>
4414: b32c st.w r1, (r3, 0x30)
4416: 934a ld.w r2, (r3, 0x28)
4418: 3120 movi r1, 32
441a: 6884 and r2, r1
441c: 3a40 cmpnei r2, 0
441e: 0c02 bf 0x4422 // 4422 <TKEYIntHandler+0x6e>
4420: b32c st.w r1, (r3, 0x30)
4422: d9ee2001 ld.w r15, (r14, 0x4)
4426: 9880 ld.w r4, (r14, 0x0)
4428: 1402 addi r14, r14, 8
442a: 1463 ipop
442c: 1461 nir
442e: 0000 bkpt
4430: 20000068 .long 0x20000068
4434: 20000440 .long 0x20000440
4438: 20000058 .long 0x20000058
Disassembly of section .text.get_key_number:
0000443c <get_key_number>:
443c: 14c2 push r4-r5
443e: 3200 movi r2, 0
4440: 3000 movi r0, 0
4442: 1088 lrw r4, 0x200004e0 // 4460 <get_key_number+0x24>
4444: 3501 movi r5, 1
4446: 3120 movi r1, 32
4448: 9460 ld.w r3, (r4, 0x0)
444a: 70c9 lsr r3, r2
444c: 68d4 and r3, r5
444e: 3b40 cmpnei r3, 0
4450: 0c02 bf 0x4454 // 4454 <get_key_number+0x18>
4452: 2000 addi r0, 1
4454: 2200 addi r2, 1
4456: 644a cmpne r2, r1
4458: 0bf8 bt 0x4448 // 4448 <get_key_number+0xc>
445a: 7400 zextb r0, r0
445c: 1482 pop r4-r5
445e: 0000 bkpt
4460: 200004e0 .long 0x200004e0
Disassembly of section .text.TK_Scan_Start:
00004464 <TK_Scan_Start>:
4464: 1046 lrw r2, 0x20000068 // 447c <TK_Scan_Start+0x18>
4466: 8264 ld.b r3, (r2, 0x4)
4468: 74cc zextb r3, r3
446a: 3b41 cmpnei r3, 1
446c: 0807 bt 0x447a // 447a <TK_Scan_Start+0x16>
446e: 1025 lrw r1, 0x20000058 // 4480 <TK_Scan_Start+0x1c>
4470: 9120 ld.w r1, (r1, 0x0)
4472: b162 st.w r3, (r1, 0x8)
4474: 3300 movi r3, 0
4476: b260 st.w r3, (r2, 0x0)
4478: a264 st.b r3, (r2, 0x4)
447a: 783c jmp r15
447c: 20000068 .long 0x20000068
4480: 20000058 .long 0x20000058
Disassembly of section .text.TK_Keymap_prog:
00004484 <TK_Keymap_prog>:
4484: 14d4 push r4-r7, r15
4486: 1425 subi r14, r14, 20
4488: 1271 lrw r3, 0x200000ec // 45cc <TK_Keymap_prog+0x148>
448a: 8360 ld.b r3, (r3, 0x0)
448c: b860 st.w r3, (r14, 0x0)
448e: 3400 movi r4, 0
4490: 1270 lrw r3, 0x200000c0 // 45d0 <TK_Keymap_prog+0x14c>
4492: 8360 ld.b r3, (r3, 0x0)
4494: b861 st.w r3, (r14, 0x4)
4496: 12f0 lrw r7, 0x20000456 // 45d4 <TK_Keymap_prog+0x150>
4498: 1270 lrw r3, 0x200000c9 // 45d8 <TK_Keymap_prog+0x154>
449a: 83a0 ld.b r5, (r3, 0x0)
449c: 1270 lrw r3, 0x200000c8 // 45dc <TK_Keymap_prog+0x158>
449e: 8360 ld.b r3, (r3, 0x0)
44a0: b862 st.w r3, (r14, 0x8)
44a2: 6d9f mov r6, r7
44a4: 126f lrw r3, 0x20000652 // 45e0 <TK_Keymap_prog+0x15c>
44a6: b863 st.w r3, (r14, 0xc)
44a8: 4461 lsli r3, r4, 1
44aa: 9843 ld.w r2, (r14, 0xc)
44ac: 608c addu r2, r3
44ae: 122e lrw r1, 0x200003ac // 45e4 <TK_Keymap_prog+0x160>
44b0: 604c addu r1, r3
44b2: 8a40 ld.h r2, (r2, 0x0)
44b4: 8920 ld.h r1, (r1, 0x0)
44b6: 6086 subu r2, r1
44b8: 748b sexth r2, r2
44ba: 5f2c addu r1, r7, r3
44bc: a940 st.h r2, (r1, 0x0)
44be: 8940 ld.h r2, (r1, 0x0)
44c0: 748b sexth r2, r2
44c2: 3adf btsti r2, 31
44c4: 1249 lrw r2, 0x2000060e // 45e8 <TK_Keymap_prog+0x164>
44c6: 608c addu r2, r3
44c8: 0c37 bf 0x4536 // 4536 <TK_Keymap_prog+0xb2>
44ca: 3100 movi r1, 0
44cc: aa20 st.h r1, (r2, 0x0)
44ce: 9840 ld.w r2, (r14, 0x0)
44d0: 3a01 cmphsi r2, 2
44d2: 0c6d bf 0x45ac // 45ac <TK_Keymap_prog+0x128>
44d4: 4461 lsli r3, r4, 1
44d6: 5e2c addu r1, r6, r3
44d8: 1205 lrw r0, 0x2000011a // 45ec <TK_Keymap_prog+0x168>
44da: 8940 ld.h r2, (r1, 0x0)
44dc: 60c0 addu r3, r0
44de: 748b sexth r2, r2
44e0: 8b60 ld.h r3, (r3, 0x0)
44e2: 648d cmplt r3, r2
44e4: 9840 ld.w r2, (r14, 0x0)
44e6: 7cc8 mult r3, r2
44e8: 0c2a bf 0x453c // 453c <TK_Keymap_prog+0xb8>
44ea: 8940 ld.h r2, (r1, 0x0)
44ec: 748b sexth r2, r2
44ee: 64c9 cmplt r2, r3
44f0: 0c26 bf 0x453c // 453c <TK_Keymap_prog+0xb8>
44f2: 1240 lrw r2, 0x20000444 // 45f0 <TK_Keymap_prog+0x16c>
44f4: 6090 addu r2, r4
44f6: 8260 ld.b r3, (r2, 0x0)
44f8: 2300 addi r3, 1
44fa: 74cc zextb r3, r3
44fc: a260 st.b r3, (r2, 0x0)
44fe: 3100 movi r1, 0
4500: 117d lrw r3, 0x2000042a // 45f4 <TK_Keymap_prog+0x170>
4502: 60d0 addu r3, r4
4504: a320 st.b r1, (r3, 0x0)
4506: 117d lrw r3, 0x20000506 // 45f8 <TK_Keymap_prog+0x174>
4508: 60d0 addu r3, r4
450a: a320 st.b r1, (r3, 0x0)
450c: 117c lrw r3, 0x20000580 // 45fc <TK_Keymap_prog+0x178>
450e: 60d0 addu r3, r4
4510: a320 st.b r1, (r3, 0x0)
4512: 8260 ld.b r3, (r2, 0x0)
4514: 9821 ld.w r1, (r14, 0x4)
4516: 64c4 cmphs r1, r3
4518: 081f bt 0x4556 // 4556 <TK_Keymap_prog+0xd2>
451a: 3d40 cmpnei r5, 0
451c: 0852 bt 0x45c0 // 45c0 <TK_Keymap_prog+0x13c>
451e: 1139 lrw r1, 0x2000043c // 4600 <TK_Keymap_prog+0x17c>
4520: 9160 ld.w r3, (r1, 0x0)
4522: 3b40 cmpnei r3, 0
4524: 0806 bt 0x4530 // 4530 <TK_Keymap_prog+0xac>
4526: 9100 ld.w r0, (r1, 0x0)
4528: 3301 movi r3, 1
452a: 70d0 lsl r3, r4
452c: 6cc0 or r3, r0
452e: b160 st.w r3, (r1, 0x0)
4530: 3300 movi r3, 0
4532: a260 st.b r3, (r2, 0x0)
4534: 0411 br 0x4556 // 4556 <TK_Keymap_prog+0xd2>
4536: 8920 ld.h r1, (r1, 0x0)
4538: 7445 zexth r1, r1
453a: 07c9 br 0x44cc // 44cc <TK_Keymap_prog+0x48>
453c: 4441 lsli r2, r4, 1
453e: 6098 addu r2, r6
4540: 8a40 ld.h r2, (r2, 0x0)
4542: 748b sexth r2, r2
4544: 648d cmplt r3, r2
4546: 0c08 bf 0x4556 // 4556 <TK_Keymap_prog+0xd2>
4548: 3300 movi r3, 0
454a: 114e lrw r2, 0x2000043c // 4600 <TK_Keymap_prog+0x17c>
454c: 2b01 subi r3, 2
454e: 9220 ld.w r1, (r2, 0x0)
4550: 70d3 rotl r3, r4
4552: 68c4 and r3, r1
4554: b260 st.w r3, (r2, 0x0)
4556: 4441 lsli r2, r4, 1
4558: 5e68 addu r3, r6, r2
455a: 8b60 ld.h r3, (r3, 0x0)
455c: 74cf sexth r3, r3
455e: b864 st.w r3, (r14, 0x10)
4560: 3105 movi r1, 5
4562: 1163 lrw r3, 0x2000011a // 45ec <TK_Keymap_prog+0x168>
4564: 608c addu r2, r3
4566: 8a00 ld.h r0, (r2, 0x0)
4568: 4002 lsli r0, r0, 2
456a: e3fff61f bsr 0x31a8 // 31a8 <__divsi3>
456e: 9864 ld.w r3, (r14, 0x10)
4570: 640d cmplt r3, r0
4572: 0c18 bf 0x45a2 // 45a2 <TK_Keymap_prog+0x11e>
4574: 1140 lrw r2, 0x2000042a // 45f4 <TK_Keymap_prog+0x170>
4576: 6090 addu r2, r4
4578: 8260 ld.b r3, (r2, 0x0)
457a: 2300 addi r3, 1
457c: 74cc zextb r3, r3
457e: a260 st.b r3, (r2, 0x0)
4580: 3100 movi r1, 0
4582: 107c lrw r3, 0x20000444 // 45f0 <TK_Keymap_prog+0x16c>
4584: 60d0 addu r3, r4
4586: a320 st.b r1, (r3, 0x0)
4588: 8260 ld.b r3, (r2, 0x0)
458a: 9822 ld.w r1, (r14, 0x8)
458c: 64c4 cmphs r1, r3
458e: 080a bt 0x45a2 // 45a2 <TK_Keymap_prog+0x11e>
4590: 3300 movi r3, 0
4592: 103c lrw r1, 0x2000043c // 4600 <TK_Keymap_prog+0x17c>
4594: 2b01 subi r3, 2
4596: 9100 ld.w r0, (r1, 0x0)
4598: 70d3 rotl r3, r4
459a: 68c0 and r3, r0
459c: b160 st.w r3, (r1, 0x0)
459e: 3300 movi r3, 0
45a0: a260 st.b r3, (r2, 0x0)
45a2: 2400 addi r4, 1
45a4: 3c51 cmpnei r4, 17
45a6: 0b81 bt 0x44a8 // 44a8 <TK_Keymap_prog+0x24>
45a8: 1405 addi r14, r14, 20
45aa: 1494 pop r4-r7, r15
45ac: 60d8 addu r3, r6
45ae: 4441 lsli r2, r4, 1
45b0: 102f lrw r1, 0x2000011a // 45ec <TK_Keymap_prog+0x168>
45b2: 8b60 ld.h r3, (r3, 0x0)
45b4: 6084 addu r2, r1
45b6: 74cf sexth r3, r3
45b8: 8a40 ld.h r2, (r2, 0x0)
45ba: 64c9 cmplt r2, r3
45bc: 0fcd bf 0x4556 // 4556 <TK_Keymap_prog+0xd2>
45be: 079a br 0x44f2 // 44f2 <TK_Keymap_prog+0x6e>
45c0: 3d41 cmpnei r5, 1
45c2: 0bb7 bt 0x4530 // 4530 <TK_Keymap_prog+0xac>
45c4: 102f lrw r1, 0x2000043c // 4600 <TK_Keymap_prog+0x17c>
45c6: 6cd7 mov r3, r5
45c8: 9100 ld.w r0, (r1, 0x0)
45ca: 07b0 br 0x452a // 452a <TK_Keymap_prog+0xa6>
45cc: 200000ec .long 0x200000ec
45d0: 200000c0 .long 0x200000c0
45d4: 20000456 .long 0x20000456
45d8: 200000c9 .long 0x200000c9
45dc: 200000c8 .long 0x200000c8
45e0: 20000652 .long 0x20000652
45e4: 200003ac .long 0x200003ac
45e8: 2000060e .long 0x2000060e
45ec: 2000011a .long 0x2000011a
45f0: 20000444 .long 0x20000444
45f4: 2000042a .long 0x2000042a
45f8: 20000506 .long 0x20000506
45fc: 20000580 .long 0x20000580
4600: 2000043c .long 0x2000043c
Disassembly of section .text.TK_overflow_predict:
00004604 <TK_overflow_predict>:
4604: 14d4 push r4-r7, r15
4606: 1421 subi r14, r14, 4
4608: 11d9 lrw r6, 0x20000068 // 46ec <TK_overflow_predict+0xe8>
460a: 8665 ld.b r3, (r6, 0x5)
460c: 3b41 cmpnei r3, 1
460e: 085f bt 0x46cc // 46cc <TK_overflow_predict+0xc8>
4610: 1158 lrw r2, 0x2000055c // 46f0 <TK_overflow_predict+0xec>
4612: 8260 ld.b r3, (r2, 0x0)
4614: 2300 addi r3, 1
4616: 74cc zextb r3, r3
4618: a260 st.b r3, (r2, 0x0)
461a: 8260 ld.b r3, (r2, 0x0)
461c: 1136 lrw r1, 0x200000ed // 46f4 <TK_overflow_predict+0xf0>
461e: 8120 ld.b r1, (r1, 0x0)
4620: 64c4 cmphs r1, r3
4622: 0855 bt 0x46cc // 46cc <TK_overflow_predict+0xc8>
4624: 3300 movi r3, 0
4626: a260 st.b r3, (r2, 0x0)
4628: 3500 movi r5, 0
462a: 11f4 lrw r7, 0x200000f0 // 46f8 <TK_overflow_predict+0xf4>
462c: 2605 addi r6, 6
462e: 9760 ld.w r3, (r7, 0x0)
4630: 70d5 lsr r3, r5
4632: 3201 movi r2, 1
4634: 68c8 and r3, r2
4636: 3b40 cmpnei r3, 0
4638: 0c34 bf 0x46a0 // 46a0 <TK_overflow_predict+0x9c>
463a: 4581 lsli r4, r5, 1
463c: 5e70 addu r3, r6, r4
463e: 8b00 ld.h r0, (r3, 0x0)
4640: e3ffe7bc bsr 0x15b8 // 15b8 <__floatunsidf>
4644: 6cc7 mov r3, r1
4646: 3180 movi r1, 128
4648: 6c83 mov r2, r0
464a: 4137 lsli r1, r1, 23
464c: 3000 movi r0, 0
464e: e3ffddb3 bsr 0x1b4 // 1b4 <__GI_pow>
4652: 116b lrw r3, 0x200000f6 // 46fc <TK_overflow_predict+0xf8>
4654: 60d0 addu r3, r4
4656: 8b60 ld.h r3, (r3, 0x0)
4658: 4364 lsli r3, r3, 4
465a: 230e addi r3, 15
465c: b860 st.w r3, (r14, 0x0)
465e: e3ffe365 bsr 0xd28 // d28 <__fixunsdfsi>
4662: 9860 ld.w r3, (r14, 0x0)
4664: 7cc0 mult r3, r0
4666: 1147 lrw r2, 0x200005ec // 4700 <TK_overflow_predict+0xfc>
4668: 740d zexth r0, r3
466a: 6090 addu r2, r4
466c: 1166 lrw r3, 0x20000652 // 4704 <TK_overflow_predict+0x100>
466e: 60d0 addu r3, r4
4670: aa00 st.h r0, (r2, 0x0)
4672: 8b60 ld.h r3, (r3, 0x0)
4674: 8a00 ld.h r0, (r2, 0x0)
4676: 7401 zexth r0, r0
4678: 325f movi r2, 95
467a: 74cd zexth r3, r3
467c: 7c08 mult r0, r2
467e: 3164 movi r1, 100
4680: b860 st.w r3, (r14, 0x0)
4682: e3fff593 bsr 0x31a8 // 31a8 <__divsi3>
4686: 9860 ld.w r3, (r14, 0x0)
4688: 64c1 cmplt r0, r3
468a: 0c0b bf 0x46a0 // 46a0 <TK_overflow_predict+0x9c>
468c: 107f lrw r3, 0x200000ca // 4708 <TK_overflow_predict+0x104>
468e: 610c addu r4, r3
4690: 8c60 ld.h r3, (r4, 0x0)
4692: 3b06 cmphsi r3, 7
4694: 0806 bt 0x46a0 // 46a0 <TK_overflow_predict+0x9c>
4696: 2300 addi r3, 1
4698: ac60 st.h r3, (r4, 0x0)
469a: 3201 movi r2, 1
469c: 107c lrw r3, 0x200004b1 // 470c <TK_overflow_predict+0x108>
469e: a340 st.b r2, (r3, 0x0)
46a0: 2500 addi r5, 1
46a2: 3d51 cmpnei r5, 17
46a4: 0bc5 bt 0x462e // 462e <TK_overflow_predict+0x2a>
46a6: 107a lrw r3, 0x200004b1 // 470c <TK_overflow_predict+0x108>
46a8: 8340 ld.b r2, (r3, 0x0)
46aa: 3a41 cmpnei r2, 1
46ac: 0810 bt 0x46cc // 46cc <TK_overflow_predict+0xc8>
46ae: 3200 movi r2, 0
46b0: a340 st.b r2, (r3, 0x0)
46b2: 3200 movi r2, 0
46b4: 1077 lrw r3, 0x20000058 // 4710 <TK_overflow_predict+0x10c>
46b6: 1018 lrw r0, 0x2000057f // 4714 <TK_overflow_predict+0x110>
46b8: 10b8 lrw r5, 0x200005b8 // 4718 <TK_overflow_predict+0x114>
46ba: 10d4 lrw r6, 0x200000ca // 4708 <TK_overflow_predict+0x104>
46bc: 9360 ld.w r3, (r3, 0x0)
46be: b342 st.w r2, (r3, 0x8)
46c0: 1077 lrw r3, 0x20000054 // 471c <TK_overflow_predict+0x118>
46c2: 9380 ld.w r4, (r3, 0x0)
46c4: 3300 movi r3, 0
46c6: 8040 ld.b r2, (r0, 0x0)
46c8: 648c cmphs r3, r2
46ca: 0c03 bf 0x46d0 // 46d0 <TK_overflow_predict+0xcc>
46cc: 1401 addi r14, r14, 4
46ce: 1494 pop r4-r7, r15
46d0: 5d4c addu r2, r5, r3
46d2: 8240 ld.b r2, (r2, 0x0)
46d4: 4241 lsli r2, r2, 1
46d6: 4322 lsli r1, r3, 2
46d8: 6098 addu r2, r6
46da: 6050 addu r1, r4
46dc: 8a40 ld.h r2, (r2, 0x0)
46de: 91f2 ld.w r7, (r1, 0x48)
46e0: 4254 lsli r2, r2, 20
46e2: 6c9c or r2, r7
46e4: 2300 addi r3, 1
46e6: b152 st.w r2, (r1, 0x48)
46e8: 74cc zextb r3, r3
46ea: 07ee br 0x46c6 // 46c6 <TK_overflow_predict+0xc2>
46ec: 20000068 .long 0x20000068
46f0: 2000055c .long 0x2000055c
46f4: 200000ed .long 0x200000ed
46f8: 200000f0 .long 0x200000f0
46fc: 200000f6 .long 0x200000f6
4700: 200005ec .long 0x200005ec
4704: 20000652 .long 0x20000652
4708: 200000ca .long 0x200000ca
470c: 200004b1 .long 0x200004b1
4710: 20000058 .long 0x20000058
4714: 2000057f .long 0x2000057f
4718: 200005b8 .long 0x200005b8
471c: 20000054 .long 0x20000054
Disassembly of section .text.TK_Baseline_tracking:
00004720 <TK_Baseline_tracking>:
4720: 14c4 push r4-r7
4722: 1422 subi r14, r14, 8
4724: 1348 lrw r2, 0x200004de // 48c4 <TK_Baseline_tracking+0x1a4>
4726: 8260 ld.b r3, (r2, 0x0)
4728: 2300 addi r3, 1
472a: 74cc zextb r3, r3
472c: a260 st.b r3, (r2, 0x0)
472e: 8260 ld.b r3, (r2, 0x0)
4730: 1326 lrw r1, 0x200000ed // 48c8 <TK_Baseline_tracking+0x1a8>
4732: 8120 ld.b r1, (r1, 0x0)
4734: 644c cmphs r3, r1
4736: 0cad bf 0x4890 // 4890 <TK_Baseline_tracking+0x170>
4738: 3300 movi r3, 0
473a: a260 st.b r3, (r2, 0x0)
473c: 1364 lrw r3, 0x2000043c // 48cc <TK_Baseline_tracking+0x1ac>
473e: 9360 ld.w r3, (r3, 0x0)
4740: 3b40 cmpnei r3, 0
4742: 08a7 bt 0x4890 // 4890 <TK_Baseline_tracking+0x170>
4744: 1323 lrw r1, 0x20000456 // 48d0 <TK_Baseline_tracking+0x1b0>
4746: 6dc7 mov r7, r1
4748: b820 st.w r1, (r14, 0x0)
474a: 3200 movi r2, 0
474c: 1362 lrw r3, 0x2000011a // 48d4 <TK_Baseline_tracking+0x1b4>
474e: 1323 lrw r1, 0x200003ac // 48d8 <TK_Baseline_tracking+0x1b8>
4750: 4201 lsli r0, r2, 1
4752: 9880 ld.w r4, (r14, 0x0)
4754: 6100 addu r4, r0
4756: 8c80 ld.h r4, (r4, 0x0)
4758: 7513 sexth r4, r4
475a: 3cdf btsti r4, 31
475c: 0c27 bf 0x47aa // 47aa <TK_Baseline_tracking+0x8a>
475e: 13a0 lrw r5, 0x20000652 // 48dc <TK_Baseline_tracking+0x1bc>
4760: 5980 addu r4, r1, r0
4762: 6014 addu r0, r5
4764: b881 st.w r4, (r14, 0x4)
4766: 8c80 ld.h r4, (r4, 0x0)
4768: 88c0 ld.h r6, (r0, 0x0)
476a: 7511 zexth r4, r4
476c: 7599 zexth r6, r6
476e: 8ba0 ld.h r5, (r3, 0x0)
4770: 611a subu r4, r6
4772: 6551 cmplt r4, r5
4774: 081b bt 0x47aa // 47aa <TK_Baseline_tracking+0x8a>
4776: 9881 ld.w r4, (r14, 0x4)
4778: 8c80 ld.h r4, (r4, 0x0)
477a: 8800 ld.h r0, (r0, 0x0)
477c: 7511 zexth r4, r4
477e: 7401 zexth r0, r0
4780: 5c01 subu r0, r4, r0
4782: 4581 lsli r4, r5, 1
4784: 6150 addu r5, r4
4786: 6541 cmplt r0, r5
4788: 0c11 bf 0x47aa // 47aa <TK_Baseline_tracking+0x8a>
478a: 1296 lrw r4, 0x20000580 // 48e0 <TK_Baseline_tracking+0x1c0>
478c: 6108 addu r4, r2
478e: 8400 ld.b r0, (r4, 0x0)
4790: 2000 addi r0, 1
4792: 7400 zextb r0, r0
4794: a400 st.b r0, (r4, 0x0)
4796: 1214 lrw r0, 0x20000088 // 48e4 <TK_Baseline_tracking+0x1c4>
4798: 84a0 ld.b r5, (r4, 0x0)
479a: 8008 ld.b r0, (r0, 0x8)
479c: 6540 cmphs r0, r5
479e: 0806 bt 0x47aa // 47aa <TK_Baseline_tracking+0x8a>
47a0: 1212 lrw r0, 0x200004c3 // 48e8 <TK_Baseline_tracking+0x1c8>
47a2: 3501 movi r5, 1
47a4: a0a0 st.b r5, (r0, 0x0)
47a6: 3000 movi r0, 0
47a8: a400 st.b r0, (r4, 0x0)
47aa: 4201 lsli r0, r2, 1
47ac: 5f80 addu r4, r7, r0
47ae: 8c80 ld.h r4, (r4, 0x0)
47b0: 7513 sexth r4, r4
47b2: 3c20 cmplti r4, 1
47b4: 0870 bt 0x4894 // 4894 <TK_Baseline_tracking+0x174>
47b6: 128a lrw r4, 0x20000652 // 48dc <TK_Baseline_tracking+0x1bc>
47b8: 6100 addu r4, r0
47ba: 59a0 addu r5, r1, r0
47bc: 8c80 ld.h r4, (r4, 0x0)
47be: 8da0 ld.h r5, (r5, 0x0)
47c0: 7555 zexth r5, r5
47c2: 7511 zexth r4, r4
47c4: 6116 subu r4, r5
47c6: 8ba0 ld.h r5, (r3, 0x0)
47c8: 45a2 lsli r5, r5, 2
47ca: 6551 cmplt r4, r5
47cc: 0864 bt 0x4894 // 4894 <TK_Baseline_tracking+0x174>
47ce: 1288 lrw r4, 0x20000506 // 48ec <TK_Baseline_tracking+0x1cc>
47d0: 6108 addu r4, r2
47d2: 84a0 ld.b r5, (r4, 0x0)
47d4: 2500 addi r5, 1
47d6: 7554 zextb r5, r5
47d8: a4a0 st.b r5, (r4, 0x0)
47da: 12a3 lrw r5, 0x20000088 // 48e4 <TK_Baseline_tracking+0x1c4>
47dc: 84c0 ld.b r6, (r4, 0x0)
47de: 85a9 ld.b r5, (r5, 0x9)
47e0: 6594 cmphs r5, r6
47e2: 0806 bt 0x47ee // 47ee <TK_Baseline_tracking+0xce>
47e4: 12a1 lrw r5, 0x200004c3 // 48e8 <TK_Baseline_tracking+0x1c8>
47e6: 3601 movi r6, 1
47e8: a5c0 st.b r6, (r5, 0x0)
47ea: 3500 movi r5, 0
47ec: a4a0 st.b r5, (r4, 0x0)
47ee: 5f80 addu r4, r7, r0
47f0: 8c80 ld.h r4, (r4, 0x0)
47f2: 7513 sexth r4, r4
47f4: 3cdf btsti r4, 31
47f6: 0c10 bf 0x4816 // 4816 <TK_Baseline_tracking+0xf6>
47f8: 11d9 lrw r6, 0x20000652 // 48dc <TK_Baseline_tracking+0x1bc>
47fa: 59a0 addu r5, r1, r0
47fc: 6180 addu r6, r0
47fe: 8d80 ld.h r4, (r5, 0x0)
4800: 8ec0 ld.h r6, (r6, 0x0)
4802: 7599 zexth r6, r6
4804: 7511 zexth r4, r4
4806: 611a subu r4, r6
4808: 8bc0 ld.h r6, (r3, 0x0)
480a: 6591 cmplt r4, r6
480c: 0c05 bf 0x4816 // 4816 <TK_Baseline_tracking+0xf6>
480e: 8d80 ld.h r4, (r5, 0x0)
4810: 2c00 subi r4, 1
4812: 7511 zexth r4, r4
4814: ad80 st.h r4, (r5, 0x0)
4816: 5f80 addu r4, r7, r0
4818: 8c80 ld.h r4, (r4, 0x0)
481a: 7513 sexth r4, r4
481c: 3cdf btsti r4, 31
481e: 0c11 bf 0x4840 // 4840 <TK_Baseline_tracking+0x120>
4820: 11cf lrw r6, 0x20000652 // 48dc <TK_Baseline_tracking+0x1bc>
4822: 59a0 addu r5, r1, r0
4824: 6180 addu r6, r0
4826: 8d80 ld.h r4, (r5, 0x0)
4828: 8ec0 ld.h r6, (r6, 0x0)
482a: 7599 zexth r6, r6
482c: 7511 zexth r4, r4
482e: 611a subu r4, r6
4830: 8bc0 ld.h r6, (r3, 0x0)
4832: 4ec1 lsri r6, r6, 1
4834: 6591 cmplt r4, r6
4836: 0805 bt 0x4840 // 4840 <TK_Baseline_tracking+0x120>
4838: 8d80 ld.h r4, (r5, 0x0)
483a: 2c01 subi r4, 2
483c: 7511 zexth r4, r4
483e: ad80 st.h r4, (r5, 0x0)
4840: 5fa0 addu r5, r7, r0
4842: 8d80 ld.h r4, (r5, 0x0)
4844: 7513 sexth r4, r4
4846: 3c20 cmplti r4, 1
4848: 080c bt 0x4860 // 4860 <TK_Baseline_tracking+0x140>
484a: 8da0 ld.h r5, (r5, 0x0)
484c: 8b80 ld.h r4, (r3, 0x0)
484e: 7557 sexth r5, r5
4850: 4c81 lsri r4, r4, 1
4852: 6515 cmplt r5, r4
4854: 0c06 bf 0x4860 // 4860 <TK_Baseline_tracking+0x140>
4856: 59a0 addu r5, r1, r0
4858: 8d80 ld.h r4, (r5, 0x0)
485a: 2400 addi r4, 1
485c: 7511 zexth r4, r4
485e: ad80 st.h r4, (r5, 0x0)
4860: 5fa0 addu r5, r7, r0
4862: 8d80 ld.h r4, (r5, 0x0)
4864: 7513 sexth r4, r4
4866: 3c20 cmplti r4, 1
4868: 0810 bt 0x4888 // 4888 <TK_Baseline_tracking+0x168>
486a: 8dc0 ld.h r6, (r5, 0x0)
486c: 759b sexth r6, r6
486e: 8b80 ld.h r4, (r3, 0x0)
4870: 6519 cmplt r6, r4
4872: 0c0b bf 0x4888 // 4888 <TK_Baseline_tracking+0x168>
4874: 8da0 ld.h r5, (r5, 0x0)
4876: 7557 sexth r5, r5
4878: 4c81 lsri r4, r4, 1
487a: 6515 cmplt r5, r4
487c: 0806 bt 0x4888 // 4888 <TK_Baseline_tracking+0x168>
487e: 6004 addu r0, r1
4880: 8880 ld.h r4, (r0, 0x0)
4882: 2401 addi r4, 2
4884: 7511 zexth r4, r4
4886: a880 st.h r4, (r0, 0x0)
4888: 2200 addi r2, 1
488a: 3a51 cmpnei r2, 17
488c: 2301 addi r3, 2
488e: 0b61 bt 0x4750 // 4750 <TK_Baseline_tracking+0x30>
4890: 1402 addi r14, r14, 8
4892: 1484 pop r4-r7
4894: 5f80 addu r4, r7, r0
4896: 8c80 ld.h r4, (r4, 0x0)
4898: 7513 sexth r4, r4
489a: 3cdf btsti r4, 31
489c: 0fa9 bf 0x47ee // 47ee <TK_Baseline_tracking+0xce>
489e: 10b0 lrw r5, 0x20000652 // 48dc <TK_Baseline_tracking+0x1bc>
48a0: 5980 addu r4, r1, r0
48a2: 6140 addu r5, r0
48a4: 8c80 ld.h r4, (r4, 0x0)
48a6: 8da0 ld.h r5, (r5, 0x0)
48a8: 7555 zexth r5, r5
48aa: 8bc0 ld.h r6, (r3, 0x0)
48ac: 7511 zexth r4, r4
48ae: 6116 subu r4, r5
48b0: 46a1 lsli r5, r6, 1
48b2: 6158 addu r5, r6
48b4: 6551 cmplt r4, r5
48b6: 0b9c bt 0x47ee // 47ee <TK_Baseline_tracking+0xce>
48b8: 108c lrw r4, 0x200004c3 // 48e8 <TK_Baseline_tracking+0x1c8>
48ba: 3501 movi r5, 1
48bc: a4a0 st.b r5, (r4, 0x0)
48be: 6c03 mov r0, r0
48c0: 0797 br 0x47ee // 47ee <TK_Baseline_tracking+0xce>
48c2: 0000 bkpt
48c4: 200004de .long 0x200004de
48c8: 200000ed .long 0x200000ed
48cc: 2000043c .long 0x2000043c
48d0: 20000456 .long 0x20000456
48d4: 2000011a .long 0x2000011a
48d8: 200003ac .long 0x200003ac
48dc: 20000652 .long 0x20000652
48e0: 20000580 .long 0x20000580
48e4: 20000088 .long 0x20000088
48e8: 200004c3 .long 0x200004c3
48ec: 20000506 .long 0x20000506
Disassembly of section .text.TK_result_prog:
000048f0 <TK_result_prog>:
48f0: 14d2 push r4-r5, r15
48f2: 1050 lrw r2, 0x2000043c // 4930 <TK_result_prog+0x40>
48f4: 1090 lrw r4, 0x200004e0 // 4934 <TK_result_prog+0x44>
48f6: 9260 ld.w r3, (r2, 0x0)
48f8: 3b40 cmpnei r3, 0
48fa: 0c02 bf 0x48fe // 48fe <TK_result_prog+0xe>
48fc: 9260 ld.w r3, (r2, 0x0)
48fe: b460 st.w r3, (r4, 0x0)
4900: 9460 ld.w r3, (r4, 0x0)
4902: 3b40 cmpnei r3, 0
4904: 10ad lrw r5, 0x200005b4 // 4938 <TK_result_prog+0x48>
4906: 0c11 bf 0x4928 // 4928 <TK_result_prog+0x38>
4908: 9440 ld.w r2, (r4, 0x0)
490a: 9560 ld.w r3, (r5, 0x0)
490c: 64ca cmpne r2, r3
490e: 0c03 bf 0x4914 // 4914 <TK_result_prog+0x24>
4910: 9460 ld.w r3, (r4, 0x0)
4912: b560 st.w r3, (r5, 0x0)
4914: e3fffd94 bsr 0x443c // 443c <get_key_number>
4918: 1069 lrw r3, 0x200000f4 // 493c <TK_result_prog+0x4c>
491a: 8360 ld.b r3, (r3, 0x0)
491c: 640c cmphs r3, r0
491e: 0804 bt 0x4926 // 4926 <TK_result_prog+0x36>
4920: 3300 movi r3, 0
4922: b460 st.w r3, (r4, 0x0)
4924: b560 st.w r3, (r5, 0x0)
4926: 1492 pop r4-r5, r15
4928: 1046 lrw r2, 0x200004d8 // 4940 <TK_result_prog+0x50>
492a: b560 st.w r3, (r5, 0x0)
492c: b260 st.w r3, (r2, 0x0)
492e: 07fc br 0x4926 // 4926 <TK_result_prog+0x36>
4930: 2000043c .long 0x2000043c
4934: 200004e0 .long 0x200004e0
4938: 200005b4 .long 0x200005b4
493c: 200000f4 .long 0x200000f4
4940: 200004d8 .long 0x200004d8
Disassembly of section .text.CORETHandler:
00004944 <CORETHandler>:
4944: 1460 nie
4946: 1462 ipush
4948: 14d1 push r4, r15
494a: 1077 lrw r3, 0x20000064 // 49a4 <CORETHandler+0x60>
494c: 3400 movi r4, 0
494e: 9360 ld.w r3, (r3, 0x0)
4950: b386 st.w r4, (r3, 0x18)
4952: 1076 lrw r3, 0x20000440 // 49a8 <CORETHandler+0x64>
4954: 8360 ld.b r3, (r3, 0x0)
4956: 3b41 cmpnei r3, 1
4958: 0820 bt 0x4998 // 4998 <CORETHandler+0x54>
495a: e3fffd85 bsr 0x4464 // 4464 <TK_Scan_Start>
495e: e3fffd93 bsr 0x4484 // 4484 <TK_Keymap_prog>
4962: e3fffe51 bsr 0x4604 // 4604 <TK_overflow_predict>
4966: e3fffedd bsr 0x4720 // 4720 <TK_Baseline_tracking>
496a: e3ffffc3 bsr 0x48f0 // 48f0 <TK_result_prog>
496e: 1070 lrw r3, 0x200004e0 // 49ac <CORETHandler+0x68>
4970: 9360 ld.w r3, (r3, 0x0)
4972: 3b40 cmpnei r3, 0
4974: 0c12 bf 0x4998 // 4998 <CORETHandler+0x54>
4976: 106f lrw r3, 0x200000c4 // 49b0 <CORETHandler+0x6c>
4978: 9340 ld.w r2, (r3, 0x0)
497a: 3a40 cmpnei r2, 0
497c: 0c0e bf 0x4998 // 4998 <CORETHandler+0x54>
497e: 106e lrw r3, 0x200004d8 // 49b4 <CORETHandler+0x70>
4980: 3064 movi r0, 100
4982: 9320 ld.w r1, (r3, 0x0)
4984: 2100 addi r1, 1
4986: b320 st.w r1, (r3, 0x0)
4988: 9320 ld.w r1, (r3, 0x0)
498a: 7c80 mult r2, r0
498c: 6448 cmphs r2, r1
498e: 0805 bt 0x4998 // 4998 <CORETHandler+0x54>
4990: 104a lrw r2, 0x200004c3 // 49b8 <CORETHandler+0x74>
4992: 3101 movi r1, 1
4994: a220 st.b r1, (r2, 0x0)
4996: b380 st.w r4, (r3, 0x0)
4998: d9ee2001 ld.w r15, (r14, 0x4)
499c: 9880 ld.w r4, (r14, 0x0)
499e: 1402 addi r14, r14, 8
49a0: 1463 ipop
49a2: 1461 nir
49a4: 20000064 .long 0x20000064
49a8: 20000440 .long 0x20000440
49ac: 200004e0 .long 0x200004e0
49b0: 200000c4 .long 0x200000c4
49b4: 200004d8 .long 0x200004d8
49b8: 200004c3 .long 0x200004c3
Disassembly of section .text.std_clk_calib:
000049bc <std_clk_calib>:
49bc: 14d4 push r4-r7, r15
49be: 142d subi r14, r14, 52
49c0: 3201 movi r2, 1
49c2: 03ce lrw r6, 0x2000005c // 4c04 <std_clk_calib+0x248>
49c4: 6cc3 mov r3, r0
49c6: dc4e000a st.b r2, (r14, 0xa)
49ca: 9640 ld.w r2, (r6, 0x0)
49cc: 9247 ld.w r2, (r2, 0x1c)
49ce: 7488 zextb r2, r2
49d0: dc4e0009 st.b r2, (r14, 0x9)
49d4: d84e0009 ld.b r2, (r14, 0x9)
49d8: 3a40 cmpnei r2, 0
49da: 0c08 bf 0x49ea // 49ea <std_clk_calib+0x2e>
49dc: d84e0009 ld.b r2, (r14, 0x9)
49e0: 3a42 cmpnei r2, 2
49e2: 0c04 bf 0x49ea // 49ea <std_clk_calib+0x2e>
49e4: 3000 movi r0, 0
49e6: 140d addi r14, r14, 52
49e8: 1494 pop r4-r7, r15
49ea: 0397 lrw r4, 0x2000000c // 4c08 <std_clk_calib+0x24c>
49ec: 3209 movi r2, 9
49ee: 9400 ld.w r0, (r4, 0x0)
49f0: 3b40 cmpnei r3, 0
49f2: b041 st.w r2, (r0, 0x4)
49f4: 0857 bt 0x4aa2 // 4aa2 <std_clk_calib+0xe6>
49f6: 3307 movi r3, 7
49f8: dc6e000b st.b r3, (r14, 0xb)
49fc: 037b lrw r3, 0x2dc6c00 // 4c0c <std_clk_calib+0x250>
49fe: b863 st.w r3, (r14, 0xc)
4a00: 3380 movi r3, 128
4a02: 4362 lsli r3, r3, 2
4a04: b867 st.w r3, (r14, 0x1c)
4a06: d86e000b ld.b r3, (r14, 0xb)
4a0a: 74cc zextb r3, r3
4a0c: b062 st.w r3, (r0, 0x8)
4a0e: 037e lrw r3, 0xffff // 4c10 <std_clk_calib+0x254>
4a10: b063 st.w r3, (r0, 0xc)
4a12: 3201 movi r2, 1
4a14: 3101 movi r1, 1
4a16: 03bf lrw r5, 0x20000014 // 4c14 <std_clk_calib+0x258>
4a18: e3ffebf2 bsr 0x21fc // 21fc <BT_ConfigInterrupt_CMD>
4a1c: 95e0 ld.w r7, (r5, 0x0)
4a1e: 137f lrw r3, 0xbe9c0005 // 4c18 <std_clk_calib+0x25c>
4a20: b760 st.w r3, (r7, 0x0)
4a22: 135f lrw r2, 0x30010 // 4c1c <std_clk_calib+0x260>
4a24: 3300 movi r3, 0
4a26: b762 st.w r3, (r7, 0x8)
4a28: b743 st.w r2, (r7, 0xc)
4a2a: 32d8 movi r2, 216
4a2c: b745 st.w r2, (r7, 0x14)
4a2e: 974f ld.w r2, (r7, 0x3c)
4a30: 3aa2 bseti r2, 2
4a32: b74f st.w r2, (r7, 0x3c)
4a34: 9803 ld.w r0, (r14, 0xc)
4a36: d82e000b ld.b r1, (r14, 0xb)
4a3a: 327d movi r2, 125
4a3c: 2100 addi r1, 1
4a3e: 7c48 mult r1, r2
4a40: b861 st.w r3, (r14, 0x4)
4a42: e3fff3c5 bsr 0x31cc // 31cc <__udivsi3>
4a46: b804 st.w r0, (r14, 0x10)
4a48: 32fa movi r2, 250
4a4a: 9824 ld.w r1, (r14, 0x10)
4a4c: 4242 lsli r2, r2, 2
4a4e: 6448 cmphs r2, r1
4a50: 0bca bt 0x49e4 // 49e4 <std_clk_calib+0x28>
4a52: 9844 ld.w r2, (r14, 0x10)
4a54: 3178 movi r1, 120
4a56: 9804 ld.w r0, (r14, 0x10)
4a58: b840 st.w r2, (r14, 0x0)
4a5a: e3fff3b9 bsr 0x31cc // 31cc <__udivsi3>
4a5e: 9840 ld.w r2, (r14, 0x0)
4a60: 6082 subu r2, r0
4a62: b845 st.w r2, (r14, 0x14)
4a64: 9804 ld.w r0, (r14, 0x10)
4a66: 3178 movi r1, 120
4a68: 9844 ld.w r2, (r14, 0x10)
4a6a: b840 st.w r2, (r14, 0x0)
4a6c: e3fff3b0 bsr 0x31cc // 31cc <__udivsi3>
4a70: 9840 ld.w r2, (r14, 0x0)
4a72: 6008 addu r0, r2
4a74: b806 st.w r0, (r14, 0x18)
4a76: c0807020 psrclr ie
4a7a: 9640 ld.w r2, (r6, 0x0)
4a7c: 9254 ld.w r2, (r2, 0x50)
4a7e: b848 st.w r2, (r14, 0x20)
4a80: 9861 ld.w r3, (r14, 0x4)
4a82: 9440 ld.w r2, (r4, 0x0)
4a84: b260 st.w r3, (r2, 0x0)
4a86: b761 st.w r3, (r7, 0x4)
4a88: d86e000a ld.b r3, (r14, 0xa)
4a8c: 3b40 cmpnei r3, 0
4a8e: 083e bt 0x4b0a // 4b0a <std_clk_calib+0x14e>
4a90: e3ffeb68 bsr 0x2160 // 2160 <LPT_Soft_Reset>
4a94: 9400 ld.w r0, (r4, 0x0)
4a96: e3ffeb89 bsr 0x21a8 // 21a8 <BT_Soft_Reset>
4a9a: c1807420 psrset ee, ie
4a9e: 3001 movi r0, 1
4aa0: 07a3 br 0x49e6 // 49e6 <std_clk_calib+0x2a>
4aa2: 3b41 cmpnei r3, 1
4aa4: 0806 bt 0x4ab0 // 4ab0 <std_clk_calib+0xf4>
4aa6: 3303 movi r3, 3
4aa8: dc6e000b st.b r3, (r14, 0xb)
4aac: 127d lrw r3, 0x16e3600 // 4c20 <std_clk_calib+0x264>
4aae: 07a8 br 0x49fe // 49fe <std_clk_calib+0x42>
4ab0: 3b42 cmpnei r3, 2
4ab2: 0806 bt 0x4abe // 4abe <std_clk_calib+0x102>
4ab4: 3301 movi r3, 1
4ab6: dc6e000b st.b r3, (r14, 0xb)
4aba: 127b lrw r3, 0xb71b00 // 4c24 <std_clk_calib+0x268>
4abc: 07a1 br 0x49fe // 49fe <std_clk_calib+0x42>
4abe: 3b43 cmpnei r3, 3
4ac0: 0806 bt 0x4acc // 4acc <std_clk_calib+0x110>
4ac2: 3300 movi r3, 0
4ac4: dc6e000b st.b r3, (r14, 0xb)
4ac8: 1278 lrw r3, 0x5b8d80 // 4c28 <std_clk_calib+0x26c>
4aca: 079a br 0x49fe // 49fe <std_clk_calib+0x42>
4acc: 3b44 cmpnei r3, 4
4ace: 0809 bt 0x4ae0 // 4ae0 <std_clk_calib+0x124>
4ad0: 3300 movi r3, 0
4ad2: dc6e000b st.b r3, (r14, 0xb)
4ad6: 1276 lrw r3, 0x54c720 // 4c2c <std_clk_calib+0x270>
4ad8: b863 st.w r3, (r14, 0xc)
4ada: 3380 movi r3, 128
4adc: 4369 lsli r3, r3, 9
4ade: 0793 br 0x4a04 // 4a04 <std_clk_calib+0x48>
4ae0: 3b45 cmpnei r3, 5
4ae2: 0806 bt 0x4aee // 4aee <std_clk_calib+0x132>
4ae4: 3300 movi r3, 0
4ae6: dc6e000b st.b r3, (r14, 0xb)
4aea: 1272 lrw r3, 0x3ffed0 // 4c30 <std_clk_calib+0x274>
4aec: 07f6 br 0x4ad8 // 4ad8 <std_clk_calib+0x11c>
4aee: 3b46 cmpnei r3, 6
4af0: 0806 bt 0x4afc // 4afc <std_clk_calib+0x140>
4af2: 3300 movi r3, 0
4af4: dc6e000b st.b r3, (r14, 0xb)
4af8: 126f lrw r3, 0x1fff68 // 4c34 <std_clk_calib+0x278>
4afa: 07ef br 0x4ad8 // 4ad8 <std_clk_calib+0x11c>
4afc: 3b47 cmpnei r3, 7
4afe: 0b84 bt 0x4a06 // 4a06 <std_clk_calib+0x4a>
4b00: 3300 movi r3, 0
4b02: dc6e000b st.b r3, (r14, 0xb)
4b06: 126d lrw r3, 0x1ffb8 // 4c38 <std_clk_calib+0x27c>
4b08: 07e8 br 0x4ad8 // 4ad8 <std_clk_calib+0x11c>
4b0a: 9560 ld.w r3, (r5, 0x0)
4b0c: 3101 movi r1, 1
4b0e: 9440 ld.w r2, (r4, 0x0)
4b10: b321 st.w r1, (r3, 0x4)
4b12: b220 st.w r1, (r2, 0x0)
4b14: 3100 movi r1, 0
4b16: b327 st.w r1, (r3, 0x1c)
4b18: 3004 movi r0, 4
4b1a: b225 st.w r1, (r2, 0x14)
4b1c: 932e ld.w r1, (r3, 0x38)
4b1e: 6840 and r1, r0
4b20: 3940 cmpnei r1, 0
4b22: 0ffd bf 0x4b1c // 4b1c <std_clk_calib+0x160>
4b24: 9225 ld.w r1, (r2, 0x14)
4b26: b82a st.w r1, (r14, 0x28)
4b28: 3100 movi r1, 0
4b2a: b310 st.w r0, (r3, 0x40)
4b2c: b327 st.w r1, (r3, 0x1c)
4b2e: 3004 movi r0, 4
4b30: b225 st.w r1, (r2, 0x14)
4b32: 932e ld.w r1, (r3, 0x38)
4b34: 6840 and r1, r0
4b36: 3940 cmpnei r1, 0
4b38: 0ffd bf 0x4b32 // 4b32 <std_clk_calib+0x176>
4b3a: 9225 ld.w r1, (r2, 0x14)
4b3c: b82b st.w r1, (r14, 0x2c)
4b3e: 3100 movi r1, 0
4b40: b310 st.w r0, (r3, 0x40)
4b42: b327 st.w r1, (r3, 0x1c)
4b44: 3004 movi r0, 4
4b46: b225 st.w r1, (r2, 0x14)
4b48: 932e ld.w r1, (r3, 0x38)
4b4a: 6840 and r1, r0
4b4c: 3940 cmpnei r1, 0
4b4e: 0ffd bf 0x4b48 // 4b48 <std_clk_calib+0x18c>
4b50: 9225 ld.w r1, (r2, 0x14)
4b52: b82c st.w r1, (r14, 0x30)
4b54: b310 st.w r0, (r3, 0x40)
4b56: 982b ld.w r1, (r14, 0x2c)
4b58: 980c ld.w r0, (r14, 0x30)
4b5a: 6040 addu r1, r0
4b5c: b829 st.w r1, (r14, 0x24)
4b5e: 9829 ld.w r1, (r14, 0x24)
4b60: 4921 lsri r1, r1, 1
4b62: b829 st.w r1, (r14, 0x24)
4b64: 3100 movi r1, 0
4b66: b321 st.w r1, (r3, 0x4)
4b68: b220 st.w r1, (r2, 0x0)
4b6a: b327 st.w r1, (r3, 0x1c)
4b6c: b225 st.w r1, (r2, 0x14)
4b6e: d86e0009 ld.b r3, (r14, 0x9)
4b72: 3b42 cmpnei r3, 2
4b74: 9849 ld.w r2, (r14, 0x24)
4b76: 082c bt 0x4bce // 4bce <std_clk_calib+0x212>
4b78: 1171 lrw r3, 0x7ff // 4c3c <std_clk_calib+0x280>
4b7a: 648c cmphs r3, r2
4b7c: 0c03 bf 0x4b82 // 4b82 <std_clk_calib+0x1c6>
4b7e: 3300 movi r3, 0
4b80: 040f br 0x4b9e // 4b9e <std_clk_calib+0x1e2>
4b82: 9849 ld.w r2, (r14, 0x24)
4b84: 9866 ld.w r3, (r14, 0x18)
4b86: 648c cmphs r3, r2
4b88: 080e bt 0x4ba4 // 4ba4 <std_clk_calib+0x1e8>
4b8a: 9868 ld.w r3, (r14, 0x20)
4b8c: 9847 ld.w r2, (r14, 0x1c)
4b8e: 60ca subu r3, r2
4b90: b868 st.w r3, (r14, 0x20)
4b92: 32fe movi r2, 254
4b94: 9868 ld.w r3, (r14, 0x20)
4b96: 4248 lsli r2, r2, 8
4b98: 68c8 and r3, r2
4b9a: 3b40 cmpnei r3, 0
4b9c: 0812 bt 0x4bc0 // 4bc0 <std_clk_calib+0x204>
4b9e: dc6e000a st.b r3, (r14, 0xa)
4ba2: 0721 br 0x49e4 // 49e4 <std_clk_calib+0x28>
4ba4: 9849 ld.w r2, (r14, 0x24)
4ba6: 9865 ld.w r3, (r14, 0x14)
4ba8: 64c8 cmphs r2, r3
4baa: 0829 bt 0x4bfc // 4bfc <std_clk_calib+0x240>
4bac: 9868 ld.w r3, (r14, 0x20)
4bae: 9847 ld.w r2, (r14, 0x1c)
4bb0: 60c8 addu r3, r2
4bb2: b868 st.w r3, (r14, 0x20)
4bb4: 33fe movi r3, 254
4bb6: 9848 ld.w r2, (r14, 0x20)
4bb8: 4368 lsli r3, r3, 8
4bba: 688c and r2, r3
4bbc: 64ca cmpne r2, r3
4bbe: 0fe0 bf 0x4b7e // 4b7e <std_clk_calib+0x1c2>
4bc0: 9660 ld.w r3, (r6, 0x0)
4bc2: 9848 ld.w r2, (r14, 0x20)
4bc4: b354 st.w r2, (r3, 0x50)
4bc6: 3001 movi r0, 1
4bc8: e3ffed88 bsr 0x26d8 // 26d8 <delay_nms>
4bcc: 075e br 0x4a88 // 4a88 <std_clk_calib+0xcc>
4bce: 9866 ld.w r3, (r14, 0x18)
4bd0: 648c cmphs r3, r2
4bd2: 0809 bt 0x4be4 // 4be4 <std_clk_calib+0x228>
4bd4: 9868 ld.w r3, (r14, 0x20)
4bd6: 9847 ld.w r2, (r14, 0x1c)
4bd8: 60ca subu r3, r2
4bda: b868 st.w r3, (r14, 0x20)
4bdc: 32ff movi r2, 255
4bde: 9868 ld.w r3, (r14, 0x20)
4be0: 4250 lsli r2, r2, 16
4be2: 07db br 0x4b98 // 4b98 <std_clk_calib+0x1dc>
4be4: 9849 ld.w r2, (r14, 0x24)
4be6: 9865 ld.w r3, (r14, 0x14)
4be8: 64c8 cmphs r2, r3
4bea: 0809 bt 0x4bfc // 4bfc <std_clk_calib+0x240>
4bec: 9868 ld.w r3, (r14, 0x20)
4bee: 9847 ld.w r2, (r14, 0x1c)
4bf0: 60c8 addu r3, r2
4bf2: b868 st.w r3, (r14, 0x20)
4bf4: 33ff movi r3, 255
4bf6: 9848 ld.w r2, (r14, 0x20)
4bf8: 4370 lsli r3, r3, 16
4bfa: 07e0 br 0x4bba // 4bba <std_clk_calib+0x1fe>
4bfc: 3300 movi r3, 0
4bfe: dc6e000a st.b r3, (r14, 0xa)
4c02: 07e2 br 0x4bc6 // 4bc6 <std_clk_calib+0x20a>
4c04: 2000005c .long 0x2000005c
4c08: 2000000c .long 0x2000000c
4c0c: 02dc6c00 .long 0x02dc6c00
4c10: 0000ffff .long 0x0000ffff
4c14: 20000014 .long 0x20000014
4c18: be9c0005 .long 0xbe9c0005
4c1c: 00030010 .long 0x00030010
4c20: 016e3600 .long 0x016e3600
4c24: 00b71b00 .long 0x00b71b00
4c28: 005b8d80 .long 0x005b8d80
4c2c: 0054c720 .long 0x0054c720
4c30: 003ffed0 .long 0x003ffed0
4c34: 001fff68 .long 0x001fff68
4c38: 0001ffb8 .long 0x0001ffb8
4c3c: 000007ff .long 0x000007ff