Disassembled binary SDK output, direct from xtobjdis with a couple of tweaks

Tweaks to xtobjdis are hg-git sha 6da80c11f

Everything works except for wpa_auth.o & phy_chip_v6_ana.o disassemble
with some functions not correctly detected.
This commit is contained in:
Angus Gratton 2015-10-02 09:51:31 +10:00
parent 419f252d80
commit a9e3928c8d
77 changed files with 73774 additions and 0 deletions

View file

@ -0,0 +1,587 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.Lfunc001: movi a5, .Ldata001 # 4: 51ffff
l8ui a2, a5, 0 /* [.Ldata001] */ # 7: 220500
addi a3, a5, 32 /* .bss+0x20 */ # a: 32c520
addi a2, a2, 1 /* [.Ldata001]+0x1 */ # d: 1b22
extui a2, a2, 0, 8 # f: 202074
bltui a2, 5, .Lbr001 # 12: b65208
addi a3, a2, -1 # 15: 0b32
s8i a3, a5, 0 /* a3 -> [.Ldata001] */ # 17: 324500
movi a2, 0 /* 0x00000000 */ # 1a: 0c02
ret /* 0x00000000 */ # 1c: 0df0
.Lbr001: s8i a2, a5, 0 /* a2 -> [.Ldata001] */ # 1e: 224500
l8ui a2, a5, 1 /* [.Ldata002] */ # 21: 220501
addi a4, a2, 1 /* [.Ldata002]+0x1 */ # 24: 1b42
addx8 a2, a2, a3 # 26: 3022b0
extui a4, a4, 0, 8 # 29: 404074
bltui a4, 4, .Lbr002 # 2c: b64401
movi a4, 0 /* 0x00000000 */ # 2f: 0c04
.Lbr002: s8i a4, a5, 1 /* a4 -> [.Ldata002] */ # 31: 424501
ret # 34: 0df0
.literal_position # 38: 24000000
# 3c: 00000000
# 40: 30000000
# 44: 00000000
# 48: 00000000
# 4c: 00000000
# 50: 00000000
# Function @ .text+0x54
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.Lfunc002: addi sp, sp, -16 /* (local0) */ # 54: 12c1f0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 57: 0921
call0 .Lfunc001 # 59: 85faff
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 5c: 2901
bnez a2, .Lbr003 # 5e: cca2
movi a2, .Lstr004 # 60: 21f6ff
call0 printf # 63: 01f8ffc0
# 67: 0000
j .Lbr005 # 69: 060b00
.Lbr003: mov a3, sp /* (local0) */ # 6c: 3d01
addi a4, sp, 4 /* (local1) */ # 6e: 4b41
movi a5, 0 /* 0x00000000 */ # 70: 0c05
s32i a5, a2, 0 # 72: 5902
movi a2, .Ldata001 # 74: 21f2ff
s32i a5, sp, 4 /* 0x00000000 -> [(local1)] */ # 77: 5911
l32i a2, a2, 16 /* [.Ldata004] */ # 79: 2842
call0 xQueueGenericSendFromISR # 7b: 01f3ffc0
# 7f: 0000
mov a3, a2 # 81: 3d02
beqi a2, 1, .Lbr004 # 83: 261208
movi a2, .Lstr005 # 86: 21eeff
call0 printf # 89: 01f0ffc0
# 8d: 0000
.Lbr004: l32i a3, sp, 4 /* [(local1)] */ # 8f: 3811
beqz a3, .Lbr005 # 91: 8c43
call0 vTaskSwitchContext # 93: 01efffc0
# 97: 0000
.Lbr005: l32i a0, sp, 8 /* [(local2)] */ # 99: 0821
addi sp, sp, 16 /* (top of frame) */ # 9b: 12c110
ret # 9e: 0df0
.section .bss, "aw", @nobits
.Ldata001: .byte 0x00
.Ldata002: .byte 0x00
.byte 0x00, 0x00
.Ldata003: .word 0x00000000 # 4: 00000000
.global sdk_debug_timer
.type sdk_debug_timer, @object
sdk_debug_timer:
.word 0x00000000 # 8: 00000000
.global sdk_debug_timerfn
.type sdk_debug_timerfn, @object
sdk_debug_timerfn:
.word 0x00000000 # c: 00000000
.Ldata004: .word 0x00000000 # 10: 00000000
.space 44
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# Function @ .irom0.text+0xc
# Local variables/stack:
# (local0): word[4] @ -0x10
.Lfunc003: addi sp, sp, -16 /* (local0) */ # c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901
call0 vPortEnterCritical # 11: 01fcffc0
# 15: 0000
movi a2, .Ldata001 # 17: 21faff
l8ui a0, a2, 0 /* [.Ldata001] */ # 1a: 020200
addi a0, a0, -1 /* [.Ldata001]-0x1 */ # 1d: 0b00
s8i a0, a2, 0 /* [.Ldata001]-0x1 -> [.Ldata001] */ # 1f: 024200
call0 vPortExitCritical # 22: 01f9ffc0
# 26: 0000
l32i a0, sp, 0 /* [(local0)] */ # 28: 0801
addi sp, sp, 16 /* (top of frame) */ # 2a: 12c110
ret # 2d: 0df0
.literal_position # 30: 00060060
# Function @ .irom0.text+0x34
.Lfunc004: movi a3, 0x60000600 # 34: 31ffff
memw # 37: c02000
s32i a2, a3, 48 /* arg0 -> [0x60000630] */ # 3a: 29c3
ret /* arg0 */ # 3c: 0df0
.literal_position # 40: 00060060
# Function @ .irom0.text+0x44
# Local variables/stack:
# (local0): word[4] @ -0x10
.Lfunc005: addi sp, sp, -16 /* (local0) */ # 44: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 47: 0901
movi a4, 0x60000600 # 49: 41fdff
memw # 4c: c02000
l32i a4, a4, 36 /* [0x60000624] */ # 4f: 4894
sub a0, a2, a4 # 51: 4002c0
addi a3, a0, -40 # 54: 32c0d8
bgei a3, 1, .Lbr007 # 57: e61314
bgei a0, 1, .Lbr006 # 5a: e61008
addi a2, a4, 40 /* [0x60000624]+0x28 */ # 5d: 22c428
call0 .Lfunc004 # 60: 05fdff
j .Lbr008 # 63: c60200
.Lbr006: addi a2, a2, 44 /* arg0+0x2c */ # 66: 22c22c
call0 .Lfunc004 # 69: 85fcff
j .Lbr008 # 6c: 860000
.Lbr007: call0 .Lfunc004 # 6f: 45fcff
.Lbr008: l32i a0, sp, 0 /* [(local0)] */ # 72: 0801
addi sp, sp, 16 /* (top of frame) */ # 74: 12c110
ret # 77: 0df0
.balign 4
# Function @ .irom0.text+0x7c
.global sdk_ets_timer_setfn
.type sdk_ets_timer_setfn, @function
sdk_ets_timer_setfn:
s32i a3, a2, 16 /* arg1 -> [arg0+0x10] */ # 7c: 3942
s32i a4, a2, 24 /* arg2 -> [arg0+0x18] */ # 7e: 4962
movi a5, -1 /* 0xffffffff */ # 80: 7cf5
movi a6, 0 /* 0x00000000 */ # 82: 0c06
s32i a6, a2, 8 /* 0x00000000 -> [arg0+0x8] */ # 84: 6922
s32i a6, a2, 12 /* 0x00000000 -> [arg0+0xc] */ # 86: 6932
s32i a5, a2, 0 /* 0xffffffff -> [arg0] */ # 88: 5902
ret /* arg0 */ # 8a: 0df0
.literal_position # 8c: 00000000
# 90: 00000000
# 94: 08000000
# 98: 00000000
# Function @ .irom0.text+0x9c
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.Lfunc006: addi sp, sp, -16 /* (local0) */ # 9c: 12c1f0
movi a6, .Ldata001 # 9f: 61fbff
s32i a0, sp, 4 /* a0 -> [(local1)] */ # a2: 0911
l32i a0, a6, 4 /* [.Ldata003] */ # a4: 0816
movi a5, 0 /* 0x00000000 */ # a6: 0c05
beqz a0, .Lbr010 # a8: 9c00
.Lbr009: l32i a4, a0, 8 # aa: 4820
sub a4, a2, a4 # ac: 4042c0
blti a4, 1, .Lbr011 # af: a6140b
mov a5, a0 # b2: 5d00
l32i a0, a0, 0 # b4: 0800
bnez a0, .Lbr009 # b6: 5600ff
j .Lbr011 # b9: 460000
.Lbr010: movi a5, 0 /* 0x00000000 */ # bc: 0c05
.Lbr011: s32i a3, sp, 0 /* arg1 -> [(local0)] */ # be: 3901
s32i a0, a3, 0 /* a0 -> [arg1] */ # c0: 0903
s32i a2, a3, 8 /* arg0 -> [arg1+0x8] */ # c2: 2923
beqz a5, .Lbr012 # c4: 8c35
s32i a3, a5, 0 # c6: 3905
j .Lbr013 # c8: 060200
.Lbr012: l32i a5, sp, 0 /* [(local0)] */ # cb: 5801
s32i a5, a6, 4 /* [(local0)] -> [.Ldata003] */ # cd: 5916
call0 .Lfunc005 # cf: 45f7ff
l32i a3, sp, 0 /* [(local0)] */ # d2: 3801
.Lbr013: l32i a6, a3, 0 # d4: 6803
l32i a0, sp, 4 /* [(local1)] */ # d6: 0811
bne a6, a3, .Lbr015 # d8: 379611
movi a2, .Lstr001 # db: 21edff
movi a3, .Lstr002 # de: 31edff
movi a4, 209 /* 0x000000d1 */ # e1: 42a0d1
call0 ets_printf # e4: 01edffc0
# e8: 0000
.Lbr014: j .Lbr014 /* (halt) */ # ea: 06ffff
.Lbr015: addi sp, sp, 16 /* (top of frame) */ # ed: 12c110
ret # f0: 0df0
.literal_position # f4: 14000000
# f8: 404b4c00
# fc: 40420f00
# 100: 00060060
# 104: 00000000
# 108: 00000000
# 10c: 00000000
# 110: 00000000
# Function @ .irom0.text+0x114
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_ets_timer_arm_ms_us
.type sdk_ets_timer_arm_ms_us, @function
sdk_ets_timer_arm_ms_us:
addi sp, sp, -16 /* (local0) */ # 114: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 117: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 119: d921
mov a12, a2 /* arg0 */ # 11b: cd02
mov a2, a3 /* arg1 */ # 11d: 2d03
mov a3, a4 /* arg2 */ # 11f: 3d04
l32i a4, a12, 0 /* [arg0] */ # 121: 480c
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 123: 0901
beqi a4, -1, .Lbr017 # 125: 26040d
movi a2, .Lstr003 # 128: 21f3ff
mov a3, a12 /* arg0 */ # 12b: 3d0c
call0 printf # 12d: 01f5ffc0
# 131: 0000
.Lbr016: j .Lbr016 /* (halt) */ # 133: 06ffff
.Lbr017: bnei a5, 1, .Lbr018 # 136: 661505
movi a0, 1000 /* 0x000003e8 */ # 139: 02a3e8
mull a2, a2, a0 # 13c: 002282
.Lbr018: beqz a2, .Lbr020 # 13f: ace2
s32i a3, sp, 12 /* arg2 -> [(local3)] */ # 141: 3931
movi a4, 858 /* 0x0000035a */ # 143: 42a35a
bgeu a4, a2, .Lbr019 # 146: 27b411
srli a13, a2, 2 # 149: 20d241
extui a0, a2, 0, 2 # 14c: 200014
addx4 a0, a0, a0 # 14f: 0000a0
addx4 a13, a13, a13 # 152: d0dda0
addx4 a13, a13, a0 # 155: 00dda0
j .Lbr021 # 158: c60500
.Lbr019: movi a4, 0x004c4b40 # 15b: 41e7ff
movi a3, 0x000f4240 # 15e: 31e7ff
mull a2, a2, a4 # 161: 402282
call0 __udivsi3 # 164: 01e9ffc0
# 168: 0000
mov a13, a2 # 16a: dd02
l32i a3, sp, 12 /* [(local3)] */ # 16c: 3831
j .Lbr021 # 16e: 460000
.Lbr020: movi a13, 0 /* 0x00000000 */ # 171: 0c0d
.Lbr021: beqz a3, .Lbr022 # 173: 8c03
s32i a13, a12, 12 /* a13 -> [arg0+0xc] */ # 175: d93c
.Lbr022: call0 vPortEnterCritical # 177: 01e5ffc0
# 17b: 0000
mov a3, a12 /* arg0 */ # 17d: 3d0c
movi a2, 0x60000600 # 17f: 21e0ff
memw # 182: c02000
l32i a2, a2, 36 /* [0x60000624] */ # 185: 2892
add a2, a13, a2 # 187: 2a2d
call0 .Lfunc006 # 189: 05f1ff
call0 vPortExitCritical # 18c: 01e1ffc0
# 190: 0000
l32i a12, sp, 4 /* [(local1)] */ # 192: c811
l32i a13, sp, 8 /* [(local2)] */ # 194: d821
l32i a0, sp, 0 /* [(local0)] */ # 196: 0801
addi sp, sp, 16 /* (top of frame) */ # 198: 12c110
ret # 19b: 0df0
.balign 4
# Function @ .irom0.text+0x1a0
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ets_timer_arm_us
.type sdk_ets_timer_arm_us, @function
sdk_ets_timer_arm_us:
movi a5, 0 /* 0x00000000 */ # 1a0: 0c05
addi sp, sp, -16 /* (local0) */ # 1a2: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1a5: 0901
call0 sdk_ets_timer_arm_ms_us # 1a7: 050000
l32i a0, sp, 0 /* [(local0)] */ # 1aa: 0801
addi sp, sp, 16 /* (top of frame) */ # 1ac: 12c110
ret # 1af: 0df0
.balign 4
# Function @ .irom0.text+0x1b4
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ets_timer_arm
.type sdk_ets_timer_arm, @function
sdk_ets_timer_arm:
movi a5, 1 /* 0x00000001 */ # 1b4: 0c15
addi sp, sp, -16 /* (local0) */ # 1b6: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1b9: 0901
call0 sdk_ets_timer_arm_ms_us # 1bb: 050000
l32i a0, sp, 0 /* [(local0)] */ # 1be: 0801
addi sp, sp, 16 /* (top of frame) */ # 1c0: 12c110
ret # 1c3: 0df0
.literal_position # 1c8: 00000000
# 1cc: 00000000
# 1d0: 00000000
# Function @ .irom0.text+0x1d4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_ets_timer_disarm
.type sdk_ets_timer_disarm, @function
sdk_ets_timer_disarm:
addi sp, sp, -16 /* (local0) */ # 1d4: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1d7: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d9: 0901
mov a12, a2 /* arg0 */ # 1db: cd02
call0 vPortEnterCritical # 1dd: 01fbffc0
# 1e1: 0000
movi a5, .Ldata001 # 1e3: 51f9ff
l32i a0, a5, 4 /* [.Ldata003] */ # 1e6: 0815
movi a2, 0 /* 0x00000000 */ # 1e8: 0c02
beqz a0, .Lbr024 # 1ea: 8cb0
.Lbr023: beq a12, a0, .Lbr025 # 1ec: 071c0b
mov a2, a0 # 1ef: 2d00
l32i a0, a0, 0 # 1f1: 0800
bnez a0, .Lbr023 # 1f3: 5650ff
j .Lbr027 # 1f6: 860300
.Lbr024: movi a2, 0 /* 0x00000000 */ # 1f9: 0c02
.Lbr025: beqz a0, .Lbr027 # 1fb: 8c90
l32i a0, a0, 0 # 1fd: 0800
bnez a2, .Lbr026 # 1ff: cc32
s32i a0, a5, 4 /* a0 -> [.Ldata003] */ # 201: 0915
j .Lbr027 # 203: 460000
.Lbr026: s32i a0, a2, 0 # 206: 0902
.Lbr027: call0 vPortExitCritical # 208: 01f2ffc0
# 20c: 0000
movi a0, 0 /* 0x00000000 */ # 20e: 0c00
movi a2, -1 /* 0xffffffff */ # 210: 7cf2
s32i a2, a12, 0 /* 0xffffffff -> [arg0] */ # 212: 290c
s32i a0, a12, 12 /* 0x00000000 -> [arg0+0xc] */ # 214: 093c
l32i a12, sp, 4 /* [(local1)] */ # 216: c811
l32i a0, sp, 0 /* [(local0)] */ # 218: 0801
addi sp, sp, 16 /* (top of frame) */ # 21a: 12c110
ret /* 0xffffffff */ # 21d: 0df0
.literal_position # 220: 00000000
# 224: 08000000
# 228: 00000000
# Function @ .irom0.text+0x22c
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ets_timer_done
.type sdk_ets_timer_done, @function
sdk_ets_timer_done:
addi sp, sp, -16 /* (local0) */ # 22c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 22f: 0901
l32i a0, a2, 0 /* [arg0] */ # 231: 0802
beqi a0, -1, .Lbr029 # 233: 260011
movi a2, .Lstr001 # 236: 21faff
movi a3, .Lstr002 # 239: 31faff
movi a4, 288 /* 0x00000120 */ # 23c: 42a120
call0 ets_printf # 23f: 01faffc0
# 243: 0000
.Lbr028: j .Lbr028 /* (halt) */ # 245: 06ffff
.Lbr029: movi a3, 0 /* 0x00000000 */ # 248: 0c03
movi a4, 0 /* 0x00000000 */ # 24a: 0c04
call0 sdk_ets_timer_setfn # 24c: 050000
l32i a0, sp, 0 /* [(local0)] */ # 24f: 0801
addi sp, sp, 16 /* (top of frame) */ # 251: 12c110
ret # 254: 0df0
.literal_position # 258: 00060060
# 25c: 00000000
# 260: 00000000
# 264: 00000000
# 268: 00060060
# 26c: 00000000
# 270: 00000000
# 274: 00000000
# 278: 00000000
# Function @ .irom0.text+0x27c
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_ets_timer_handler_isr
.type sdk_ets_timer_handler_isr, @function
sdk_ets_timer_handler_isr:
addi sp, sp, -16 /* (local0) */ # 27c: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 27f: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 281: 0901
call0 vPortEnterCritical # 283: 01faffc0
# 287: 0000
movi a3, 0x60000600 # 289: 31f3ff
memw # 28c: c02000
movi a0, .Ldata001 # 28f: 01f3ff
l32i a5, a3, 36 /* [0x60000624] */ # 292: 5893
.Lbr030: l32i a12, a0, 4 /* [.Ldata003] */ # 294: c810
beqz a12, .Lbr033 # 296: 162c05
l32i a2, a12, 8 /* [[.Ldata003]+0x8] */ # 299: 282c
sub a4, a2, a5 # 29b: 5042c0
bgei a4, 1, .Lbr032 # 29e: e61445
movi a5, -1 /* 0xffffffff */ # 2a1: 7cf5
movi a7, .Ldata001 # 2a3: 71efff
l32i a8, a12, 16 /* [[.Ldata003]+0x10] */ # 2a6: 884c
s32i a8, a7, 12 /* [[.Ldata003]+0x10] -> [sdk_debug_timerfn] */ # 2a8: 8937
s32i a12, a7, 8 /* [.Ldata003] -> [sdk_debug_timer] */ # 2aa: c927
l32i a6, a12, 0 /* [[.Ldata003]] */ # 2ac: 680c
s32i a6, a7, 4 /* [[.Ldata003]] -> [.Ldata003] */ # 2ae: 6917
s32i a5, a12, 0 /* 0xffffffff -> [[.Ldata003]] */ # 2b0: 590c
call0 vPortExitCritical # 2b2: 01efffc0
# 2b6: 0000
l32i a0, a12, 16 /* [[.Ldata003]+0x10] */ # 2b8: 084c
l32i a2, a12, 24 /* [[.Ldata003]+0x18] */ # 2ba: 286c
callx0 a0 /* [[.Ldata003]+0x10] */ # 2bc: c00000
call0 vPortEnterCritical # 2bf: 01edffc0
# 2c3: 0000
l32i a2, a12, 0 /* [[.Ldata003]] */ # 2c5: 280c
l32i a0, a12, 12 /* [[.Ldata003]+0xc] */ # 2c7: 083c
bnei a2, -1, .Lbr031 # 2c9: 66020c
beqz a0, .Lbr031 # 2cc: 8c90
l32i a2, a12, 8 /* [[.Ldata003]+0x8] */ # 2ce: 282c
mov a3, a12 /* [.Ldata003] */ # 2d0: 3d0c
add a2, a2, a0 # 2d2: 0a22
s32i a2, a12, 8 /* a2 -> [[.Ldata003]+0x8] */ # 2d4: 292c
call0 .Lfunc006 # 2d6: 45dcff
.Lbr031: movi a0, .Ldata001 # 2d9: 01e2ff
memw # 2dc: c02000
movi a3, 0x60000600 # 2df: 31e2ff
l32i a5, a3, 36 /* [0x60000624] */ # 2e2: 5893
j .Lbr030 # 2e4: 06ebff
.Lbr032: beqz a12, .Lbr033 # 2e7: 8c1c
call0 .Lfunc005 # 2e9: 85d5ff
.Lbr033: call0 vPortExitCritical # 2ec: 01e3ffc0
# 2f0: 0000
l32i a12, sp, 4 /* [(local1)] */ # 2f2: c811
l32i a0, sp, 0 /* [(local0)] */ # 2f4: 0801
addi sp, sp, 16 /* (top of frame) */ # 2f6: 12c110
ret # 2f9: 0df0
.literal_position # 2fc: 00000000
# 300: 00000000
# Function @ .irom0.text+0x304
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.Lfunc007: addi sp, sp, -16 /* (local0) */ # 304: 12c1f0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 307: c921
movi a12, .Ldata001 # 309: c1fcff
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 30c: 0911
.Lbr034: l32i a2, a12, 16 /* [.Ldata004] */ # 30e: 284c
mov a3, sp /* (local0) */ # 310: 3d01
movi a4, -1 /* 0xffffffff */ # 312: 7cf4
movi a5, 0 /* 0x00000000 */ # 314: 0c05
call0 xQueueGenericReceive # 316: 01faffc0
# 31a: 0000
bnei a2, 1, .Lbr034 # 31c: 6612ee
l32i a0, sp, 0 /* [(local0)] */ # 31f: 0801
l32i a0, a0, 0 /* [[(local0)]] */ # 321: 0800
bnez a0, .Lbr035 # 323: cc30
movi a2, 0 /* 0x00000000 */ # 325: 0c02
call0 sdk_ets_timer_handler_isr # 327: 050000
.Lbr035: call0 .Lfunc003 # 32a: 05ceff
j .Lbr034 # 32d: 46f7ff
.literal_position # 330: 00000000
# 334: 54000000
# 338: 00000000
# 33c: 40000000
# 340: 04030000
# 344: 50000000
# 348: 00feef3f
# 34c: 00060060
# 350: 00000000
# 354: 00000000
# 358: 00000000
# 35c: 00000000
# 360: 00000000
# Function @ .irom0.text+0x364
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word[3] @ -0x1c
# (local2): word @ -0x10
# (local3): word[3] @ -0xc
.global sdk_ets_timer_init
.type sdk_ets_timer_init, @function
sdk_ets_timer_init:
movi a3, .Lfunc002 # 364: 31f4ff
addi sp, sp, -32 /* (local0) */ # 367: 12c1e0
movi a2, .Ldata001 # 36a: 21f1ff
s32i a0, sp, 20 /* a0 -> [(local3)] */ # 36d: 0951
movi a0, 0 /* 0x00000000 */ # 36f: 0c00
s32i a0, a2, 4 /* 0x00000000 -> [.Ldata003] */ # 371: 0912
movi a2, 10 /* 0x0000000a */ # 373: 0ca2
call0 _xt_isr_attach # 375: 01f6ffc0
# 379: 0000
movi a2, 4 /* 0x00000004 */ # 37b: 0c42
movi a3, 4 /* 0x00000004 */ # 37d: 0c43
movi a4, 0 /* 0x00000000 */ # 37f: 0c04
call0 xQueueGenericCreate # 381: 01f4ffc0
# 385: 0000
movi a5, 0 /* 0x00000000 */ # 387: 0c05
movi a6, 12 /* 0x0000000c */ # 389: 0cc6
addi a7, sp, 16 /* (local2) */ # 38b: 72c110
movi a4, .Ldata001 # 38e: 41eaff
movi a3, 0 /* 0x00000000 */ # 391: 0c03
s32i a2, a4, 16 /* a2 -> [.Ldata004] */ # 393: 2944
movi a4, 200 /* 0x000000c8 */ # 395: 42a0c8
s32i a3, sp, 0 /* 0x00000000 -> [(local0)] */ # 398: 3901
s32i a3, sp, 4 /* 0x00000000 -> [(local1)] */ # 39a: 3911
movi a2, .Lfunc007 # 39c: 21e9ff
movi a3, .Lstr006 # 39f: 31e7ff
call0 xTaskGenericCreate # 3a2: 01edffc0
# 3a6: 0000
movi a2, .Lstr007 # 3a8: 21e7ff
l32i a3, sp, 16 /* [(local2)] */ # 3ab: 3841
movi a4, 12 /* 0x0000000c */ # 3ad: 0cc4
movi a5, 200 /* 0x000000c8 */ # 3af: 52a0c8
call0 printf # 3b2: 01eaffc0
# 3b6: 0000
movi a6, 0x3feffe00 # 3b8: 61e4ff
movi a9, 0x60000600 # 3bb: 91e4ff
memw # 3be: c02000
movi a8, 0 /* 0x00000000 */ # 3c1: 0c08
s32i a8, a9, 48 /* 0x00000000 -> [0x60000630] */ # 3c3: 89c9
movi a10, 132 /* 0x00000084 */ # 3c5: a2a084
memw # 3c8: c02000
s32i a10, a9, 40 /* 0x00000084 -> [0x60000628] */ # 3cb: a9a9
memw # 3cd: c02000
s32i a8, a9, 32 /* 0x00000000 -> [0x60000620] */ # 3d0: 8989
movi a7, 4 /* 0x00000004 */ # 3d2: 0c47
memw # 3d4: c02000
l32i a5, a6, 0x204 /* [0x3ff00004] */ # 3d7: 522681
or a5, a5, a7 # 3da: 705520
memw # 3dd: c02000
s32i a5, a6, 0x204 /* a5 -> [0x3ff00004] */ # 3e0: 526681
movi a2, 1024 /* 0x00000400 */ # 3e3: 22a400
call0 sdk__xt_isr_unmask # 3e6: 01deffc0
# 3ea: 0000
l32i a0, sp, 20 /* [(local3)] */ # 3ec: 0851
addi sp, sp, 32 /* (top of frame) */ # 3ee: 12c120
ret # 3f1: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "%s %s \n" # 0: 25732025
# 4: 73200a00
.Lstr002: .asciz "ets_timer.c" # 8: 6574735f
# c: 74696d65
# 10: 722e6300
.Lstr003: .asciz "arm new %x %x\n" # 14: 61726d20
# 18: 6e657720
# 1c: 25782025
# 20: 780a00
.balign 4
.Lstr004: .asciz "TIMQ_NUL\n" # 24: 54494d51
# 28: 5f4e554c
# 2c: 0a00
.balign 4
.Lstr005: .asciz "TIMQ_FL:%d!!" # 30: 54494d51
# 34: 5f464c3a
# 38: 25642121
# 3c: 00
.balign 4
.Lstr006: .asciz "rtc_timer_task" # 40: 7274635f
# 44: 74696d65
# 48: 725f7461
# 4c: 736b00
.balign 4
.Lstr007: .asciz "frc2_timer_task_hdl:%x, prio:%d, stack:%d\n" # 50: 66726332
# 54: 5f74696d
# 58: 65725f74
# 5c: 61736b5f
# 60: 68646c3a
# 64: 25782c20
# 68: 7072696f
# 6c: 3a25642c
# 70: 20737461
# 74: 636b3a25
# 78: 640a00

