.//Obj/RLY_10V485_V01_20250625.elf: file format elf32-csky-little Disassembly of section .text: 00000000 : 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 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 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 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: 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 00000146 <__to_main>: __to_main: lrw r0,__main 146: 1014 lrw r0, 0x1a90 // 194 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 lrw r0,main 152: 1013 lrw r0, 0x26ac // 19c 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 //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 mtcr r1, cr<11,0> 16c: c001642b mtcr r1, cr<11, 0> lrw r1, 0xFFF 170: 102e lrw r1, 0xfff // 1a8 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 mtcr r1, cr<11,0> 178: c001642b mtcr r1, cr<11, 0> lrw r1, 0xEEE 17c: 102d lrw r1, 0xeee // 1b0 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 : .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 : /*************************************************************/ 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 GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN 1acc: 107a lrw r3, 0x2000004c // 1b34 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 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 switch(ENDIS_X) 1af0: 3842 cmpnei r0, 2 1af2: 0807 bt 0x1b00 // 1b00 { 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->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 1b04: 3841 cmpnei r0, 1 1b06: 0bfc bt 0x1afe // 1afe 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 1b12: 07f6 br 0x1afe // 1afe switch(ENDIS_X) 1b14: 3848 cmpnei r0, 8 1b16: 0807 bt 0x1b24 // 1b24 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 1b22: 07ee br 0x1afe // 1afe switch(ENDIS_X) 1b24: 3850 cmpnei r0, 16 1b26: 0bec bt 0x1afe // 1afe 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 1b32: 07e6 br 0x1afe // 1afe 1b34: 2000004c .long 0x2000004c 1b38: 2000005c .long 0x2000005c Disassembly of section .text.SYSCON_RST_VALUE: 00001b3c : SYSCON->RAMCHK=SYSCON_RAMCHK_RST; 1b3c: 106c lrw r3, 0x2000005c // 1b6c 1b3e: 104d lrw r2, 0xffff // 1b70 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 1b46: b346 st.w r2, (r3, 0x18) SYSCON->SCLKCR=SYSCON_SCLKCR_RST; 1b48: 104c lrw r2, 0xd22d0000 // 1b78 1b4a: b347 st.w r2, (r3, 0x1c) SYSCON->OSTR=SYSCON_OSTR_RST; 1b4c: 104c lrw r2, 0x70ff3bff // 1b7c 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->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 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 : { 1b88: 14d0 push r15 if (NewState != DISABLE) 1b8a: 3840 cmpnei r0, 0 1b8c: 0c05 bf 0x1b96 // 1b96 1b8e: 6c07 mov r0, r1 1b90: e3ffff9c bsr 0x1ac8 // 1ac8 } 1b94: 1490 pop r15 SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control 1b96: 1068 lrw r3, 0x2000005c // 1bb4 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->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 1bb2: 0000 bkpt 1bb4: 2000005c .long 0x2000005c Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: 00001bb8 : //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 { IFC->CEDR=0X01; //CLKEN 1bbe: 109d lrw r4, 0x20000060 // 1c30 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 { 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_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) 1bd6: 3b4b cmpnei r3, 11 1bd8: 0807 bt 0x1be6 // 1be6 { IFC->CEDR=0X01; //CLKEN 1bda: 1076 lrw r3, 0x20000060 // 1c30 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 1be8: 6c10 or r0, r4 1bea: 1074 lrw r3, 0x2000005c // 1c38 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 SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 1bfe: 1030 lrw r1, 0xc33c0000 // 1c3c 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 } 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 1c10: 3b49 cmpnei r3, 9 1c12: 0807 bt 0x1c20 // 1c20 IFC->CEDR=0X01; //CLKEN 1c14: 1087 lrw r4, 0x20000060 // 1c30 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 IFC->CEDR=0X01; //CLKEN 1c24: 1083 lrw r4, 0x20000060 // 1c30 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 1c30: 20000060 .long 0x20000060 1c34: d22d0000 .long 0xd22d0000 1c38: 2000005c .long 0x2000005c 1c3c: c33c0000 .long 0xc33c0000 Disassembly of section .text.SYSCON_HFOSC_SELECTE: 00001c40 : //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->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; 1c4c: 1066 lrw r3, 0x2000005c // 1c64 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(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 : //EntryParameter:,NewState //NewState:ENABLE,DISABLE //ReturnValue:NONE /*************************************************************/ void SYSCON_WDT_CMD(FunctionalStatus NewState) { 1c68: 106c lrw r3, 0x2000005c // 1c98 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->IWDEDR=IWDTEDR_KEY|Enable_IWDT; 1c72: 104b lrw r2, 0x78870000 // 1c9c 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 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 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 1c94: 07f7 br 0x1c82 // 1c82 1c96: 0000 bkpt 1c98: 2000005c .long 0x2000005c 1c9c: 78870000 .long 0x78870000 1ca0: 788755aa .long 0x788755aa Disassembly of section .text.SYSCON_IWDCNT_Reload: 00001ca4 : //EntryParameter:NONE //ReturnValue: NONE /*************************************************************/ void SYSCON_IWDCNT_Reload(void) { SYSCON->IWDCNT=CLR_IWDT; 1ca4: 1064 lrw r3, 0x2000005c // 1cb4 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 : //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 1cba: 1065 lrw r3, 0x2000005c // 1ccc 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 : //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 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 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 : //EntryParameter:NONE //ReturnValue: NONE /*************************************************************/ void LVD_Int_Enable(void) { SYSCON->ICR = LVD_INT_ST; //clear LVD INT status 1cf0: 1066 lrw r3, 0x2000005c // 1d08 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 : //EntryParameter:NONE //ReturnValue: NONE /*************************************************************/ void IWDT_Int_Enable(void) { SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status 1d0c: 1066 lrw r3, 0x2000005c // 1d24 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 : //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 1d2c: 3a41 cmpnei r2, 1 1d2e: 0c0e bf 0x1d4a // 1d4a { SYSCON->EXIFT &=~EXIPIN; } break; } } 1d30: 783c jmp r15 1d32: 106d lrw r3, 0x2000005c // 1d64 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 SYSCON->EXIRT |=EXIPIN; 1d3e: 6c48 or r1, r2 1d40: b325 st.w r1, (r3, 0x14) 1d42: 07f7 br 0x1d30 // 1d30 SYSCON->EXIRT &=~EXIPIN; 1d44: 6885 andn r2, r1 1d46: b345 st.w r2, (r3, 0x14) 1d48: 07f4 br 0x1d30 // 1d30 1d4a: 1067 lrw r3, 0x2000005c // 1d64 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 SYSCON->EXIFT |=EXIPIN; 1d56: 6c48 or r1, r2 1d58: b326 st.w r1, (r3, 0x18) 1d5a: 07eb br 0x1d30 // 1d30 SYSCON->EXIFT &=~EXIPIN; 1d5c: 6885 andn r2, r1 1d5e: b346 st.w r2, (r3, 0x18) } 1d60: 07e8 br 0x1d30 // 1d30 1d62: 0000 bkpt 1d64: 2000005c .long 0x2000005c Disassembly of section .text.EXTI_interrupt_CMD: 00001d68 : //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 1d6a: 104c lrw r2, 0x3fff // 1d98 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 { 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 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 1d94: 2000005c .long 0x2000005c 1d98: 00003fff .long 0x00003fff Disassembly of section .text.GPIO_EXTI_interrupt: 00001d9c : //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 : //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 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 : //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 1db4: b340 st.w r2, (r3, 0x0) } 1db6: 783c jmp r15 1db8: e000e100 .long 0xe000e100 Disassembly of section .text.SYSCON_Int_Disable: 00001dbc : //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 1dc0: b340 st.w r2, (r3, 0x0) } 1dc2: 783c jmp r15 1dc4: e000e180 .long 0xe000e180 Disassembly of section .text.SYSCON_INT_Priority: 00001dc8 : //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 1dca: 1047 lrw r2, 0xc0c0c0c0 // 1de4 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 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 : //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 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< IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); 1e0a: 4126 lsli r1, r1, 6 k_temp=CK801 -> IPR[j_temp]&(~(0xff< 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 : //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 { switch (PinNum) 1e24: 5903 subi r0, r1, 1 1e26: 3806 cmphsi r0, 7 1e28: 0827 bt 0x1e76 // 1e76 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< (GPIOx)->CONLR =((GPIOx)->CONLR & data_temp) | 1<CONLR = ((GPIOx)->CONLR & data_temp) | 2<CONHR = ((GPIOx)->CONHR & data_temp) | 2< 1e52: 07f5 br 0x1e3c // 1e3c case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; 1e54: 310c movi r1, 12 1e56: 1166 lrw r3, 0xffff0fff // 1eec 1e58: 07f2 br 0x1e3c // 1e3c case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; 1e5a: 3110 movi r1, 16 1e5c: 1165 lrw r3, 0xfff10000 // 1ef0 case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; 1e5e: 2b00 subi r3, 1 1e60: 07ee br 0x1e3c // 1e3c case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; 1e62: 3114 movi r1, 20 1e64: 1164 lrw r3, 0xff100000 // 1ef4 1e66: 07fc br 0x1e5e // 1e5e 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 case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; 1e70: 311c movi r1, 28 1e72: 1162 lrw r3, 0xfffffff // 1ef8 1e74: 07e4 br 0x1e3c // 1e3c 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 (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< else if (PinNum<16) 1e82: 390f cmphsi r1, 16 1e84: 0be4 bt 0x1e4c // 1e4c switch (PinNum) 1e86: 2908 subi r1, 9 1e88: 3906 cmphsi r1, 7 1e8a: 6c07 mov r0, r1 1e8c: 0827 bt 0x1eda // 1eda 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< (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 1<CONHR = ((GPIOx)->CONHR & data_temp) | 2< case 10:data_temp=0xfffff0ff;GPIO_Pin=8;break; 1eb2: 3108 movi r1, 8 1eb4: 106d lrw r3, 0xfffff0ff // 1ee8 1eb6: 07f5 br 0x1ea0 // 1ea0 case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; 1eb8: 310c movi r1, 12 1eba: 106d lrw r3, 0xffff0fff // 1eec 1ebc: 07f2 br 0x1ea0 // 1ea0 case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; 1ebe: 3110 movi r1, 16 1ec0: 106c lrw r3, 0xfff10000 // 1ef0 case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; 1ec2: 2b00 subi r3, 1 1ec4: 07ee br 0x1ea0 // 1ea0 case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; 1ec6: 3114 movi r1, 20 1ec8: 106b lrw r3, 0xff100000 // 1ef4 1eca: 07fc br 0x1ec2 // 1ec2 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 case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; 1ed4: 311c movi r1, 28 1ed6: 1069 lrw r3, 0xfffffff // 1ef8 1ed8: 07e4 br 0x1ea0 // 1ea0 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 (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< 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 : //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 : //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 : //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 { 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 { 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 if(Selete_EXI_x<8) 1f3e: 0c38 bf 0x1fae // 1fae { GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8)) { GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE< else if((Selete_EXI_x==1)||(Selete_EXI_x==9)) 1f54: 3b41 cmpnei r3, 1 1f56: 0806 bt 0x1f62 // 1f62 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 else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) 1f62: 3b42 cmpnei r3, 2 1f64: 0805 bt 0x1f6e // 1f6e R_data_temp=0xfffff0ff; 1f66: 116d lrw r3, 0xfffff0ff // 2018 1f68: b861 st.w r3, (r14, 0x4) R_GPIO_Pin=8; 1f6a: 3308 movi r3, 8 1f6c: 07e5 br 0x1f36 // 1f36 else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) 1f6e: 3b43 cmpnei r3, 3 1f70: 0805 bt 0x1f7a // 1f7a R_data_temp=0xffff0fff; 1f72: 116b lrw r3, 0xffff0fff // 201c 1f74: b861 st.w r3, (r14, 0x4) R_GPIO_Pin=12; 1f76: 330c movi r3, 12 1f78: 07df br 0x1f36 // 1f36 else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) 1f7a: 3b44 cmpnei r3, 4 1f7c: 0806 bt 0x1f88 // 1f88 R_data_temp=0xfff0ffff; 1f7e: 1169 lrw r3, 0xfff10000 // 2020 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 else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) 1f88: 3b45 cmpnei r3, 5 1f8a: 0806 bt 0x1f96 // 1f96 R_data_temp=0xff0fffff; 1f8c: 1166 lrw r3, 0xff100000 // 2024 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 else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) 1f96: 3b46 cmpnei r3, 6 1f98: 0807 bt 0x1fa6 // 1fa6 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 R_data_temp=0x0fffffff; 1fa6: 1161 lrw r3, 0xfffffff // 2028 1fa8: b861 st.w r3, (r14, 0x4) R_GPIO_Pin=28; 1faa: 331c movi r3, 28 1fac: 07c5 br 0x1f36 // 1f36 GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<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 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 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 if(Selete_EXI_x==16) 1fd6: 3a50 cmpnei r2, 16 1fd8: 106f lrw r3, 0x20000044 // 2014 1fda: 0806 bt 0x1fe6 // 1fe6 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 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 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 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 2000: 1065 lrw r3, 0x20000044 // 2014 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 GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); 200a: 4128 lsli r1, r1, 8 200c: 07f0 br 0x1fec // 1fec GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); 200e: 412c lsli r1, r1, 12 2010: 07ee br 0x1fec // 1fec 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 : //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 2032: 117d lrw r3, 0x2000004c // 2124 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 2124: 2000004c .long 0x2000004c Disassembly of section .text.GPIO_Write_High: 00002128 : //bit:0~15 //ReturnValue:VALUE /*************************************************************/ void GPIO_Write_High(CSP_GPIO_T *GPIOx,uint8_t bit) { (GPIOx)->SODR = (1ul<: void GPIO_Write_Low(CSP_GPIO_T *GPIOx,uint8_t bit) { (GPIOx)->CODR = (1ul<: //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 { (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< Disassembly of section .text.GPIO_Read_Status: 0000214e : /*************************************************************/ uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit) { uint8_t value = 0; uint32_t dat = 0; dat=((GPIOx)->PSDR)&(1<: //EntryParameter:NONE //ReturnValue:NONE /*************************************************************/ void LPT_Soft_Reset(void) { LPT->RSSR |= (0X5<<12); 2160: 1064 lrw r3, 0x20000014 // 2170 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 : //EntryParameter:NONE //ReturnValue:NONE /*************************************************************/ void WWDT_CNT_Load(U8_T cnt_data) { WWDT->CR |= cnt_data; //SET 2174: 1063 lrw r3, 0x20000010 // 2180 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 : //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 : //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 : //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 //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 : //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 : //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 : //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 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 Disassembly of section .text.BT1_INT_ENABLE: 00002210 : //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 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 : //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 { GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050; 2224: 1165 lrw r3, 0x20000048 // 22b8 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 if(IONAME==GPT_CHA_PA09) 2236: 3841 cmpnei r0, 1 2238: 080a bt 0x224c // 224c GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050; 223a: 1161 lrw r3, 0x2000004c // 22bc 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 GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600; 2250: 107b lrw r3, 0x2000004c // 22bc 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 if(IONAME==GPT_CHB_PA010) 2264: 3843 cmpnei r0, 3 2266: 080b bt 0x227c // 227c GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; 2268: 1075 lrw r3, 0x2000004c // 22bc 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 if(IONAME==GPT_CHB_PA011) 227c: 3844 cmpnei r0, 4 227e: 080a bt 0x2292 // 2292 GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000; 2280: 106f lrw r3, 0x2000004c // 22bc 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 if(IONAME==GPT_CHB_PB00) 2292: 3845 cmpnei r0, 5 2294: 0808 bt 0x22a4 // 22a4 GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; 2296: 1069 lrw r3, 0x20000048 // 22b8 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 if(IONAME==GPT_CHB_PB01) 22a4: 3846 cmpnei r0, 6 22a6: 0bd2 bt 0x224a // 224a GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; 22a8: 1064 lrw r3, 0x20000048 // 22b8 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 22b8: 20000048 .long 0x20000048 22bc: 2000004c .long 0x2000004c Disassembly of section .text.GPT_Configure: 000022c0 : //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 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 : /*************************************************************/ //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 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 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 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 : //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 { 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 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 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 23d4: 6c4c or r1, r3 23d6: 9000 ld.w r0, (r0, 0x0) 23d8: b033 st.w r1, (r0, 0x4c) } 23da: 07e0 br 0x239a // 239a 23dc: 20000024 .long 0x20000024 Disassembly of section .text.GPT_Start: 000023e0 : //EntryParameter:NONE //ReturnValue:NONE /*************************************************************/ void GPT_Start(void) { GPT0->RSSR |= 0X01; 23e0: 1063 lrw r3, 0x20000024 // 23ec 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 : //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 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 : //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 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 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 2418: 20000024 .long 0x20000024 Disassembly of section .text.UART0_DeInit: 0000241c : //EntryParameter:NONE //ReturnValue:NONE /*************************************************************/ void UART0_DeInit(void) { UART0->DATA = UART_RESET_VALUE; 241c: 1065 lrw r3, 0x20000040 // 2430 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 : void UART1_DeInit(void) { UART1->DATA = UART_RESET_VALUE; 2434: 1065 lrw r3, 0x2000003c // 2448 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 : void UART2_DeInit(void) { UART2->DATA = UART_RESET_VALUE; 244c: 1065 lrw r3, 0x20000038 // 2460 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 : //EntryParameter:NONE //ReturnValue:NONE /*************************************************************/ void UART1_Int_Enable(void) { UART1->ISR=0x0F; //clear UART1 INT status 2464: 1065 lrw r3, 0x2000003c // 2478 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 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 : //EntryParameter:NONE //ReturnValue:NONE /*************************************************************/ void UART2_Int_Enable(void) { UART2->ISR=0x0F; //clear UART1 INT status 2480: 1065 lrw r3, 0x20000038 // 2494 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 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_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 { if(UART_IO_G==0) 24a0: 3940 cmpnei r1, 0 24a2: 080a bt 0x24b6 // 24b6 { GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 24a4: 1177 lrw r3, 0x2000004c // 2580 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 else if(UART_IO_G==1) 24b6: 3941 cmpnei r1, 1 24b8: 0813 bt 0x24de // 24de GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 24ba: 1172 lrw r3, 0x2000004c // 2580 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 if(UART_IO_G==0) 24e4: 3940 cmpnei r1, 0 24e6: 0814 bt 0x250e // 250e GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 24e8: 1167 lrw r3, 0x20000048 // 2584 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 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 else if(UART_IO_G==1) 250e: 3941 cmpnei r1, 1 2510: 080c bt 0x2528 // 2528 GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 2512: 107c lrw r3, 0x2000004c // 2580 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 else if(UART_IO_G==2) 2528: 3942 cmpnei r1, 2 252a: 0bda bt 0x24de // 24de GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 252c: 1075 lrw r3, 0x2000004c // 2580 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 if (IO_UART_NUM==IO_UART2) 253c: 3842 cmpnei r0, 2 253e: 0bd0 bt 0x24de // 24de if(UART_IO_G==0) 2540: 3940 cmpnei r1, 0 2542: 0809 bt 0x2554 // 2554 GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 2544: 106f lrw r3, 0x2000004c // 2580 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 else if(UART_IO_G==1) 2554: 3941 cmpnei r1, 1 2556: 0809 bt 0x2568 // 2568 GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 2558: 106a lrw r3, 0x2000004c // 2580 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 else if(UART_IO_G==2) 2568: 3942 cmpnei r1, 2 256a: 0bba bt 0x24de // 24de GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 256c: 1066 lrw r3, 0x20000048 // 2584 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 257e: 0000 bkpt 2580: 2000004c .long 0x2000004c 2584: 20000048 .long 0x20000048 Disassembly of section .text.UARTInitRxTxIntEn: 00002588 : //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 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 : //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 }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 25b2: 2300 addi r3, 1 25b4: 07f5 br 0x259e // 259e Disassembly of section .text.EPT_Stop: 000025b8 : //EntryParameter:NONE //ReturnValue:NONE /*************************************************************/ void EPT_Stop(void) { EPT0->REGPROT = (0xA55A<<16) | 0xC73A; 25b8: 1068 lrw r3, 0x20000020 // 25d8 25ba: 3280 movi r2, 128 25bc: 9360 ld.w r3, (r3, 0x0) 25be: 608c addu r2, r3 25c0: 1027 lrw r1, 0xa55ac73a // 25dc 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 } 25d6: 783c jmp r15 25d8: 20000020 .long 0x20000020 25dc: a55ac73a .long 0xa55ac73a Disassembly of section .text.Page_ProgramData: 000025e0 : 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 25e6: 1186 lrw r4, 0x5a5a5a5a // 267c 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 //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 *(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 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 //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 erase 5 SetUserKey; IFC->CMR=0x02; 2634: 3102 movi r1, 2 SetUserKey; 2636: 1052 lrw r2, 0x5a5a5a5a // 267c 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 //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 } 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 2678: 20000060 .long 0x20000060 267c: 5a5a5a5a .long 0x5a5a5a5a Disassembly of section .text.ReadDataArry_U8: 00002680 : //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 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 2692: 6d0f mov r4, r3 2694: 6914 and r4, r5 2696: 3c40 cmpnei r4, 0 2698: 0802 bt 0x269c // 269c 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 Disassembly of section .text.startup.main: 000026ac
: /***************************************************/ //main /**************************************************/ int main(void) { 26ac: 14d0 push r15 // delay_nms(2000); APT32F102_init(); //102 initial 26ae: e000009f bsr 0x27ec // 27ec Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); 26b2: 1029 lrw r1, 0x4d84 // 26d4 26b4: 3000 movi r0, 0 26b6: e00007df bsr 0x3674 // 3674 while(1) { SYSCON_IWDCNT_Reload(); //IWDT Clear 26ba: e3fffaf5 bsr 0x1ca4 // 1ca4 UART1_TASK(); 26be: e000067d bsr 0x33b8 // 33b8 DIP_ScanTask(); 26c2: e000083f bsr 0x3740 // 3740 BLV_RLY_Task(); 26c6: e0000975 bsr 0x39b0 // 39b0 CTRL_LEDStatus_Task(); 26ca: e0000beb bsr 0x3ea0 // 3ea0 BUS485Send_Task(); 26ce: e0000775 bsr 0x35b8 // 35b8 26d2: 07f4 br 0x26ba // 26ba 26d4: 00004d84 .long 0x00004d84 Disassembly of section .text.delay_nms: 000026d8 : //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 { 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 for ( i = 0; i < j; i++ ) 26fe: 9860 ld.w r3, (r14, 0x0) 2700: 2300 addi r3, 1 2702: 07f2 br 0x26e6 // 26e6 Disassembly of section .text.delay_nus: 00002704 : 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 { 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 Disassembly of section .text.BT_CONFIG: 00002728 : //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_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_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_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_Period_CMP_Write(BT1,4780,1); 275e: 3201 movi r2, 1 2760: 1029 lrw r1, 0x12ac // 2784 2762: 9400 ld.w r0, (r4, 0x0) 2764: e3fffd49 bsr 0x21f6 // 21f6 BT_Start(BT1); 2768: 9400 ld.w r0, (r4, 0x0) 276a: e3fffd1b bsr 0x21a0 // 21a0 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 BT1_INT_ENABLE(); 2778: e3fffd4c bsr 0x2210 // 2210 } 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 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_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 //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 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 //------------ 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_WDT_CMD(ENABLE); //enable/disable WDT 27b6: 3001 movi r0, 1 27b8: e3fffa58 bsr 0x1c68 // 1c68 SYSCON_IWDCNT_Reload(); //reload WDT 27bc: e3fffa74 bsr 0x1ca4 // 1ca4 IWDT_Int_Enable(); 27c0: e3fffaa6 bsr 0x1d0c // 1d0c //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 LVD_Int_Enable(); 27d8: e3fffa8c bsr 0x1cf0 // 1cf0 //------------ SYSCON Vector --------------------------------/ SYSCON_Int_Enable(); //SYSCON VECTOR 27dc: e3fffaea bsr 0x1db0 // 1db0 //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 } 27e6: 1401 addi r14, r14, 4 27e8: 1490 pop r15 Disassembly of section .text.APT32F102_init: 000027ec : //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 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 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 //------------------------------------------------------------/ //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 CK_CPU_EnAllNormalIrq(); //enable all IRQ 2806: e0000507 bsr 0x3214 // 3214 SYSCON_INT_Priority(); //initial all Priority=0xC0 280a: e3fffadf bsr 0x1dc8 // 1dc8 //设置中断优先级 0最高,3最低 Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 280e: 3101 movi r1, 1 2810: 300e movi r0, 14 2812: e3fffaed bsr 0x1dec // 1dec //------------------------------------------------------------/ //Other IP config //------------------------------------------------------------/ BT_CONFIG(); //BT initial 2816: e3ffff89 bsr 0x2728 // 2728 UARTx_Init(UART_1,BLV_RLY_RS485_Pro); 281a: 1027 lrw r1, 0x3d90 // 2834 281c: 3001 movi r0, 1 281e: e0000501 bsr 0x3220 // 3220 DIP_Switch_Init(); 2822: e0000749 bsr 0x36b4 // 36b4 Relay_Init(); 2826: e00007d3 bsr 0x37cc // 37cc } 282a: 1490 pop r15 282c: 2000005c .long 0x2000005c 2830: 0fffffff .long 0x0fffffff 2834: 00003d90 .long 0x00003d90 Disassembly of section .text.SYSCONIntHandler: 00002838 : //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 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 { 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 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 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 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 SYSCON->ICR = CMD_ERR_ST; 287c: b341 st.w r2, (r3, 0x4) } 287e: 07ea br 0x2852 // 2852 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 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 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 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 nop; 28b0: 6c03 mov r0, r0 28b2: 07e5 br 0x287c // 287c 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 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 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 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 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 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 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 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 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 2920: 0799 br 0x2852 // 2852 2922: 0000 bkpt 2924: 2000005c .long 0x2000005c Disassembly of section .text.IFCIntHandler: 00002928 : //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 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 { 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 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 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 IFC->ICR=OVW_ERR_INT; 2960: b34c st.w r2, (r3, 0x30) } 2962: 07ed br 0x293c // 293c 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 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 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 2988: 07da br 0x293c // 293c 298a: 0000 bkpt 298c: 20000060 .long 0x20000060 Disassembly of section .text.ADCIntHandler: 00002990 : //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 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 { 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 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 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 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 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 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 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 ADC0->CSR = ADC12_SEQ_END0; 29f0: b347 st.w r2, (r3, 0x1c) } 29f2: 07d9 br 0x29a4 // 29a4 29f4: 20000050 .long 0x20000050 Disassembly of section .text.EPT0IntHandler: 000029f8 : //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 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 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 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 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 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 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 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(ENABLE,EXI_PIN0,_EXIFT); 2a48: 3201 movi r2, 1 2a4a: 3101 movi r1, 1 2a4c: 3001 movi r0, 1 2a4e: e3fff96d bsr 0x1d28 // 1d28 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 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 { 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 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(DISABLE,EXI_PIN0,_EXIFT); 2a8e: 3201 movi r2, 1 2a90: 3101 movi r1, 1 2a92: 3000 movi r0, 0 2a94: e3fff94a bsr 0x1d28 // 1d28 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 2a9e: 07dd br 0x2a58 // 2a58 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 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 EPT0->ICR=EPT_CDD; 2ab2: b357 st.w r2, (r3, 0x5c) 2ab4: 07d3 br 0x2a5a // 2a5a 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 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 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 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 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 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 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 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 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 EPT0->ICR=EPT_PEND; 2b22: b357 st.w r2, (r3, 0x5c) EPT_Stop(); 2b24: e3fffd4a bsr 0x25b8 // 25b8 2b28: 0799 br 0x2a5a // 2a5a 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 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 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 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 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 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 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 EPT0->EMICR=EPT_EOM_FAULT_EMINT; 2b6e: b34d st.w r2, (r3, 0x34) } 2b70: 077e br 0x2a6c // 2a6c 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 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 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 2b96: 076b br 0x2a6c // 2a6c 2b98: 20000020 .long 0x20000020 2b9c: 2000014c .long 0x2000014c 2ba0: 20000148 .long 0x20000148 Disassembly of section .text.WWDTHandler: 00002ba4 : //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 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 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 { 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 : //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 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 { 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 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 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 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 GPT0->ICR = GPT_INT_PEND; 2c1c: b357 st.w r2, (r3, 0x5c) } 2c1e: 07e8 br 0x2bee // 2bee 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 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 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 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 2c50: 07cf br 0x2bee // 2bee 2c52: 0000 bkpt 2c54: 20000024 .long 0x20000024 Disassembly of section .text.RTCIntHandler: 00002c58 : //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 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 { RTC->ICR=ALRA_INT; RTC->KEY=0XCA53; 2c6a: 1057 lrw r2, 0xca53 // 2cc4 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 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 RTC->ICR=RTC_TRGEV1_INT; 2c9a: b32b st.w r1, (r3, 0x2c) } 2c9c: 07f8 br 0x2c8c // 2c8c 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 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 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 2cbc: 07e8 br 0x2c8c // 2c8c 2cbe: 0000 bkpt 2cc0: 20000018 .long 0x20000018 2cc4: 0000ca53 .long 0x0000ca53 Disassembly of section .text.UART0IntHandler: 00002cc8 : //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 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 { 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 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 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 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 } 2cfc: 1463 ipop 2cfe: 1461 nir 2d00: 20000040 .long 0x20000040 Disassembly of section .text.UART1IntHandler: 00002d04 : //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 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 { 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 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 UART1->ISR=UART_TX_INT_S; 2d36: b343 st.w r2, (r3, 0xc) RS485_Comming = 0x01; 2d38: 1074 lrw r3, 0x200000a8 // 2d88 2d3a: b340 st.w r2, (r3, 0x0) if(RS485_Comm_Flag == 0x01){ 2d3c: 1074 lrw r3, 0x200000ac // 2d8c 2d3e: 9360 ld.w r3, (r3, 0x0) 2d40: 3b41 cmpnei r3, 1 2d42: 0bf0 bt 0x2d22 // 2d22 RS485_Comm_Start ++; 2d44: 1053 lrw r2, 0x200000b0 // 2d90 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 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 UART1->ISR=UART_TX_IOV_S; 2d58: b323 st.w r1, (r3, 0xc) 2d5a: 07e4 br 0x2d22 // 2d22 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 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 UART1->ISR=UART_TX_DONE_S; 2d72: b323 st.w r1, (r3, 0xc) RS485_Comming = 0x00; 2d74: 1065 lrw r3, 0x200000a8 // 2d88 2d76: b340 st.w r2, (r3, 0x0) if(RS485_Comm_Flag == 0x01){ 2d78: 1065 lrw r3, 0x200000ac // 2d8c 2d7a: 9360 ld.w r3, (r3, 0x0) 2d7c: 3b41 cmpnei r3, 1 2d7e: 0bd2 bt 0x2d22 // 2d22 RS485_Comm_End ++; 2d80: 1045 lrw r2, 0x200000b4 // 2d94 2d82: 07e2 br 0x2d46 // 2d46 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 : //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 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 { 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 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 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 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 UART2->ISR=UART_TX_DONE_S; 2dda: b343 st.w r2, (r3, 0xc) } 2ddc: 07e8 br 0x2dac // 2dac 2dde: 0000 bkpt 2de0: 20000038 .long 0x20000038 Disassembly of section .text.SPI0IntHandler: 00002de4 : //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 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 } } } 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 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 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 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 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 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 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 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 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 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 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 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 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 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 2e96: 07b8 br 0x2e06 // 2e06 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 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 2eba: 07a6 br 0x2e06 // 2e06 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 2ec6: 07a0 br 0x2e06 // 2e06 2ec8: 20000034 .long 0x20000034 Disassembly of section .text.SIO0IntHandler: 00002ecc : //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 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 { 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 { 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 { SIO0->ICR=0X10; } else if(SIO0->MISR&0X020) //TIMEOUT { SIO0->ICR=0X20; 2ef6: b32b st.w r1, (r3, 0x2c) } } 2ef8: 0410 br 0x2f18 // 2f18 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 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 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 } 2f18: 1463 ipop 2f1a: 1461 nir 2f1c: 2000002c .long 0x2000002c Disassembly of section .text.EXI0IntHandler: 00002f20 : //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 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 { 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 SYSCON->EXICR = EXI_PIN16; 2f46: b34b st.w r2, (r3, 0x2c) } 2f48: 07f7 br 0x2f36 // 2f36 2f4a: 0000 bkpt 2f4c: 2000005c .long 0x2000005c Disassembly of section .text.EXI1IntHandler: 00002f50 : //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 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 { 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 SYSCON->EXICR = EXI_PIN17; 2f76: b34b st.w r2, (r3, 0x2c) } 2f78: 07f7 br 0x2f66 // 2f66 2f7a: 0000 bkpt 2f7c: 2000005c .long 0x2000005c Disassembly of section .text.EXI2to3IntHandler: 00002f80 : //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 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 { 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 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 SYSCON->EXICR = EXI_PIN19; 2fb0: b34b st.w r2, (r3, 0x2c) } 2fb2: 07f2 br 0x2f96 // 2f96 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 2fc0: 07eb br 0x2f96 // 2f96 2fc2: 0000 bkpt 2fc4: 2000005c .long 0x2000005c Disassembly of section .text.EXI4to9IntHandler: 00002fc8 : //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 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 { 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 : //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 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 { 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 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 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 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 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 SYSCON->EXICR = EXI_PIN15; 3048: b34b st.w r2, (r3, 0x2c) BusBusy_Task(); 304a: e00002eb bsr 0x3620 // 3620 } 304e: 07da br 0x3002 // 3002 3050: 2000005c .long 0x2000005c Disassembly of section .text.LPTIntHandler: 00003054 : //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 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 { 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 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 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 } 307e: 1463 ipop 3080: 1461 nir 3082: 0000 bkpt 3084: 20000014 .long 0x20000014 Disassembly of section .text.BT0IntHandler: 00003088 : //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 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 { 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 BT0->ICR = BT_EVTRG; 30b6: b32d st.w r1, (r3, 0x34) } 30b8: 07f8 br 0x30a8 // 30a8 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 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 30ce: 07ed br 0x30a8 // 30a8 30d0: 2000000c .long 0x2000000c Disassembly of section .text.BT1IntHandler: 000030d4 : //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 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 { 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 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 BT1->ICR = BT_CMP; 30f6: b32d st.w r1, (r3, 0x34) NUM++; 30f8: 1072 lrw r3, 0x2000009c // 3140 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 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 } 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 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 3138: 07f1 br 0x311a // 311a 313a: 0000 bkpt 313c: 20000008 .long 0x20000008 3140: 2000009c .long 0x2000009c Disassembly of section .text.PriviledgeVioHandler: 00003144 : 3144: 783c jmp r15 Disassembly of section .text.PendTrapHandler: 00003146 : // 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 : 314e: 1460 nie 3150: 1462 ipush 3152: 1463 ipop 3154: 1461 nir Disassembly of section .text.Trap2Handler: 00003156 : 3156: 1460 nie 3158: 1462 ipush 315a: 1463 ipop 315c: 1461 nir Disassembly of section .text.Trap1Handler: 0000315e : 315e: 1460 nie 3160: 1462 ipush 3162: 1463 ipop 3164: 1461 nir Disassembly of section .text.Trap0Handler: 00003166 : 3166: 1460 nie 3168: 1462 ipush 316a: 1463 ipop 316c: 1461 nir Disassembly of section .text.UnrecExecpHandler: 0000316e : 316e: 1460 nie 3170: 1462 ipush 3172: 1463 ipop 3174: 1461 nir Disassembly of section .text.BreakPointHandler: 00003176 : 3176: 1460 nie 3178: 1462 ipush 317a: 1463 ipop 317c: 1461 nir Disassembly of section .text.AccessErrHandler: 0000317e : 317e: 1460 nie 3180: 1462 ipush 3182: 1463 ipop 3184: 1461 nir Disassembly of section .text.IllegalInstrHandler: 00003186 : 3186: 1460 nie 3188: 1462 ipush 318a: 1463 ipop 318c: 1461 nir Disassembly of section .text.MisalignedHandler: 0000318e : 318e: 1460 nie 3190: 1462 ipush 3192: 1463 ipop 3194: 1461 nir Disassembly of section .text.CNTAIntHandler: 00003196 : 3196: 1460 nie 3198: 1462 ipush 319a: 1463 ipop 319c: 1461 nir Disassembly of section .text.I2CIntHandler: 0000319e : 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 : } 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 : void CK_CPU_DisAllNormalIrq(void) { asm ("psrclr ie"); 321a: c0807020 psrclr ie } 321e: 783c jmp r15 Disassembly of section .text.UARTx_Init: 00003220 : 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 322a: 3840 cmpnei r0, 0 322c: 0c04 bf 0x3234 // 3234 322e: 3842 cmpnei r0, 2 3230: 0c7f bf 0x332e // 332e // 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 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 UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled 3240: 1263 lrw r3, 0x20000040 // 334c 3242: 3200 movi r2, 0 3244: 9300 ld.w r0, (r3, 0x0) 3246: 1223 lrw r1, 0x1388 // 3350 3248: e3fff9a0 bsr 0x2588 // 2588 break; 324c: 07f3 br 0x3232 // 3232 memset(&g_uart1,0,sizeof(UART_t)); 324e: 32a0 movi r2, 160 3250: 3100 movi r1, 0 3252: 1201 lrw r0, 0x20000218 // 3354 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 325e: e3fff38f bsr 0x197c // 197c <__memset_fast> g_uart1.RecvTimeout = Recv_9600_TimeOut; 3262: 117f lrw r3, 0x20000298 // 335c 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 GPIO_PullHigh_Init(GPIOA0,15); 326e: 119e lrw r4, 0x2000004c // 3364 m_send.BusState_Tick = SysTick_1ms; 3270: 9340 ld.w r2, (r3, 0x0) 3272: 117e lrw r3, 0x20000338 // 3368 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_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 GPIOA0_EXI_Init(EXI15); //PB0.2 as input 328a: 300f movi r0, 15 328c: e3fff6d0 bsr 0x202c // 202c 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(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_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 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 EXI4_Int_Enable(); 32bc: e3fff572 bsr 0x1da0 // 1da0 UART1_DeInit(); //clear all UART Register 32c0: e3fff8ba bsr 0x2434 // 2434 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 UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled 32cc: 1168 lrw r3, 0x2000003c // 336c 32ce: 3200 movi r2, 0 32d0: 9300 ld.w r0, (r3, 0x0) 32d2: 1120 lrw r1, 0x1388 // 3350 32d4: e3fff95a bsr 0x2588 // 2588 UART1_Int_Enable(); 32d8: e3fff8c6 bsr 0x2464 // 2464 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(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(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 TX_LED_OFF; 32fa: 9400 ld.w r0, (r4, 0x0) 32fc: 3100 movi r1, 0 32fe: e3fff715 bsr 0x2128 // 2128 RX_LED_OFF; 3302: 9400 ld.w r0, (r4, 0x0) 3304: 3101 movi r1, 1 3306: e3fff711 bsr 0x2128 // 2128 STATUS_LED_ON; 330a: 9400 ld.w r0, (r4, 0x0) 330c: 3104 movi r1, 4 330e: e3fff711 bsr 0x2130 // 2130 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_DriveStrength_EN(GPIOA0,UART485_DR_PIN); 331c: 9400 ld.w r0, (r4, 0x0) 331e: 3107 movi r1, 7 3320: e3fff5f8 bsr 0x1f10 // 1f10 WRITE_LOW_DR; 3324: 9400 ld.w r0, (r4, 0x0) 3326: 3107 movi r1, 7 3328: e3fff704 bsr 0x2130 // 2130 break; 332c: 0783 br 0x3232 // 3232 UART2_DeInit(); //clear all UART Register 332e: e3fff88f bsr 0x244c // 244c 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 UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled 333a: 106e lrw r3, 0x20000038 // 3370 333c: 3200 movi r2, 0 333e: 9300 ld.w r0, (r3, 0x0) 3340: 1024 lrw r1, 0x1388 // 3350 3342: e3fff923 bsr 0x2588 // 2588 UART2_Int_Enable(); 3346: e3fff89d bsr 0x2480 // 2480 } 334a: 0774 br 0x3232 // 3232 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 : /******************************************************************************* * 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 3378: 8b28 ld.h r1, (r3, 0x10) 337a: 3244 movi r2, 68 337c: 6449 cmplt r2, r1 337e: 0c03 bf 0x3384 // 3384 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 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 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 339e: 9300 ld.w r0, (r3, 0x0) 33a0: e3fff6c8 bsr 0x2130 // 2130 } 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 : 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 33bc: 846c ld.b r3, (r4, 0xc) 33be: 3b41 cmpnei r3, 1 33c0: 0828 bt 0x3410 // 3410 if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){ 33c2: 10b6 lrw r5, 0x200000a4 // 3418 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 SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 33d0: e3fff4f6 bsr 0x1dbc // 1dbc 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 33da: 1012 lrw r0, 0x2000025e // 3420 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 #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 rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); 33f6: 8c27 ld.h r1, (r4, 0xe) 33f8: 100a lrw r0, 0x2000025e // 3420 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 33fe: 3101 movi r1, 1 3400: 9300 ld.w r0, (r3, 0x0) 3402: e3fff693 bsr 0x2128 // 2128 memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE); 3406: 3246 movi r2, 70 3408: 3100 movi r1, 0 340a: 1006 lrw r0, 0x2000025e // 3420 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 : * 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 delay_cnt ++; if(delay_cnt >= 100){ break; } REVERISE_DR; //485_DR 3434: 11ad lrw r5, 0x2000004c // 34e8 while(RS485_Comming == 0x01){ 3436: 9460 ld.w r3, (r4, 0x0) 3438: 3b41 cmpnei r3, 1 343a: 0c47 bf 0x34c8 // 34c8 } if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 343c: 116c lrw r3, 0x20000338 // 34ec 343e: 83e0 ld.b r7, (r3, 0x0) 3440: 3f40 cmpnei r7, 0 3442: b860 st.w r3, (r14, 0x0) 3444: 084e bt 0x34e0 // 34e0 TX_LED_ON; 3446: 11a9 lrw r5, 0x2000004c // 34e8 3448: 3100 movi r1, 0 344a: 9500 ld.w r0, (r5, 0x0) 344c: e3fff672 bsr 0x2130 // 2130 CK_CPU_DisAllNormalIrq(); 3450: e3fffee5 bsr 0x321a // 321a WRITE_HIGH_DR; //485_DR 3454: 3107 movi r1, 7 3456: 9500 ld.w r0, (r5, 0x0) 3458: e3fff668 bsr 0x2128 // 2128 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 UARTTransmit(UART1,buff,len); 3470: 1160 lrw r3, 0x2000003c // 34f0 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 do{ delay_nus(100); 347c: 3064 movi r0, 100 347e: e3fff943 bsr 0x2704 // 2704 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 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 3492: 9463 ld.w r3, (r4, 0xc) 3494: 648d cmplt r3, r2 3496: 0bf3 bt 0x347c // 347c CK_CPU_DisAllNormalIrq(); 3498: e3fffec1 bsr 0x321a // 321a WRITE_LOW_DR; //485_DR 349c: 3107 movi r1, 7 349e: 9500 ld.w r0, (r5, 0x0) 34a0: e3fff648 bsr 0x2130 // 2130 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 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 TX_LED_OFF; 34ba: 9500 ld.w r0, (r5, 0x0) 34bc: 3100 movi r1, 0 34be: e3fff635 bsr 0x2128 // 2128 { 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_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 REVERISE_DR; //485_DR 34d6: 3107 movi r1, 7 34d8: 9500 ld.w r0, (r5, 0x0) 34da: e3fff62f bsr 0x2138 // 2138 34de: 07ac br 0x3436 // 3436 return UART_BUSBUSY; //发送失败 34e0: 3701 movi r7, 1 34e2: 07f0 br 0x34c2 // 34c2 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 : * 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 if(DatSd == 0x01) 3504: 3a41 cmpnei r2, 1 3506: 0c03 bf 0x350c // 350c }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 350e: 8444 ld.b r2, (r4, 0x4) 3510: 8466 ld.b r3, (r4, 0x6) 3512: 64c8 cmphs r2, r3 3514: 081c bt 0x354c // 354c if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) 3516: 10b1 lrw r5, 0x200000a4 // 3558 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 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 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 if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 3534: e3ffff7a bsr 0x3428 // 3428 3538: 3840 cmpnei r0, 0 353a: 0be7 bt 0x3508 // 3508 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 if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; 3548: 3004 movi r0, 4 354a: 07e0 br 0x350a // 350a return RETRY_END;//没有重发次数 354c: 3003 movi r0, 3 354e: 07de br 0x350a // 350a return DATA_END;//数据有效期结束 3550: 3002 movi r0, 2 3552: 07dc br 0x350a // 350a 3554: 20000338 .long 0x20000338 3558: 200000a4 .long 0x200000a4 Disassembly of section .text.Set_GroupSend: 0000355c : * 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 memset(m_send.SendBuffer,0, USART_SEND_SIZE); 3576: 3280 movi r2, 128 3578: 3100 movi r1, 0 357a: 100d lrw r0, 0x200002b8 // 35ac 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 3586: e3fff23f bsr 0x1a04 // 1a04 <__memcpy_fast> m_send.SendLen = sled; 358a: 106a lrw r3, 0x20000338 // 35b0 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 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 : 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 35bc: 8465 ld.b r3, (r4, 0x5) 35be: 3b41 cmpnei r3, 1 35c0: 080d bt 0x35da // 35da { 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 35c8: e3ffff98 bsr 0x34f8 // 34f8 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 { 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 : /********************************************************** * @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 35e8: 8460 ld.b r3, (r4, 0x0) 35ea: 3b40 cmpnei r3, 0 35ec: 0c15 bf 0x3616 // 3616 35ee: 8462 ld.b r3, (r4, 0x2) 35f0: 3b41 cmpnei r3, 1 35f2: 0c12 bf 0x3616 // 3616 { CK_CPU_DisAllNormalIrq(); 35f4: e3fffe13 bsr 0x321a // 321a 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 35fe: 1068 lrw r3, 0x200000a4 // 361c 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 { 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 } } 3616: 1491 pop r4, r15 3618: 20000338 .long 0x20000338 361c: 200000a4 .long 0x200000a4 Disassembly of section .text.BusBusy_Task: 00003620 : /******************************************************************* * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 * @retval None * */ void BusBusy_Task(void) { 3620: 14d2 push r4-r5, r15 CK_CPU_DisAllNormalIrq(); 3622: e3fffdfc bsr 0x321a // 321a m_send.BusState_Flag = UART_BUSBUSY; 3626: 1091 lrw r4, 0x20000338 // 3668 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 if(READ_RX_LEVEL_STATE == 0x01){ 3630: 10b0 lrw r5, 0x2000004c // 3670 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 364a: 3841 cmpnei r0, 1 364c: 0806 bt 0x3658 // 3658 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 } 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 3660: 3840 cmpnei r0, 0 3662: 0bf8 bt 0x3652 // 3652 m_send.HighBit_Flag = 0x00; //低电平 3664: 3300 movi r3, 0 3666: 07f5 br 0x3650 // 3650 3668: 20000338 .long 0x20000338 366c: 200000a4 .long 0x200000a4 3670: 2000004c .long 0x2000004c Disassembly of section .text.Dbg_Println: 00003674 : } #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 : /*进入设置界面 - 先决条件*/ 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 3686: 3840 cmpnei r0, 0 3688: 0c05 bf 0x3692 // 3692 368a: 3842 cmpnei r0, 2 368c: 0c0d bf 0x36a6 // 36a6 U8_T val = 0; 368e: 3000 movi r0, 0 3690: 0406 br 0x369c // 369c { case DIP_CH1: val = GPIO_Read_Status(GPIOA0,10); 3692: 1068 lrw r3, 0x2000004c // 36b0 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 break; } return val; } 369c: 1490 pop r15 val = GPIO_Read_Status(GPIOA0,9); 369e: 1065 lrw r3, 0x2000004c // 36b0 36a0: 3109 movi r1, 9 36a2: 9300 ld.w r0, (r3, 0x0) 36a4: 07fa br 0x3698 // 3698 val = GPIO_Read_Status(GPIOA0,8); 36a6: 1063 lrw r3, 0x2000004c // 36b0 36a8: 3108 movi r1, 8 36aa: 9300 ld.w r0, (r3, 0x0) 36ac: 07f6 br 0x3698 // 3698 36ae: 0000 bkpt 36b0: 2000004c .long 0x2000004c Disassembly of section .text.DIP_Switch_Init: 000036b4 : void DIP_Switch_Init(void){ 36b4: 14d2 push r4-r5, r15 GPIO_Init(GPIOA0,10,Intput); 36b6: 1180 lrw r4, 0x2000004c // 3734 36b8: 3201 movi r2, 1 36ba: 9400 ld.w r0, (r4, 0x0) 36bc: 310a movi r1, 10 36be: e3fff3af bsr 0x1e1c // 1e1c 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(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_PullHigh_Init(GPIOA0,10); 36d6: 9400 ld.w r0, (r4, 0x0) 36d8: 310a movi r1, 10 36da: e3fff411 bsr 0x1efc // 1efc 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(GPIOA0,8); 36e6: 9400 ld.w r0, (r4, 0x0) 36e8: 3108 movi r1, 8 36ea: e3fff409 bsr 0x1efc // 1efc memset(&g_Dip,0,sizeof(DIP_t)); 36ee: 3210 movi r2, 16 36f0: 3100 movi r1, 0 36f2: 1012 lrw r0, 0x2000035c // 3738 36f4: e3fff144 bsr 0x197c // 197c <__memset_fast> delay_nms(20); 36f8: 3014 movi r0, 20 36fa: e3fff7ef bsr 0x26d8 // 26d8 36fe: 3400 movi r4, 0 g_Dip.DIP_val |= DIP_VAL_ON << i; 3700: 10ae lrw r5, 0x2000035c // 3738 if(DIP_GetSwitchState(i) == DIP_PRESS){ 3702: 7410 zextb r0, r4 3704: e3ffffbe bsr 0x3680 // 3680 3708: 3840 cmpnei r0, 0 370a: 0807 bt 0x3718 // 3718 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 g_Dip.DIP_last_val = g_Dip.DIP_val; 371e: 1067 lrw r3, 0x2000035c // 3738 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 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 } 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 : 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 3744: 1140 lrw r2, 0x200000b8 // 37c4 3746: 11a1 lrw r5, 0x2000035c // 37c8 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 } } } } 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 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 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 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 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 3784: 07e7 br 0x3752 // 3752 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 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 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 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 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 37be: 0000 bkpt 37c0: 200000a4 .long 0x200000a4 37c4: 200000b8 .long 0x200000b8 37c8: 2000035c .long 0x2000035c Disassembly of section .text.Relay_Init: 000037cc : #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 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 GPT_IO_Init(GPT_CHB_PB00); 37e0: 3005 movi r0, 5 37e2: e3fff51f bsr 0x2220 // 2220 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_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_Period_CMP_Write(10000,0,0); 380c: 3200 movi r2, 0 380e: 3100 movi r1, 0 3810: 101d lrw r0, 0x2710 // 3884 3812: e3fff5ef bsr 0x23f0 // 23f0 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_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_Start(); 3842: e3fff5cf bsr 0x23e0 // 23e0 GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); 3846: 3180 movi r1, 128 //真-继电器 GPIO_Init(GPIOA0,12,Output); 3848: 1090 lrw r4, 0x2000004c // 3888 GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); 384a: 4129 lsli r1, r1, 9 384c: 3001 movi r0, 1 384e: e3fff5d9 bsr 0x2400 // 2400 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(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 RLY_1_CLOSE; 3866: 9400 ld.w r0, (r4, 0x0) 3868: 310d movi r1, 13 386a: e3fff463 bsr 0x2130 // 2130 RLY_2_CLOSE; 386e: 9400 ld.w r0, (r4, 0x0) 3870: 310c movi r1, 12 3872: e3fff45f bsr 0x2130 // 2130 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 : * @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 { 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 Disassembly of section .text.CheckSum2: 000038a2 : * @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 { 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 Disassembly of section .text.Change_OUTV: 000038bc : //选择输出电压,0 - 10000mV U8_T Change_OUTV(U16_T VolOut) { if(VolOut > 10000) return 0x01; 38bc: 1065 lrw r3, 0x2710 // 38d0 38be: 640c cmphs r3, r0 38c0: 0c06 bf 0x38cc // 38cc GPT0->CMPA = VolOut; 38c2: 1065 lrw r3, 0x20000024 // 38d4 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 38d0: 00002710 .long 0x00002710 38d4: 20000024 .long 0x20000024 Disassembly of section .text.BLV_VolOut_Ctrl: 000038d8 : * @param * @retval None * */ void BLV_VolOut_Ctrl(void) { 38d8: 14d1 push r4, r15 c_rly.wind = WIND_STOP; 38da: 1095 lrw r4, 0x2000036c // 392c 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 { #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 }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 c_rly.wind = WIND_MID; 38f2: 3302 movi r3, 2 38f4: 07fa br 0x38e8 // 38e8 }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 } 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 3900: 3000 movi r0, 0 3902: e3fffeb9 bsr 0x3674 // 3674 if(c_rly.wind == WIND_STOP){ 3906: 846d ld.b r3, (r4, 0xd) 3908: 3b40 cmpnei r3, 0 390a: 0805 bt 0x3914 // 3914 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 } } 3912: 1491 pop r4, r15 }else if(c_rly.wind == WIND_LOW){ 3914: 3b41 cmpnei r3, 1 3916: 0803 bt 0x391c // 391c Change_OUTV(c_rly.wind_LOW_vol); 3918: 8c09 ld.h r0, (r4, 0x12) 391a: 07fa br 0x390e // 390e }else if(c_rly.wind == WIND_MID){ 391c: 3b42 cmpnei r3, 2 391e: 0803 bt 0x3924 // 3924 Change_OUTV(c_rly.wind_MID_vol); 3920: 8c0a ld.h r0, (r4, 0x14) 3922: 07f6 br 0x390e // 390e }else if(c_rly.wind == WIND_HIGH){ 3924: 3b43 cmpnei r3, 3 3926: 0bf6 bt 0x3912 // 3912 Change_OUTV(c_rly.wind_HIGH_vol); 3928: 8c0b ld.h r0, (r4, 0x16) 392a: 07f2 br 0x390e // 390e 392c: 2000036c .long 0x2000036c 3930: 00004d9b .long 0x00004d9b Disassembly of section .text.BLV_RLY_Ctrl_Purpose: 00003934 : * @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 switch(state) 393a: 3941 cmpnei r1, 1 393c: 0c06 bf 0x3948 // 3948 393e: 3940 cmpnei r1, 0 3940: 0c13 bf 0x3966 // 3966 3942: 3942 cmpnei r1, 2 3944: 0c20 bf 0x3984 // 3984 } } break; } } 3946: 1490 pop r15 if(c_rly.rly_state[rly_id] != Control_ON) 3948: 1078 lrw r3, 0x2000036c // 39a8 394a: 60c0 addu r3, r0 394c: 8341 ld.b r2, (r3, 0x1) 394e: 3a41 cmpnei r2, 1 3950: 0ffb bf 0x3946 // 3946 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 RLY_1_OPEN; 395a: 1075 lrw r3, 0x2000004c // 39ac 395c: 310d movi r1, 13 395e: 9300 ld.w r0, (r3, 0x0) RLY_2_OPEN; 3960: e3fff3e4 bsr 0x2128 // 2128 3964: 07f1 br 0x3946 // 3946 if(c_rly.rly_state[rly_id] != Control_OFF) 3966: 1071 lrw r3, 0x2000036c // 39a8 3968: 60c0 addu r3, r0 396a: 8341 ld.b r2, (r3, 0x1) 396c: 3a40 cmpnei r2, 0 396e: 0fec bf 0x3946 // 3946 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 RLY_1_CLOSE; 3978: 106d lrw r3, 0x2000004c // 39ac 397a: 310d movi r1, 13 397c: 9300 ld.w r0, (r3, 0x0) RLY_2_CLOSE; 397e: e3fff3d9 bsr 0x2130 // 2130 3982: 07e2 br 0x3946 // 3946 if(c_rly.rly_state[rly_id] != Control_OFF) 3984: 1069 lrw r3, 0x2000036c // 39a8 3986: 60c0 addu r3, r0 3988: 8341 ld.b r2, (r3, 0x1) 398a: 3a40 cmpnei r2, 0 398c: 0fe3 bf 0x3952 // 3952 398e: 07f1 br 0x3970 // 3970 }else if(rly_id == CTRL_RLY2){ 3990: 3841 cmpnei r0, 1 3992: 0bda bt 0x3946 // 3946 RLY_2_CLOSE; 3994: 1066 lrw r3, 0x2000004c // 39ac 3996: 310c movi r1, 12 3998: 9300 ld.w r0, (r3, 0x0) 399a: 07f2 br 0x397e // 397e }else if(rly_id == CTRL_RLY2){ 399c: 3841 cmpnei r0, 1 399e: 0bd4 bt 0x3946 // 3946 RLY_2_OPEN; 39a0: 1063 lrw r3, 0x2000004c // 39ac 39a2: 310c movi r1, 12 39a4: 9300 ld.w r0, (r3, 0x0) 39a6: 07dd br 0x3960 // 3960 39a8: 2000036c .long 0x2000036c 39ac: 2000004c .long 0x2000004c Disassembly of section .text.BLV_RLY_Task: 000039b0 : //继电器动作处理 void BLV_RLY_Task(void) { 39b0: 14d3 push r4-r6, r15 if(c_rly.rly_control != 0x01)return; 39b2: 10b1 lrw r5, 0x2000036c // 39f4 39b4: 8560 ld.b r3, (r5, 0x0) 39b6: 3b41 cmpnei r3, 1 39b8: 0815 bt 0x39e2 // 39e2 39ba: 6d97 mov r6, r5 39bc: 3400 movi r4, 0 for(U8_T i = 0;i { 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 for(U8_T i = 0;i } BLV_VolOut_Ctrl(); //风速判断,输出pwm 39da: e3ffff7f bsr 0x38d8 // 38d8 #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_Ctrl_Purpose(i,Control_ON); 39e8: 3101 movi r1, 1 39ea: 07ee br 0x39c6 // 39c6 }else if(c_rly.rly_ctrl_state[i] == RLY_RES) 39ec: 3b43 cmpnei r3, 3 39ee: 0bef bt 0x39cc // 39cc BLV_RLY_Ctrl_Purpose(i,Cnotrol_RES); 39f0: 3102 movi r1, 2 39f2: 07ea br 0x39c6 // 39c6 39f4: 2000036c .long 0x2000036c Disassembly of section .text.BLV_A9RLY_CMD_SET_Processing: 000039f8 : //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 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 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>(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 3a22: 2401 addi r4, 2 for(U8_T i = 0;i } } } //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 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 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 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 }else if(t == RLY_ON){ 3a86: 3942 cmpnei r1, 2 3a88: 0fcd bf 0x3a22 // 3a22 c_rly.rly_ctrl_state[i] = RLY_RES; 3a8a: 3103 movi r1, 3 3a8c: 07cb br 0x3a22 // 3a22 if(len < 9) return 0x01; 3a8e: 3001 movi r0, 1 3a90: 07f7 br 0x3a7e // 3a7e 3a92: 0000 bkpt 3a94: 2000036c .long 0x2000036c 3a98: 2000035c .long 0x2000035c Disassembly of section .text.BLV_A9RLY_CMD_READ_Processing: 00003a9c : //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 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_State2 |= (0x01< } } 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 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 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 } 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 : //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 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 3b3a: 1110 lrw r0, 0x2000036c // 3bf8 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 switch(i){ 3b4a: 3942 cmpnei r1, 2 3b4c: 0c47 bf 0x3bda // 3bda 3b4e: 3943 cmpnei r1, 3 3b50: 0c4a bf 0x3be4 // 3be4 3b52: 3941 cmpnei r1, 1 3b54: 0c3e bf 0x3bd0 // 3bd0 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 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 } } } } if(save_flag != 0x00) 3b6c: 3b40 cmpnei r3, 0 3b6e: 0c03 bf 0x3b74 // 3b74 { EEPROM_WritePara(); //保存flash 3b70: e00002d2 bsr 0x4114 // 4114 } BLV_VolOut_Ctrl(); 3b74: e3fffeb2 bsr 0x38d8 // 38d8 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 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 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 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 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 c_rly.wind_LOW_vol = SetVol; 3bd6: a849 st.h r2, (r0, 0x12) 3bd8: 07c3 br 0x3b5e // 3b5e if(c_rly.wind_MID_vol != SetVol){ 3bda: 88ea ld.h r7, (r0, 0x14) 3bdc: 649e cmpne r7, r2 3bde: 0fc2 bf 0x3b62 // 3b62 c_rly.wind_MID_vol = SetVol; 3be0: a84a st.h r2, (r0, 0x14) 3be2: 07be br 0x3b5e // 3b5e if(c_rly.wind_HIGH_vol != SetVol){ 3be4: 88eb ld.h r7, (r0, 0x16) 3be6: 649e cmpne r7, r2 3be8: 0fbd bf 0x3b62 // 3b62 c_rly.wind_HIGH_vol = SetVol; 3bea: a84b st.h r2, (r0, 0x16) 3bec: 07b9 br 0x3b5e // 3b5e if(len < 15) return 0x01; 3bee: 3001 movi r0, 1 3bf0: 07ee br 0x3bcc // 3bcc 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 : //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 //回复 SendData[SendLen++] = g_Dip.addr; 3c0c: 1121 lrw r1, 0x2000035c // 3c90 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 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 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 : //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 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 { if(data[SEND_PARA] != c_rly.dev_port){ 3ca8: 109b lrw r4, 0x2000036c // 3d14 3caa: 844b ld.b r2, (r4, 0xb) 3cac: 64ca cmpne r2, r3 3cae: 0c04 bf 0x3cb6 // 3cb6 c_rly.dev_port = data[SEND_PARA]; 3cb0: a46b st.b r3, (r4, 0xb) EEPROM_WritePara(); //保存flash 3cb2: e0000231 bsr 0x4114 // 4114 } }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 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 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 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 return 0x02;//设置的端口不合法 3d10: 3002 movi r0, 2 3d12: 07fb br 0x3d08 // 3d08 3d14: 2000036c .long 0x2000036c 3d18: 2000035c .long 0x2000035c Disassembly of section .text.BLV_DEVPROT_CMD_READ_Processing: 00003d1c : //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 //回复 SendData[SendLen++] = g_Dip.addr; 3d28: 1039 lrw r1, 0x2000035c // 3d8c 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 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 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 : 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 { Dbg_Println(DBG_BIT_SYS_STATUS,"Data Len Err"); 3d9c: 1139 lrw r1, 0x4daf // 3e80 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 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 Dbg_Println(DBG_BIT_SYS_STATUS,"Len Check Err"); 3db0: 1135 lrw r1, 0x4dbc // 3e84 3db2: 07f6 br 0x3d9e // 3d9e if(RecData[2] != A9EXPANDTYPE) //A9继电器设备类型 3db4: 8062 ld.b r3, (r0, 0x2) 3db6: 3b4e cmpnei r3, 14 3db8: 0c07 bf 0x3dc6 // 3dc6 Dbg_Println(DBG_BIT_SYS_STATUS,"Type Check Err"); 3dba: 3000 movi r0, 0 3dbc: 1133 lrw r1, 0x4dca // 3e88 3dbe: e3fffc5b bsr 0x3674 // 3674 return 0x02; 3dc2: 3002 movi r0, 2 3dc4: 07f1 br 0x3da6 // 3da6 if(RecData[3] != g_Dip.addr) //地址校验 3dc6: 1172 lrw r3, 0x2000035c // 3e8c 3dc8: 8043 ld.b r2, (r0, 0x3) 3dca: 8366 ld.b r3, (r3, 0x6) 3dcc: 64ca cmpne r2, r3 3dce: 0c07 bf 0x3ddc // 3ddc Dbg_Println(DBG_BIT_SYS_STATUS,"Addr Check Err "); 3dd0: 3000 movi r0, 0 3dd2: 1130 lrw r1, 0x4dd9 // 3e90 3dd4: e3fffc50 bsr 0x3674 // 3674 return 0x03; 3dd8: 3003 movi r0, 3 3dda: 07e6 br 0x3da6 // 3da6 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 3df4: 8465 ld.b r3, (r4, 0x5) 3df6: 640e cmpne r3, r0 3df8: 0c0c bf 0x3e10 // 3e10 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 3e02: 6c83 mov r2, r0 3e04: 1124 lrw r1, 0x4de9 // 3e94 3e06: 3000 movi r0, 0 3e08: e3fffc36 bsr 0x3674 // 3674 return 0x05; 3e0c: 3005 movi r0, 5 3e0e: 07cc br 0x3da6 // 3da6 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 3e18: 824c ld.b r2, (r2, 0xc) 3e1a: 64ca cmpne r2, r3 3e1c: 0807 bt 0x3e2a // 3e2a Dbg_Println(DBG_BIT_SYS_STATUS,"SN is Equal: %02x",c_rly.SN); 3e1e: 3000 movi r0, 0 3e20: 103f lrw r1, 0x4dfd // 3e9c 3e22: e3fffc29 bsr 0x3674 // 3674 return 0x00; 3e26: 3000 movi r0, 0 3e28: 07bf br 0x3da6 // 3da6 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 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 break; 3e4a: 07ae br 0x3da6 // 3da6 BLV_A9RLY_CMD_READ_Processing(RecData,Len); 3e4c: 6c57 mov r1, r5 3e4e: 6c13 mov r0, r4 3e50: e3fffe26 bsr 0x3a9c // 3a9c break; 3e54: 07a9 br 0x3da6 // 3da6 BLV_WINDOUT_CMD_SET_Processing(RecData,Len); 3e56: 6c57 mov r1, r5 3e58: 6c13 mov r0, r4 3e5a: e3fffe67 bsr 0x3b28 // 3b28 break; 3e5e: 07a4 br 0x3da6 // 3da6 BLV_WINDOUT_CMD_READ_Processing(RecData,Len); 3e60: 6c57 mov r1, r5 3e62: 6c13 mov r0, r4 3e64: e3fffece bsr 0x3c00 // 3c00 break; 3e68: 079f br 0x3da6 // 3da6 BLV_DEVPROT_CMD_SET_Processing(RecData,Len); 3e6a: 6c57 mov r1, r5 3e6c: 6c13 mov r0, r4 3e6e: e3ffff13 bsr 0x3c94 // 3c94 break; 3e72: 079a br 0x3da6 // 3da6 BLV_DEVPROT_CMD_READ_Processing(RecData,Len); 3e74: 6c57 mov r1, r5 3e76: 6c13 mov r0, r4 3e78: e3ffff52 bsr 0x3d1c // 3d1c } 3e7c: 0795 br 0x3da6 // 3da6 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 : 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 3ea4: 1049 lrw r2, 0x200000bc // 3ec8 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 3eae: 64c0 cmphs r0, r3 3eb0: 0808 bt 0x3ec0 // 3ec0 { 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 3eba: 9300 ld.w r0, (r3, 0x0) 3ebc: e3fff13e bsr 0x2138 // 2138 } 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 : #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 { 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 Disassembly of section .text.EEPROM_ReadPara: 00003eec : * 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 3f0a: e3fff3bb bsr 0x2680 // 2680 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 3f18: 0872 bt 0x3ffc // 3ffc 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 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 3f30: e3fff3a8 bsr 0x2680 // 2680 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 3f3c: d86e0003 ld.b r3, (r14, 0x3) 3f40: 640e cmpne r3, r0 3f42: 085d bt 0x3ffc // 3ffc //校验成功 - 读取参数 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 3f54: 64c8 cmphs r2, r3 3f56: 0c48 bf 0x3fe6 // 3fe6 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 3f6a: 64c8 cmphs r2, r3 3f6c: 0c3f bf 0x3fea // 3fea 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 3f80: 64c8 cmphs r2, r3 3f82: 0c36 bf 0x3fee // 3fee 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 3f96: 64c8 cmphs r2, r3 3f98: 0c2d bf 0x3ff2 // 3ff2 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 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 3fae: 3000 movi r0, 0 3fb0: e3fffb62 bsr 0x3674 // 3674 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 3fb8: 3000 movi r0, 0 3fba: e3fffb5d bsr 0x3674 // 3674 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 3fc2: 3000 movi r0, 0 3fc4: e3fffb58 bsr 0x3674 // 3674 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 3fcc: 3000 movi r0, 0 3fce: e3fffb53 bsr 0x3674 // 3674 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 3fd8: e3fffb4e bsr 0x3674 // 3674 SYSCON_IWDCNT_Reload(); 3fdc: e3ffee64 bsr 0x1ca4 // 1ca4 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 c_rly.wind_LOW_vol = EEPROM_WINDLOW_OUT_Default; 3fea: 116b lrw r3, 0xbb8 // 4094 3fec: 07c1 br 0x3f6e // 3f6e c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default; 3fee: 116b lrw r3, 0x1770 // 4098 3ff0: 07ca br 0x3f84 // 3f84 c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default; 3ff2: ac4b st.h r2, (r4, 0x16) 3ff4: 07d4 br 0x3f9c // 3f9c c_rly.dev_port = POLLING_PORT; 3ff6: 3301 movi r3, 1 3ff8: a46b st.b r3, (r4, 0xb) 3ffa: 07d8 br 0x3faa // 3faa Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara Default!"); 3ffc: 1120 lrw r1, 0x4ebe // 407c 3ffe: 3000 movi r0, 0 4000: e3fffb3a bsr 0x3674 // 3674 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 400a: ac69 st.h r3, (r4, 0x12) c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default; 400c: 1163 lrw r3, 0x1770 // 4098 400e: ac6a st.h r3, (r4, 0x14) c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default; 4010: 1163 lrw r3, 0x2710 // 409c 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 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 4020: 3000 movi r0, 0 4022: e3fffb29 bsr 0x3674 // 3674 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 402a: 3000 movi r0, 0 402c: e3fffb24 bsr 0x3674 // 3674 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 4034: 3000 movi r0, 0 4036: e3fffb1f bsr 0x3674 // 3674 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 403e: 3000 movi r0, 0 4040: e3fffb1a bsr 0x3674 // 3674 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 404a: e3fffb15 bsr 0x3674 // 3674 SYSCON_IWDCNT_Reload(); 404e: e3ffee2b bsr 0x1ca4 // 1ca4 return 0x01; 4052: 3001 movi r0, 1 4054: 07c7 br 0x3fe2 // 3fe2 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 : /******************************************************************************* * 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 40c6: 638a subu r14, r2 40c8: ddce2000 st.w r14, (r14, 0x0) 40cc: 60ca subu r3, r2 40ce: 07fa br 0x40c2 // 40c2 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 40e6: 6138 addu r4, r14 40e8: 6cfb mov r3, r14 for(i=0;i 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 return 0x01; 4110: 3001 movi r0, 1 4112: 07ef br 0x40f0 // 40f0 Disassembly of section .text.EEPROM_WritePara: 00004114 : /******************************************************************************* * 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 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 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 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 4182: e3fff22f bsr 0x25e0 // 25e0 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 418c: e3ffff8a bsr 0x40a0 // 40a0 4190: 3840 cmpnei r0, 0 4192: 6d03 mov r4, r0 4194: 0c09 bf 0x41a6 // 41a6 Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para Err"); 4196: 102a lrw r1, 0x4ed7 // 41bc 4198: 3000 movi r0, 0 419a: e3fffa6d bsr 0x3674 // 3674 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 41a8: 3000 movi r0, 0 41aa: e3fffa65 bsr 0x3674 // 3674 return 0; 41ae: 07f9 br 0x41a0 // 41a0 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 : /******************************************************************************* * 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 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 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 ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); 420a: 1a02 addi r2, r14, 8 420c: 1009 lrw r0, 0x10000004 // 4230 420e: e3fff239 bsr 0x2680 // 2680 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 421a: d86e0003 ld.b r3, (r14, 0x3) 421e: 640e cmpne r3, r0 4220: 0be9 bt 0x41f2 // 41f2 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 4230: 10000004 .long 0x10000004 Disassembly of section .text.EEPROM_WriteMCUDevInfo: 00004234 : /******************************************************************************* * 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 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 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 : /******************************************************************************* * 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 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 #endif } 42a2: 1492 pop r4-r5, r15 42a4: 00004f11 .long 0x00004f11 Disassembly of section .text.EEPROM_Validate_MCUDevInfo: 000042a8 : * 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 { 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 { 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 { 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 42d6: 6c1b mov r0, r6 42d8: e3ffebc8 bsr 0x1a68 // 1a68 <__GI_strncmp> 42dc: 3840 cmpnei r0, 0 42de: 0c0c bf 0x42f6 // 42f6 { 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 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 } #endif } 42f0: 0405 br 0x42fa // 42fa U8_T save_flag = 0; 42f2: 3500 movi r5, 0 42f4: 07e2 br 0x42b8 // 42b8 if(save_flag == 0x01) 42f6: 3d41 cmpnei r5, 1 42f8: 0ff9 bf 0x42ea // 42ea } 42fa: 1493 pop r4-r6, r15 42fc: 00004f11 .long 0x00004f11 Disassembly of section .text.EEPROM_Init: 00004300 : { 4300: 14d2 push r4-r5, r15 EnIFCClk; //使能 IFC 时钟 4302: 1074 lrw r3, 0x20000060 // 4350 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 memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); 4316: 1090 lrw r4, 0x20000384 // 4354 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 if(g_Dip.addr != g_mcu_dev.dev_addr){ 4328: 106c lrw r3, 0x2000035c // 4358 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_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 if(rev == 0x00){ 433c: 3d40 cmpnei r5, 0 EEPROM_Validate_MCUDevInfo(&g_mcu_dev); 433e: 1006 lrw r0, 0x20000384 // 4354 if(rev == 0x00){ 4340: 0804 bt 0x4348 // 4348 EEPROM_Validate_MCUDevInfo(&g_mcu_dev); 4342: e3ffffb3 bsr 0x42a8 // 42a8 } 4346: 1492 pop r4-r5, r15 EEPROM_Default_MCUDevInfo(&g_mcu_dev); 4348: e3ffff96 bsr 0x4274 // 4274 } 434c: 07fd br 0x4346 // 4346 434e: 0000 bkpt 4350: 20000060 .long 0x20000060 4354: 20000384 .long 0x20000384 4358: 2000035c .long 0x2000035c Disassembly of section .text.TK_Sampling_prog: 0000435c : 435c: 14c4 push r4-r7 435e: 1072 lrw r3, 0x20000054 // 43a4 4360: 1012 lrw r0, 0x20000652 // 43a8 4362: 1093 lrw r4, 0x200004c3 // 43ac 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 437e: 3300 movi r3, 0 4380: 10ec lrw r7, 0x200003ac // 43b0 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 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 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 : 43b4: 1460 nie 43b6: 1462 ipush 43b8: 14d1 push r4, r15 43ba: 109e lrw r4, 0x20000068 // 4430 43bc: 9460 ld.w r3, (r4, 0x0) 43be: 3b40 cmpnei r3, 0 43c0: 080b bt 0x43d6 // 43d6 43c2: 3301 movi r3, 1 43c4: b460 st.w r3, (r4, 0x0) 43c6: 107c lrw r3, 0x20000440 // 4434 43c8: 8360 ld.b r3, (r3, 0x0) 43ca: 3b41 cmpnei r3, 1 43cc: 0805 bt 0x43d6 // 43d6 43ce: e3ffffc7 bsr 0x435c // 435c 43d2: 3301 movi r3, 1 43d4: a464 st.b r3, (r4, 0x4) 43d6: 1079 lrw r3, 0x20000058 // 4438 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 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 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 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 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 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 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 : 443c: 14c2 push r4-r5 443e: 3200 movi r2, 0 4440: 3000 movi r0, 0 4442: 1088 lrw r4, 0x200004e0 // 4460 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 4452: 2000 addi r0, 1 4454: 2200 addi r2, 1 4456: 644a cmpne r2, r1 4458: 0bf8 bt 0x4448 // 4448 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 : 4464: 1046 lrw r2, 0x20000068 // 447c 4466: 8264 ld.b r3, (r2, 0x4) 4468: 74cc zextb r3, r3 446a: 3b41 cmpnei r3, 1 446c: 0807 bt 0x447a // 447a 446e: 1025 lrw r1, 0x20000058 // 4480 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 : 4484: 14d4 push r4-r7, r15 4486: 1425 subi r14, r14, 20 4488: 1271 lrw r3, 0x200000ec // 45cc 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 4492: 8360 ld.b r3, (r3, 0x0) 4494: b861 st.w r3, (r14, 0x4) 4496: 12f0 lrw r7, 0x20000456 // 45d4 4498: 1270 lrw r3, 0x200000c9 // 45d8 449a: 83a0 ld.b r5, (r3, 0x0) 449c: 1270 lrw r3, 0x200000c8 // 45dc 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 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 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 44c6: 608c addu r2, r3 44c8: 0c37 bf 0x4536 // 4536 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 44d4: 4461 lsli r3, r4, 1 44d6: 5e2c addu r1, r6, r3 44d8: 1205 lrw r0, 0x2000011a // 45ec 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 44ea: 8940 ld.h r2, (r1, 0x0) 44ec: 748b sexth r2, r2 44ee: 64c9 cmplt r2, r3 44f0: 0c26 bf 0x453c // 453c 44f2: 1240 lrw r2, 0x20000444 // 45f0 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 4502: 60d0 addu r3, r4 4504: a320 st.b r1, (r3, 0x0) 4506: 117d lrw r3, 0x20000506 // 45f8 4508: 60d0 addu r3, r4 450a: a320 st.b r1, (r3, 0x0) 450c: 117c lrw r3, 0x20000580 // 45fc 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 451a: 3d40 cmpnei r5, 0 451c: 0852 bt 0x45c0 // 45c0 451e: 1139 lrw r1, 0x2000043c // 4600 4520: 9160 ld.w r3, (r1, 0x0) 4522: 3b40 cmpnei r3, 0 4524: 0806 bt 0x4530 // 4530 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 4536: 8920 ld.h r1, (r1, 0x0) 4538: 7445 zexth r1, r1 453a: 07c9 br 0x44cc // 44cc 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 4548: 3300 movi r3, 0 454a: 114e lrw r2, 0x2000043c // 4600 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 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 4574: 1140 lrw r2, 0x2000042a // 45f4 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 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 4590: 3300 movi r3, 0 4592: 103c lrw r1, 0x2000043c // 4600 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 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 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 45be: 079a br 0x44f2 // 44f2 45c0: 3d41 cmpnei r5, 1 45c2: 0bb7 bt 0x4530 // 4530 45c4: 102f lrw r1, 0x2000043c // 4600 45c6: 6cd7 mov r3, r5 45c8: 9100 ld.w r0, (r1, 0x0) 45ca: 07b0 br 0x452a // 452a 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 : 4604: 14d4 push r4-r7, r15 4606: 1421 subi r14, r14, 4 4608: 11d9 lrw r6, 0x20000068 // 46ec 460a: 8665 ld.b r3, (r6, 0x5) 460c: 3b41 cmpnei r3, 1 460e: 085f bt 0x46cc // 46cc 4610: 1158 lrw r2, 0x2000055c // 46f0 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 461e: 8120 ld.b r1, (r1, 0x0) 4620: 64c4 cmphs r1, r3 4622: 0855 bt 0x46cc // 46cc 4624: 3300 movi r3, 0 4626: a260 st.b r3, (r2, 0x0) 4628: 3500 movi r5, 0 462a: 11f4 lrw r7, 0x200000f0 // 46f8 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 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 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 4668: 740d zexth r0, r3 466a: 6090 addu r2, r4 466c: 1166 lrw r3, 0x20000652 // 4704 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 468c: 107f lrw r3, 0x200000ca // 4708 468e: 610c addu r4, r3 4690: 8c60 ld.h r3, (r4, 0x0) 4692: 3b06 cmphsi r3, 7 4694: 0806 bt 0x46a0 // 46a0 4696: 2300 addi r3, 1 4698: ac60 st.h r3, (r4, 0x0) 469a: 3201 movi r2, 1 469c: 107c lrw r3, 0x200004b1 // 470c 469e: a340 st.b r2, (r3, 0x0) 46a0: 2500 addi r5, 1 46a2: 3d51 cmpnei r5, 17 46a4: 0bc5 bt 0x462e // 462e 46a6: 107a lrw r3, 0x200004b1 // 470c 46a8: 8340 ld.b r2, (r3, 0x0) 46aa: 3a41 cmpnei r2, 1 46ac: 0810 bt 0x46cc // 46cc 46ae: 3200 movi r2, 0 46b0: a340 st.b r2, (r3, 0x0) 46b2: 3200 movi r2, 0 46b4: 1077 lrw r3, 0x20000058 // 4710 46b6: 1018 lrw r0, 0x2000057f // 4714 46b8: 10b8 lrw r5, 0x200005b8 // 4718 46ba: 10d4 lrw r6, 0x200000ca // 4708 46bc: 9360 ld.w r3, (r3, 0x0) 46be: b342 st.w r2, (r3, 0x8) 46c0: 1077 lrw r3, 0x20000054 // 471c 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 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 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 : 4720: 14c4 push r4-r7 4722: 1422 subi r14, r14, 8 4724: 1348 lrw r2, 0x200004de // 48c4 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 4732: 8120 ld.b r1, (r1, 0x0) 4734: 644c cmphs r3, r1 4736: 0cad bf 0x4890 // 4890 4738: 3300 movi r3, 0 473a: a260 st.b r3, (r2, 0x0) 473c: 1364 lrw r3, 0x2000043c // 48cc 473e: 9360 ld.w r3, (r3, 0x0) 4740: 3b40 cmpnei r3, 0 4742: 08a7 bt 0x4890 // 4890 4744: 1323 lrw r1, 0x20000456 // 48d0 4746: 6dc7 mov r7, r1 4748: b820 st.w r1, (r14, 0x0) 474a: 3200 movi r2, 0 474c: 1362 lrw r3, 0x2000011a // 48d4 474e: 1323 lrw r1, 0x200003ac // 48d8 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 475e: 13a0 lrw r5, 0x20000652 // 48dc 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 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 478a: 1296 lrw r4, 0x20000580 // 48e0 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 4798: 84a0 ld.b r5, (r4, 0x0) 479a: 8008 ld.b r0, (r0, 0x8) 479c: 6540 cmphs r0, r5 479e: 0806 bt 0x47aa // 47aa 47a0: 1212 lrw r0, 0x200004c3 // 48e8 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 47b6: 128a lrw r4, 0x20000652 // 48dc 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 47ce: 1288 lrw r4, 0x20000506 // 48ec 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 47dc: 84c0 ld.b r6, (r4, 0x0) 47de: 85a9 ld.b r5, (r5, 0x9) 47e0: 6594 cmphs r5, r6 47e2: 0806 bt 0x47ee // 47ee 47e4: 12a1 lrw r5, 0x200004c3 // 48e8 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 47f8: 11d9 lrw r6, 0x20000652 // 48dc 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 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 4820: 11cf lrw r6, 0x20000652 // 48dc 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 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 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 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 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 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 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 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 489e: 10b0 lrw r5, 0x20000652 // 48dc 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 48b8: 108c lrw r4, 0x200004c3 // 48e8 48ba: 3501 movi r5, 1 48bc: a4a0 st.b r5, (r4, 0x0) 48be: 6c03 mov r0, r0 48c0: 0797 br 0x47ee // 47ee 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 : 48f0: 14d2 push r4-r5, r15 48f2: 1050 lrw r2, 0x2000043c // 4930 48f4: 1090 lrw r4, 0x200004e0 // 4934 48f6: 9260 ld.w r3, (r2, 0x0) 48f8: 3b40 cmpnei r3, 0 48fa: 0c02 bf 0x48fe // 48fe 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 4906: 0c11 bf 0x4928 // 4928 4908: 9440 ld.w r2, (r4, 0x0) 490a: 9560 ld.w r3, (r5, 0x0) 490c: 64ca cmpne r2, r3 490e: 0c03 bf 0x4914 // 4914 4910: 9460 ld.w r3, (r4, 0x0) 4912: b560 st.w r3, (r5, 0x0) 4914: e3fffd94 bsr 0x443c // 443c 4918: 1069 lrw r3, 0x200000f4 // 493c 491a: 8360 ld.b r3, (r3, 0x0) 491c: 640c cmphs r3, r0 491e: 0804 bt 0x4926 // 4926 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 492a: b560 st.w r3, (r5, 0x0) 492c: b260 st.w r3, (r2, 0x0) 492e: 07fc br 0x4926 // 4926 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 : 4944: 1460 nie 4946: 1462 ipush 4948: 14d1 push r4, r15 494a: 1077 lrw r3, 0x20000064 // 49a4 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 4954: 8360 ld.b r3, (r3, 0x0) 4956: 3b41 cmpnei r3, 1 4958: 0820 bt 0x4998 // 4998 495a: e3fffd85 bsr 0x4464 // 4464 495e: e3fffd93 bsr 0x4484 // 4484 4962: e3fffe51 bsr 0x4604 // 4604 4966: e3fffedd bsr 0x4720 // 4720 496a: e3ffffc3 bsr 0x48f0 // 48f0 496e: 1070 lrw r3, 0x200004e0 // 49ac 4970: 9360 ld.w r3, (r3, 0x0) 4972: 3b40 cmpnei r3, 0 4974: 0c12 bf 0x4998 // 4998 4976: 106f lrw r3, 0x200000c4 // 49b0 4978: 9340 ld.w r2, (r3, 0x0) 497a: 3a40 cmpnei r2, 0 497c: 0c0e bf 0x4998 // 4998 497e: 106e lrw r3, 0x200004d8 // 49b4 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 4990: 104a lrw r2, 0x200004c3 // 49b8 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 : 49bc: 14d4 push r4-r7, r15 49be: 142d subi r14, r14, 52 49c0: 3201 movi r2, 1 49c2: 03ce lrw r6, 0x2000005c // 4c04 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 49dc: d84e0009 ld.b r2, (r14, 0x9) 49e0: 3a42 cmpnei r2, 2 49e2: 0c04 bf 0x49ea // 49ea 49e4: 3000 movi r0, 0 49e6: 140d addi r14, r14, 52 49e8: 1494 pop r4-r7, r15 49ea: 0397 lrw r4, 0x2000000c // 4c08 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 49f6: 3307 movi r3, 7 49f8: dc6e000b st.b r3, (r14, 0xb) 49fc: 037b lrw r3, 0x2dc6c00 // 4c0c 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 4a10: b063 st.w r3, (r0, 0xc) 4a12: 3201 movi r2, 1 4a14: 3101 movi r1, 1 4a16: 03bf lrw r5, 0x20000014 // 4c14 4a18: e3ffebf2 bsr 0x21fc // 21fc 4a1c: 95e0 ld.w r7, (r5, 0x0) 4a1e: 137f lrw r3, 0xbe9c0005 // 4c18 4a20: b760 st.w r3, (r7, 0x0) 4a22: 135f lrw r2, 0x30010 // 4c1c 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 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 4a90: e3ffeb68 bsr 0x2160 // 2160 4a94: 9400 ld.w r0, (r4, 0x0) 4a96: e3ffeb89 bsr 0x21a8 // 21a8 4a9a: c1807420 psrset ee, ie 4a9e: 3001 movi r0, 1 4aa0: 07a3 br 0x49e6 // 49e6 4aa2: 3b41 cmpnei r3, 1 4aa4: 0806 bt 0x4ab0 // 4ab0 4aa6: 3303 movi r3, 3 4aa8: dc6e000b st.b r3, (r14, 0xb) 4aac: 127d lrw r3, 0x16e3600 // 4c20 4aae: 07a8 br 0x49fe // 49fe 4ab0: 3b42 cmpnei r3, 2 4ab2: 0806 bt 0x4abe // 4abe 4ab4: 3301 movi r3, 1 4ab6: dc6e000b st.b r3, (r14, 0xb) 4aba: 127b lrw r3, 0xb71b00 // 4c24 4abc: 07a1 br 0x49fe // 49fe 4abe: 3b43 cmpnei r3, 3 4ac0: 0806 bt 0x4acc // 4acc 4ac2: 3300 movi r3, 0 4ac4: dc6e000b st.b r3, (r14, 0xb) 4ac8: 1278 lrw r3, 0x5b8d80 // 4c28 4aca: 079a br 0x49fe // 49fe 4acc: 3b44 cmpnei r3, 4 4ace: 0809 bt 0x4ae0 // 4ae0 4ad0: 3300 movi r3, 0 4ad2: dc6e000b st.b r3, (r14, 0xb) 4ad6: 1276 lrw r3, 0x54c720 // 4c2c 4ad8: b863 st.w r3, (r14, 0xc) 4ada: 3380 movi r3, 128 4adc: 4369 lsli r3, r3, 9 4ade: 0793 br 0x4a04 // 4a04 4ae0: 3b45 cmpnei r3, 5 4ae2: 0806 bt 0x4aee // 4aee 4ae4: 3300 movi r3, 0 4ae6: dc6e000b st.b r3, (r14, 0xb) 4aea: 1272 lrw r3, 0x3ffed0 // 4c30 4aec: 07f6 br 0x4ad8 // 4ad8 4aee: 3b46 cmpnei r3, 6 4af0: 0806 bt 0x4afc // 4afc 4af2: 3300 movi r3, 0 4af4: dc6e000b st.b r3, (r14, 0xb) 4af8: 126f lrw r3, 0x1fff68 // 4c34 4afa: 07ef br 0x4ad8 // 4ad8 4afc: 3b47 cmpnei r3, 7 4afe: 0b84 bt 0x4a06 // 4a06 4b00: 3300 movi r3, 0 4b02: dc6e000b st.b r3, (r14, 0xb) 4b06: 126d lrw r3, 0x1ffb8 // 4c38 4b08: 07e8 br 0x4ad8 // 4ad8 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 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 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 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 4b78: 1171 lrw r3, 0x7ff // 4c3c 4b7a: 648c cmphs r3, r2 4b7c: 0c03 bf 0x4b82 // 4b82 4b7e: 3300 movi r3, 0 4b80: 040f br 0x4b9e // 4b9e 4b82: 9849 ld.w r2, (r14, 0x24) 4b84: 9866 ld.w r3, (r14, 0x18) 4b86: 648c cmphs r3, r2 4b88: 080e bt 0x4ba4 // 4ba4 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 4b9e: dc6e000a st.b r3, (r14, 0xa) 4ba2: 0721 br 0x49e4 // 49e4 4ba4: 9849 ld.w r2, (r14, 0x24) 4ba6: 9865 ld.w r3, (r14, 0x14) 4ba8: 64c8 cmphs r2, r3 4baa: 0829 bt 0x4bfc // 4bfc 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 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 4bcc: 075e br 0x4a88 // 4a88 4bce: 9866 ld.w r3, (r14, 0x18) 4bd0: 648c cmphs r3, r2 4bd2: 0809 bt 0x4be4 // 4be4 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 4be4: 9849 ld.w r2, (r14, 0x24) 4be6: 9865 ld.w r3, (r14, 0x14) 4be8: 64c8 cmphs r2, r3 4bea: 0809 bt 0x4bfc // 4bfc 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 4bfc: 3300 movi r3, 0 4bfe: dc6e000a st.b r3, (r14, 0xa) 4c02: 07e2 br 0x4bc6 // 4bc6 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