12538 lines
504 KiB
NASM
12538 lines
504 KiB
NASM
|
||
.//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:RdStartAdd、DataLength、*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>
|
||
|
||
//设置中断优先级 0最高,3最低
|
||
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
|