150
binary_sdk/libmain/misc.S Normal file
View file

@ -0,0 +1,150 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.global sdk_os_get_cpu_frequency
.type sdk_os_get_cpu_frequency, @function
sdk_os_get_cpu_frequency:
movi a2, .Ldata001 # 4: 21ffff
l32i a2, a2, 0 /* [.Ldata001] */ # 7: 2802
ret /* [.Ldata001] */ # 9: 0df0
.section .data, "aw", @progbits
.Ldata001: .word 0x00000050 # 0: 50000000
.section .bss, "aw", @nobits
.global sdk__putc1
.type sdk__putc1, @object
sdk__putc1: .word 0x00000000 # 0: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# Function @ .irom0.text+0xc
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_ets_delay_us
.type sdk_ets_delay_us, @function
sdk_ets_delay_us:
.global sdk_os_delay_us
.type sdk_os_delay_us, @function
sdk_os_delay_us:
addi sp, sp, -16 /* (local0) */ # c: 12c1f0
s32i a13, sp, 8 /* a13 -> [(local2)] */ # f: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 11: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 13: 0901
mov a12, a2 /* arg0 */ # 15: cd02
call0 xthal_get_ccount # 17: 01fbffc0
# 1b: 0000
movi a0, .Ldata001 # 1d: 01f8ff
l32i a0, a0, 0 /* [.Ldata001] */ # 20: 0800
mov a13, a2 # 22: dd02
mull a12, a0, a12 # 24: c0c082
.Lbr001: call0 xthal_get_ccount # 27: 01f8ffc0
# 2b: 0000
sub a3, a2, a13 # 2d: d032c0
bltu a3, a12, .Lbr001 # 30: c733f3
l32i a12, sp, 4 /* [(local1)] */ # 33: c811
l32i a13, sp, 8 /* [(local2)] */ # 35: d821
l32i a0, sp, 0 /* [(local0)] */ # 37: 0801
addi sp, sp, 16 /* (top of frame) */ # 39: 12c110
ret # 3c: 0df0
.literal_position # 40: 00000000
# Function @ .irom0.text+0x44
.global sdk_ets_update_cpu_frequency
.type sdk_ets_update_cpu_frequency, @function
sdk_ets_update_cpu_frequency:
.global sdk_os_update_cpu_frequency
.type sdk_os_update_cpu_frequency, @function
sdk_os_update_cpu_frequency:
movi a3, .Ldata001 # 44: 31ffff
s32i a2, a3, 0 /* arg0 -> [.Ldata001] */ # 47: 2903
ret /* arg0 */ # 49: 0df0
.literal_position # 4c: 00000000
# Function @ .irom0.text+0x50
.global sdk_os_install_putc1
.type sdk_os_install_putc1, @function
sdk_os_install_putc1:
movi a3, sdk__putc1 # 50: 31ffff
s32i a2, a3, 0 /* arg0 -> [sdk__putc1] */ # 53: 2903
ret /* arg0 */ # 55: 0df0
.literal_position # 58: 00000000
# Function @ .irom0.text+0x5c
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_os_putc
.type sdk_os_putc, @function
sdk_os_putc:
addi sp, sp, -16 /* (local0) */ # 5c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5f: 0901
movi a0, sdk__putc1 # 61: 01fdff
l32i a0, a0, 0 /* [sdk__putc1] */ # 64: 0800
callx0 a0 /* [sdk__putc1] */ # 66: c00000
l32i a0, sp, 0 /* [(local0)] */ # 69: 0801
addi sp, sp, 16 /* (top of frame) */ # 6b: 12c110
ret # 6e: 0df0
.literal_position # 70: 00020060
# Function @ .irom0.text+0x74
.global sdk_gpio_output_set
.type sdk_gpio_output_set, @function
sdk_gpio_output_set:
movi a6, 0x60000200 # 74: 61ffff
memw # 77: c02000
s32i a2, a6, 0x104 /* arg0 -> [0x60000304] */ # 7a: 226641
memw # 7d: c02000
s32i a3, a6, 0x108 /* arg1 -> [0x60000308] */ # 80: 326642
memw # 83: c02000
s32i a4, a6, 0x110 /* arg2 -> [0x60000310] */ # 86: 426644
memw # 89: c02000
s32i a5, a6, 0x114 /* arg3 -> [0x60000314] */ # 8c: 526645
ret /* arg0 */ # 8f: 0df0
.literal_position # 94: 00060060
# 98: ffffdfff
# Function @ .irom0.text+0x9c
.global sdk_rtc_get_reset_reason
.type sdk_rtc_get_reset_reason, @function
sdk_rtc_get_reset_reason:
movi a4, 0x60000600 # 9c: 41feff
memw # 9f: c02000
l32i a2, a4, 0x114 /* [0x60000714] */ # a2: 222445
extui a2, a2, 0, 4 # a5: 202034
bnei a2, 5, .Lbr003 # a8: 665224
memw # ab: c02000
l32i a3, a4, 0x118 /* [0x60000718] */ # ae: 322446
extui a3, a3, 8, 6 # b1: 303854
bnei a3, 1, .Lbr002 # b4: 661304
movi a2, 6 /* 0x00000006 */ # b7: 0c62
j .Lbr003 # b9: c60400
.Lbr002: memw # bc: c02000
l32i a6, a4, 0x118 /* [0x60000718] */ # bf: 622446
movi a5, 0 /* 0x00000000 */ # c2: 0c05
extui a6, a6, 8, 6 # c4: 606854
addi a6, a6, -8 # c7: 62c6f8
movnez a2, a5, a6 # ca: 602593
extui a2, a2, 0, 8 # cd: 202074
.Lbr003: movi a8, 0xffdfffff # d0: 81f2ff
memw # d3: c02000
l32i a7, a4, 0x108 /* [0x60000708] */ # d6: 722442
and a7, a7, a8 # d9: 807710
memw # dc: c02000
s32i a7, a4, 0x108 /* a7 -> [0x60000708] */ # df: 726442
ret # e2: 0df0

View file

@ -0,0 +1,217 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# Function @ .text+0x14
# Local variables/stack:
# (local0): word @ -0x50
# (local1): word @ -0x4c
# (local2): word @ -0x48
# (local3): word @ -0x44
# (local4): word[16] @ -0x40
.global vPortYield
.type vPortYield, @function
vPortYield: wsr a0, excsave1 # 14: 00d113
addi sp, sp, -80 /* (local0) */ # 17: 12c1b0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1a: 0911
addi a0, sp, 80 /* (top of frame) */ # 1c: 02c150
s32i a0, sp, 16 /* (top of frame) -> [(local4)] */ # 1f: 0941
rsr a0, ps # 21: 00e603
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 24: 0921
rsr a0, excsave1 # 26: 00d103
s32i a0, sp, 12 /* a0 -> [(local3)] */ # 29: 0931
movi a0, _xt_user_exit # 2b: 01f5ff
s32i a0, sp, 0 /* _xt_user_exit -> [(local0)] */ # 2e: 0901
call0 sdk__xt_int_enter # 30: 050000
call0 vPortEnterCritical # 33: 01f4ffc0
# 37: 0000
call0 vTaskSwitchContext # 39: 01f3ffc0
# 3d: 0000
call0 vPortExitCritical # 3f: 01f3ffc0
# 43: 0000
call0 sdk__xt_int_exit # 45: 01f2ffc0
# 49: 0000
ret # 4b: 0df0
.literal_position # 50: 00000000
# 54: 00000000
# 58: 00000000
# 5c: 00000000
# 60: 00000000
# 64: 00350c00
# 68: 00000000
# 6c: 00000000
# 70: 00350c00
# Function @ .text+0x74
.global sdk__xt_int_enter
.type sdk__xt_int_enter, @function
sdk__xt_int_enter:
s32i a12, sp, 60 /* a12 -> [(FP)+0x3c] */ # 74: c9f1
s32i a13, sp, 64 /* a13 -> [(FP)+0x40] */ # 76: d26110
mov a12, a0 # 79: cd00
call0 sdk__xt_context_save # 7b: 01f5ffc0
# 7f: 0000
movi a0, pxCurrentTCB # 81: 01f4ff
l32i a0, a0, 0 /* [pxCurrentTCB] */ # 84: 0800
s32i sp, a0, 0 /* (top of frame) -> [[pxCurrentTCB]] */ # 86: 1900
mov a0, a12 # 88: 0d0c
ret # 8a: 0df0
# Function @ .text+0x8c
.global sdk__xt_int_exit
.type sdk__xt_int_exit, @function
sdk__xt_int_exit:
s32i a14, sp, 68 /* a14 -> [(FP)+0x44] */ # 8c: e26111
s32i a15, sp, 72 /* a15 -> [(FP)+0x48] */ # 8f: f26112
movi sp, pxCurrentTCB # 92: 11f1ff
l32i sp, sp, 0 /* [pxCurrentTCB] */ # 95: 1801
l32i sp, sp, 0 /* [[pxCurrentTCB]] */ # 97: 1801
movi a14, pxCurrentTCB # 99: e1f0ff
l32i a14, a14, 0 /* [pxCurrentTCB] */ # 9c: e80e
addi a15, sp, 80 /* [[pxCurrentTCB]]+0x50 */ # 9e: f2c150
s32i a15, a14, 0 /* [[pxCurrentTCB]]+0x50 -> [[pxCurrentTCB]] */ # a1: f90e
call0 sdk__xt_context_restore # a3: 01efffc0
# a7: 0000
l32i a14, sp, 68 /* [[[pxCurrentTCB]]+0x44] */ # a9: e22111
l32i a15, sp, 72 /* [[[pxCurrentTCB]]+0x48] */ # ac: f22112
l32i a0, sp, 0 /* [[[pxCurrentTCB]]] */ # af: 0801
ret # b1: 0df0
.balign 4
# Function @ .text+0xb4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk__xt_timer_int
.type sdk__xt_timer_int, @function
sdk__xt_timer_int:
addi sp, sp, -16 /* (local0) */ # b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # b7: 0901
.Lbr001: movi a2, 0x000c3500 # b9: 21eaff
rsr a3, ccompare0 # bc: 30f003
add a4, a3, a2 # bf: 2a43
wsr a4, ccompare0 # c1: 40f013
esync # c4: 202000
s32i a2, sp, 4 /* 0x000c3500 -> [(local1)] */ # c7: 2911
s32i a3, sp, 8 /* a3 -> [(local2)] */ # c9: 3921
call0 xPortSysTickHandle # cb: 01e7ffc0
# cf: 0000
l32i a2, sp, 4 /* [(local1)] */ # d1: 2811
l32i a3, sp, 8 /* [(local2)] */ # d3: 3821
esync # d5: 202000
rsr a4, ccount # d8: 40ea03
sub a4, a4, a3 # db: 3044c0
blt a2, a4, .Lbr001 # de: 4722d7
l32i a0, sp, 0 /* [(local0)] */ # e1: 0801
addi sp, sp, 16 /* (top of frame) */ # e3: 12c110
ret /* [(local1)] */ # e6: 0df0
# Function @ .text+0xe8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk__xt_timer_int1
.type sdk__xt_timer_int1, @function
sdk__xt_timer_int1:
addi sp, sp, -16 /* (local0) */ # e8: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # eb: 0901
s32i a2, sp, 4 /* arg0 -> [(local1)] */ # ed: 2911
s32i a3, sp, 8 /* arg1 -> [(local2)] */ # ef: 3921
call0 vTaskSwitchContext # f1: 01deffc0
# f5: 0000
l32i a2, sp, 4 /* [(local1)] */ # f7: 2811
l32i a3, sp, 8 /* [(local2)] */ # f9: 3821
l32i a0, sp, 0 /* [(local0)] */ # fb: 0801
addi sp, sp, 16 /* (top of frame) */ # fd: 12c110
ret /* [(local1)] */ # 100: 0df0
.balign 4
# Function @ .text+0x104
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk__xt_tick_timer_init
.type sdk__xt_tick_timer_init, @function
sdk__xt_tick_timer_init:
addi sp, sp, -16 /* (local0) */ # 104: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 107: 0901
movi a3, 0x000c3500 # 109: 31d9ff
rsr a2, ccount # 10c: 20ea03
add a2, a2, a3 # 10f: 3a22
wsr a2, ccompare0 # 111: 20f013
movi a2, 0 /* 0x00000000 */ # 114: 0c02
xsr a2, intenable # 116: 20e461
movi a3, 64 /* 0x00000040 */ # 119: 4c03
or a2, a2, a3 # 11b: 302220
wsr a2, intenable # 11e: 20e413
l32i a0, sp, 0 /* [(local0)] */ # 121: 0801
addi sp, sp, 16 /* (top of frame) */ # 123: 12c110
ret # 126: 0df0
# Function @ .text+0x128
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk__xt_isr_unmask
.type sdk__xt_isr_unmask, @function
sdk__xt_isr_unmask:
addi sp, sp, -16 /* (local0) */ # 128: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12b: 0901
movi a3, 0 /* 0x00000000 */ # 12d: 0c03
xsr a3, intenable # 12f: 30e461
or a3, a2, a3 # 132: 303220
wsr a3, intenable # 135: 30e413
l32i a0, sp, 0 /* [(local0)] */ # 138: 0801
addi sp, sp, 16 /* (top of frame) */ # 13a: 12c110
ret /* arg0 */ # 13d: 0df0
.balign 4
# Function @ .text+0x140
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk__xt_isr_mask
.type sdk__xt_isr_mask, @function
sdk__xt_isr_mask:
addi sp, sp, -16 /* (local0) */ # 140: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 143: 0901
movi a3, 0 /* 0x00000000 */ # 145: 0c03
xsr a3, intenable # 147: 30e461
and a3, a2, a3 # 14a: 303210
wsr a3, intenable # 14d: 30e413
l32i a0, sp, 0 /* [(local0)] */ # 150: 0801
addi sp, sp, 16 /* (top of frame) */ # 152: 12c110
ret /* arg0 */ # 155: 0df0
.balign 4
# Function @ .text+0x158
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk__xt_read_ints
.type sdk__xt_read_ints, @function
sdk__xt_read_ints:
addi sp, sp, -16 /* (local0) */ # 158: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 15b: 0901
rsr a2, interrupt # 15d: 20e203
l32i a0, sp, 0 /* [(local0)] */ # 160: 0801
addi sp, sp, 16 /* (top of frame) */ # 162: 12c110
ret # 165: 0df0
.balign 4
# Function @ .text+0x168
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk__xt_clear_ints
.type sdk__xt_clear_ints, @function
sdk__xt_clear_ints:
addi sp, sp, -16 /* (local0) */ # 168: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 16b: 0901
wsr a2, intclear # 16d: 20e313
l32i a0, sp, 0 /* [(local0)] */ # 170: 0801
addi sp, sp, 16 /* (top of frame) */ # 172: 12c110
ret # 175: 0df0

View file

@ -0,0 +1,538 @@
.section .text, "ax", @progbits
.literal_position # 0: ff9f6ffe
# 4: 00020060
# 8: 00200000
# c: 00000000
# 10: 00020060
# 14: 00200001
# 18: 00201000
# 1c: 00208000
# 20: 00600000
# 24: 00000000
# 28: 00000000
# Function @ .text+0x2c
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_SPIReadModeCnfig
.type sdk_SPIReadModeCnfig, @function
sdk_SPIReadModeCnfig:
addi sp, sp, -16 /* (local0) */ # 2c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2f: 0901
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 31: c911
movi a4, 0xfe6f9fff # 33: 41f3ff
movi a3, 0x60000200 # 36: 31f3ff
memw # 39: c02000
l32i a0, a3, 8 /* [0x60000208] */ # 3c: 0823
and a0, a0, a4 # 3e: 400010
memw # 41: c02000
s32i a0, a3, 8 /* a0 -> [0x60000208] */ # 44: 0923
movi a0, sdk_flashchip # 46: 01f1ff
beqz a2, .Lbr004 # 49: 166204
beqi a2, 1, .Lbr005 # 4c: 261249
beqi a2, 2, .Lbr006 # 4f: 26224c
beqi a2, 3, .Lbr007 # 52: 26324f
addi a6, a2, -4 /* arg0-0x4 */ # 55: 62c2fc
movi a5, 0x00002000 # 58: 51ecff
movi a12, 0 /* 0x00000000 */ # 5b: 0c0c
moveqz a12, a5, a6 # 5d: 60c583
.Lbr001: beqz a2, .Lbr003 # 60: ac42
beqi a2, 1, .Lbr003 # 62: 261222
mov a2, a0 /* sdk_flashchip */ # 65: 2d00
call0 Disable_QMode # 67: 01efffc0
# 6b: 0000
.Lbr002: memw # 6d: c02000
movi a8, 0x60000200 # 70: 81e8ff
l32i a7, a8, 8 /* [0x60000208] */ # 73: 7828
or a7, a7, a12 # 75: c07720
memw # 78: c02000
s32i a7, a8, 8 /* a7 -> [0x60000208] */ # 7b: 7928
movi a2, 0 /* 0x00000000 */ # 7d: 0c02
l32i a12, sp, 4 /* [(local1)] */ # 7f: c811
l32i a0, sp, 0 /* [(local0)] */ # 81: 0801
addi sp, sp, 16 /* (top of frame) */ # 83: 12c110
ret /* 0x00000000 */ # 86: 0df0
.Lbr003: mov a2, a0 /* sdk_flashchip */ # 88: 2d00
call0 Enable_QMode # 8a: 01e7ffc0
# 8e: 0000
j .Lbr002 # 90: 46f6ff
.Lbr004: movi a12, 0x01002000 # 93: c1e0ff
j .Lbr001 # 96: 86f1ff
.Lbr005: movi a12, 0x00102000 # 99: c1dfff
j .Lbr001 # 9c: 06f0ff
.Lbr006: movi a12, 0x00802000 # 9f: c1dfff
j .Lbr001 # a2: 86eeff
.Lbr007: movi a12, 0x00006000 # a5: c1deff
j .Lbr001 # a8: 06edff
.literal_position # ac: 00000000
# b0: 00000000
# b4: 00000000
# b8: 00000000
# bc: 00000000
# c0: 00000000
# c4: 00000000
# c8: 00000000
# cc: 00000000
# d0: 00000000
# d4: 00000000
# Function @ .text+0xd8
# Local variables/stack:
# (local0): word @ -0x30
# (local1): word @ -0x2c
# (local2): word @ -0x28
# (local3): word @ -0x24
# (local4): word @ -0x20
# (local5): word @ -0x1c
# (local6): word @ -0x18
# (local7): word @ -0x14
# (local8): word @ -0x10
# (local9): word[3] @ -0xc
.global sdk_SPIWrite
.type sdk_SPIWrite, @function
sdk_SPIWrite:
mov a5, a4 /* arg2 */ # d8: 5d04
addi sp, sp, -48 /* (local0) */ # da: 12c1d0
s32i a12, sp, 16 /* a12 -> [(local4)] */ # dd: c941
s32i a14, sp, 24 /* a14 -> [(local6)] */ # df: e961
s32i a3, sp, 36 /* arg1 -> [(local9)] */ # e1: 3991
s32i a0, sp, 12 /* a0 -> [(local3)] */ # e3: 0931
movi a4, sdk_flashchip # e5: 41f1ff
s32i a15, sp, 28 /* a15 -> [(local7)] */ # e8: f971
s32i a13, sp, 20 /* a13 -> [(local5)] */ # ea: d951
mov a15, a3 /* arg1 */ # ec: fd03
mov a13, a2 /* arg0 */ # ee: dd02
l32i a0, a4, 4 /* [.Ldata001] */ # f0: 0814
add a2, a5, a2 # f2: 2a25
bltu a0, a2, .Lbr008 # f4: 273002
j .Lbr014 # f7: 462000
.Lbr008: movi a2, 1 /* 0x00000001 */ # fa: 0c12
j .Lbr013 # fc: 461b00
.Lbr009: movi a2, sdk_flashchip # ff: 21ecff
mov a3, a13 /* arg0 */ # 102: 3d0d
mov a4, a15 /* arg1 */ # 104: 4d0f
mov a5, a12 # 106: 5d0c
call0 SPI_page_program # 108: 01eeffc0
# 10c: 0000
bnez a2, .Lbr008 # 10e: 5682fe
l32i a2, sp, 8 /* [(local2)] */ # 111: 2821
mov a3, a14 /* [.Ldata003] */ # 113: 3d0e
sub a2, a2, a12 # 115: c022c0
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 118: 2901
call0 __udivsi3 # 11a: 01eaffc0
# 11e: 0000
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 120: 2911
beqz a2, .Lbr011 # 122: acf2
movi a3, 0 /* 0x00000000 */ # 124: 0c03
s32i a3, sp, 32 /* 0x00000000 -> [(local8)] */ # 126: 3981
.Lbr010: movi a2, sdk_flashchip # 128: 21e3ff
add a3, a13, a12 # 12b: ca3d
mov a5, a14 /* [.Ldata003] */ # 12d: 5d0e
srli a4, a12, 2 # 12f: c04241
addx4 a4, a4, a15 # 132: f044a0
call0 SPI_page_program # 135: 01e4ffc0
# 139: 0000
bnez a2, .Lbr008 # 13b: 56b2fb
add a12, a14, a12 # 13e: cace
l32i a6, sp, 32 /* [(local8)] */ # 140: 6881
l32i a5, sp, 4 /* [(local1)] */ # 142: 5811
addi a7, a6, 1 /* [(local8)]+0x1 */ # 144: 1b76
extui a6, a7, 0, 8 # 146: 706074
s32i a6, sp, 32 /* a6 -> [(local8)] */ # 149: 6981
bne a5, a6, .Lbr010 # 14b: 6795d9
l32i a8, sp, 8 /* [(local2)] */ # 14e: 8821
sub a8, a8, a12 # 150: c088c0
s32i a8, sp, 0 /* a8 -> [(local0)] */ # 153: 8901
.Lbr011: add a3, a13, a12 # 155: ca3d
movi a2, sdk_flashchip # 157: 21d8ff
l32i a5, sp, 0 /* [(local0)] */ # 15a: 5801
srli a4, a12, 2 # 15c: c04241
addx4 a4, a4, a15 # 15f: f044a0
call0 SPI_page_program # 162: 01daffc0
# 166: 0000
bnez a2, .Lbr008 # 168: 56e2f8
.Lbr012: movi a2, 0 /* 0x00000000 */ # 16b: 0c02
.Lbr013: l32i a12, sp, 16 /* [(local4)] */ # 16d: c841
l32i a13, sp, 20 /* [(local5)] */ # 16f: d851
l32i a14, sp, 24 /* [(local6)] */ # 171: e861
l32i a15, sp, 28 /* [(local7)] */ # 173: f871
l32i a0, sp, 12 /* [(local3)] */ # 175: 0831
addi sp, sp, 48 /* (top of frame) */ # 177: 12c130
ret # 17a: 0df0
.Lbr014: mov a2, a13 /* arg0 */ # 17c: 2d0d
l32i a14, a4, 16 /* [.Ldata003] */ # 17e: e844
s32i a5, sp, 8 /* arg2 -> [(local2)] */ # 180: 5921
mov a3, a14 /* [.Ldata003] */ # 182: 3d0e
call0 __umodsi3 # 184: 01d3ffc0
# 188: 0000
l32i a5, sp, 8 /* [(local2)] */ # 18a: 5821
sub a12, a14, a2 # 18c: 20cec0
bltu a5, a12, .Lbr015 # 18f: c73502
j .Lbr009 # 192: 46daff
.Lbr015: mov a4, a15 /* arg1 */ # 195: 4d0f
mov a3, a13 /* arg0 */ # 197: 3d0d
movi a2, sdk_flashchip # 199: 21c8ff
call0 SPI_page_program # 19c: 01ceffc0
# 1a0: 0000
bnez a2, .Lbr008 # 1a2: 5642f5
j .Lbr012 # 1a5: 86f0ff
.literal_position # 1a8: 00000000
# 1ac: 00000000
# Function @ .text+0x1b0
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_SPIRead
.type sdk_SPIRead, @function
sdk_SPIRead:
mov a5, a4 /* arg2 */ # 1b0: 5d04
mov a7, a3 /* arg1 */ # 1b2: 7d03
addi sp, sp, -16 /* (local0) */ # 1b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1b7: 0901
mov a3, a2 /* arg0 */ # 1b9: 3d02
mov a4, a7 /* arg1 */ # 1bb: 4d07
movi a2, sdk_flashchip # 1bd: 21faff
call0 SPI_read_data # 1c0: 01fbffc0
# 1c4: 0000
movi a4, 0 /* 0x00000000 */ # 1c6: 0c04
l32i a3, sp, 0 /* [(local0)] */ # 1c8: 3801
movi a0, 1 /* 0x00000001 */ # 1ca: 0c10
addi sp, sp, 16 /* (top of frame) */ # 1cc: 12c110
moveqz a0, a4, a2 # 1cf: 200483
mov a2, a0 # 1d2: 2d00
mov a0, a3 /* [(local0)] */ # 1d4: 0d03
ret # 1d6: 0df0
.literal_position # 1d8: 00000000
# 1dc: 00000000
# 1e0: 00000000
# 1e4: 00000000
# 1e8: 00000000
# 1ec: 00000000
# Function @ .text+0x1f0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_SPIEraseSector
.type sdk_SPIEraseSector, @function
sdk_SPIEraseSector:
addi sp, sp, -16 /* (local0) */ # 1f0: 12c1f0
movi a3, sdk_flashchip # 1f3: 31f9ff
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1f6: c911
mov a12, a2 /* arg0 */ # 1f8: cd02
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1fa: 0901
l32i a2, a3, 4 /* [.Ldata001] */ # 1fc: 2813
l32i a3, a3, 12 /* [.Ldata002] */ # 1fe: 3833
call0 __udivsi3 # 200: 01f9ffc0
# 204: 0000
bgeu a12, a2, .Lbr016 # 206: 27bc1f
movi a2, sdk_flashchip # 209: 21f4ff
call0 SPI_write_enable # 20c: 01f7ffc0
# 210: 0000
bnez a2, .Lbr016 # 212: dc32
movi a2, sdk_flashchip # 214: 21f3ff
l32i a3, a2, 12 /* [.Ldata002] */ # 217: 3832
mull a3, a3, a12 # 219: c03382
call0 SPI_sector_erase # 21c: 01f4ffc0
# 220: 0000
bnez a2, .Lbr016 # 222: cc32
movi a2, 0 /* 0x00000000 */ # 224: 0c02
j .Lbr017 # 226: 460000
.Lbr016: movi a2, 1 /* 0x00000001 */ # 229: 0c12
.Lbr017: l32i a12, sp, 4 /* [(local1)] */ # 22b: c811
l32i a0, sp, 0 /* [(local0)] */ # 22d: 0801
addi sp, sp, 16 /* (top of frame) */ # 22f: 12c110
ret # 232: 0df0
.literal_position # 234: 00000000
# 238: 00020060
# 23c: 00000010
# 240: ffffff00
# 244: 00000000
# 248: 00000000
# 24c: 00000000
# 250: 00000000
# 254: 00000000
# Function @ .text+0x258
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_spi_flash_get_id
.type sdk_spi_flash_get_id, @function
sdk_spi_flash_get_id:
addi sp, sp, -16 /* (local0) */ # 258: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 25b: 0911
call0 vPortEnterCritical # 25d: 01f9ffc0
# 261: 0000
call0 Cache_Read_Disable # 263: 01f9ffc0
# 267: 0000
movi a2, sdk_flashchip # 269: 21f2ff
call0 Wait_SPI_Idle # 26c: 01f8ffc0
# 270: 0000
movi a4, 0 /* 0x00000000 */ # 272: 0c04
movi a0, 0x60000200 # 274: 01f1ff
memw # 277: c02000
s32i a4, a0, 64 /* 0x00000000 -> [0x60000240] */ # 27a: 426010
movi a3, 0x10000000 # 27d: 31efff
memw # 280: c02000
s32i a3, a0, 0 /* 0x10000000 -> [0x60000200] */ # 283: 3900
memw # 285: c02000
l32i a2, a0, 0 /* [0x60000200] */ # 288: 2800
beqz a2, .Lbr019 # 28a: 8c62
.Lbr018: memw # 28c: c02000
l32i a5, a0, 0 /* [0x60000200] */ # 28f: 5800
bnez a5, .Lbr018 # 291: 5675ff
.Lbr019: movi a7, 0x00ffffff # 294: 71ebff
memw # 297: c02000
movi a2, 0 /* 0x00000000 */ # 29a: 0c02
movi a3, 0 /* 0x00000000 */ # 29c: 0c03
l32i a6, a0, 64 /* [0x60000240] */ # 29e: 622010
movi a4, 1 /* 0x00000001 */ # 2a1: 0c14
and a6, a6, a7 # 2a3: 706610
s32i a6, sp, 0 /* a6 -> [(local0)] */ # 2a6: 6901
call0 Cache_Read_Enable # 2a8: 01eaffc0
# 2ac: 0000
call0 vPortExitCritical # 2ae: 01e9ffc0
# 2b2: 0000
l32i a8, sp, 4 /* [(local1)] */ # 2b4: 8811
l32i a2, sp, 0 /* [(local0)] */ # 2b6: 2801
mov a0, a8 /* [(local1)] */ # 2b8: 0d08
addi sp, sp, 16 /* (top of frame) */ # 2ba: 12c110
ret /* [(local0)] */ # 2bd: 0df0
.literal_position # 2c0: 00000000
# 2c4: 00000000
# 2c8: 00000000
# 2cc: 00000000
# 2d0: 00000000
# 2d4: 00000000
# Function @ .text+0x2d8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_spi_flash_read_status
.type sdk_spi_flash_read_status, @function
sdk_spi_flash_read_status:
addi sp, sp, -16 /* (local0) */ # 2d8: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 2db: 2901
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 2dd: 0921
call0 vPortEnterCritical # 2df: 01f9ffc0
# 2e3: 0000
call0 Cache_Read_Disable # 2e5: 01f8ffc0
# 2e9: 0000
movi a2, sdk_flashchip # 2eb: 21f5ff
l32i a3, sp, 0 /* [(local0)] */ # 2ee: 3801
call0 SPI_read_status # 2f0: 01f7ffc0
# 2f4: 0000
movi a3, 0 /* 0x00000000 */ # 2f6: 0c03
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 2f8: 2911
movi a4, 1 /* 0x00000001 */ # 2fa: 0c14
movi a2, 0 /* 0x00000000 */ # 2fc: 0c02
call0 Cache_Read_Enable # 2fe: 01f4ffc0
# 302: 0000
call0 vPortExitCritical # 304: 01f4ffc0
# 308: 0000
l32i a3, sp, 8 /* [(local2)] */ # 30a: 3821
l32i a2, sp, 4 /* [(local1)] */ # 30c: 2811
mov a0, a3 /* [(local2)] */ # 30e: 0d03
addi sp, sp, 16 /* (top of frame) */ # 310: 12c110
ret /* [(local1)] */ # 313: 0df0
.literal_position # 318: 00000000
# 31c: 00000000
# 320: 00000000
# 324: 00000000
# 328: 00000000
# 32c: 00000000
# Function @ .text+0x330
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_spi_flash_write_status
.type sdk_spi_flash_write_status, @function
sdk_spi_flash_write_status:
addi sp, sp, -16 /* (local0) */ # 330: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 333: 2901
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 335: 0921
call0 vPortEnterCritical # 337: 01f9ffc0
# 33b: 0000
call0 Cache_Read_Disable # 33d: 01f8ffc0
# 341: 0000
movi a2, sdk_flashchip # 343: 21f5ff
l32i a3, sp, 0 /* [(local0)] */ # 346: 3801
call0 SPI_write_status # 348: 01f7ffc0
# 34c: 0000
movi a3, 0 /* 0x00000000 */ # 34e: 0c03
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 350: 2911
movi a4, 1 /* 0x00000001 */ # 352: 0c14
movi a2, 0 /* 0x00000000 */ # 354: 0c02
call0 Cache_Read_Enable # 356: 01f4ffc0
# 35a: 0000
call0 vPortExitCritical # 35c: 01f4ffc0
# 360: 0000
l32i a3, sp, 8 /* [(local2)] */ # 362: 3821
l32i a2, sp, 4 /* [(local1)] */ # 364: 2811
mov a0, a3 /* [(local2)] */ # 366: 0d03
addi sp, sp, 16 /* (top of frame) */ # 368: 12c110
ret /* [(local1)] */ # 36b: 0df0
.literal_position # 370: 00000000
# 374: 00000000
# 378: 00000000
# 37c: 00000000
# Function @ .text+0x380
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_spi_flash_erase_sector
.type sdk_spi_flash_erase_sector, @function
sdk_spi_flash_erase_sector:
addi sp, sp, -16 /* (local0) */ # 380: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 383: 2901
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 385: 0921
call0 vPortEnterCritical # 387: 01faffc0
# 38b: 0000
call0 Cache_Read_Disable # 38d: 01f9ffc0
# 391: 0000
l32i a2, sp, 0 /* [(local0)] */ # 393: 2801
call0 sdk_SPIEraseSector # 395: 050000
movi a3, 0 /* 0x00000000 */ # 398: 0c03
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 39a: 2911
movi a4, 1 /* 0x00000001 */ # 39c: 0c14
movi a2, 0 /* 0x00000000 */ # 39e: 0c02
call0 Cache_Read_Enable # 3a0: 01f6ffc0
# 3a4: 0000
call0 vPortExitCritical # 3a6: 01f5ffc0
# 3aa: 0000
l32i a3, sp, 8 /* [(local2)] */ # 3ac: 3821
l32i a2, sp, 4 /* [(local1)] */ # 3ae: 2811
mov a0, a3 /* [(local2)] */ # 3b0: 0d03
addi sp, sp, 16 /* (top of frame) */ # 3b2: 12c110
ret /* [(local1)] */ # 3b5: 0df0
.literal_position # 3b8: 00000000
# 3bc: 00000000
# 3c0: 00000000
# 3c4: 00000000
# Function @ .text+0x3c8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_spi_flash_write
.type sdk_spi_flash_write, @function
sdk_spi_flash_write:
addi sp, sp, -16 /* (local0) */ # 3c8: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3cb: 0911
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 3cd: d931
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 3cf: c921
mov a13, a3 /* arg1 */ # 3d1: dd03
mov a12, a4 /* arg2 */ # 3d3: cd04
bnez a3, .Lbr020 # 3d5: cc33
movi a2, 1 /* 0x00000001 */ # 3d7: 0c12
j .Lbr022 # 3d9: 460e00
.Lbr020: s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 3dc: 2901
movi a0, 3 /* 0x00000003 */ # 3de: 0c30
bnone a0, a4, .Lbr021 # 3e0: 470007
movi a0, 4 /* 0x00000004 */ # 3e3: 0c40
srli a12, a4, 2 # 3e5: 40c241
addx4 a12, a12, a0 # 3e8: 00cca0
.Lbr021: call0 vPortEnterCritical # 3eb: 01f3ffc0
# 3ef: 0000
call0 Cache_Read_Disable # 3f1: 01f2ffc0
# 3f5: 0000
mov a4, a12 # 3f7: 4d0c
mov a3, a13 /* arg1 */ # 3f9: 3d0d
l32i a2, sp, 0 /* [(local0)] */ # 3fb: 2801
call0 sdk_SPIWrite # 3fd: 050000
movi a3, 0 /* 0x00000000 */ # 400: 0c03
mov a12, a2 # 402: cd02
movi a4, 1 /* 0x00000001 */ # 404: 0c14
movi a2, 0 /* 0x00000000 */ # 406: 0c02
call0 Cache_Read_Enable # 408: 01eeffc0
# 40c: 0000
call0 vPortExitCritical # 40e: 01edffc0
# 412: 0000
mov a2, a12 # 414: 2d0c
.Lbr022: l32i a12, sp, 8 /* [(local2)] */ # 416: c821
l32i a13, sp, 12 /* [(local3)] */ # 418: d831
l32i a0, sp, 4 /* [(local1)] */ # 41a: 0811
addi sp, sp, 16 /* (top of frame) */ # 41c: 12c110
ret # 41f: 0df0
.literal_position # 424: 00000000
# 428: 00000000
# 42c: 00000000
# 430: 00000000
# Function @ .text+0x434
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_spi_flash_read
.type sdk_spi_flash_read, @function
sdk_spi_flash_read:
addi sp, sp, -16 /* (local0) */ # 434: 12c1f0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 437: 0921
s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 439: 4901
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 43b: c931
s32i a2, sp, 4 /* arg0 -> [(local1)] */ # 43d: 2911
mov a12, a3 /* arg1 */ # 43f: cd03
bnez a3, .Lbr023 # 441: cc33
movi a2, 1 /* 0x00000001 */ # 443: 0c12
j .Lbr024 # 445: 860a00
.Lbr023: call0 vPortEnterCritical # 448: 01f7ffc0
# 44c: 0000
call0 Cache_Read_Disable # 44e: 01f6ffc0
# 452: 0000
mov a3, a12 /* arg1 */ # 454: 3d0c
l32i a2, sp, 4 /* [(local1)] */ # 456: 2811
l32i a4, sp, 0 /* [(local0)] */ # 458: 4801
call0 sdk_SPIRead # 45a: 050000
movi a3, 0 /* 0x00000000 */ # 45d: 0c03
mov a12, a2 # 45f: cd02
movi a4, 1 /* 0x00000001 */ # 461: 0c14
movi a2, 0 /* 0x00000000 */ # 463: 0c02
call0 Cache_Read_Enable # 465: 01f1ffc0
# 469: 0000
call0 vPortExitCritical # 46b: 01f1ffc0
# 46f: 0000
mov a2, a12 # 471: 2d0c
.Lbr024: l32i a12, sp, 12 /* [(local3)] */ # 473: c831
l32i a0, sp, 8 /* [(local2)] */ # 475: 0821
addi sp, sp, 16 /* (top of frame) */ # 477: 12c110
ret # 47a: 0df0
.section .data, "aw", @progbits
.global sdk_flashchip
.type sdk_flashchip, @object
sdk_flashchip:
.word 0x001640ef # 0: ef401600
.Ldata001: .word 0x00400000 # 4: 00004000
# NOTE: The following is apparently unreferenced code/data
.word 0x00010000 # 8: 00000100
.Ldata002: .word 0x00001000 # c: 00100000
.Ldata003: .word 0x00000100 # 10: 00010000
# NOTE: The following is apparently unreferenced code/data
.word 0x0000ffff # 14: ffff0000

229
binary_sdk/libmain/timers.S Normal file
View file

@ -0,0 +1,229 @@
.section .bss, "aw", @nobits
.Ldata001: .word 0x00000000 # 0: 00000000
.Ldata002: .byte 0x00
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# Function @ .irom0.text+0x14
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.global sdk_os_timer_setfn
.type sdk_os_timer_setfn, @function
sdk_os_timer_setfn:
addi sp, sp, -32 /* (local0) */ # 14: 12c1e0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 17: 0901
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 19: e931
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1b: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1d: c911
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1f: f941
movi a15, .Ldata001 # 21: f1f7ff
mov a12, a2 /* arg0 */ # 24: cd02
l32i a13, a15, 0 /* [.Ldata001] */ # 26: d80f
mov a14, a4 /* arg2 */ # 28: ed04
beqz a13, .Lbr006 # 2a: 16fd04
.Lbr001: l32i a0, a13, 4 # 2d: 081d
bne a0, a12, .Lbr005 # 2f: c79041
l32i a2, a12, 24 /* [arg0+0x18] */ # 32: 286c
l32i a4, a12, 16 /* [arg0+0x10] */ # 34: 484c
bne a2, a14, .Lbr002 # 36: e79202
beq a4, a3, .Lbr007 # 39: 37145f
.Lbr002: l32i a2, a12, 4 /* [arg0+0x4] */ # 3c: 281c
s32i a3, sp, 20 /* arg1 -> [(local5)] */ # 3e: 3951
beqz a2, .Lbr004 # 40: ac32
movi a3, 3 /* 0x00000003 */ # 42: 0c33
movi a4, 0 /* 0x00000000 */ # 44: 0c04
movi a5, 0 /* 0x00000000 */ # 46: 0c05
movi a6, 50 /* 0x00000032 */ # 48: 3c26
call0 xTimerGenericCommand # 4a: 01efffc0
# 4e: 0000
l32i a3, sp, 20 /* [(local5)] */ # 50: 3851
bnez a2, .Lbr003 # 52: cc92
movi a2, .Lstr001 # 54: 21ecff
call0 printf # 57: 01edffc0
# 5b: 0000
l32i a3, sp, 20 /* [(local5)] */ # 5d: 3851
.Lbr003: l8ui a5, a15, 4 /* [.Ldata002] */ # 5f: 520f04
addi a5, a5, -1 /* [.Ldata002]-0x1 */ # 62: 0b55
s8i a5, a15, 4 /* [.Ldata002]-0x1 -> [.Ldata002] */ # 64: 524f04
.Lbr004: s32i a3, a12, 16 /* a3 -> [arg0+0x10] */ # 67: 394c
s32i a14, a12, 24 /* arg2 -> [arg0+0x18] */ # 69: e96c
movi a6, 0 /* 0x00000000 */ # 6b: 0c06
s32i a6, a12, 4 /* 0x00000000 -> [arg0+0x4] */ # 6d: 691c
s32i a6, a12, 12 /* 0x00000000 -> [arg0+0xc] */ # 6f: 693c
j .Lbr007 # 71: c60900
.Lbr005: l32i a0, a13, 0 # 74: 080d
beqz a0, .Lbr006 # 76: 8c30
mov a13, a0 # 78: dd00
bnez a0, .Lbr001 # 7a: 56f0fa
.Lbr006: s32i a3, a12, 16 /* arg1 -> [arg0+0x10] */ # 7d: 394c
s32i a14, a12, 24 /* arg2 -> [arg0+0x18] */ # 7f: e96c
movi a2, 8 /* 0x00000008 */ # 81: 0c82
movi a7, 0 /* 0x00000000 */ # 83: 0c07
s32i a7, a12, 4 /* 0x00000000 -> [arg0+0x4] */ # 85: 791c
s32i a7, a12, 12 /* 0x00000000 -> [arg0+0xc] */ # 87: 793c
call0 pvPortMalloc # 89: 01e1ffc0
# 8d: 0000
s32i a12, a2, 4 # 8f: c912
movi a9, 0 /* 0x00000000 */ # 91: 0c09
l32i a8, a15, 0 /* [.Ldata001] */ # 93: 880f
s32i a9, a2, 0 # 95: 9902
movnez a15, a13, a8 # 97: 80fd93
s32i a2, a15, 0 # 9a: 290f
.Lbr007: l32i a12, sp, 4 /* [(local1)] */ # 9c: c811
l32i a13, sp, 8 /* [(local2)] */ # 9e: d821
l32i a14, sp, 12 /* [(local3)] */ # a0: e831
l32i a15, sp, 16 /* [(local4)] */ # a2: f841
l32i a0, sp, 0 /* [(local0)] */ # a4: 0801
addi sp, sp, 32 /* (top of frame) */ # a6: 12c120
ret # a9: 0df0
.literal_position # ac: 00000000
# b0: 18000000
# b4: 00000000
# b8: 00000000
# bc: 00000000
# c0: 00000000
# c4: 00000000
# c8: 00000000
# cc: 00000000
# Function @ .irom0.text+0xd0
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_os_timer_arm
.type sdk_os_timer_arm, @function
sdk_os_timer_arm:
addi sp, sp, -32 /* (local0) */ # d0: 12c1e0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # d3: 0901
s32i a13, sp, 8 /* a13 -> [(local2)] */ # d5: d921
s32i a15, sp, 16 /* a15 -> [(local4)] */ # d7: f941
s32i a12, sp, 4 /* a12 -> [(local1)] */ # d9: c911
s32i a14, sp, 12 /* a14 -> [(local3)] */ # db: e931
mov a12, a2 /* arg0 */ # dd: cd02
mov a14, a3 /* arg1 */ # df: ed03
l32i a15, a2, 4 /* [arg0+0x4] */ # e1: f812
mov a13, a4 /* arg2 */ # e3: dd04
bnez a15, .Lbr008 # e5: ecff
s8i a4, a2, 20 /* arg2 -> [arg0+0x14] */ # e7: 424214
s32i a3, a2, 12 /* arg1 -> [arg0+0xc] */ # ea: 3932
mov a2, a3 /* arg1 */ # ec: 2d03
movi a3, 10 /* 0x0000000a */ # ee: 0ca3
call0 __udivsi3 # f0: 01f1ffc0
# f4: 0000
mov a4, a13 /* arg2 */ # f6: 4d0d
l32i a5, a12, 24 /* [arg0+0x18] */ # f8: 586c
mov a3, a2 # fa: 3d02
l32i a6, a12, 16 /* [arg0+0x10] */ # fc: 684c
movi a2, 0 /* 0x00000000 */ # fe: 0c02
call0 xTimerCreate # 100: 01eeffc0
# 104: 0000
movi a3, .Ldata001 # 106: 31e9ff
mov a15, a2 # 109: fd02
l8ui a0, a3, 4 /* [.Ldata002] */ # 10b: 020304
s32i a2, a12, 4 /* a2 -> [arg0+0x4] */ # 10e: 291c
addi a0, a0, 1 /* [.Ldata002]+0x1 */ # 110: 1b00
s8i a0, a3, 4 /* [.Ldata002]+0x1 -> [.Ldata002] */ # 112: 024304
beqz a2, .Lbr011 # 115: 16c204
.Lbr008: l8ui a3, a12, 20 /* [arg0+0x14] */ # 118: 320c14
beq a3, a13, .Lbr009 # 11b: d71304
s8i a13, a12, 20 /* arg2 -> [arg0+0x14] */ # 11e: d24c14
s32i a13, a15, 28 # 121: d97f
.Lbr009: l32i a4, a12, 12 /* [arg0+0xc] */ # 123: 483c
beq a4, a14, .Lbr010 # 125: e7141b
mov a2, a14 /* arg1 */ # 128: 2d0e
s32i a14, a12, 12 /* arg1 -> [arg0+0xc] */ # 12a: e93c
movi a3, 10 /* 0x0000000a */ # 12c: 0ca3
call0 __udivsi3 # 12e: 01e3ffc0
# 132: 0000
movi a3, 2 /* 0x00000002 */ # 134: 0c23
movi a5, 0 /* 0x00000000 */ # 136: 0c05
mov a4, a2 # 138: 4d02
movi a6, 10 /* 0x0000000a */ # 13a: 0ca6
mov a2, a15 # 13c: 2d0f
call0 xTimerGenericCommand # 13e: 01e0ffc0
# 142: 0000
.Lbr010: call0 xTaskGetTickCount # 144: 01e0ffc0
# 148: 0000
movi a3, 0 /* 0x00000000 */ # 14a: 0c03
movi a5, 0 /* 0x00000000 */ # 14c: 0c05
mov a4, a2 # 14e: 4d02
movi a6, 50 /* 0x00000032 */ # 150: 3c26
l32i a2, a12, 4 /* [arg0+0x4] */ # 152: 281c
call0 xTimerGenericCommand # 154: 01ddffc0
# 158: 0000
bnez a2, .Lbr011 # 15a: cc72
movi a2, .Lstr002 # 15c: 21d5ff
call0 printf # 15f: 01dbffc0
# 163: 0000
.Lbr011: l32i a12, sp, 4 /* [(local1)] */ # 165: c811
l32i a13, sp, 8 /* [(local2)] */ # 167: d821
l32i a14, sp, 12 /* [(local3)] */ # 169: e831
l32i a15, sp, 16 /* [(local4)] */ # 16b: f841
l32i a0, sp, 0 /* [(local0)] */ # 16d: 0801
addi sp, sp, 32 /* (top of frame) */ # 16f: 12c120
ret # 172: 0df0
.literal_position # 174: 2c000000
# 178: 00000000
# 17c: 00000000
# Function @ .irom0.text+0x180
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_os_timer_disarm
.type sdk_os_timer_disarm, @function
sdk_os_timer_disarm:
addi sp, sp, -16 /* (local0) */ # 180: 12c1f0
l32i a2, a2, 4 /* [arg0+0x4] */ # 183: 2812
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 185: 0901
beqz a2, .Lbr012 # 187: 9c72
movi a3, 1 /* 0x00000001 */ # 189: 0c13
movi a4, 0 /* 0x00000000 */ # 18b: 0c04
movi a5, 0 /* 0x00000000 */ # 18d: 0c05
movi a6, 50 /* 0x00000032 */ # 18f: 3c26
call0 xTimerGenericCommand # 191: 01f9ffc0
# 195: 0000
bnez a2, .Lbr012 # 197: cc72
movi a2, .Lstr003 # 199: 21f6ff
call0 printf # 19c: 01f8ffc0
# 1a0: 0000
.Lbr012: l32i a0, sp, 0 /* [(local0)] */ # 1a2: 0801
addi sp, sp, 16 /* (top of frame) */ # 1a4: 12c110
ret # 1a7: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "Timer Delete Failed\n" # 0: 54696d65
# 4: 72204465
# 8: 6c657465
# c: 20466169
# 10: 6c65640a
# 14: 00
.balign 4
.Lstr002: .asciz "Timer Start Failed\n" # 18: 54696d65
# 1c: 72205374
# 20: 61727420
# 24: 4661696c
# 28: 65640a00
.Lstr003: .asciz "Timer Stop Failed\n" # 2c: 54696d65
# 30: 72205374
# 34: 6f702046
# 38: 61696c65
# 3c: 640a00

44
binary_sdk/libmain/uart.S Normal file
View file

@ -0,0 +1,44 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.global sdk_uart_buff_switch
.type sdk_uart_buff_switch, @function
sdk_uart_buff_switch:
ret /* arg0 */ # 0: 0df0
.literal_position # 4: 000f0000
# 8: 00feff5f
# c: 00000600
# 10: fffff9ff
# Function @ .irom0.text+0x14
.global sdk_uart_div_modify
.type sdk_uart_div_modify, @function
sdk_uart_div_modify:
movi a5, 0x00000f00 # 14: 51fcff
movi a6, 0x5ffffe00 # 17: 61fcff
mul16s a5, a5, a2 # 1a: 2055d1
add a5, a5, a6 # 1d: 6a55
memw # 1f: c02000
s32i a3, a5, 0x214 # 22: 326585
movi a8, 0x00060000 # 25: 81f9ff
memw # 28: c02000
l32i a7, a5, 0x220 # 2b: 722588
or a7, a7, a8 # 2e: 807720
memw # 31: c02000
s32i a7, a5, 0x220 # 34: 726588
movi a6, 0xfff9ffff # 37: 61f6ff
memw # 3a: c02000
l32i a4, a5, 0x220 # 3d: 422588
and a4, a4, a6 # 40: 604410
memw # 43: c02000
s32i a4, a5, 0x220 # 46: 426588
ret /* arg0 */ # 49: 0df0
.balign 4
# Function @ .irom0.text+0x4c
.global sdk_Uart_Init
.type sdk_Uart_Init, @function
sdk_Uart_Init:
ret /* arg0 */ # 4c: 0df0

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,40 @@
.section .text, "ax", @progbits
# Function @ .text+0x0
.global sdk__xt_context_save
.type sdk__xt_context_save, @function
sdk__xt_context_save:
s32i a2, sp, 20 /* arg0 -> [(FP)+0x14] */ # 0: 2951
s32i a3, sp, 24 /* arg1 -> [(FP)+0x18] */ # 2: 3961
s32i a4, sp, 28 /* arg2 -> [(FP)+0x1c] */ # 4: 4971
s32i a5, sp, 32 /* arg3 -> [(FP)+0x20] */ # 6: 5981
s32i a6, sp, 36 /* arg4 -> [(FP)+0x24] */ # 8: 6991
s32i a7, sp, 40 /* arg5 -> [(FP)+0x28] */ # a: 79a1
s32i a8, sp, 44 /* a8 -> [(FP)+0x2c] */ # c: 89b1
s32i a9, sp, 48 /* a9 -> [(FP)+0x30] */ # e: 99c1
s32i a10, sp, 52 /* a10 -> [(FP)+0x34] */ # 10: a9d1
s32i a11, sp, 56 /* a11 -> [(FP)+0x38] */ # 12: b9e1
rsr a3, sar # 14: 300303
s32i a3, sp, 76 /* a3 -> [(FP)+0x4c] */ # 17: 326113
ret /* arg0 */ # 1a: 0df0
# Function @ .text+0x1c
.global sdk__xt_context_restore
.type sdk__xt_context_restore, @function
sdk__xt_context_restore:
l32i a3, sp, 76 /* [(FP)+0x4c] */ # 1c: 322113
l32i a2, sp, 20 /* [(FP)+0x14] */ # 1f: 2851
wsr a3, sar # 21: 300313
l32i a3, sp, 24 /* [(FP)+0x18] */ # 24: 3861
l32i a4, sp, 28 /* [(FP)+0x1c] */ # 26: 4871
l32i a5, sp, 32 /* [(FP)+0x20] */ # 28: 5881
l32i a6, sp, 36 /* [(FP)+0x24] */ # 2a: 6891
l32i a7, sp, 40 /* [(FP)+0x28] */ # 2c: 78a1
l32i a8, sp, 44 /* [(FP)+0x2c] */ # 2e: 88b1
l32i a9, sp, 48 /* [(FP)+0x30] */ # 30: 98c1
l32i a10, sp, 52 /* [(FP)+0x34] */ # 32: a8d1
l32i a11, sp, 56 /* [(FP)+0x38] */ # 34: b8e1
l32i a12, sp, 60 /* [(FP)+0x3c] */ # 36: c8f1
l32i a13, sp, 64 /* [(FP)+0x40] */ # 38: d22110
ret /* [(FP)+0x14] */ # 3b: 0df0

View file