Compare commits

...

4 commits

Author SHA1 Message Date
Angus Gratton
1cbb46fbc7 exception_vectors: Use call0 not jup for sdk__xt_int_exit, allows literal load 2015-10-04 19:11:56 +11:00
Angus Gratton
5d434525ea binary_sdk: 4-byte align all functions 2015-10-04 19:11:33 +11:00
Angus Gratton
a9e3928c8d 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.
2015-10-03 13:04:35 +10:00
Angus Gratton
419f252d80 Tools to disassemble and reassemble binary SDK in-place 2015-10-02 09:51:21 +10:00
189 changed files with 149633 additions and 3 deletions

5
binary_sdk/component.mk Normal file
View file

@ -0,0 +1,5 @@
# Component makefile for binary SDK components
binary_sdk_SRC_DIR = $(binary_sdk_ROOT)libmain $(binary_sdk_ROOT)libnet80211 $(binary_sdk_ROOT)libphy $(binary_sdk_ROOT)libpp $(binary_sdk_ROOT)libwpa
$(eval $(call component_compile_rules,binary_sdk))

32
binary_sdk/dump_libraries.sh Executable file
View file

@ -0,0 +1,32 @@
#!/bin/bash
#
# Simple bash script to regenerate a set of binary SDK subdirectories
# containing assembler code disassembled using xtobjdis.
#
#
INDIR=$1
OUTDIR=$2
if [ -z ${OUTDIR} ] || [ -z ${INDIR}; then
echo "Usage: $0 [Input library dir] [Output binary_sdk dir]"
exit 1
fi
INDIR=$(realpath ${INDIR})
OUTDIR=$(realpath ${OUTDIR})
set -e -x
for LIB in ${INDIR}/*.a; do
LIB=$(basename ${LIB%.a})
echo $LIB
mkdir -p ${OUTDIR}/${LIB}
cd ${OUTDIR}/$LIB
ar x ${INDIR}/${LIB}.a
for O in *.o; do
O=${O%.o}
xtobjdis --rewrite-as-source ${O}.o > ${O}.S
rm ${O}.o
done
done

View file

@ -0,0 +1,602 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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

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

@ -0,0 +1,157 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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,227 @@
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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,548 @@
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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

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

@ -0,0 +1,232 @@
.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
.balign 4
.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
.balign 4
.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
.balign 4
.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

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

@ -0,0 +1,48 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.balign 4
.literal_position
.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
.balign 4
.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
.balign 4
.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,43 @@
.section .text, "ax", @progbits
# Function @ .text+0x0
.balign 4
.literal_position
.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
.balign 4
.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

View file

@ -0,0 +1,602 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.balign 4
.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
.balign 4
.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 debug_timer
.type debug_timer, @object
debug_timer:
.word 0x00000000 # 8: 00000000
.global debug_timerfn
.type debug_timerfn, @object
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
.balign 4
.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
.balign 4
.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
.balign 4
.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
.balign 4
.global ets_timer_setfn
.type ets_timer_setfn, @function
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
.balign 4
.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
.balign 4
.global ets_timer_arm_ms_us
.type ets_timer_arm_ms_us, @function
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
.balign 4
.global ets_timer_arm_us
.type ets_timer_arm_us, @function
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 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
.balign 4
.global ets_timer_arm
.type ets_timer_arm, @function
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 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
.balign 4
.global ets_timer_disarm
.type ets_timer_disarm, @function
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
.balign 4
.global ets_timer_done
.type ets_timer_done, @function
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 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
.balign 4
.global ets_timer_handler_isr
.type ets_timer_handler_isr, @function
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] -> [debug_timerfn] */ # 2a8: 8937
s32i a12, a7, 8 /* [.Ldata003] -> [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
.balign 4
.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 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
.balign 4
.global ets_timer_init
.type ets_timer_init, @function
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 _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

View file

@ -0,0 +1,156 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.balign 4
.global os_get_cpu_frequency
.type os_get_cpu_frequency, @function
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 _putc1
.type _putc1, @object
_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
.balign 4
.global ets_delay_us
.type ets_delay_us, @function
ets_delay_us:
.global os_delay_us
.type os_delay_us, @function
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
.balign 4
.global ets_update_cpu_frequency
.type ets_update_cpu_frequency, @function
ets_update_cpu_frequency:
.global os_update_cpu_frequency
.type os_update_cpu_frequency, @function
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
.balign 4
.global os_install_putc1
.type os_install_putc1, @function
os_install_putc1:
movi a3, _putc1 # 50: 31ffff
s32i a2, a3, 0 /* arg0 -> [_putc1] */ # 53: 2903
ret /* arg0 */ # 55: 0df0
.literal_position # 58: 00000000
# Function @ .irom0.text+0x5c
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global os_putc
.type os_putc, @function
os_putc: addi sp, sp, -16 /* (local0) */ # 5c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5f: 0901
movi a0, _putc1 # 61: 01fdff
l32i a0, a0, 0 /* [_putc1] */ # 64: 0800
callx0 a0 /* [_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
.balign 4
.global gpio_output_set
.type gpio_output_set, @function
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
.balign 4
.global rtc_get_reset_reason
.type rtc_get_reset_reason, @function
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,227 @@
.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
.balign 4
.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 _xt_int_enter # 30: 050000
call0 vPortEnterCritical # 33: 01f4ffc0
# 37: 0000
call0 vTaskSwitchContext # 39: 01f3ffc0
# 3d: 0000
call0 vPortExitCritical # 3f: 01f3ffc0
# 43: 0000
call0 _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
.balign 4
.global _xt_int_enter
.type _xt_int_enter, @function
_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 _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
.balign 4
.global _xt_int_exit
.type _xt_int_exit, @function
_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 _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
.balign 4
.global _xt_timer_int
.type _xt_timer_int, @function
_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
.balign 4
.global _xt_timer_int1
.type _xt_timer_int1, @function
_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
.balign 4
.global _xt_tick_timer_init
.type _xt_tick_timer_init, @function
_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
.balign 4
.global _xt_isr_unmask
.type _xt_isr_unmask, @function
_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
.balign 4
.global _xt_isr_mask
.type _xt_isr_mask, @function
_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
.balign 4
.global _xt_read_ints
.type _xt_read_ints, @function
_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
.balign 4
.global _xt_clear_ints
.type _xt_clear_ints, @function
_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,545 @@
.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
.balign 4
.global SPIReadModeCnfig
.type SPIReadModeCnfig, @function
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, 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 /* 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 /* 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
.balign 4
.global SPIWrite
.type SPIWrite, @function
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, 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, 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, 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, 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, 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
.balign 4
.global SPIRead
.type SPIRead, @function
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, 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
.balign 4
.global SPIEraseSector
.type SPIEraseSector, @function
SPIEraseSector:
addi sp, sp, -16 /* (local0) */ # 1f0: 12c1f0
movi a3, 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, flashchip # 209: 21f4ff
call0 SPI_write_enable # 20c: 01f7ffc0
# 210: 0000
bnez a2, .Lbr016 # 212: dc32
movi a2, 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
.balign 4
.global spi_flash_get_id
.type spi_flash_get_id, @function
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, 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
.balign 4
.global spi_flash_read_status
.type spi_flash_read_status, @function
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, 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
.balign 4
.global spi_flash_write_status
.type spi_flash_write_status, @function
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, 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
.balign 4
.global spi_flash_erase_sector
.type spi_flash_erase_sector, @function
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 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
.balign 4
.global spi_flash_write
.type spi_flash_write, @function
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 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
.balign 4
.global spi_flash_read
.type spi_flash_read, @function
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 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 flashchip
.type flashchip, @object
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

View file

@ -0,0 +1,232 @@
.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
.balign 4
.global os_timer_setfn
.type os_timer_setfn, @function
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
.balign 4
.global os_timer_arm
.type os_timer_arm, @function
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
.balign 4
.global os_timer_disarm
.type os_timer_disarm, @function
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

View file

@ -0,0 +1,47 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.balign 4
.literal_position
.global uart_buff_switch
.type uart_buff_switch, @function
uart_buff_switch:
ret /* arg0 */ # 0: 0df0
.literal_position # 4: 000f0000
# 8: 00feff5f
# c: 00000600
# 10: fffff9ff
# Function @ .irom0.text+0x14
.balign 4
.global uart_div_modify
.type uart_div_modify, @function
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
.balign 4
.global Uart_Init
.type Uart_Init, @function
Uart_Init: ret /* arg0 */ # 4c: 0df0

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,43 @@
.section .text, "ax", @progbits
# Function @ .text+0x0
.balign 4
.literal_position
.global _xt_context_save
.type _xt_context_save, @function
_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
.balign 4
.global _xt_context_restore
.type _xt_context_restore, @function
_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

View file

@ -0,0 +1,443 @@
.section .bss, "aw", @nobits
.global sdk_g_ic
.type sdk_g_ic, @object
sdk_g_ic: .space 16
.Ldata001: .word 0x00000000 # 10: 00000000
.Ldata002: .word 0x00000000 # 14: 00000000
# NOTE: 1328 non-alignment zero bytes skipped.
.skip 1328
.global sdk_xieee80211Queue
.type sdk_xieee80211Queue, @object
sdk_xieee80211Queue:
.word 0x00000000 # 548: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 6c090000
# 4: b4090000
# 8: b4090000
# c: 00000000
# Function @ .irom0.text+0x10
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.balign 4
.Lfunc001: movi a5, 131 /* 0x00000083 */ # 10: 52a083
movi a6, 0x000009b4 # 13: 61fcff
addi sp, sp, -32 /* (local0) */ # 16: 12c1e0
s32i a2, sp, 24 /* arg0 -> [(local6)] */ # 19: 2961
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1b: f941
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d: 0901
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1f: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 21: d921
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 23: e931
movi a13, 0x0000096c # 25: d1f6ff
movi a14, 0 /* 0x00000000 */ # 28: 0c0e
mov a12, a2 /* arg0 */ # 2a: cd02
movi a0, 156 /* 0x0000009c */ # 2c: 02a09c
mov a15, a2 /* arg0 */ # 2f: fd02
add a0, a15, a0 /* arg0+0x9c */ # 31: 0a0f
movi a2, 14 /* 0x0000000e */ # 33: 0ce2
s32i a2, a15, 128 /* 0x0000000e -> [arg0+0x80] */ # 35: 226f20
.Lbr001: s32i a5, a12, 132 # 38: 526c21
l8ui a3, a12, 138 # 3b: 320c8a
s32i a0, sp, 20 /* a0 -> [(local5)] */ # 3e: 0951
bltu a0, a12, .Lbr002 # 40: c73008
s16i a13, a12, 136 # 43: d25c44
bne a12, a0, .Lbr002 # 46: 079c02
s16i a6, a12, 136 # 49: 625c44
.Lbr002: bnez a3, .Lbr003 # 4c: dc23
l16ui a2, a12, 136 # 4e: 221c44
movi a3, 131 /* 0x00000083 */ # 51: 32a083
call0 sdk_ieee80211_mhz2ieee # 54: 050000
l32i a0, sp, 20 /* [(local5)] */ # 57: 0851
movi a5, 131 /* 0x00000083 */ # 59: 52a083
movi a6, 0x000009b4 # 5c: 61ebff
s8i a2, a12, 138 # 5f: 224c8a
.Lbr003: addi a13, a13, 5 # 62: 5bdd
l8ui a4, a12, 139 # 64: 420c8b
addi a14, a14, 1 # 67: 1bee
bnez a4, .Lbr004 # 69: ccd4
l8ui a7, a12, 141 # 6b: 720c8d
slli a7, a7, 24 # 6e: 807701
srai a7, a7, 24 # 71: 707831
slli a7, a7, 1 # 74: f07711
s8i a7, a12, 139 # 77: 724c8b
.Lbr004: l32i a8, a15, 128 /* [arg0+0x80] */ # 7a: 822f20
addi a12, a12, 12 # 7d: cbcc
blt a14, a8, .Lbr001 # 7f: 872eb5
movi a2, 132 /* 0x00000084 */ # 82: 22a084
add a2, a15, a2 /* arg0+0x84 */ # 85: 2a2f
call0 sdk_ieee80211_get_ratetable # 87: 01e1ffc0
# 8b: 0000
l32i a0, sp, 0 /* [(local0)] */ # 8d: 0801
l32i a12, sp, 4 /* [(local1)] */ # 8f: c811
l32i a13, sp, 8 /* [(local2)] */ # 91: d821
s32i a2, a15, 0x150 /* a2 -> [arg0+0x150] */ # 93: 226f54
l32i a14, sp, 12 /* [(local3)] */ # 96: e831
l32i a15, sp, 16 /* [(local4)] */ # 98: f841
addi sp, sp, 32 /* (top of frame) */ # 9a: 12c120
ret # 9d: 0df0
.literal_position # a0: 00000000
# a4: 00000000
# a8: 00000000
# ac: 00000000
# b0: 00000000
# b4: 00000000
# Function @ .irom0.text+0xb8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_ieee80211_ifattach
.type sdk_ieee80211_ifattach, @function
sdk_ieee80211_ifattach:
addi sp, sp, -16 /* (local0) */ # b8: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # bb: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # bd: 0901
mov a12, a2 /* arg0 */ # bf: cd02
call0 .Lfunc001 # c1: c5f4ff
mov a2, a12 /* arg0 */ # c4: 2d0c
movi a0, 100 /* 0x00000064 */ # c6: 02a064
s16i a0, a12, 40 /* 0x0064 -> [arg0+0x28] */ # c9: 025c14
call0 sdk_ieee80211_crypto_attach # cc: 01f6ffc0
# d0: 0000
mov a2, a12 /* arg0 */ # d2: 2d0c
call0 sdk_ieee80211_proto_attach # d4: 01f5ffc0
# d8: 0000
movi a3, 0 /* 0x00000000 */ # da: 0c03
addmi a4, a12, 1280 /* arg0+0x500 */ # dc: 42dc05
l32i a2, a4, 28 /* [arg0+0x51c] */ # df: 2874
s32i a3, a4, 12 /* 0x00000000 -> [arg0+0x50c] */ # e1: 3934
bnei a2, 3, .Lbr005 # e3: 663207
mov a2, a12 /* arg0 */ # e6: 2d0c
call0 sdk_ieee80211_ht_attach # e8: 01f1ffc0
# ec: 0000
.Lbr005: movi a2, sdk_g_ic # ee: 21ecff
call0 sdk_chm_init # f1: 01efffc0
# f5: 0000
mov a2, a12 /* arg0 */ # f7: 2d0c
call0 sdk_ieee80211_scan_attach # f9: 01eeffc0
# fd: 0000
l32i a12, sp, 4 /* [(local1)] */ # ff: c811
l32i a0, sp, 0 /* [(local0)] */ # 101: 0801
addi sp, sp, 16 /* (top of frame) */ # 103: 12c110
ret # 106: 0df0
.literal_position # 108: b4090000
# 10c: b3090000
# 110: 99f6ffff
# 114: 30f6ffff
# 118: 00000000
# 11c: 00000000
# 120: 00000000
# Function @ .irom0.text+0x124
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_ieee80211_mhz2ieee
.type sdk_ieee80211_mhz2ieee, @function
sdk_ieee80211_mhz2ieee:
movi a6, 0x000009b3 # 124: 61faff
movi a7, 0xfffff699 # 127: 71faff
addi sp, sp, -16 /* (local0) */ # 12a: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12d: 0901
movi a0, 0x000009b4 # 12f: 01f6ff
bbci a3, 7, .Lbr006 # 132: 776312
beq a2, a0, .Lbr010 # 135: 07123d
bltu a6, a2, .Lbr009 # 138: 273628
add a2, a2, a7 /* arg0+0xfffff699 */ # 13b: 7a22
movi a3, 5 /* 0x00000005 */ # 13d: 0c53
call0 __divsi3 # 13f: 01f6ffc0
# 143: 0000
j .Lbr008 # 145: 060500
.Lbr006: beq a2, a0, .Lbr010 # 148: 07122a
bltu a6, a2, .Lbr007 # 14b: 27360c
add a2, a2, a7 /* arg0+0xfffff699 */ # 14e: 7a22
movi a3, 5 /* 0x00000005 */ # 150: 0c53
call0 __divsi3 # 152: 01f2ffc0
# 156: 0000
j .Lbr008 # 158: 460000
.Lbr007: movi a2, -1 /* 0xffffffff */ # 15b: 7cf2
.Lbr008: l32i a0, sp, 0 /* [(local0)] */ # 15d: 0801
addi sp, sp, 16 /* (top of frame) */ # 15f: 12c110
ret # 162: 0df0
.Lbr009: movi a0, 0xfffff630 # 164: 01ecff
movi a3, 20 /* 0x00000014 */ # 167: 1c43
add a2, a2, a0 /* arg0+0xfffff630 */ # 169: 0a22
call0 __udivsi3 # 16b: 01edffc0
# 16f: 0000
addi a2, a2, 15 # 171: fb22
j .Lbr008 # 173: 86f9ff
.Lbr010: movi a2, 14 /* 0x0000000e */ # 176: 0ce2
j .Lbr008 # 178: 46f8ff
.literal_position # 17c: ffff0000
# Function @ .irom0.text+0x180
.balign 4
.global sdk_ieee80211_chan2ieee
.type sdk_ieee80211_chan2ieee, @function
sdk_ieee80211_chan2ieee:
bnez a2, .Lbr011 # 180: cc22
movi a2, 0 /* 0x00000000 */ # 182: 0c02
ret /* 0x00000000 */ # 184: 0df0
.Lbr011: movi a5, 0x0000ffff # 186: 51fdff
beq a2, a5, .Lbr012 # 189: 571204
l8ui a2, a2, 6 /* [arg0+0x6] */ # 18c: 220206
ret /* [arg0+0x6] */ # 18f: 0df0
.Lbr012: mov a2, a5 /* 0x0000ffff */ # 191: 2d05
ret /* 0x0000ffff */ # 193: 0df0
.literal_position # 198: 67090000
# 19c: a4080000
# 1a0: 88130000
# 1a4: b4090000
# Function @ .irom0.text+0x1a8
.balign 4
.global sdk_ieee80211_ieee2mhz
.type sdk_ieee80211_ieee2mhz, @function
sdk_ieee80211_ieee2mhz:
movi a7, 14 /* 0x0000000e */ # 1a8: 0ce7
movi a8, 13 /* 0x0000000d */ # 1aa: 0cd8
movi a6, 0x00000967 # 1ac: 61fbff
movi a9, 0x000008a4 # 1af: 91fbff
bbci a3, 7, .Lbr014 # 1b2: 77630d
beq a2, a7, .Lbr016 # 1b5: 77121f
bgeu a8, a2, .Lbr015 # 1b8: 27b815
.Lbr013: addx4 a2, a2, a2 # 1bb: 2022a0
addx4 a2, a2, a9 # 1be: 9022a0
ret # 1c1: 0df0
.Lbr014: beq a2, a7, .Lbr016 # 1c3: 771211
bgeu a8, a2, .Lbr015 # 1c6: 27b807
movi a3, 26 /* 0x0000001a */ # 1c9: 1ca3
bgeu a3, a2, .Lbr013 # 1cb: 27b3ec
movi a6, 0x00001388 # 1ce: 61f4ff
.Lbr015: addx4 a2, a2, a2 # 1d1: 2022a0
add a2, a2, a6 # 1d4: 6a22
ret # 1d6: 0df0
.Lbr016: movi a2, 0x000009b4 # 1d8: 21f3ff
ret /* 0x000009b4 */ # 1db: 0df0
.balign 4
# Function @ .irom0.text+0x1e0
.balign 4
.global sdk_ieee80211_find_channel
.type sdk_ieee80211_find_channel, @function
sdk_ieee80211_find_channel:
l32i a6, a2, 128 /* [arg0+0x80] */ # 1e0: 622220
blti a6, 1, .Lbr019 # 1e3: a6161d
addx2 a7, a6, a6 # 1e6: 607690
addx4 a7, a7, a2 # 1e9: 2077a0
.Lbr017: l16ui a8, a2, 136 # 1ec: 821244
l32i a9, a2, 132 # 1ef: 922221
bne a3, a8, .Lbr018 # 1f2: 879309
bnone a9, a4, .Lbr018 # 1f5: 470906
movi a10, 132 /* 0x00000084 */ # 1f8: a2a084
add a2, a2, a10 # 1fb: aa22
ret # 1fd: 0df0
.Lbr018: addi a2, a2, 12 # 1ff: cb22
bne a2, a7, .Lbr017 # 201: 7792e7
.Lbr019: movi a2, 0 /* 0x00000000 */ # 204: 0c02
ret /* 0x00000000 */ # 206: 0df0
# Function @ .irom0.text+0x208
.balign 4
.global sdk_ieee80211_find_channel_byieee
.type sdk_ieee80211_find_channel_byieee, @function
sdk_ieee80211_find_channel_byieee:
l32i a6, a2, 128 /* [arg0+0x80] */ # 208: 622220
blti a6, 1, .Lbr022 # 20b: a6161d
addx2 a7, a6, a6 # 20e: 607690
addx4 a7, a7, a2 # 211: 2077a0
.Lbr020: l8ui a8, a2, 138 # 214: 82028a
l32i a9, a2, 132 # 217: 922221
bne a3, a8, .Lbr021 # 21a: 879309
bnone a9, a4, .Lbr021 # 21d: 470906
movi a10, 132 /* 0x00000084 */ # 220: a2a084
add a2, a2, a10 # 223: aa22
ret # 225: 0df0
.Lbr021: addi a2, a2, 12 # 227: cb22
bne a2, a7, .Lbr020 # 229: 7792e7
.Lbr022: movi a2, 0 /* 0x00000000 */ # 22c: 0c02
ret /* 0x00000000 */ # 22e: 0df0
.literal_position # 230: 00000000
# 234: 10000000
# 238: 00000000
# 23c: 14000000
# 240: 00000000
# 244: 00000000
# 248: 00000000
# 24c: 34000000
# 250: 3c000000
# 254: 00000000
# 258: 40000000
# 25c: 00000000
# 260: 14000000
# 264: 34000000
# 268: 08000000
# 26c: 48000000
# 270: 00000000
# 274: 00000000
# 278: 00000000
# 27c: 00000000
# 280: 00000000
# 284: 00000000
# 288: 00000000
# 28c: 00000000
# 290: 00000000
# 294: 00000000
# 298: 00000000
# 29c: 00000000
# 2a0: 00000000
# 2a4: 00000000
# Function @ .irom0.text+0x2a8
# Local variables/stack:
# (local0): word[4] @ -0x20
# (local1): word @ -0x10
# (local2): word[3] @ -0xc
.balign 4
.global sdk_wifi_mode_set
.type sdk_wifi_mode_set, @function
sdk_wifi_mode_set:
addi sp, sp, -32 /* (local0) */ # 2a8: 12c1e0
s32i a12, sp, 20 /* a12 -> [(local2)] */ # 2ab: c951
s32i a0, sp, 16 /* a0 -> [(local1)] */ # 2ad: 0941
mov a12, a2 /* arg0 */ # 2af: cd02
movi a2, .Lstr001 # 2b1: 21dfff
call0 printf # 2b4: 01efffc0
# 2b8: 0000
beqz a12, .Lbr026 # 2ba: 164c0d
beqi a12, 1, .Lbr023 # 2bd: 261c08
beqi a12, 2, .Lbr025 # 2c0: 262c72
addi a0, a12, -3 /* arg0-0x3 */ # 2c3: 02ccfd
bnez a0, .Lbr027 # 2c6: 56100d
.Lbr023: movi a2, .Label001 # 2c9: 21daff
call0 printf # 2cc: 01eaffc0
# 2d0: 0000
movi a2, sdk_info # 2d2: 21d9ff
l8ui a7, a2, 34 /* [sdk_info+0x22] */ # 2d5: 720222
l8ui a6, a2, 33 /* [sdk_info+0x21] */ # 2d8: 620221
l8ui a5, a2, 32 /* [sdk_info+0x20] */ # 2db: 520220
l8ui a4, a2, 31 /* [sdk_info+0x1f] */ # 2de: 42021f
l8ui a3, a2, 30 /* [sdk_info+0x1e] */ # 2e1: 32021e
l8ui a2, a2, 35 /* [sdk_info+0x23] */ # 2e4: 220223
s32i a2, sp, 0 /* [sdk_info+0x23] -> [(local0)] */ # 2e7: 2901
movi a2, .Lstr003 # 2e9: 21d4ff
call0 printf # 2ec: 01e3ffc0
# 2f0: 0000
movi a3, sdk_g_ic # 2f2: 31d3ff
l32i a3, a3, 16 /* [.Ldata001] */ # 2f5: 3843
bnez a3, .Lbr024 # 2f7: ecf3
movi a2, 648 /* 0x00000288 */ # 2f9: 22a288
call0 zalloc # 2fc: 01e0ffc0
# 300: 0000
movi a5, sdk_g_ic # 302: 51d0ff
movi a4, 0 /* 0x00000000 */ # 305: 0c04
s32i a2, a5, 16 /* a2 -> [.Ldata001] */ # 307: 2945
s32i a4, a2, 176 # 309: 42622c
s32i a4, a2, 60 # 30c: 49f2
movi a2, 272 /* 0x00000110 */ # 30e: 22a110
call0 zalloc # 311: 01dbffc0
# 315: 0000
movi a6, sdk_g_ic # 317: 61ccff
movi a3, .Label002 # 31a: 31ccff
l32i a6, a6, 16 /* [.Ldata001] */ # 31d: 6846
movi a4, 6 /* 0x00000006 */ # 31f: 0c64
s32i a2, a6, 140 /* a2 -> [[.Ldata001]+0x8c] */ # 321: 226623
call0 memcpy # 324: 01d8ffc0
# 328: 0000
.Lbr024: beqi a12, 1, .Lbr027 # 32a: 261c6d
movi a2, .Label003 # 32d: 21c8ff
call0 printf # 330: 01d6ffc0
# 334: 0000
.Lbr025: movi a12, sdk_g_ic # 336: c1c7ff
movi a2, .Lstr004 # 339: 21c7ff
call0 printf # 33c: 01d4ffc0
# 340: 0000
movi a8, sdk_info # 342: 81c6ff
movi a2, .Lstr003 # 345: 21c6ff
l8ui a7, a8, 28 /* [sdk_info+0x1c] */ # 348: 72081c
l8ui a6, a8, 27 /* [sdk_info+0x1b] */ # 34b: 62081b
l8ui a5, a8, 26 /* [sdk_info+0x1a] */ # 34e: 52081a
l8ui a4, a8, 25 /* [sdk_info+0x19] */ # 351: 420819
l8ui a3, a8, 24 /* [sdk_info+0x18] */ # 354: 320818
l8ui a8, a8, 29 /* [sdk_info+0x1d] */ # 357: 82081d
s32i a8, sp, 0 /* [sdk_info+0x1d] -> [(local0)] */ # 35a: 8901
call0 printf # 35c: 01cdffc0
# 360: 0000
l32i a9, a12, 20 /* [.Ldata002] */ # 362: 985c
bnez a9, .Lbr027 # 364: fc39
movi a2, 648 /* 0x00000288 */ # 366: 22a288
call0 zalloc # 369: 01caffc0
# 36d: 0000
s32i a2, a12, 20 /* a2 -> [.Ldata002] */ # 36f: 295c
movi a10, 1 /* 0x00000001 */ # 371: 0c1a
s32i a10, a2, 176 # 373: a2622c
movi a2, 272 /* 0x00000110 */ # 376: 22a110
call0 zalloc # 379: 01c7ffc0
# 37d: 0000
movi a3, .Label002 # 37f: 31b9ff
l32i a11, a12, 20 /* [.Ldata002] */ # 382: b85c
movi a4, 6 /* 0x00000006 */ # 384: 0c64
s32i a2, a11, 144 /* a2 -> [[.Ldata002]+0x90] */ # 386: 226b24
call0 memcpy # 389: 01c4ffc0
# 38d: 0000
j .Lbr027 # 38f: 060200
.Lbr026: movi a2, .Lstr002 # 392: 21b5ff
call0 printf # 395: 01c2ffc0
# 399: 0000
.Lbr027: movi a2, .Label004 # 39b: 21b4ff
call0 printf # 39e: 01c1ffc0
# 3a2: 0000
movi a2, 1 /* 0x00000001 */ # 3a4: 0c12
l32i a12, sp, 20 /* [(local2)] */ # 3a6: c851
l32i a0, sp, 16 /* [(local1)] */ # 3a8: 0841
addi sp, sp, 32 /* (top of frame) */ # 3aa: 12c120
ret /* 0x00000001 */ # 3ad: 0df0
.section .rodata, "a", @progbits
.global sdk_ieee80211_opcap
.type sdk_ieee80211_opcap, @object
sdk_ieee80211_opcap:
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "mode : " # 0: 6d6f6465
# 4: 203a2000
.Lstr002: .asciz "null" # 8: 6e756c6c
# c: 00
.balign 4
.Label001: .word 0x00617473 # 10: 73746100
.Lstr003: .asciz "(%02x:%02x:%02x:%02x:%02x:%02x)" # 14: 28253032
# 18: 783a2530
# 1c: 32783a25
# 20: 3032783a
# 24: 25303278
# 28: 3a253032
# 2c: 783a2530
# 30: 32782900
.Label002: .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00
.Label003: .word 0x00202b20 # 3c: 202b2000
.Lstr004: .asciz "softAP" # 40: 736f6674
# 44: 415000
.balign 4
.Label004: .byte 0x0a, 0x00

View file

@ -0,0 +1,206 @@
.section .data, "aw", @progbits
.Lrel001: .word .irom0.text # 0: 00000000
.Lrel002: .word .irom0.text # 4: 00000000
.Lrel003: .word .irom0.text # 8: 00000000
.Lrel004: .word .irom0.text # c: 00000000
.Lrel005: .word .Lfunc002 # 10: bc000000
.Lrel006: .word .Lfunc002 # 14: bc000000
.Lrel007: .word .Lfunc002 # 18: bc000000
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.balign 4
.literal_position
.Lfunc001: movi a2, -1 /* 0xffffffff */ # 0: 7cf2
ret /* 0xffffffff */ # 2: 0df0
.literal_position # 4: 0c000000
# 8: 00000000
# c: 08000000
# Function @ .irom0.text+0x10
.balign 4
.global sdk_ieee80211_send_action_register
.type sdk_ieee80211_send_action_register, @function
sdk_ieee80211_send_action_register:
beqi a2, 3, .Lbr003 # 10: 26321a
beqi a2, 7, .Lbr004 # 13: 267220
movi a5, 127 /* 0x0000007f */ # 16: 52a07f
bne a2, a5, .Lbr002 # 19: 57920d
bnez a3, .Lbr002 # 1c: cca3
movi a2, .Lrel004 # 1e: 21f9ff
.Lbr001: addx4 a6, a3, a2 # 21: 2063a0
s32i a4, a6, 0 # 24: 4906
movi a2, 0 /* 0x00000000 */ # 26: 0c02
ret /* 0x00000000 */ # 28: 0df0
.Lbr002: movi a2, -1 /* 0xffffffff */ # 2a: 7cf2
ret /* 0xffffffff */ # 2c: 0df0
.Lbr003: bgeui a3, 2, .Lbr002 # 2e: f623f8
movi a2, .Lrel001 # 31: 21f5ff
j .Lbr001 # 34: 46faff
.Lbr004: bnez a3, .Lbr002 # 37: 56f3fe
movi a2, .Lrel003 # 3a: 21f4ff
j .Lbr001 # 3d: 06f8ff
.literal_position # 40: 00000000
# Function @ .irom0.text+0x44
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_ieee80211_send_action_unregister
.type sdk_ieee80211_send_action_unregister, @function
sdk_ieee80211_send_action_unregister:
movi a4, .Lfunc001 # 44: 41ffff
addi sp, sp, -16 /* (local0) */ # 47: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4a: 0901
call0 sdk_ieee80211_send_action_register # 4c: 050000
l32i a0, sp, 0 /* [(local0)] */ # 4f: 0801
addi sp, sp, 16 /* (top of frame) */ # 51: 12c110
ret # 54: 0df0
.literal_position # 58: 00000000
# 5c: 0c000000
# 60: 08000000
# 64: 00000000
# Function @ .irom0.text+0x68
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_ieee80211_send_action
.type sdk_ieee80211_send_action, @function
sdk_ieee80211_send_action:
addi sp, sp, -16 /* (local0) */ # 68: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6b: 0901
movi a0, .Lfunc001 # 6d: 01faff
beqi a3, 3, .Lbr005 # 70: 263315
beqi a3, 7, .Lbr009 # 73: 267326
movi a6, 127 /* 0x0000007f */ # 76: 62a07f
bne a3, a6, .Lbr006 # 79: 67930f
bnez a4, .Lbr008 # 7c: dc84
movi a7, .Lrel004 # 7e: 71f7ff
addx4 a7, a4, a7 # 81: 7074a0
l32i a7, a7, 0 # 84: 7807
j .Lbr007 # 86: 060100
.Lbr005: bltui a4, 2, .Lbr011 # 89: b62422
.Lbr006: mov a7, a0 /* .Lfunc001 */ # 8c: 7d00
.Lbr007: callx0 a7 # 8e: c00700
l32i a0, sp, 0 /* [(local0)] */ # 91: 0801
addi sp, sp, 16 /* (top of frame) */ # 93: 12c110
ret # 96: 0df0
.Lbr008: mov a7, a0 /* .Lfunc001 */ # 98: 7d00
j .Lbr007 # 9a: 06fcff
.Lbr009: bnez a4, .Lbr010 # 9d: cc94
movi a7, .Lrel003 # 9f: 71f0ff
addx4 a7, a4, a7 # a2: 7074a0
l32i a7, a7, 0 # a5: 7807
j .Lbr007 # a7: c6f8ff
.Lbr010: mov a7, a0 /* .Lfunc001 */ # aa: 7d00
j .Lbr007 # ac: 86f7ff
.Lbr011: movi a7, .Lrel001 # af: 71edff
addx4 a7, a4, a7 # b2: 7074a0
l32i a7, a7, 0 # b5: 7807
j .Lbr007 # b7: c6f4ff
.balign 4
# Function @ .irom0.text+0xbc
.balign 4
.Lfunc002: movi a2, -1 /* 0xffffffff */ # bc: 7cf2
ret /* 0xffffffff */ # be: 0df0
.literal_position # c0: 18000000
# c4: 10000000
# c8: 14000000
# Function @ .irom0.text+0xcc
.balign 4
.global sdk_ieee80211_recv_action_register
.type sdk_ieee80211_recv_action_register, @function
sdk_ieee80211_recv_action_register:
beqi a2, 3, .Lbr014 # cc: 26321a
beqi a2, 7, .Lbr015 # cf: 267220
movi a5, 127 /* 0x0000007f */ # d2: 52a07f
bne a2, a5, .Lbr013 # d5: 57920d
bnez a3, .Lbr013 # d8: cca3
movi a2, .Lrel007 # da: 21f9ff
.Lbr012: addx4 a6, a3, a2 # dd: 2063a0
s32i a4, a6, 0 # e0: 4906
movi a2, 0 /* 0x00000000 */ # e2: 0c02
ret /* 0x00000000 */ # e4: 0df0
.Lbr013: movi a2, -1 /* 0xffffffff */ # e6: 7cf2
ret /* 0xffffffff */ # e8: 0df0
.Lbr014: bnez a3, .Lbr013 # ea: 5683ff
movi a2, .Lrel005 # ed: 21f5ff
j .Lbr012 # f0: 46faff
.Lbr015: bnez a3, .Lbr013 # f3: 56f3fe
movi a2, .Lrel006 # f6: 21f4ff
j .Lbr012 # f9: 06f8ff
.literal_position # fc: bc000000
# Function @ .irom0.text+0x100
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_ieee80211_recv_action_unregister
.type sdk_ieee80211_recv_action_unregister, @function
sdk_ieee80211_recv_action_unregister:
movi a4, .Lfunc002 # 100: 41ffff
addi sp, sp, -16 /* (local0) */ # 103: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 106: 0901
call0 sdk_ieee80211_recv_action_register # 108: 050000
l32i a0, sp, 0 /* [(local0)] */ # 10b: 0801
addi sp, sp, 16 /* (top of frame) */ # 10d: 12c110
ret # 110: 0df0
.literal_position # 114: bc000000
# 118: 18000000
# 11c: 14000000
# 120: 10000000
# Function @ .irom0.text+0x124
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_ieee80211_recv_action
.type sdk_ieee80211_recv_action, @function
sdk_ieee80211_recv_action:
addi sp, sp, -16 /* (local0) */ # 124: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 127: 0901
l8ui a0, a4, 0 /* [arg2] */ # 129: 020400
movi a8, .Lfunc002 # 12c: 81faff
beqi a0, 3, .Lbr016 # 12f: 26301a
beqi a0, 7, .Lbr020 # 132: 26702b
movi a6, 127 /* 0x0000007f */ # 135: 62a07f
bne a0, a6, .Lbr017 # 138: 679016
l8ui a0, a4, 1 /* [arg2+0x1] */ # 13b: 020401
mov a7, a8 /* .Lfunc002 */ # 13e: 7d08
bnez a0, .Lbr019 # 140: dca0
movi a7, .Lrel007 # 142: 71f5ff
addx4 a7, a0, a7 # 145: 7070a0
l32i a7, a7, 0 # 148: 7807
j .Lbr018 # 14a: 860100
.Lbr016: l8ui a0, a4, 1 /* [arg2+0x1] */ # 14d: 020401
beqz a0, .Lbr022 # 150: ac20
.Lbr017: mov a7, a8 /* .Lfunc002 */ # 152: 7d08
.Lbr018: callx0 a7 # 154: c00700
l32i a0, sp, 0 /* [(local0)] */ # 157: 0801
addi sp, sp, 16 /* (top of frame) */ # 159: 12c110
ret # 15c: 0df0
.Lbr019: j .Lbr018 # 15e: 86fcff
.Lbr020: l8ui a0, a4, 1 /* [arg2+0x1] */ # 161: 020401
mov a7, a8 /* .Lfunc002 */ # 164: 7d08
bnez a0, .Lbr021 # 166: cc90
movi a7, .Lrel006 # 168: 71edff
addx4 a7, a0, a7 # 16b: 7070a0
l32i a7, a7, 0 # 16e: 7807
j .Lbr018 # 170: 06f8ff
.Lbr021: j .Lbr018 # 173: 46f7ff
.Lbr022: movi a7, .Lrel005 # 176: 71eaff
addx4 a7, a0, a7 # 179: 7070a0
l32i a7, a7, 0 # 17c: 7807
j .Lbr018 # 17e: 86f4ff

View file

@ -0,0 +1,115 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.balign 4
.literal_position
.global sdk_ieee80211_crypto_attach
.type sdk_ieee80211_crypto_attach, @function
sdk_ieee80211_crypto_attach:
ret /* arg0 */ # 0: 0df0
.balign 4
# Function @ .irom0.text+0x4
.balign 4
.global sdk_ieee80211_crypto_available
.type sdk_ieee80211_crypto_available, @function
sdk_ieee80211_crypto_available:
movi a2, 0 /* 0x00000000 */ # 4: 0c02
ret /* 0x00000000 */ # 6: 0df0
# Function @ .irom0.text+0x8
.balign 4
.global sdk_ieee80211_crypto_setkey
.type sdk_ieee80211_crypto_setkey, @function
sdk_ieee80211_crypto_setkey:
movi a2, 0 /* 0x00000000 */ # 8: 0c02
ret /* 0x00000000 */ # a: 0df0
.literal_position # c: 00000000
# Function @ .irom0.text+0x10
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_ieee80211_crypto_encap
.type sdk_ieee80211_crypto_encap, @function
sdk_ieee80211_crypto_encap:
addi sp, sp, -16 /* (local0) */ # 10: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 13: 0911
l32i a4, a3, 32 /* [arg1+0x20] */ # 15: 4883
l32i a0, a2, 136 /* [arg0+0x88] */ # 17: 022222
l32i a4, a4, 0 /* [[arg1+0x20]] */ # 1a: 4804
movi a2, sdk_g_ic # 1c: 21fcff
bbci a4, 7, .Lbr003 # 1f: 776434
l8ui a0, a0, 233 /* [[arg0+0x88]+0xe9] */ # 22: 0200e9
bltui a0, 2, .Lbr001 # 25: b62004
addi a6, a0, -1 /* [[arg0+0x88]+0xe9]-0x1 */ # 28: 0b60
j .Lbr002 # 2a: 460000
.Lbr001: mov a6, a0 /* [[arg0+0x88]+0xe9] */ # 2d: 6d00
.Lbr002: addx4 a2, a0, a2 # 2f: 2020a0
l32i a2, a2, 0x190 # 32: 222264
slli a4, a6, 6 # 35: a04611
l32i a0, a2, 152 # 38: 022226
extui a4, a4, 0, 8 # 3b: 404074
l32i a0, a0, 16 # 3e: 0840
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 40: 2901
callx0 a0 # 42: c00000
l32i a4, sp, 0 /* [(local0)] */ # 45: 4801
l32i a3, sp, 4 /* [(local1)] */ # 47: 3811
movi a0, 0 /* 0x00000000 */ # 49: 0c00
addi sp, sp, 16 /* (top of frame) */ # 4b: 12c110
movnez a0, a4, a2 # 4e: 200493
mov a2, a0 # 51: 2d00
mov a0, a3 /* [(local1)] */ # 53: 0d03
ret # 55: 0df0
.Lbr003: movi a6, 0 /* 0x00000000 */ # 57: 0c06
l8ui a0, a0, 232 /* [[arg0+0x88]+0xe8] */ # 59: 0200e8
j .Lbr002 # 5c: c6f3ff
.literal_position # 60: 00000000
# Function @ .irom0.text+0x64
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_ieee80211_crypto_decap
.type sdk_ieee80211_crypto_decap, @function
sdk_ieee80211_crypto_decap:
addi sp, sp, -16 /* (local0) */ # 64: 12c1f0
l16ui a5, a3, 22 /* [arg1+0x16] */ # 67: 52130b
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 6a: 0911
l16ui a0, a3, 20 /* [arg1+0x14] */ # 6c: 02130a
movi a6, sdk_g_ic # 6f: 61fcff
add a0, a0, a5 # 72: 5a00
bltui a0, 32, .Lbr005 # 74: b6c020
l32i a0, a3, 4 /* [arg1+0x4] */ # 77: 0813
l32i a0, a0, 4 /* [[arg1+0x4]+0x4] */ # 79: 0810
l8ui a7, a0, 4 /* [[[arg1+0x4]+0x4]+0x4] */ # 7b: 720004
add a0, a4, a0 # 7e: 0a04
bbci a7, 0, .Lbr008 # 80: 076731
l8ui a0, a0, 3 # 83: 020003
extui a0, a0, 6, 2 # 86: 000614
addi a0, a0, -1 # 89: 0b00
extui a0, a0, 0, 8 # 8b: 000074
.Lbr004: addx4 a2, a0, a6 # 8e: 6020a0
l32i a2, a2, 0x190 # 91: 222264
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 94: 2901
bnez a2, .Lbr006 # 96: cc32
.Lbr005: movi a2, 0 /* 0x00000000 */ # 98: 0c02
j .Lbr007 # 9a: 060400
.Lbr006: l32i a0, a2, 152 # 9d: 022226
l32i a0, a0, 20 # a0: 0850
callx0 a0 # a2: c00000
mov a4, a2 # a5: 4d02
l32i a3, sp, 0 /* [(local0)] */ # a7: 3801
movi a2, 0 /* 0x00000000 */ # a9: 0c02
movnez a2, a3, a4 # ab: 402393
.Lbr007: l32i a0, sp, 4 /* [(local1)] */ # ae: 0811
addi sp, sp, 16 /* (top of frame) */ # b0: 12c110
ret # b3: 0df0
.Lbr008: l32i a0, a2, 136 /* [arg0+0x88] */ # b5: 022222
l8ui a0, a0, 232 /* [[arg0+0x88]+0xe8] */ # b8: 0200e8
j .Lbr004 # bb: c6f3ff

View file

@ -0,0 +1,142 @@
.section .data, "aw", @progbits
.global sdk_ccmp
.type sdk_ccmp, @object
sdk_ccmp: .word 0x00000003 # 0: 03000000
.Ldata001: .word 0x00000008 # 4: 08000000
# NOTE: The following is apparently unreferenced code/data
.word 0x00000008 # 8: 08000000
.word 0x00000000 # c: 00000000
.Lrel001: .word .Lfunc001 # 10: 04000000
.Lrel002: .word .Lfunc002 # 14: 80000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
.balign 4
.Lfunc001: ssai 8 # 4: 004840
l32i a5, a2, 144 /* [arg0+0x90] */ # 7: 522224
l16ui a6, a3, 22 /* [arg1+0x16] */ # a: 62130b
movi a7, sdk_ccmp # d: 71fcff
l32i a9, a3, 4 /* [arg1+0x4] */ # 10: 9813
l32i a10, a7, 4 /* [.Ldata001] */ # 12: a817
l32i a7, a7, 4 /* [.Ldata001] */ # 14: 7817
l32i a8, a9, 4 /* [[arg1+0x4]+0x4] */ # 16: 8819
add a6, a6, a7 # 18: 7a66
sub a8, a8, a10 # 1a: a088c0
addi a7, a5, 1 /* [arg0+0x90]+0x1 */ # 1d: 1b75
s32i a8, a9, 4 /* a8 -> [[arg1+0x4]+0x4] */ # 1f: 8919
s16i a6, a3, 22 /* a6 -> [arg1+0x16] */ # 21: 62530b
movi a9, 32 /* 0x00000020 */ # 24: 2c09
or a11, a4, a9 # 26: 90b420
s32i a7, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 29: 726224
l32i a3, a2, 148 /* [arg0+0x94] */ # 2c: 322225
bgeu a7, a5, .Lbr001 # 2f: 57b701
addi a3, a3, 1 /* [arg0+0x94]+0x1 */ # 32: 1b33
.Lbr001: movi a5, 0 /* 0x00000000 */ # 34: 0c05
s32i a3, a2, 148 /* a3 -> [arg0+0x94] */ # 36: 326225
s8i a7, a8, 0 # 39: 724800
l32i a6, a2, 148 /* [arg0+0x94] */ # 3c: 622225
l32i a10, a2, 144 /* [arg0+0x90] */ # 3f: a22224
s8i a5, a8, 2 # 42: 524802
s8i a11, a8, 3 # 45: b24803
src a6, a6, a10 # 48: a06681
s8i a6, a8, 1 # 4b: 624801
l32i a11, a2, 144 /* [arg0+0x90] */ # 4e: b22224
l32i a10, a2, 148 /* [arg0+0x94] */ # 51: a22225
ssai 16 # 54: 104040
src a10, a10, a11 # 57: b0aa81
s8i a10, a8, 4 # 5a: a24804
l32i a6, a2, 144 /* [arg0+0x90] */ # 5d: 622224
l32i a5, a2, 148 /* [arg0+0x94] */ # 60: 522225
ssai 24 # 63: 104840
src a5, a5, a6 # 66: 605581
s8i a5, a8, 5 # 69: 524805
l32i a11, a2, 148 /* [arg0+0x94] */ # 6c: b22225
s8i a11, a8, 6 # 6f: b24806
l32i a10, a2, 148 /* [arg0+0x94] */ # 72: a22225
movi a2, 1 /* 0x00000001 */ # 75: 0c12
srli a10, a10, 8 # 77: a0a841
s8i a10, a8, 7 # 7a: a24807
ret /* 0x00000001 */ # 7d: 0df0
.balign 4
# Function @ .irom0.text+0x80
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.Lfunc002: addi sp, sp, -16 /* (local0) */ # 80: 12c1f0
l32i a8, a3, 4 /* [arg1+0x4] */ # 83: 8813
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 85: 0911
l32i a0, a8, 4 /* [[arg1+0x4]+0x4] */ # 87: 0818
add a7, a4, a0 # 89: 0a74
l8ui a5, a7, 3 # 8b: 520703
movi a9, 140 /* 0x0000008c */ # 8e: 92a08c
extui a5, a5, 5, 1 # 91: 505504
beqz a5, .Lbr006 # 94: 169508
l8ui a5, a7, 6 # 97: 520706
l8ui a11, a7, 7 # 9a: b20707
l8ui a6, a0, 0 /* [[[arg1+0x4]+0x4]] */ # 9d: 620000
slli a11, a11, 8 # a0: 80bb11
and a6, a6, a9 # a3: 906610
or a11, a11, a5 # a6: 50bb20
l8ui a5, a7, 4 # a9: 520704
movi a9, 136 /* 0x00000088 */ # ac: 92a088
slli a5, a5, 16 # af: 005511
bne a6, a9, .Lbr002 # b2: 979611
l8ui a10, a0, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # b5: a20001
extui a10, a10, 0, 2 # b8: a0a014
addi a10, a10, -3 # bb: a2cafd
bnez a10, .Lbr008 # be: 56aa06
l8ui a0, a0, 30 /* [[[arg1+0x4]+0x4]+0x1e] */ # c1: 02001e
j .Lbr009 # c4: c61900
.Lbr002: movi a0, 16 /* 0x00000010 */ # c7: 1c00
.Lbr003: l8ui a9, a7, 0 # c9: 920700
l8ui a10, a7, 5 # cc: a20705
l8ui a6, a7, 1 # cf: 620701
slli a10, a10, 24 # d2: 80aa01
slli a6, a6, 8 # d5: 806611
or a6, a6, a9 # d8: 906620
extui a7, a11, 0, 16 # db: b070f4
addx8 a9, a0, a2 # de: 2090b0
or a5, a5, a6 # e1: 605520
movi a0, 0 /* 0x00000000 */ # e4: 0c00
s32i a9, sp, 0 /* a9 -> [(local0)] */ # e6: 9901
l32i a11, a9, 8 # e8: b829
l32i a9, a9, 12 # ea: 9839
or a10, a10, a5 # ec: 50aa20
bltu a9, a7, .Lbr005 # ef: 773907
bne a9, a7, .Lbr004 # f2: 779902
bltu a11, a10, .Lbr005 # f5: a73b01
.Lbr004: movi a0, 1 /* 0x00000001 */ # f8: 0c10
.Lbr005: bnez a0, .Lbr006 # fa: ec30
l32i a11, sp, 0 /* [(local0)] */ # fc: b801
l16ui a9, a3, 22 /* [arg1+0x16] */ # fe: 92130b
s32i a10, a11, 8 /* a10 -> [[(local0)]+0x8] */ # 101: a92b
s32i a7, a11, 12 /* a7 -> [[(local0)]+0xc] */ # 103: 793b
l32i a11, a2, 152 /* [arg0+0x98] */ # 105: b22226
l32i a5, a8, 4 /* [[arg1+0x4]+0x4] */ # 108: 5818
l32i a0, a11, 4 /* [[arg0+0x98]+0x4] */ # 10a: 081b
l32i a11, a11, 8 /* [[arg0+0x98]+0x8] */ # 10c: b82b
add a6, a4, a0 # 10e: 0a64
add a11, a11, a0 # 110: 0abb
add a5, a5, a6 # 112: 6a55
movi a0, 1 /* 0x00000001 */ # 114: 0c10
s32i a5, a8, 4 /* a5 -> [[arg1+0x4]+0x4] */ # 116: 5918
sub a9, a9, a11 # 118: b099c0
s16i a9, a3, 22 /* a9 -> [arg1+0x16] */ # 11b: 92530b
j .Lbr007 # 11e: 460000
.Lbr006: movi a0, 0 /* 0x00000000 */ # 121: 0c00
.Lbr007: mov a2, a0 # 123: 2d00
l32i a0, sp, 4 /* [(local1)] */ # 125: 0811
addi sp, sp, 16 /* (top of frame) */ # 127: 12c110
ret # 12a: 0df0
.Lbr008: l8ui a0, a0, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 12c: 020018
.Lbr009: extui a0, a0, 0, 4 # 12f: 000034
j .Lbr003 # 132: c6e4ff

View file

@ -0,0 +1,165 @@
.section .data, "aw", @progbits
.global sdk_tkip
.type sdk_tkip, @object
sdk_tkip: .word 0x00000002 # 0: 02000000
.Ldata001: .word 0x00000008 # 4: 08000000
# NOTE: The following is apparently unreferenced code/data
.word 0x0000000c # 8: 0c000000
.word 0x00000008 # c: 08000000
.Lrel001: .word .Lfunc001 # 10: 08000000
.Lrel002: .word .Lfunc002 # 14: a0000000
.section .bss, "aw", @nobits
.Ldata002: .word 0x00000000 # 0: 00000000
.Ldata003: .word 0x00000000 # 4: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .irom0.text+0x8
.balign 4
.Lfunc001: movi a5, sdk_g_ic # 8: 51feff
ssai 8 # b: 004840
l32i a5, a5, 28 /* [sdk_g_ic+0x1c] */ # e: 5875
movi a11, sdk_tkip # 10: b1fdff
bbci a5, 26, .Lbr001 # 13: a77503
movi a2, 0 /* 0x00000000 */ # 16: 0c02
ret /* 0x00000000 */ # 18: 0df0
.Lbr001: l32i a7, a2, 148 /* [arg0+0x94] */ # 1a: 722225
l16ui a10, a3, 22 /* [arg1+0x16] */ # 1d: a2130b
l32i a5, a3, 4 /* [arg1+0x4] */ # 20: 5813
l32i a9, a11, 4 /* [.Ldata001] */ # 22: 981b
l32i a8, a5, 4 /* [[arg1+0x4]+0x4] */ # 24: 8815
l32i a11, a11, 4 /* [.Ldata001] */ # 26: b81b
sub a8, a8, a9 # 28: 9088c0
l32i a9, a2, 144 /* [arg0+0x90] */ # 2b: 922224
add a10, a10, a11 # 2e: baaa
src a7, a7, a9 # 30: 907781
movi a9, 95 /* 0x0000005f */ # 33: 5cf9
s32i a8, a5, 4 /* a8 -> [[arg1+0x4]+0x4] */ # 35: 8915
s16i a10, a3, 22 /* a10 -> [arg1+0x16] */ # 37: a2530b
and a9, a7, a9 # 3a: 909710
movi a10, 32 /* 0x00000020 */ # 3d: 2c0a
or a6, a4, a10 # 3f: a06420
s8i a7, a8, 0 # 42: 724800
or a9, a9, a10 # 45: a09920
s8i a9, a8, 1 # 48: 924801
l32i a5, a2, 144 /* [arg0+0x90] */ # 4b: 522224
s8i a6, a8, 3 # 4e: 624803
s8i a5, a8, 2 # 51: 524802
l32i a4, a2, 144 /* [arg0+0x90] */ # 54: 422224
l32i a3, a2, 148 /* [arg0+0x94] */ # 57: 322225
ssai 16 # 5a: 104040
src a3, a3, a4 # 5d: 403381
s8i a3, a8, 4 # 60: 324804
l32i a11, a2, 144 /* [arg0+0x90] */ # 63: b22224
l32i a10, a2, 148 /* [arg0+0x94] */ # 66: a22225
ssai 24 # 69: 104840
src a10, a10, a11 # 6c: b0aa81
s8i a10, a8, 5 # 6f: a24805
l32i a9, a2, 148 /* [arg0+0x94] */ # 72: 922225
s8i a9, a8, 6 # 75: 924806
l32i a7, a2, 148 /* [arg0+0x94] */ # 78: 722225
srli a7, a7, 8 # 7b: 707841
s8i a7, a8, 7 # 7e: 724807
l32i a6, a2, 144 /* [arg0+0x90] */ # 81: 622224
l32i a3, a2, 148 /* [arg0+0x94] */ # 84: 322225
addi a4, a6, 1 /* [arg0+0x90]+0x1 */ # 87: 1b46
bgeu a4, a6, .Lbr002 # 89: 67b401
addi a3, a3, 1 /* [arg0+0x94]+0x1 */ # 8c: 1b33
.Lbr002: s32i a3, a2, 148 /* a3 -> [arg0+0x94] */ # 8e: 326225
s32i a4, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 91: 426224
movi a2, 1 /* 0x00000001 */ # 94: 0c12
ret /* 0x00000001 */ # 96: 0df0
.literal_position # 98: 00000000
# 9c: 00000000
# Function @ .irom0.text+0xa0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.Lfunc002: addi sp, sp, -16 /* (local0) */ # a0: 12c1f0
l32i a8, a3, 4 /* [arg1+0x4] */ # a3: 8813
s32i a0, sp, 4 /* a0 -> [(local1)] */ # a5: 0911
l32i a0, a8, 4 /* [[arg1+0x4]+0x4] */ # a7: 0818
movi a6, sdk_g_ic # a9: 61fbff
add a7, a4, a0 # ac: 0a74
l8ui a5, a7, 3 # ae: 520703
l32i a6, a6, 28 /* [sdk_g_ic+0x1c] */ # b1: 6876
extui a5, a5, 5, 1 # b3: 505504
beqz a5, .Lbr007 # b6: 169509
extui a6, a6, 26, 1 # b9: 606a05
bnez a6, .Lbr007 # bc: 563609
l8ui a6, a7, 6 # bf: 620706
l8ui a5, a7, 7 # c2: 520707
l8ui a9, a0, 0 /* [[[arg1+0x4]+0x4]] */ # c5: 920000
movi a10, 140 /* 0x0000008c */ # c8: a2a08c
and a9, a9, a10 # cb: a09910
slli a5, a5, 8 # ce: 805511
or a5, a5, a6 # d1: 605520
movi a10, 136 /* 0x00000088 */ # d4: a2a088
l8ui a6, a7, 0 # d7: 620700
bne a9, a10, .Lbr003 # da: a79911
l8ui a11, a0, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # dd: b20001
extui a11, a11, 0, 2 # e0: b0b014
addi a11, a11, -3 # e3: b2cbfd
bnez a11, .Lbr009 # e6: 564b07
l8ui a0, a0, 30 /* [[[arg1+0x4]+0x4]+0x1e] */ # e9: 02001e
j .Lbr010 # ec: 461c00
.Lbr003: movi a0, 16 /* 0x00000010 */ # ef: 1c00
.Lbr004: slli a6, a6, 8 # f1: 806611
l8ui a9, a7, 2 # f4: 920702
l8ui a10, a7, 5 # f7: a20705
l8ui a11, a7, 4 # fa: b20704
slli a10, a10, 24 # fd: 80aa01
slli a11, a11, 16 # 100: 00bb11
extui a7, a5, 0, 16 # 103: 5070f4
or a6, a6, a9 # 106: 906620
or a11, a11, a6 # 109: 60bb20
addx8 a9, a0, a2 # 10c: 2090b0
or a10, a10, a11 # 10f: b0aa20
movi a11, .Ldata002 # 112: b1e2ff
s32i a9, sp, 0 /* a9 -> [(local0)] */ # 115: 9901
s32i a7, a11, 4 /* a7 -> [.Ldata003] */ # 117: 791b
s32i a10, a11, 0 /* a10 -> [.Ldata002] */ # 119: a90b
l32i a11, a9, 8 # 11b: b829
l32i a9, a9, 12 # 11d: 9839
movi a0, 0 /* 0x00000000 */ # 11f: 0c00
bltu a9, a7, .Lbr006 # 121: 773907
bne a9, a7, .Lbr005 # 124: 779902
bltu a11, a10, .Lbr006 # 127: a73b01
.Lbr005: movi a0, 1 /* 0x00000001 */ # 12a: 0c10
.Lbr006: bnez a0, .Lbr007 # 12c: ec30
l32i a0, sp, 0 /* [(local0)] */ # 12e: 0801
l16ui a11, a3, 22 /* [arg1+0x16] */ # 130: b2130b
s32i a10, a0, 8 /* a10 -> [[(local0)]+0x8] */ # 133: a920
s32i a7, a0, 12 /* a7 -> [[(local0)]+0xc] */ # 135: 7930
l32i a0, a2, 152 /* [arg0+0x98] */ # 137: 022226
l32i a6, a8, 4 /* [[arg1+0x4]+0x4] */ # 13a: 6818
l32i a5, a0, 4 /* [[arg0+0x98]+0x4] */ # 13c: 5810
l32i a0, a0, 8 /* [[arg0+0x98]+0x8] */ # 13e: 0820
add a9, a4, a5 # 140: 5a94
add a6, a6, a9 # 142: 9a66
add a0, a0, a5 # 144: 5a00
sub a11, a11, a0 # 146: 00bbc0
s32i a6, a8, 4 /* a6 -> [[arg1+0x4]+0x4] */ # 149: 6918
movi a0, 1 /* 0x00000001 */ # 14b: 0c10
s16i a11, a3, 22 /* a11 -> [arg1+0x16] */ # 14d: b2530b
j .Lbr008 # 150: 460000
.Lbr007: movi a0, 0 /* 0x00000000 */ # 153: 0c00
.Lbr008: mov a2, a0 # 155: 2d00
l32i a0, sp, 4 /* [(local1)] */ # 157: 0811
addi sp, sp, 16 /* (top of frame) */ # 159: 12c110
ret # 15c: 0df0
.Lbr009: l8ui a0, a0, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 15e: 020018
.Lbr010: extui a0, a0, 0, 4 # 161: 000034
j .Lbr004 # 164: 46e2ff

View file

@ -0,0 +1,73 @@
.section .data, "aw", @progbits
.global sdk_wep
.type sdk_wep, @object
sdk_wep: .word 0x00000001 # 0: 01000000
.Ldata001: .word 0x00000004 # 4: 04000000
# NOTE: The following is apparently unreferenced code/data
.word 0x00000004 # 8: 04000000
.word 0x00000000 # c: 00000000
.Lrel001: .word .Lfunc001 # 10: 04000000
.Lrel002: .word .Lfunc002 # 14: 60000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
.balign 4
.Lfunc001: bnez a3, .Lbr001 # 4: cc33
movi a3, 0 /* 0x00000000 */ # 6: 0c03
j .Lbr003 # 8: 461300
.Lbr001: l32i a5, a2, 144 /* [arg0+0x90] */ # b: 522224
l16ui a6, a3, 22 /* [arg1+0x16] */ # e: 62130b
movi a7, sdk_wep # 11: 71fbff
l32i a8, a3, 4 /* [arg1+0x4] */ # 14: 8813
l32i a10, a7, 4 /* [.Ldata001] */ # 16: a817
l32i a7, a7, 4 /* [.Ldata001] */ # 18: 7817
l32i a9, a8, 4 /* [[arg1+0x4]+0x4] */ # 1a: 9818
add a6, a6, a7 # 1c: 7a66
sub a9, a9, a10 # 1e: a099c0
l32i a7, a2, 148 /* [arg0+0x94] */ # 21: 722225
s32i a9, a8, 4 /* a9 -> [[arg1+0x4]+0x4] */ # 24: 9918
s16i a6, a3, 22 /* a6 -> [arg1+0x16] */ # 26: 62530b
addi a8, a5, 1 /* [arg0+0x90]+0x1 */ # 29: 1b85
bgeu a8, a5, .Lbr002 # 2b: 57b801
addi a7, a7, 1 /* [arg0+0x94]+0x1 */ # 2e: 1b77
.Lbr002: movi a3, 1 /* 0x00000001 */ # 30: 0c13
s32i a7, a2, 148 /* a7 -> [arg0+0x94] */ # 32: 726225
s32i a8, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 35: 826224
ssai 16 # 38: 104040
src a6, a7, a8 # 3b: 806781
s8i a6, a9, 2 # 3e: 624902
l32i a5, a2, 144 /* [arg0+0x90] */ # 41: 522224
l32i a11, a2, 148 /* [arg0+0x94] */ # 44: b22225
ssai 8 # 47: 004840
src a11, a11, a5 # 4a: 50bb81
s8i a11, a9, 1 # 4d: b24901
l32i a10, a2, 144 /* [arg0+0x90] */ # 50: a22224
s8i a10, a9, 0 # 53: a24900
s8i a4, a9, 3 # 56: 424903
.Lbr003: mov a2, a3 # 59: 2d03
ret # 5b: 0df0
.balign 4
# Function @ .irom0.text+0x60
.balign 4
.Lfunc002: l32i a5, a2, 152 /* [arg0+0x98] */ # 60: 522226
l32i a8, a3, 4 /* [arg1+0x4] */ # 63: 8813
l16ui a2, a3, 22 /* [arg1+0x16] */ # 65: 22130b
l32i a7, a8, 4 /* [[arg1+0x4]+0x4] */ # 68: 7818
l32i a6, a5, 4 /* [[arg0+0x98]+0x4] */ # 6a: 6815
l32i a5, a5, 8 /* [[arg0+0x98]+0x8] */ # 6c: 5825
add a9, a4, a6 # 6e: 6a94
add a7, a7, a9 # 70: 9a77
add a5, a5, a6 # 72: 6a55
sub a2, a2, a5 # 74: 5022c0
s32i a7, a8, 4 /* a7 -> [[arg1+0x4]+0x4] */ # 77: 7918
s16i a2, a3, 22 /* a2 -> [arg1+0x16] */ # 79: 22530b
movi a2, 1 /* 0x00000001 */ # 7c: 0c12
ret /* 0x00000001 */ # 7e: 0df0

View file

@ -0,0 +1,44 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global sdk_ieee80211_getmgtframe
.type sdk_ieee80211_getmgtframe, @function
sdk_ieee80211_getmgtframe:
movi a5, -4 /* 0xfffffffc */ # 4: 7cc5
addi sp, sp, -16 /* (local0) */ # 6: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 9: 0911
s32i a12, sp, 8 /* a12 -> [(local2)] */ # b: c921
movi a0, 256 /* 0x00000100 */ # d: 02a100
mov a12, a3 /* arg1 */ # 10: cd03
add a3, a3, a4 # 12: 4a33
addi a3, a3, 3 # 14: 3b33
and a4, a3, a5 # 16: 504310
bgeu a0, a4, .Lbr001 # 19: 47b004
movi a2, 0 /* 0x00000000 */ # 1c: 0c02
j .Lbr003 # 1e: 860700
.Lbr001: movi a3, 4 /* 0x00000004 */ # 21: 0c43
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 23: 2901
movi a5, 65 /* 0x00000041 */ # 25: 4c15
bgeu a4, a5, .Lbr002 # 27: 57b401
movi a3, 5 /* 0x00000005 */ # 2a: 0c53
.Lbr002: movi a2, 0 /* 0x00000000 */ # 2c: 0c02
call0 sdk_esf_buf_alloc # 2e: 01f4ffc0
# 32: 0000
beqz a2, .Lbr003 # 34: 8c82
l32i a6, a2, 4 # 36: 6812
l32i a6, a6, 4 # 38: 6816
l32i a7, sp, 0 /* [(local0)] */ # 3a: 7801
add a6, a12, a6 # 3c: 6a6c
s32i a6, a7, 0 /* a6 -> [[(local0)]] */ # 3e: 6907
.Lbr003: l32i a12, sp, 8 /* [(local2)] */ # 40: c821
l32i a0, sp, 4 /* [(local1)] */ # 42: 0811
addi sp, sp, 16 /* (top of frame) */ # 44: 12c110
ret # 47: 0df0

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

File diff suppressed because it is too large Load diff

View file

View file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,248 @@
.section .data, "aw", @progbits
.Ldata001: .byte 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.word 0x00000000 # 14: 00000000
.byte 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00
.byte 0x3a, 0x01, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0xd0, 0x07, 0x00, 0x00, 0x04, 0x01, 0x84, 0x01
.byte 0x02, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x7c, 0x15, 0x00, 0x00, 0x04, 0x02, 0x8b, 0x02
.byte 0xdf, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xf8, 0x2a, 0x00, 0x00, 0x04, 0x03, 0x96, 0x03
.byte 0xd5, 0x00, 0x75, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x70, 0x17, 0x00, 0x00, 0x00, 0x0b, 0x0c, 0x04
.byte 0x3c, 0x00, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x28, 0x23, 0x00, 0x00, 0x00, 0x0f, 0x12, 0x04
.byte 0x3c, 0x00, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xe0, 0x2e, 0x00, 0x00, 0x00, 0x0a, 0x18, 0x06
.byte 0x30, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x50, 0x46, 0x00, 0x00, 0x00, 0x0e, 0x24, 0x06
.byte 0x30, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xc0, 0x5d, 0x00, 0x00, 0x00, 0x09, 0x30, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xa0, 0x8c, 0x00, 0x00, 0x00, 0x0d, 0x48, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x80, 0xbb, 0x00, 0x00, 0x00, 0x08, 0x60, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xf0, 0xd2, 0x00, 0x00, 0x00, 0x0c, 0x6c, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00
.Label001: .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00
.byte 0x3a, 0x01, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0xd0, 0x07, 0x00, 0x00, 0x04, 0x01, 0x84, 0x01
.byte 0x02, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x7c, 0x15, 0x00, 0x00, 0x04, 0x02, 0x8b, 0x01
.byte 0xdf, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xf8, 0x2a, 0x00, 0x00, 0x04, 0x03, 0x96, 0x01
.byte 0xd5, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
.balign 4
.global sdk_ieee80211_get_11g_ratetable
.type sdk_ieee80211_get_11g_ratetable, @function
sdk_ieee80211_get_11g_ratetable:
movi a2, .Ldata001 # 4: 21ffff
ret /* .Ldata001 */ # 7: 0df0
.literal_position # c: d4000000
# 10: 00000000
# Function @ .irom0.text+0x14
.balign 4
.global sdk_ieee80211_get_ratetable
.type sdk_ieee80211_get_ratetable, @function
sdk_ieee80211_get_ratetable:
l32i a2, a2, 0 /* [arg0] */ # 14: 2802
movi a3, 192 /* 0x000000c0 */ # 16: 32a0c0
ball a2, a3, .Lbr001 # 19: 37420a
movi a4, 1152 /* 0x00000480 */ # 1c: 42a480
ball a2, a4, .Lbr001 # 1f: 474204
movi a2, .Label001 # 22: 21faff
ret /* .Label001 */ # 25: 0df0
.Lbr001: movi a2, .Ldata001 # 27: 21faff
ret /* .Ldata001 */ # 2a: 0df0
.literal_position # 2c: 00000000
# Function @ .irom0.text+0x30
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_ieee80211_phy_init
.type sdk_ieee80211_phy_init, @function
sdk_ieee80211_phy_init:
addi sp, sp, -16 /* (local0) */ # 30: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 33: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 35: 0901
mov a12, a2 /* arg0 */ # 37: cd02
call0 sdk_ieee80211_setup_ratetable # 39: 050000
movi a3, 12 /* 0x0000000c */ # 3c: 0cc3
movi a0, 3 /* 0x00000003 */ # 3e: 0c30
movi a5, 4 /* 0x00000004 */ # 40: 0c45
movi a2, sdk_g_ic # 42: 21faff
addi a4, a12, -1 /* arg0-0x1 */ # 45: 0b4c
movi a6, 0 /* 0x00000000 */ # 47: 0c06
l32i a12, sp, 4 /* [(local1)] */ # 49: c811
s8i a6, a2, 125 /* 0x00 -> [sdk_g_ic+0x7d] */ # 4b: 62427d
s8i a6, a2, 126 /* 0x00 -> [sdk_g_ic+0x7e] */ # 4e: 62427e
s8i a5, a2, 127 /* 0x04 -> [sdk_g_ic+0x7f] */ # 51: 52427f
movnez a0, a3, a4 # 54: 400393
s8i a0, a2, 124 /* a0 -> [sdk_g_ic+0x7c] */ # 57: 02427c
l32i a0, sp, 0 /* [(local0)] */ # 5a: 0801
addi sp, sp, 16 /* (top of frame) */ # 5c: 12c110
ret /* sdk_g_ic */ # 5f: 0df0
.literal_position # 64: 00000000
# Function @ .irom0.text+0x68
.balign 4
.global sdk_ieee80211_phy_type_get
.type sdk_ieee80211_phy_type_get, @function
sdk_ieee80211_phy_type_get:
movi a2, sdk_g_ic+0x200 # 68: 21ffff
l32i a2, a2, 0x31c /* [sdk_g_ic+0x51c] */ # 6b: 2222c7
movi a3, 1 /* 0x00000001 */ # 6e: 0c13
addi a2, a2, -1 /* [sdk_g_ic+0x51c]-0x1 */ # 70: 0b22
movnez a2, a3, a2 # 72: 202393
ret # 75: 0df0
.literal_position # 78: 00000000
# 7c: d4000000
# 80: 00000000
# Function @ .irom0.text+0x84
.balign 4
.global sdk_ieee80211_setup_ratetable
.type sdk_ieee80211_setup_ratetable, @function
sdk_ieee80211_setup_ratetable:
movi a4, .Ldata001 # 84: 41fdff
movi a5, .Label001 # 87: 51fdff
addi a6, a2, -1 /* arg0-0x1 */ # 8a: 0b62
movnez a5, a4, a6 # 8c: 605493
movi a6, sdk_g_ic # 8f: 61fcff
l8ui a3, a5, 0 # 92: 320500
s8i a3, a6, 44 /* a3 -> [sdk_g_ic+0x2c] */ # 95: 32462c
beqz a3, .Lbr003 # 98: 9c83
movi a2, 0 /* 0x00000000 */ # 9a: 0c02
.Lbr002: add a4, a2, a6 # 9c: 6a42
slli a3, a2, 4 # 9e: c03211
add a3, a5, a3 # a1: 3a35
addi a2, a2, 1 # a3: 1b22
l8ui a3, a3, 30 # a5: 32031e
s8i a3, a4, 45 # a8: 32442d
l8ui a7, a6, 44 /* [sdk_g_ic+0x2c] */ # ab: 72062c
extui a2, a2, 0, 8 # ae: 202074
bltu a2, a7, .Lbr002 # b1: 7732e7
.Lbr003: ret # b4: 0df0
.literal_position # b8: 00000000
# bc: 00000000
# c0: 00000000
# Function @ .irom0.text+0xc4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global sdk_ieee80211_compute_duration
.type sdk_ieee80211_compute_duration, @function
sdk_ieee80211_compute_duration:
addi sp, sp, -16 /* (local0) */ # c4: 12c1f0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # c7: 0921
add a0, a4, a2 # c9: 2a04
l8ui a0, a0, 4 # cb: 020004
mov a7, a3 /* arg1 */ # ce: 7d03
slli a0, a0, 4 # d0: c00011
add a0, a2, a0 # d3: 0a02
l32i a3, a0, 24 # d5: 3860
l8ui a2, a0, 20 # d7: 220014
bnez a3, .Lbr004 # da: cc33
movi a2, 0 /* 0x00000000 */ # dc: 0c02
j .Lbr008 # de: 061400
.Lbr004: s32i a7, sp, 4 /* arg1 -> [(local1)] */ # e1: 7911
beqz a2, .Lbr005 # e3: ac52
bnei a2, 1, .Lbr007 # e5: 661246
slli a2, a3, 2 # e8: e02311
movi a3, 1000 /* 0x000003e8 */ # eb: 32a3e8
call0 __udivsi3 # ee: 01f2ffc0
# f2: 0000
mov a3, a2 # f4: 3d02
l32i a2, sp, 4 /* [(local1)] */ # f6: 2811
addx8 a2, a2, a3 # f8: 3022b0
addi a2, a2, 21 # fb: 22c215
call0 __udivsi3 # fe: 01efffc0
# 102: 0000
movi a0, 36 /* 0x00000024 */ # 104: 2c40
addx4 a0, a2, a0 # 106: 0002a0
j .Lbr007 # 109: 860800
.Lbr005: beqz a5, .Lbr009 # 10c: ac95
l8ui a2, a0, 28 # 10e: 22001c
movi a4, 96 /* 0x00000060 */ # 111: 42a060
beqz a2, .Lbr009 # 114: ac12
s32i a4, sp, 0 /* 0x00000060 -> [(local0)] */ # 116: 4901
.Lbr006: l32i a2, sp, 4 /* [(local1)] */ # 118: 2811
movi a4, 1000 /* 0x000003e8 */ # 11a: 42a3e8
slli a2, a2, 3 # 11d: d02211
mull a2, a2, a4 # 120: 402282
call0 __udivsi3 # 123: 01e7ffc0
# 127: 0000
l32i a0, sp, 0 /* [(local0)] */ # 129: 0801
add a0, a0, a2 # 12b: 2a00
addi a0, a0, 10 # 12d: ab00
.Lbr007: extui a2, a0, 0, 16 # 12f: 0020f4
.Lbr008: l32i a0, sp, 8 /* [(local2)] */ # 132: 0821
addi sp, sp, 16 /* (top of frame) */ # 134: 12c110
ret # 137: 0df0
.Lbr009: movi a2, 192 /* 0x000000c0 */ # 139: 22a0c0
s32i a2, sp, 0 /* 0x000000c0 -> [(local0)] */ # 13c: 2901
j .Lbr006 # 13e: 86f5ff
.literal_position # 144: 00000000
# Function @ .irom0.text+0x148
.balign 4
.global sdk_ieee80211_dot11Rate_rix
.type sdk_ieee80211_dot11Rate_rix, @function
sdk_ieee80211_dot11Rate_rix:
movi a6, 0 /* 0x00000000 */ # 148: 0c06
movi a8, .Ldata001 # 14a: 81feff
.Lbr010: slli a7, a6, 4 # 14d: c07611
add a7, a8, a7 # 150: 7a78
l8ui a4, a7, 30 # 152: 42071e
bne a4, a2, .Lbr011 # 155: 279409
mov a2, a6 # 158: 2d06
l8ui a8, a7, 29 # 15a: 82071d
s8i a8, a3, 0 /* a8 -> [arg1] */ # 15d: 824300
ret # 160: 0df0
.Lbr011: addi a6, a6, 1 # 162: 1b66
extui a6, a6, 0, 8 # 164: 606074
bnei a6, 12, .Lbr010 # 167: 66a6e2
movi a2, 255 /* 0x000000ff */ # 16a: 22a0ff
ret /* 0x000000ff */ # 16d: 0df0

View file

@ -0,0 +1,196 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.balign 4
.literal_position
.global sdk_ieee80211_psq_init
.type sdk_ieee80211_psq_init, @function
sdk_ieee80211_psq_init:
movi a6, 0 /* 0x00000000 */ # 0: 0c06
movi a5, 0 /* 0x00000000 */ # 2: 0c05
movi a4, 1 /* 0x00000001 */ # 4: 0c14
.Lbr001: addi a4, a4, -1 # 6: 0b44
add a3, a5, a2 # 8: 2a35
s32i a6, a3, 0 # a: 6903
addi a5, a5, 4 # c: 4b55
bgei a4, 1, .Lbr001 # e: e614f4
movi a4, 10 /* 0x0000000a */ # 11: 0ca4
s32i a4, a2, 4 /* 0x0000000a -> [arg0+0x4] */ # 13: 4912
ret /* arg0 */ # 15: 0df0
.balign 4
# Function @ .irom0.text+0x18
.balign 4
.global sdk_ieee80211_psq_cleanup
.type sdk_ieee80211_psq_cleanup, @function
sdk_ieee80211_psq_cleanup:
ret /* arg0 */ # 18: 0df0
.literal_position # 1c: 00000000
# Function @ .irom0.text+0x20
.balign 4
.global sdk_ieee80211_set_tim
.type sdk_ieee80211_set_tim, @function
sdk_ieee80211_set_tim:
movi a10, 1 /* 0x00000001 */ # 20: 0c1a
l16ui a6, a2, 26 /* [arg0+0x1a] */ # 22: 62120d
movi a8, sdk_g_ic+0x152 # 25: 81fdff
extui a7, a6, 0, 3 # 28: 607024
extui a6, a6, 3, 11 # 2b: 6063a4
add a6, a6, a8 # 2e: 8a66
l8ui a5, a6, 128 # 30: 520680
ssr a7 # 33: 000740
sra a4, a5 # 36: 5040b1
extui a4, a4, 0, 1 # 39: 404004
sub a2, a3, a4 # 3c: 4023c0
movnez a2, a10, a2 # 3f: 202a93
beqz a2, .Lbr002 # 42: 9c52
movi a11, -1 /* 0xffffffff */ # 44: 7cfb
ssl a7 # 46: 001740
sll a9, a10 # 49: 009aa1
or a8, a9, a5 # 4c: 508920
xor a9, a9, a11 # 4f: b09930
and a9, a5, a9 # 52: 909510
moveqz a8, a9, a3 # 55: 308983
s8i a8, a6, 128 # 58: 824680
.Lbr002: ret # 5b: 0df0
.literal_position # 60: 00000000
# 64: 00000000
# Function @ .irom0.text+0x68
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_ieee80211_pwrsave
.type sdk_ieee80211_pwrsave, @function
sdk_ieee80211_pwrsave:
mov a6, a2 /* arg0 */ # 68: 6d02
addi sp, sp, -16 /* (local0) */ # 6a: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 6d: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6f: 0901
l32i a2, a2, 196 /* [arg0+0xc4] */ # 71: 222231
l32i a0, a6, 192 /* [arg0+0xc0] */ # 74: 022630
mov a12, a3 /* arg1 */ # 77: cd03
blt a0, a2, .Lbr003 # 79: 27201e
l32i a3, a6, 200 /* [arg0+0xc8] */ # 7c: 322632
l32i a2, a12, 0 /* [arg1] */ # 7f: 280c
addi a3, a3, 1 /* [arg0+0xc8]+0x1 */ # 81: 1b33
s32i a3, a6, 200 /* [arg0+0xc8]+0x1 -> [arg0+0xc8] */ # 83: 326632
call0 pbuf_free # 86: 01f6ffc0
# 8a: 0000
mov a2, a12 /* arg1 */ # 8c: 2d0c
movi a3, 1 /* 0x00000001 */ # 8e: 0c13
call0 sdk_esf_buf_recycle # 90: 01f5ffc0
# 94: 0000
movi a2, 1 /* 0x00000001 */ # 96: 0c12
j .Lbr007 # 98: 060b00
.Lbr003: addi a4, a0, 1 /* [arg0+0xc0]+0x1 */ # 9b: 1b40
movi a7, 0 /* 0x00000000 */ # 9d: 0c07
l32i a5, a6, 212 /* [arg0+0xd4] */ # 9f: 522635
l32i a2, a6, 208 /* [arg0+0xd0] */ # a2: 222634
addi a5, a5, 1 /* [arg0+0xd4]+0x1 */ # a5: 1b55
bnez a2, .Lbr004 # a7: cc42
s32i a3, a6, 204 /* arg1 -> [arg0+0xcc] */ # a9: 326633
j .Lbr005 # ac: 460000
.Lbr004: s32i a3, a2, 28 /* arg1 -> [[arg0+0xd0]+0x1c] */ # af: 3972
.Lbr005: s32i a7, a12, 28 /* 0x00000000 -> [arg1+0x1c] */ # b1: 797c
s32i a12, a6, 208 /* arg1 -> [arg0+0xd0] */ # b3: c26634
s32i a4, a6, 192 /* [arg0+0xc0]+0x1 -> [arg0+0xc0] */ # b6: 426630
s32i a5, a6, 212 /* [arg0+0xd4]+0x1 -> [arg0+0xd4] */ # b9: 526635
bnei a4, 1, .Lbr006 # bc: 661406
mov a2, a6 /* arg0 */ # bf: 2d06
movi a3, 1 /* 0x00000001 */ # c1: 0c13
call0 sdk_ieee80211_set_tim # c3: 050000
.Lbr006: movi a2, 0 /* 0x00000000 */ # c6: 0c02
.Lbr007: l32i a12, sp, 4 /* [(local1)] */ # c8: c811
l32i a0, sp, 0 /* [(local0)] */ # ca: 0801
addi sp, sp, 16 /* (top of frame) */ # cc: 12c110
ret # cf: 0df0
.literal_position # d4: 00000000
# d8: 00000000
# dc: 00000000
# Function @ .irom0.text+0xe0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.balign 4
.Lfunc001: addi sp, sp, -16 /* (local0) */ # e0: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e3: 0901
s32i a14, sp, 12 /* a14 -> [(local3)] */ # e5: e931
s32i a12, sp, 4 /* a12 -> [(local1)] */ # e7: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # e9: d921
mov a12, a2 /* arg0 */ # eb: cd02
l32i a13, a2, 204 /* [arg0+0xcc] */ # ed: d22233
movi a14, 0 /* 0x00000000 */ # f0: 0c0e
bnez a13, .Lbr008 # f2: cc1d
j .Lbr012 # f4: 061000
.Lbr008: l32i a2, a13, 28 /* [[arg0+0xcc]+0x1c] */ # f7: 287d
s32i a2, a12, 204 /* [[arg0+0xcc]+0x1c] -> [arg0+0xcc] */ # f9: 226c33
call0 sdk_chm_check_same_channel # fc: 01f7ffc0
# 100: 0000
beqz a2, .Lbr009 # 102: 8c92
mov a2, a13 /* [arg0+0xcc] */ # 104: 2d0d
call0 sdk_ppTxPkt # 106: 01f5ffc0
# 10a: 0000
j .Lbr010 # 10c: c60300
.Lbr009: movi a5, sdk_g_ic # 10f: 51f1ff
addi a4, a13, 28 /* [arg0+0xcc]+0x1c */ # 112: 42cd1c
l32i a6, a5, 0x1c4 /* [sdk_g_ic+0x1c4] */ # 115: 622571
s32i a14, a13, 28 /* 0x00000000 -> [[arg0+0xcc]+0x1c] */ # 118: e97d
s32i a13, a6, 0 /* [arg0+0xcc] -> [[sdk_g_ic+0x1c4]] */ # 11a: d906
s32i a4, a5, 0x1c4 /* [arg0+0xcc]+0x1c -> [sdk_g_ic+0x1c4] */ # 11c: 426571
.Lbr010: l32i a7, a12, 192 /* [arg0+0xc0] */ # 11f: 722c30
l32i a13, a12, 204 /* [arg0+0xcc] */ # 122: d22c33
addi a7, a7, -1 /* [arg0+0xc0]-0x1 */ # 125: 0b77
s32i a7, a12, 192 /* [arg0+0xc0]-0x1 -> [arg0+0xc0] */ # 127: 726c30
beqz a13, .Lbr011 # 12a: 8c1d
j .Lbr008 # 12c: c6f1ff
.Lbr011: s32i a14, a12, 208 /* 0x00000000 -> [arg0+0xd0] */ # 12f: e26c34
s32i a14, a12, 204 /* 0x00000000 -> [arg0+0xcc] */ # 132: e26c33
s32i a14, a12, 212 /* 0x00000000 -> [arg0+0xd4] */ # 135: e26c35
.Lbr012: l32i a0, sp, 0 /* [(local0)] */ # 138: 0801
s32i a14, a12, 192 /* 0x00000000 -> [arg0+0xc0] */ # 13a: e26c30
l32i a13, sp, 8 /* [(local2)] */ # 13d: d821
l32i a12, sp, 4 /* [(local1)] */ # 13f: c811
l32i a14, sp, 12 /* [(local3)] */ # 141: e831
addi sp, sp, 16 /* (top of frame) */ # 143: 12c110
ret # 146: 0df0
# Function @ .irom0.text+0x148
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_ieee80211_node_pwrsave
.type sdk_ieee80211_node_pwrsave, @function
sdk_ieee80211_node_pwrsave:
addi sp, sp, -16 /* (local0) */ # 148: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 14b: 0911
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 14d: 2901
l32i a0, a2, 8 /* [arg0+0x8] */ # 14f: 0822
beqz a3, .Lbr013 # 151: 8c83
movi a3, 16 /* 0x00000010 */ # 153: 1c03
or a3, a0, a3 # 155: 303020
s32i a3, a2, 8 /* a3 -> [arg0+0x8] */ # 158: 3922
j .Lbr014 # 15a: c60500
.Lbr013: movi a3, 0 /* 0x00000000 */ # 15d: 0c03
movi a4, -17 /* 0xffffffef */ # 15f: 6cf4
and a4, a0, a4 # 161: 404010
s32i a4, a2, 8 /* a4 -> [arg0+0x8] */ # 164: 4922
call0 sdk_ieee80211_set_tim # 166: 050000
l32i a0, sp, 0 /* [(local0)] */ # 169: 0801
l32i a5, a0, 192 /* [[(local0)]+0xc0] */ # 16b: 522030
beqz a5, .Lbr014 # 16e: 8c35
mov a2, a0 /* [(local0)] */ # 170: 2d00
call0 .Lfunc001 # 172: c5f6ff
.Lbr014: l32i a0, sp, 4 /* [(local1)] */ # 175: 0811
addi sp, sp, 16 /* (top of frame) */ # 177: 12c110
ret # 17a: 0df0

View file

@ -0,0 +1,236 @@
.section .data, "aw", @progbits
.global sdk_ieee80211_addr_bcast
.type sdk_ieee80211_addr_bcast, @object
sdk_ieee80211_addr_bcast:
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000400
# 8: 00000000
# Function @ .irom0.text+0xc
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_ieee80211_proto_attach
.type sdk_ieee80211_proto_attach, @function
sdk_ieee80211_proto_attach:
movi a3, 2 /* 0x00000002 */ # c: 0c23
movi a4, 0x00040000 # e: 41fdff
movi a6, 1 /* 0x00000001 */ # 11: 0c16
mov a5, a2 /* arg0 */ # 13: 5d02
addi sp, sp, -16 /* (local0) */ # 15: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18: 0901
movi a2, sdk_ieee80211_tx_mgt_cb # 1a: 21f9ff
l32i a0, a5, 28 /* [arg0+0x1c] */ # 1d: 0875
s32i a6, a5, 12 /* 0x00000001 -> [arg0+0xc] */ # 1f: 6935
or a0, a0, a4 # 21: 400020
s32i a0, a5, 28 /* a0 -> [arg0+0x1c] */ # 24: 0975
call0 sdk_ppRegisterTxCallback # 26: 01f8ffc0
# 2a: 0000
l32i a0, sp, 0 /* [(local0)] */ # 2c: 0801
addi sp, sp, 16 /* (top of frame) */ # 2e: 12c110
ret # 31: 0df0
.balign 4
# Function @ .irom0.text+0x34
.balign 4
.global sdk_ieee80211_set_shortslottime
.type sdk_ieee80211_set_shortslottime, @function
sdk_ieee80211_set_shortslottime:
movi a6, 1024 /* 0x00000400 */ # 34: 62a400
l32i a5, a2, 28 /* [arg0+0x1c] */ # 37: 5872
movi a4, -1025 /* 0xfffffbff */ # 39: 42abff
and a4, a5, a4 # 3c: 404510
or a5, a5, a6 # 3f: 605520
moveqz a5, a4, a3 # 42: 305483
s32i a5, a2, 28 /* a5 -> [arg0+0x1c] */ # 45: 5972
ret /* arg0 */ # 47: 0df0
.literal_position # 4c: 00000000
# Function @ .irom0.text+0x50
.balign 4
.global sdk_ieee80211_iserp_rateset
.type sdk_ieee80211_iserp_rateset, @function
sdk_ieee80211_iserp_rateset:
l8ui a8, a2, 0 /* [arg0] */ # 50: 820200
bltui a8, 7, .Lbr003 # 53: b6781e
movi a9, .Ldata001 # 56: 91fdff
movi a10, 0 /* 0x00000000 */ # 59: 0c0a
.Lbr001: blti a8, 1, .Lbr003 # 5b: a61816
movi a5, 0 /* 0x00000000 */ # 5e: 0c05
l32i a6, a9, 0 # 60: 6809
.Lbr002: add a7, a5, a2 # 62: 2a75
l8ui a7, a7, 1 # 64: 720701
extui a7, a7, 0, 7 # 67: 707064
beq a6, a7, .Lbr004 # 6a: 77160b
blt a6, a7, .Lbr003 # 6d: 772604
addi a5, a5, 1 # 70: 1b55
bne a5, a8, .Lbr002 # 72: 8795ec
.Lbr003: movi a2, 0 /* 0x00000000 */ # 75: 0c02
ret /* 0x00000000 */ # 77: 0df0
.Lbr004: addi a9, a9, 4 # 79: 4b99
addi a10, a10, 1 # 7b: 1baa
bnei a10, 7, .Lbr001 # 7d: 667ada
movi a2, 1 /* 0x00000001 */ # 80: 0c12
ret /* 0x00000001 */ # 82: 0df0
.literal_position # 84: 20000000
# Function @ .irom0.text+0x88
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.Lfunc001: addi sp, sp, -16 /* (local0) */ # 88: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 8b: 0901
l8ui a0, a2, 0 /* [arg0] */ # 8d: 020200
beqz a0, .Lbr009 # 90: bcf0
movi a9, 0 /* 0x00000000 */ # 92: 0c09
movi a11, 128 /* 0x00000080 */ # 94: b2a080
movi a8, .Ldata002 # 97: 81fbff
slli a10, a3, 4 # 9a: c0a311
add a8, a8, a10 # 9d: aa88
l8ui a7, a8, 0 # 9f: 720800
.Lbr005: bnez a4, .Lbr006 # a2: cc94
add a3, a2, a9 # a4: 9a32
l8ui a0, a3, 1 # a6: 020301
extui a0, a0, 0, 7 # a9: 000064
s8i a0, a3, 1 # ac: 024301
.Lbr006: beqz a7, .Lbr008 # af: 9c57
movi a0, 0 /* 0x00000000 */ # b1: 0c00
add a10, a2, a9 # b3: 9aa2
l8ui a3, a10, 1 # b5: 320a01
.Lbr007: add a5, a8, a0 # b8: 0a58
l8ui a5, a5, 1 # ba: 520501
addi a0, a0, 1 # bd: 1b00
bne a5, a3, .Lbr010 # bf: 379517
or a6, a3, a11 # c2: b06320
s8i a6, a10, 1 # c5: 624a01
.Lbr008: l8ui a10, a2, 0 /* [arg0] */ # c8: a20200
addi a9, a9, 1 # cb: 1b99
extui a9, a9, 0, 8 # cd: 909074
bltu a9, a10, .Lbr005 # d0: a739ce
.Lbr009: l32i a0, sp, 0 /* [(local0)] */ # d3: 0801
addi sp, sp, 16 /* (top of frame) */ # d5: 12c110
ret /* arg0 */ # d8: 0df0
.Lbr010: extui a0, a0, 0, 8 # da: 000074
bne a7, a0, .Lbr007 # dd: 0797d7
j .Lbr008 # e0: 06f9ff
.balign 4
# Function @ .irom0.text+0xe4
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_ieee80211_setbasicrates
.type sdk_ieee80211_setbasicrates, @function
sdk_ieee80211_setbasicrates:
movi a4, 0 /* 0x00000000 */ # e4: 0c04
addi sp, sp, -16 /* (local0) */ # e6: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e9: 0901
call0 .Lfunc001 # eb: c5f9ff
l32i a0, sp, 0 /* [(local0)] */ # ee: 0801
addi sp, sp, 16 /* (top of frame) */ # f0: 12c110
ret # f3: 0df0
.balign 4
# Function @ .irom0.text+0xf8
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_ieee80211_addbasicrates
.type sdk_ieee80211_addbasicrates, @function
sdk_ieee80211_addbasicrates:
movi a4, 1 /* 0x00000001 */ # f8: 0c14
addi sp, sp, -16 /* (local0) */ # fa: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # fd: 0901
call0 .Lfunc001 # ff: 85f8ff
l32i a0, sp, 0 /* [(local0)] */ # 102: 0801
addi sp, sp, 16 /* (top of frame) */ # 104: 12c110
ret # 107: 0df0
.balign 4
# Function @ .irom0.text+0x10c
.balign 4
.global sdk_ieee80211_wme_initparams
.type sdk_ieee80211_wme_initparams, @function
sdk_ieee80211_wme_initparams:
ret /* arg0 */ # 10c: 0df0
.balign 4
# Function @ .irom0.text+0x110
.balign 4
.global sdk_ieee80211_wme_updateparams
.type sdk_ieee80211_wme_updateparams, @function
sdk_ieee80211_wme_updateparams:
ret /* arg0 */ # 110: 0df0
.literal_position # 114: 00000000
# 118: 00000000
# 11c: 00000000
# 120: 00000000
# 124: 00000000
# Function @ .irom0.text+0x128
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global sdk_ieee80211_mlme_connect_bss
.type sdk_ieee80211_mlme_connect_bss, @function
sdk_ieee80211_mlme_connect_bss:
mov a3, a2 /* arg0 */ # 128: 3d02
addi sp, sp, -16 /* (local0) */ # 12a: 12c1f0
s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 12d: 5911
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 12f: 0921
movi a2, sdk_g_ic # 131: 21f8ff
s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 134: 4901
l32i a2, a2, 16 /* [sdk_g_ic+0x10] */ # 136: 2842
movi a4, 6 /* 0x00000006 */ # 138: 0c64
s32i a3, a2, 136 /* arg0 -> [[sdk_g_ic+0x10]+0x88] */ # 13a: 326222
addi a2, a2, 64 /* [sdk_g_ic+0x10]+0x40 */ # 13d: 22c240
call0 memcpy # 140: 01f7ffc0
# 144: 0000
l32i a3, sp, 4 /* [(local1)] */ # 146: 3811
movi a0, sdk_g_ic # 148: 01f4ff
beqz a3, .Lbr011 # 14b: 8ce3
movi a3, 2 /* 0x00000002 */ # 14d: 0c23
movi a4, 176 /* 0x000000b0 */ # 14f: 42a0b0
mov a2, a0 /* sdk_g_ic */ # 152: 2d00
call0 sdk_ieee80211_sta_new_state # 154: 01f3ffc0
# 158: 0000
j .Lbr012 # 15a: 860400
.Lbr011: movi a3, 3 /* 0x00000003 */ # 15d: 0c33
mov a2, a0 /* sdk_g_ic */ # 15f: 2d00
l32i a6, sp, 0 /* [(local0)] */ # 161: 6801
movi a5, 32 /* 0x00000020 */ # 163: 2c05
movi a4, 0 /* 0x00000000 */ # 165: 0c04
movnez a4, a5, a6 # 167: 604593
call0 sdk_ieee80211_sta_new_state # 16a: 01eeffc0
# 16e: 0000
.Lbr012: l32i a0, sp, 8 /* [(local2)] */ # 170: 0821
addi sp, sp, 16 /* (top of frame) */ # 172: 12c110
ret # 175: 0df0
.section .rodata, "a", @progbits
.Ldata001: .byte 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x0b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00
.byte 0x0c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00
.byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.Ldata002: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x02, 0x04, 0x0b, 0x16, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

View file

@ -0,0 +1,499 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.balign 4
.global sdk_chm_get_current_channel
.type sdk_chm_get_current_channel, @function
sdk_chm_get_current_channel:
movi a2, .Ldata001 # 4: 21ffff
l32i a2, a2, 60 /* [.Ldata009] */ # 7: 28f2
ret /* [.Ldata009] */ # 9: 0df0
.section .bss, "aw", @nobits
.Ldata001: .word 0x00000000 # 0: 00000000
.Ldata002: .word 0x00000000 # 4: 00000000
.Ldata003: .word 0x00000000 # 8: 00000000
.Ldata004: .word 0x00000000 # c: 00000000
.Ldata005: .word 0x00000000 # 10: 00000000
.Ldata006: .word 0x00000000 # 14: 00000000
.Ldata007: .word 0x00000000 # 18: 00000000
.Ldata008: .word 0x00000000 # 1c: 00000000
.Label001: .space 28
.Ldata009: .word 0x00000000 # 3c: 00000000
.Ldata010: .byte 0x00
.Ldata011: .byte 0x00
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00feef3f
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# 14: 20000000
# 18: 48020000
# 1c: 00000000
# 20: 00000000
# 24: 00000000
# 28: 00000000
# Function @ .irom0.text+0x2c
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.balign 4
.global sdk_chm_init
.type sdk_chm_init, @function
sdk_chm_init:
movi a4, -32 /* 0xffffffe0 */ # 2c: 6c04
movi a5, sdk_NMIIrqIsOn # 2e: 51f7ff
movi a3, sdk_g_ic+0x180 # 31: 31f4ff
movi a6, .Ldata001 # 34: 61f5ff
addi sp, sp, -32 /* (local0) */ # 37: 12c1e0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 3a: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 3c: d921
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3e: 0901
movi a13, 0x3feffe00 # 40: d1f0ff
movi a0, 0 /* 0x00000000 */ # 43: 0c00
s32i a2, a6, 0 /* arg0 -> [.Ldata001] */ # 45: 2906
mov a12, a2 /* arg0 */ # 47: cd02
l8ui a6, a3, 96 /* [sdk_g_ic+0x1e0] */ # 49: 620360
l8ui a2, a5, 0 /* [sdk_NMIIrqIsOn] */ # 4c: 220500
addmi a3, a3, 256 /* sdk_g_ic+0x280 */ # 4f: 32d301
l8ui a3, a3, 141 /* [sdk_g_ic+0x30d] */ # 52: 32038d
addi a6, a6, -1 /* [sdk_g_ic+0x1e0]-0x1 */ # 55: 0b66
addi a3, a3, -1 /* [sdk_g_ic+0x30d]-0x1 */ # 57: 0b33
extui a3, a3, 0, 8 # 59: 303074
movnez a0, a3, a6 # 5c: 600393
s32i a0, sp, 16 /* a0 -> [(local4)] */ # 5f: 0941
bnez a2, .Lbr002 # 61: ec32
call0 vPortEnterCritical # 63: 01eeffc0
# 67: 0000
movi a4, -32 /* 0xffffffe0 */ # 69: 6c04
.Lbr001: memw # 6b: c02000
l32i a9, a13, 0x200 /* [0x3ff00000] */ # 6e: 922d80
and a9, a9, a4 # 71: 409910
memw # 74: c02000
s32i a9, a13, 0x200 /* a9 -> [0x3ff00000] */ # 77: 926d80
memw # 7a: c02000
l32i a8, a13, 0x200 /* [0x3ff00000] */ # 7d: 822d80
bbsi a8, 0, .Lbr001 # 80: 07e8e7
l32i a0, sp, 16 /* [(local4)] */ # 83: 0841
movi a5, sdk_NMIIrqIsOn # 85: 51e2ff
.Lbr002: movi a2, 132 /* 0x00000084 */ # 88: 22a084
addx2 a0, a0, a0 # 8b: 000090
addx4 a0, a0, a12 # 8e: c000a0
add a0, a0, a2 # 91: 2a00
s32i a0, a12, 0x14c /* a0 -> [arg0+0x14c] */ # 93: 026c53
l8ui a10, a5, 0 /* [sdk_NMIIrqIsOn] */ # 96: a20500
s32i a0, sp, 12 /* a0 -> [(local3)] */ # 99: 0931
bnez a10, .Lbr003 # 9b: dcaa
memw # 9d: c02000
l32i a2, a13, 0x200 /* [0x3ff00000] */ # a0: 222d80
movi a3, 1 /* 0x00000001 */ # a3: 0c13
and a2, a2, a4 # a5: 402210
or a2, a2, a3 # a8: 302220
memw # ab: c02000
s32i a2, a13, 0x200 /* a2 -> [0x3ff00000] */ # ae: 226d80
call0 vPortExitCritical # b1: 01dbffc0
# b5: 0000
l32i a0, sp, 12 /* [(local3)] */ # b7: 0831
.Lbr003: mov a2, a0 # b9: 2d00
call0 sdk_chm_set_current_channel # bb: 01daffc0
# bf: 0000
movi a2, .Label001 # c1: 21d4ff
movi a3, .Lfunc002 # c4: 31d5ff
movi a4, 0 /* 0x00000000 */ # c7: 0c04
call0 sdk_os_timer_setfn # c9: 01d7ffc0
# cd: 0000
l32i a12, sp, 4 /* [(local1)] */ # cf: c811
l32i a13, sp, 8 /* [(local2)] */ # d1: d821
l32i a0, sp, 0 /* [(local0)] */ # d3: 0801
addi sp, sp, 32 /* (top of frame) */ # d5: 12c120
ret # d8: 0df0
.literal_position # dc: 00000000
# e0: 00000000
# Function @ .irom0.text+0xe4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.balign 4
.global sdk_chm_acquire_lock
.type sdk_chm_acquire_lock, @function
sdk_chm_acquire_lock:
addi sp, sp, -16 /* (local0) */ # e4: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # e7: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e9: 0901
mov a12, a2 /* arg0 */ # eb: cd02
movi a0, .Ldata001 # ed: 01fbff
mov a2, a4 /* arg2 */ # f0: 2d04
l8ui a4, a0, 64 /* [.Ldata010] */ # f2: 420040
l8ui a5, a0, 65 /* [.Ldata011] */ # f5: 520041
beqz a4, .Lbr005 # f8: 9c44
s32i a2, sp, 12 /* arg2 -> [(local3)] */ # fa: 2931
s32i a3, sp, 8 /* arg1 -> [(local2)] */ # fc: 3921
bgeu a5, a12, .Lbr004 # fe: c7b504
movi a2, 3 /* 0x00000003 */ # 101: 0c32
j .Lbr006 # 103: c60500
.Lbr004: call0 sdk_chm_cancel_op # 106: 050000
l32i a2, sp, 12 /* [(local3)] */ # 109: 2831
movi a0, .Ldata001 # 10b: 01f5ff
l32i a3, sp, 8 /* [(local2)] */ # 10e: 3821
.Lbr005: s8i a12, a0, 65 /* arg0 -> [.Ldata011] */ # 110: c24041
s32i a3, a0, 24 /* a3 -> [.Ldata007] */ # 113: 3960
s32i a2, a0, 28 /* a2 -> [.Ldata008] */ # 115: 2970
movi a6, 1 /* 0x00000001 */ # 117: 0c16
movi a2, 0 /* 0x00000000 */ # 119: 0c02
s8i a6, a0, 64 /* 0x01 -> [.Ldata010] */ # 11b: 624040
.Lbr006: l32i a12, sp, 4 /* [(local1)] */ # 11e: c811
l32i a0, sp, 0 /* [(local0)] */ # 120: 0801
addi sp, sp, 16 /* (top of frame) */ # 122: 12c110
ret # 125: 0df0
.literal_position # 128: 00000000
# Function @ .irom0.text+0x12c
.balign 4
.global sdk_chm_release_lock
.type sdk_chm_release_lock, @function
sdk_chm_release_lock:
movi a3, .Ldata001 # 12c: 31ffff
movi a2, 0 /* 0x00000000 */ # 12f: 0c02
s32i a2, a3, 28 /* 0x00000000 -> [.Ldata008] */ # 131: 2973
s32i a2, a3, 24 /* 0x00000000 -> [.Ldata007] */ # 133: 2963
s8i a2, a3, 64 /* 0x00 -> [.Ldata010] */ # 135: 224340
s8i a2, a3, 65 /* 0x00 -> [.Ldata011] */ # 138: 224341
ret /* 0x00000000 */ # 13b: 0df0
.literal_position # 140: 00000000
# 144: 00000000
# Function @ .irom0.text+0x148
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_chm_start_op
.type sdk_chm_start_op, @function
sdk_chm_start_op:
addi sp, sp, -16 /* (local0) */ # 148: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 14b: 0901
movi a0, .Ldata001 # 14d: 01fcff
l32i a7, a0, 4 /* [.Ldata002] */ # 150: 7810
beqz a7, .Lbr010 # 152: 8cf7
movi a2, 3 /* 0x00000003 */ # 154: 0c32
j .Lbr009 # 156: 060100
.Lbr007: call0 .Lfunc001 # 159: 450400
.Lbr008: movi a2, 0 /* 0x00000000 */ # 15c: 0c02
.Lbr009: l32i a0, sp, 0 /* [(local0)] */ # 15e: 0801
addi sp, sp, 16 /* (top of frame) */ # 160: 12c110
ret # 163: 0df0
.Lbr010: s32i a2, a0, 4 /* arg0 -> [.Ldata002] */ # 165: 2910
s32i a4, a0, 16 /* arg2 -> [.Ldata005] */ # 167: 4940
movi a8, sdk_g_ic # 169: 81f6ff
s32i a5, a0, 20 /* arg3 -> [.Ldata006] */ # 16c: 5950
l32i a8, a8, 0 /* [sdk_g_ic] */ # 16e: 8808
s32i a3, a0, 8 /* arg1 -> [.Ldata003] */ # 170: 3920
l32i a8, a8, 0 /* [[sdk_g_ic]] */ # 172: 8808
s32i a6, a0, 12 /* arg4 -> [.Ldata004] */ # 174: 6930
bbci a8, 1, .Lbr007 # 176: 1768df
call0 .Lfunc001 # 179: 450200
j .Lbr008 # 17c: 06f7ff
.literal_position # 180: 00000000
# 184: 04000000
# 188: 20000000
# 18c: 00000000
# 190: 00000000
# 194: 00000000
# 198: 00000000
# 19c: 00000000
# Function @ .irom0.text+0x1a0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.balign 4
.Lfunc001: addi sp, sp, -16 /* (local0) */ # 1a0: 12c1f0
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1a3: d931
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1a5: c921
movi a13, .Ldata001 # 1a7: d1f6ff
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1aa: 0911
l32i a12, a13, 16 /* [.Ldata005] */ # 1ac: c84d
l32i a0, a13, 12 /* [.Ldata004] */ # 1ae: 083d
s32i a0, sp, 0 /* [.Ldata004] -> [(local0)] */ # 1b0: 0901
call0 sdk_chm_get_current_channel # 1b2: 01f6ffc0
# 1b6: 0000
mov a3, a2 # 1b8: 3d02
l32i a2, a13, 4 /* [.Ldata002] */ # 1ba: 281d
l16ui a3, a3, 4 # 1bc: 321302
l16ui a4, a2, 4 /* [[.Ldata002]+0x4] */ # 1bf: 421202
beq a3, a4, .Lbr011 # 1c2: 471305
call0 sdk_chm_set_current_channel # 1c5: 01f2ffc0
# 1c9: 0000
.Lbr011: beqz a12, .Lbr012 # 1cb: 8c5c
l32i a2, sp, 0 /* [(local0)] */ # 1cd: 2801
movi a3, 0 /* 0x00000000 */ # 1cf: 0c03
callx0 a12 /* [.Ldata005] */ # 1d1: c00c00
.Lbr012: l32i a4, a13, 8 /* [.Ldata003] */ # 1d4: 482d
bnez a4, .Lbr013 # 1d6: ccc4
movi a2, .Ldata002 # 1d8: 21ebff
movi a3, 20 /* 0x00000014 */ # 1db: 1c43
call0 bzero # 1dd: 01edffc0
# 1e1: 0000
j .Lbr014 # 1e3: 860500
.Lbr013: movi a12, .Label001 # 1e6: c1e8ff
mov a2, a12 /* .Label001 */ # 1e9: 2d0c
call0 sdk_os_timer_disarm # 1eb: 01ebffc0
# 1ef: 0000
mov a2, a12 /* .Label001 */ # 1f1: 2d0c
l32i a3, a13, 8 /* [.Ldata003] */ # 1f3: 382d
movi a4, 0 /* 0x00000000 */ # 1f5: 0c04
call0 sdk_os_timer_arm # 1f7: 01e9ffc0
# 1fb: 0000
.Lbr014: l32i a12, sp, 8 /* [(local2)] */ # 1fd: c821
l32i a13, sp, 12 /* [(local3)] */ # 1ff: d831
l32i a0, sp, 4 /* [(local1)] */ # 201: 0811
addi sp, sp, 16 /* (top of frame) */ # 203: 12c110
ret # 206: 0df0
.literal_position # 208: 00000000
# 20c: 00000000
# 210: 00000000
# Function @ .irom0.text+0x214
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global sdk_chm_end_op
.type sdk_chm_end_op, @function
sdk_chm_end_op:
movi a3, -4 /* 0xfffffffc */ # 214: 7cc3
addi sp, sp, -16 /* (local0) */ # 216: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 219: 0911
movi a0, .Ldata001 # 21b: 01fbff
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 21e: 2901
beq a0, a3, .Lbr015 # 220: 37101d
mov a2, a0 /* .Ldata001 */ # 223: 2d00
l32i a3, a2, 20 /* [.Ldata006] */ # 225: 3852
s32i a3, sp, 8 /* [.Ldata006] -> [(local2)] */ # 227: 3921
addi a2, a2, 4 /* .Ldata002 */ # 229: 4b22
movi a3, 20 /* 0x00000014 */ # 22b: 1c43
call0 bzero # 22d: 01f8ffc0
# 231: 0000
l32i a5, sp, 8 /* [(local2)] */ # 233: 5821
beqz a5, .Lbr015 # 235: 8c85
movi a2, .Ldata001 # 237: 21f5ff
l32i a3, sp, 0 /* [(local0)] */ # 23a: 3801
l32i a2, a2, 12 /* [.Ldata004] */ # 23c: 2832
callx0 a5 /* [(local2)] */ # 23e: c00500
.Lbr015: l32i a0, sp, 4 /* [(local1)] */ # 241: 0811
addi sp, sp, 16 /* (top of frame) */ # 243: 12c110
ret # 246: 0df0
# Function @ .irom0.text+0x248
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.Lfunc002: movi a2, 0 /* 0x00000000 */ # 248: 0c02
addi sp, sp, -16 /* (local0) */ # 24a: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 24d: 0901
call0 sdk_chm_end_op # 24f: 050000
l32i a0, sp, 0 /* [(local0)] */ # 252: 0801
addi sp, sp, 16 /* (top of frame) */ # 254: 12c110
ret # 257: 0df0
.literal_position # 25c: 00000000
# 260: 00000000
# 264: 00000000
# Function @ .irom0.text+0x268
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_chm_cancel_op
.type sdk_chm_cancel_op, @function
sdk_chm_cancel_op:
addi sp, sp, -16 /* (local0) */ # 268: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 26b: 0901
movi a0, .Ldata001 # 26d: 01fbff
l32i a2, a0, 4 /* [.Ldata002] */ # 270: 2810
beqz a2, .Lbr016 # 272: 9c12
mov a2, a0 /* .Ldata001 */ # 274: 2d00
addi a2, a2, 32 /* .Label001 */ # 276: 22c220
call0 sdk_os_timer_disarm # 279: 01faffc0
# 27d: 0000
movi a2, 4 /* 0x00000004 */ # 27f: 0c42
call0 sdk_chm_end_op # 281: 050000
movi a0, .Ldata001 # 284: 01f7ff
.Lbr016: l32i a5, a0, 24 /* [.Ldata007] */ # 287: 5860
beqz a5, .Lbr017 # 289: 8c55
movi a3, 4 /* 0x00000004 */ # 28b: 0c43
l32i a2, a0, 28 /* [.Ldata008] */ # 28d: 2870
callx0 a5 /* [.Ldata007] */ # 28f: c00500
.Lbr017: l32i a0, sp, 0 /* [(local0)] */ # 292: 0801
addi sp, sp, 16 /* (top of frame) */ # 294: 12c110
ret # 297: 0df0
.literal_position # 29c: 00000000
# 2a0: 00000000
# 2a4: 00000000
# Function @ .irom0.text+0x2a8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_chm_return_home_channel
.type sdk_chm_return_home_channel, @function
sdk_chm_return_home_channel:
addi sp, sp, -16 /* (local0) */ # 2a8: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2ab: c911
movi a12, sdk_g_ic # 2ad: c1fbff
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2b0: 0901
l32i a12, a12, 0x14c /* [sdk_g_ic+0x14c] */ # 2b2: c22c53
call0 sdk_chm_get_current_channel # 2b5: 01faffc0
# 2b9: 0000
l16ui a0, a2, 4 # 2bb: 021202
l16ui a2, a12, 4 /* [[sdk_g_ic+0x14c]+0x4] */ # 2be: 221c02
beq a0, a2, .Lbr018 # 2c1: 271007
mov a2, a12 /* [sdk_g_ic+0x14c] */ # 2c4: 2d0c
call0 sdk_chm_set_current_channel # 2c6: 01f7ffc0
# 2ca: 0000
.Lbr018: l32i a12, sp, 4 /* [(local1)] */ # 2cc: c811
l32i a0, sp, 0 /* [(local0)] */ # 2ce: 0801
addi sp, sp, 16 /* (top of frame) */ # 2d0: 12c110
ret # 2d3: 0df0
.literal_position # 2d8: 00000000
# 2dc: 00feef3f
# 2e0: 00000000
# 2e4: 00000000
# 2e8: 00000000
# 2ec: 00000000
# 2f0: 00000000
# Function @ .irom0.text+0x2f4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global sdk_chm_set_current_channel
.type sdk_chm_set_current_channel, @function
sdk_chm_set_current_channel:
movi a3, 1 /* 0x00000001 */ # 2f4: 0c13
movi a4, 0 /* 0x00000000 */ # 2f6: 0c04
addi sp, sp, -16 /* (local0) */ # 2f8: 12c1f0
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 2fb: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2fd: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2ff: 0901
mov a12, a2 /* arg0 */ # 301: cd02
l16ui a2, a2, 4 /* [arg0+0x4] */ # 303: 221202
call0 sdk_phy_change_channel # 306: 01f8ffc0
# 30a: 0000
movi a2, sdk_NMIIrqIsOn # 30c: 21f3ff
movi a0, -32 /* 0xffffffe0 */ # 30f: 6c00
l8ui a2, a2, 0 /* [sdk_NMIIrqIsOn] */ # 311: 220200
movi a13, 0x3feffe00 # 314: d1f2ff
bnez a2, .Lbr020 # 317: ec42
call0 vPortEnterCritical # 319: 01f4ffc0
# 31d: 0000
movi a0, -32 /* 0xffffffe0 */ # 31f: 6c00
.Lbr019: memw # 321: c02000
l32i a5, a13, 0x200 /* [0x3ff00000] */ # 324: 522d80
and a5, a5, a0 # 327: 005510
memw # 32a: c02000
s32i a5, a13, 0x200 /* a5 -> [0x3ff00000] */ # 32d: 526d80
memw # 330: c02000
l32i a4, a13, 0x200 /* [0x3ff00000] */ # 333: 422d80
bbsi a4, 0, .Lbr019 # 336: 07e4e7
movi a2, sdk_NMIIrqIsOn # 339: 21e9ff
l8ui a2, a2, 0 /* [sdk_NMIIrqIsOn] */ # 33c: 220200
.Lbr020: movi a3, .Ldata001 # 33f: 31e9ff
s32i a12, a3, 60 /* arg0 -> [.Ldata009] */ # 342: c9f3
bnez a2, .Lbr021 # 344: dc82
memw # 346: c02000
l32i a4, a13, 0x200 /* [0x3ff00000] */ # 349: 422d80
movi a5, 1 /* 0x00000001 */ # 34c: 0c15
and a4, a4, a0 # 34e: 004410
or a4, a4, a5 # 351: 504420
memw # 354: c02000
s32i a4, a13, 0x200 /* a4 -> [0x3ff00000] */ # 357: 426d80
call0 vPortExitCritical # 35a: 01e5ffc0
# 35e: 0000
.Lbr021: l32i a12, sp, 4 /* [(local1)] */ # 360: c811
l32i a13, sp, 8 /* [(local2)] */ # 362: d821
l32i a0, sp, 0 /* [(local0)] */ # 364: 0801
addi sp, sp, 16 /* (top of frame) */ # 366: 12c110
ret # 369: 0df0
.literal_position # 36c: 00000000
# Function @ .irom0.text+0x370
.balign 4
.global sdk_chm_freq2index
.type sdk_chm_freq2index, @function
sdk_chm_freq2index:
movi a5, 0 /* 0x00000000 */ # 370: 0c05
movi a6, .Ldata001 # 372: 61feff
movi a7, 14 /* 0x0000000e */ # 375: 0ce7
l32i a6, a6, 0 /* [.Ldata001] */ # 377: 6806
.Lbr022: addx2 a8, a5, a5 # 379: 508590
addx4 a8, a8, a6 # 37c: 6088a0
l16ui a8, a8, 136 # 37f: 821844
bne a8, a2, .Lbr023 # 382: 279803
mov a2, a5 # 385: 2d05
ret # 387: 0df0
.Lbr023: addi a5, a5, 1 # 389: 1b55
extui a5, a5, 0, 8 # 38b: 505074
bne a5, a7, .Lbr022 # 38e: 7795e7
movi a2, 255 /* 0x000000ff */ # 391: 22a0ff
ret /* 0x000000ff */ # 394: 0df0
.literal_position # 398: 00000000
# 39c: 00000000
# 3a0: 00000000
# 3a4: 00000000
# Function @ .irom0.text+0x3a8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_chm_check_same_channel
.type sdk_chm_check_same_channel, @function
sdk_chm_check_same_channel:
movi a2, sdk_g_ic # 3a8: 21fcff
addi sp, sp, -16 /* (local0) */ # 3ab: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3ae: 0911
l32i a2, a2, 0x14c /* [sdk_g_ic+0x14c] */ # 3b0: 222253
call0 sdk_ieee80211_chan2ieee # 3b3: 01faffc0
# 3b7: 0000
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 3b9: 2901
call0 sdk_chm_get_current_channel # 3bb: 01f9ffc0
# 3bf: 0000
call0 sdk_ieee80211_chan2ieee # 3c1: 01f8ffc0
# 3c5: 0000
movi a3, 0 /* 0x00000000 */ # 3c7: 0c03
l32i a4, sp, 0 /* [(local0)] */ # 3c9: 4801
l32i a0, sp, 4 /* [(local1)] */ # 3cb: 0811
sub a4, a4, a2 # 3cd: 2044c0
addi sp, sp, 16 /* (top of frame) */ # 3d0: 12c110
movi a2, 1 /* 0x00000001 */ # 3d3: 0c12
movnez a2, a3, a4 # 3d5: 402393
ret # 3d8: 0df0

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,443 @@
.section .bss, "aw", @nobits
.global g_ic
.type g_ic, @object
g_ic: .space 16
.Ldata001: .word 0x00000000 # 10: 00000000
.Ldata002: .word 0x00000000 # 14: 00000000
# NOTE: 1328 non-alignment zero bytes skipped.
.skip 1328
.global xieee80211Queue
.type xieee80211Queue, @object
xieee80211Queue:
.word 0x00000000 # 548: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 6c090000
# 4: b4090000
# 8: b4090000
# c: 00000000
# Function @ .irom0.text+0x10
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.balign 4
.Lfunc001: movi a5, 131 /* 0x00000083 */ # 10: 52a083
movi a6, 0x000009b4 # 13: 61fcff
addi sp, sp, -32 /* (local0) */ # 16: 12c1e0
s32i a2, sp, 24 /* arg0 -> [(local6)] */ # 19: 2961
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1b: f941
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d: 0901
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1f: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 21: d921
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 23: e931
movi a13, 0x0000096c # 25: d1f6ff
movi a14, 0 /* 0x00000000 */ # 28: 0c0e
mov a12, a2 /* arg0 */ # 2a: cd02
movi a0, 156 /* 0x0000009c */ # 2c: 02a09c
mov a15, a2 /* arg0 */ # 2f: fd02
add a0, a15, a0 /* arg0+0x9c */ # 31: 0a0f
movi a2, 14 /* 0x0000000e */ # 33: 0ce2
s32i a2, a15, 128 /* 0x0000000e -> [arg0+0x80] */ # 35: 226f20
.Lbr001: s32i a5, a12, 132 # 38: 526c21
l8ui a3, a12, 138 # 3b: 320c8a
s32i a0, sp, 20 /* a0 -> [(local5)] */ # 3e: 0951
bltu a0, a12, .Lbr002 # 40: c73008
s16i a13, a12, 136 # 43: d25c44
bne a12, a0, .Lbr002 # 46: 079c02
s16i a6, a12, 136 # 49: 625c44
.Lbr002: bnez a3, .Lbr003 # 4c: dc23
l16ui a2, a12, 136 # 4e: 221c44
movi a3, 131 /* 0x00000083 */ # 51: 32a083
call0 ieee80211_mhz2ieee # 54: 050000
l32i a0, sp, 20 /* [(local5)] */ # 57: 0851
movi a5, 131 /* 0x00000083 */ # 59: 52a083
movi a6, 0x000009b4 # 5c: 61ebff
s8i a2, a12, 138 # 5f: 224c8a
.Lbr003: addi a13, a13, 5 # 62: 5bdd
l8ui a4, a12, 139 # 64: 420c8b
addi a14, a14, 1 # 67: 1bee
bnez a4, .Lbr004 # 69: ccd4
l8ui a7, a12, 141 # 6b: 720c8d
slli a7, a7, 24 # 6e: 807701
srai a7, a7, 24 # 71: 707831
slli a7, a7, 1 # 74: f07711
s8i a7, a12, 139 # 77: 724c8b
.Lbr004: l32i a8, a15, 128 /* [arg0+0x80] */ # 7a: 822f20
addi a12, a12, 12 # 7d: cbcc
blt a14, a8, .Lbr001 # 7f: 872eb5
movi a2, 132 /* 0x00000084 */ # 82: 22a084
add a2, a15, a2 /* arg0+0x84 */ # 85: 2a2f
call0 ieee80211_get_ratetable # 87: 01e1ffc0
# 8b: 0000
l32i a0, sp, 0 /* [(local0)] */ # 8d: 0801
l32i a12, sp, 4 /* [(local1)] */ # 8f: c811
l32i a13, sp, 8 /* [(local2)] */ # 91: d821
s32i a2, a15, 0x150 /* a2 -> [arg0+0x150] */ # 93: 226f54
l32i a14, sp, 12 /* [(local3)] */ # 96: e831
l32i a15, sp, 16 /* [(local4)] */ # 98: f841
addi sp, sp, 32 /* (top of frame) */ # 9a: 12c120
ret # 9d: 0df0
.literal_position # a0: 00000000
# a4: 00000000
# a8: 00000000
# ac: 00000000
# b0: 00000000
# b4: 00000000
# Function @ .irom0.text+0xb8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global ieee80211_ifattach
.type ieee80211_ifattach, @function
ieee80211_ifattach:
addi sp, sp, -16 /* (local0) */ # b8: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # bb: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # bd: 0901
mov a12, a2 /* arg0 */ # bf: cd02
call0 .Lfunc001 # c1: c5f4ff
mov a2, a12 /* arg0 */ # c4: 2d0c
movi a0, 100 /* 0x00000064 */ # c6: 02a064
s16i a0, a12, 40 /* 0x0064 -> [arg0+0x28] */ # c9: 025c14
call0 ieee80211_crypto_attach # cc: 01f6ffc0
# d0: 0000
mov a2, a12 /* arg0 */ # d2: 2d0c
call0 ieee80211_proto_attach # d4: 01f5ffc0
# d8: 0000
movi a3, 0 /* 0x00000000 */ # da: 0c03
addmi a4, a12, 1280 /* arg0+0x500 */ # dc: 42dc05
l32i a2, a4, 28 /* [arg0+0x51c] */ # df: 2874
s32i a3, a4, 12 /* 0x00000000 -> [arg0+0x50c] */ # e1: 3934
bnei a2, 3, .Lbr005 # e3: 663207
mov a2, a12 /* arg0 */ # e6: 2d0c
call0 ieee80211_ht_attach # e8: 01f1ffc0
# ec: 0000
.Lbr005: movi a2, g_ic # ee: 21ecff
call0 chm_init # f1: 01efffc0
# f5: 0000
mov a2, a12 /* arg0 */ # f7: 2d0c
call0 ieee80211_scan_attach # f9: 01eeffc0
# fd: 0000
l32i a12, sp, 4 /* [(local1)] */ # ff: c811
l32i a0, sp, 0 /* [(local0)] */ # 101: 0801
addi sp, sp, 16 /* (top of frame) */ # 103: 12c110
ret # 106: 0df0
.literal_position # 108: b4090000
# 10c: b3090000
# 110: 99f6ffff
# 114: 30f6ffff
# 118: 00000000
# 11c: 00000000
# 120: 00000000
# Function @ .irom0.text+0x124
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global ieee80211_mhz2ieee
.type ieee80211_mhz2ieee, @function
ieee80211_mhz2ieee:
movi a6, 0x000009b3 # 124: 61faff
movi a7, 0xfffff699 # 127: 71faff
addi sp, sp, -16 /* (local0) */ # 12a: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12d: 0901
movi a0, 0x000009b4 # 12f: 01f6ff
bbci a3, 7, .Lbr006 # 132: 776312
beq a2, a0, .Lbr010 # 135: 07123d
bltu a6, a2, .Lbr009 # 138: 273628
add a2, a2, a7 /* arg0+0xfffff699 */ # 13b: 7a22
movi a3, 5 /* 0x00000005 */ # 13d: 0c53
call0 __divsi3 # 13f: 01f6ffc0
# 143: 0000
j .Lbr008 # 145: 060500
.Lbr006: beq a2, a0, .Lbr010 # 148: 07122a
bltu a6, a2, .Lbr007 # 14b: 27360c
add a2, a2, a7 /* arg0+0xfffff699 */ # 14e: 7a22
movi a3, 5 /* 0x00000005 */ # 150: 0c53
call0 __divsi3 # 152: 01f2ffc0
# 156: 0000
j .Lbr008 # 158: 460000
.Lbr007: movi a2, -1 /* 0xffffffff */ # 15b: 7cf2
.Lbr008: l32i a0, sp, 0 /* [(local0)] */ # 15d: 0801
addi sp, sp, 16 /* (top of frame) */ # 15f: 12c110
ret # 162: 0df0
.Lbr009: movi a0, 0xfffff630 # 164: 01ecff
movi a3, 20 /* 0x00000014 */ # 167: 1c43
add a2, a2, a0 /* arg0+0xfffff630 */ # 169: 0a22
call0 __udivsi3 # 16b: 01edffc0
# 16f: 0000
addi a2, a2, 15 # 171: fb22
j .Lbr008 # 173: 86f9ff
.Lbr010: movi a2, 14 /* 0x0000000e */ # 176: 0ce2
j .Lbr008 # 178: 46f8ff
.literal_position # 17c: ffff0000
# Function @ .irom0.text+0x180
.balign 4
.global ieee80211_chan2ieee
.type ieee80211_chan2ieee, @function
ieee80211_chan2ieee:
bnez a2, .Lbr011 # 180: cc22
movi a2, 0 /* 0x00000000 */ # 182: 0c02
ret /* 0x00000000 */ # 184: 0df0
.Lbr011: movi a5, 0x0000ffff # 186: 51fdff
beq a2, a5, .Lbr012 # 189: 571204
l8ui a2, a2, 6 /* [arg0+0x6] */ # 18c: 220206
ret /* [arg0+0x6] */ # 18f: 0df0
.Lbr012: mov a2, a5 /* 0x0000ffff */ # 191: 2d05
ret /* 0x0000ffff */ # 193: 0df0
.literal_position # 198: 67090000
# 19c: a4080000
# 1a0: 88130000
# 1a4: b4090000
# Function @ .irom0.text+0x1a8
.balign 4
.global ieee80211_ieee2mhz
.type ieee80211_ieee2mhz, @function
ieee80211_ieee2mhz:
movi a7, 14 /* 0x0000000e */ # 1a8: 0ce7
movi a8, 13 /* 0x0000000d */ # 1aa: 0cd8
movi a6, 0x00000967 # 1ac: 61fbff
movi a9, 0x000008a4 # 1af: 91fbff
bbci a3, 7, .Lbr014 # 1b2: 77630d
beq a2, a7, .Lbr016 # 1b5: 77121f
bgeu a8, a2, .Lbr015 # 1b8: 27b815
.Lbr013: addx4 a2, a2, a2 # 1bb: 2022a0
addx4 a2, a2, a9 # 1be: 9022a0
ret # 1c1: 0df0
.Lbr014: beq a2, a7, .Lbr016 # 1c3: 771211
bgeu a8, a2, .Lbr015 # 1c6: 27b807
movi a3, 26 /* 0x0000001a */ # 1c9: 1ca3
bgeu a3, a2, .Lbr013 # 1cb: 27b3ec
movi a6, 0x00001388 # 1ce: 61f4ff
.Lbr015: addx4 a2, a2, a2 # 1d1: 2022a0
add a2, a2, a6 # 1d4: 6a22
ret # 1d6: 0df0
.Lbr016: movi a2, 0x000009b4 # 1d8: 21f3ff
ret /* 0x000009b4 */ # 1db: 0df0
.balign 4
# Function @ .irom0.text+0x1e0
.balign 4
.global ieee80211_find_channel
.type ieee80211_find_channel, @function
ieee80211_find_channel:
l32i a6, a2, 128 /* [arg0+0x80] */ # 1e0: 622220
blti a6, 1, .Lbr019 # 1e3: a6161d
addx2 a7, a6, a6 # 1e6: 607690
addx4 a7, a7, a2 # 1e9: 2077a0
.Lbr017: l16ui a8, a2, 136 # 1ec: 821244
l32i a9, a2, 132 # 1ef: 922221
bne a3, a8, .Lbr018 # 1f2: 879309
bnone a9, a4, .Lbr018 # 1f5: 470906
movi a10, 132 /* 0x00000084 */ # 1f8: a2a084
add a2, a2, a10 # 1fb: aa22
ret # 1fd: 0df0
.Lbr018: addi a2, a2, 12 # 1ff: cb22
bne a2, a7, .Lbr017 # 201: 7792e7
.Lbr019: movi a2, 0 /* 0x00000000 */ # 204: 0c02
ret /* 0x00000000 */ # 206: 0df0
# Function @ .irom0.text+0x208
.balign 4
.global ieee80211_find_channel_byieee
.type ieee80211_find_channel_byieee, @function
ieee80211_find_channel_byieee:
l32i a6, a2, 128 /* [arg0+0x80] */ # 208: 622220
blti a6, 1, .Lbr022 # 20b: a6161d
addx2 a7, a6, a6 # 20e: 607690
addx4 a7, a7, a2 # 211: 2077a0
.Lbr020: l8ui a8, a2, 138 # 214: 82028a
l32i a9, a2, 132 # 217: 922221
bne a3, a8, .Lbr021 # 21a: 879309
bnone a9, a4, .Lbr021 # 21d: 470906
movi a10, 132 /* 0x00000084 */ # 220: a2a084
add a2, a2, a10 # 223: aa22
ret # 225: 0df0
.Lbr021: addi a2, a2, 12 # 227: cb22
bne a2, a7, .Lbr020 # 229: 7792e7
.Lbr022: movi a2, 0 /* 0x00000000 */ # 22c: 0c02
ret /* 0x00000000 */ # 22e: 0df0
.literal_position # 230: 00000000
# 234: 10000000
# 238: 00000000
# 23c: 14000000
# 240: 00000000
# 244: 00000000
# 248: 00000000
# 24c: 34000000
# 250: 3c000000
# 254: 00000000
# 258: 40000000
# 25c: 00000000
# 260: 14000000
# 264: 34000000
# 268: 08000000
# 26c: 48000000
# 270: 00000000
# 274: 00000000
# 278: 00000000
# 27c: 00000000
# 280: 00000000
# 284: 00000000
# 288: 00000000
# 28c: 00000000
# 290: 00000000
# 294: 00000000
# 298: 00000000
# 29c: 00000000
# 2a0: 00000000
# 2a4: 00000000
# Function @ .irom0.text+0x2a8
# Local variables/stack:
# (local0): word[4] @ -0x20
# (local1): word @ -0x10
# (local2): word[3] @ -0xc
.balign 4
.global wifi_mode_set
.type wifi_mode_set, @function
wifi_mode_set:
addi sp, sp, -32 /* (local0) */ # 2a8: 12c1e0
s32i a12, sp, 20 /* a12 -> [(local2)] */ # 2ab: c951
s32i a0, sp, 16 /* a0 -> [(local1)] */ # 2ad: 0941
mov a12, a2 /* arg0 */ # 2af: cd02
movi a2, .Lstr001 # 2b1: 21dfff
call0 printf # 2b4: 01efffc0
# 2b8: 0000
beqz a12, .Lbr026 # 2ba: 164c0d
beqi a12, 1, .Lbr023 # 2bd: 261c08
beqi a12, 2, .Lbr025 # 2c0: 262c72
addi a0, a12, -3 /* arg0-0x3 */ # 2c3: 02ccfd
bnez a0, .Lbr027 # 2c6: 56100d
.Lbr023: movi a2, .Label001 # 2c9: 21daff
call0 printf # 2cc: 01eaffc0
# 2d0: 0000
movi a2, info # 2d2: 21d9ff
l8ui a7, a2, 34 /* [info+0x22] */ # 2d5: 720222
l8ui a6, a2, 33 /* [info+0x21] */ # 2d8: 620221
l8ui a5, a2, 32 /* [info+0x20] */ # 2db: 520220
l8ui a4, a2, 31 /* [info+0x1f] */ # 2de: 42021f
l8ui a3, a2, 30 /* [info+0x1e] */ # 2e1: 32021e
l8ui a2, a2, 35 /* [info+0x23] */ # 2e4: 220223
s32i a2, sp, 0 /* [info+0x23] -> [(local0)] */ # 2e7: 2901
movi a2, .Lstr003 # 2e9: 21d4ff
call0 printf # 2ec: 01e3ffc0
# 2f0: 0000
movi a3, g_ic # 2f2: 31d3ff
l32i a3, a3, 16 /* [.Ldata001] */ # 2f5: 3843
bnez a3, .Lbr024 # 2f7: ecf3
movi a2, 648 /* 0x00000288 */ # 2f9: 22a288
call0 zalloc # 2fc: 01e0ffc0
# 300: 0000
movi a5, g_ic # 302: 51d0ff
movi a4, 0 /* 0x00000000 */ # 305: 0c04
s32i a2, a5, 16 /* a2 -> [.Ldata001] */ # 307: 2945
s32i a4, a2, 176 # 309: 42622c
s32i a4, a2, 60 # 30c: 49f2
movi a2, 272 /* 0x00000110 */ # 30e: 22a110
call0 zalloc # 311: 01dbffc0
# 315: 0000
movi a6, g_ic # 317: 61ccff
movi a3, .Label002 # 31a: 31ccff
l32i a6, a6, 16 /* [.Ldata001] */ # 31d: 6846
movi a4, 6 /* 0x00000006 */ # 31f: 0c64
s32i a2, a6, 140 /* a2 -> [[.Ldata001]+0x8c] */ # 321: 226623
call0 memcpy # 324: 01d8ffc0
# 328: 0000
.Lbr024: beqi a12, 1, .Lbr027 # 32a: 261c6d
movi a2, .Label003 # 32d: 21c8ff
call0 printf # 330: 01d6ffc0
# 334: 0000
.Lbr025: movi a12, g_ic # 336: c1c7ff
movi a2, .Lstr004 # 339: 21c7ff
call0 printf # 33c: 01d4ffc0
# 340: 0000
movi a8, info # 342: 81c6ff
movi a2, .Lstr003 # 345: 21c6ff
l8ui a7, a8, 28 /* [info+0x1c] */ # 348: 72081c
l8ui a6, a8, 27 /* [info+0x1b] */ # 34b: 62081b
l8ui a5, a8, 26 /* [info+0x1a] */ # 34e: 52081a
l8ui a4, a8, 25 /* [info+0x19] */ # 351: 420819
l8ui a3, a8, 24 /* [info+0x18] */ # 354: 320818
l8ui a8, a8, 29 /* [info+0x1d] */ # 357: 82081d
s32i a8, sp, 0 /* [info+0x1d] -> [(local0)] */ # 35a: 8901
call0 printf # 35c: 01cdffc0
# 360: 0000
l32i a9, a12, 20 /* [.Ldata002] */ # 362: 985c
bnez a9, .Lbr027 # 364: fc39
movi a2, 648 /* 0x00000288 */ # 366: 22a288
call0 zalloc # 369: 01caffc0
# 36d: 0000
s32i a2, a12, 20 /* a2 -> [.Ldata002] */ # 36f: 295c
movi a10, 1 /* 0x00000001 */ # 371: 0c1a
s32i a10, a2, 176 # 373: a2622c
movi a2, 272 /* 0x00000110 */ # 376: 22a110
call0 zalloc # 379: 01c7ffc0
# 37d: 0000
movi a3, .Label002 # 37f: 31b9ff
l32i a11, a12, 20 /* [.Ldata002] */ # 382: b85c
movi a4, 6 /* 0x00000006 */ # 384: 0c64
s32i a2, a11, 144 /* a2 -> [[.Ldata002]+0x90] */ # 386: 226b24
call0 memcpy # 389: 01c4ffc0
# 38d: 0000
j .Lbr027 # 38f: 060200
.Lbr026: movi a2, .Lstr002 # 392: 21b5ff
call0 printf # 395: 01c2ffc0
# 399: 0000
.Lbr027: movi a2, .Label004 # 39b: 21b4ff
call0 printf # 39e: 01c1ffc0
# 3a2: 0000
movi a2, 1 /* 0x00000001 */ # 3a4: 0c12
l32i a12, sp, 20 /* [(local2)] */ # 3a6: c851
l32i a0, sp, 16 /* [(local1)] */ # 3a8: 0841
addi sp, sp, 32 /* (top of frame) */ # 3aa: 12c120
ret /* 0x00000001 */ # 3ad: 0df0
.section .rodata, "a", @progbits
.global ieee80211_opcap
.type ieee80211_opcap, @object
ieee80211_opcap:
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "mode : " # 0: 6d6f6465
# 4: 203a2000
.Lstr002: .asciz "null" # 8: 6e756c6c
# c: 00
.balign 4
.Label001: .word 0x00617473 # 10: 73746100
.Lstr003: .asciz "(%02x:%02x:%02x:%02x:%02x:%02x)" # 14: 28253032
# 18: 783a2530
# 1c: 32783a25
# 20: 3032783a
# 24: 25303278
# 28: 3a253032
# 2c: 783a2530
# 30: 32782900
.Label002: .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00
.Label003: .word 0x00202b20 # 3c: 202b2000
.Lstr004: .asciz "softAP" # 40: 736f6674
# 44: 415000
.balign 4
.Label004: .byte 0x0a, 0x00

View file

@ -0,0 +1,206 @@
.section .data, "aw", @progbits
.Lrel001: .word .irom0.text # 0: 00000000
.Lrel002: .word .irom0.text # 4: 00000000
.Lrel003: .word .irom0.text # 8: 00000000
.Lrel004: .word .irom0.text # c: 00000000
.Lrel005: .word .Lfunc002 # 10: bc000000
.Lrel006: .word .Lfunc002 # 14: bc000000
.Lrel007: .word .Lfunc002 # 18: bc000000
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.balign 4
.literal_position
.Lfunc001: movi a2, -1 /* 0xffffffff */ # 0: 7cf2
ret /* 0xffffffff */ # 2: 0df0
.literal_position # 4: 0c000000
# 8: 00000000
# c: 08000000
# Function @ .irom0.text+0x10
.balign 4
.global ieee80211_send_action_register
.type ieee80211_send_action_register, @function
ieee80211_send_action_register:
beqi a2, 3, .Lbr003 # 10: 26321a
beqi a2, 7, .Lbr004 # 13: 267220
movi a5, 127 /* 0x0000007f */ # 16: 52a07f
bne a2, a5, .Lbr002 # 19: 57920d
bnez a3, .Lbr002 # 1c: cca3
movi a2, .Lrel004 # 1e: 21f9ff
.Lbr001: addx4 a6, a3, a2 # 21: 2063a0
s32i a4, a6, 0 # 24: 4906
movi a2, 0 /* 0x00000000 */ # 26: 0c02
ret /* 0x00000000 */ # 28: 0df0
.Lbr002: movi a2, -1 /* 0xffffffff */ # 2a: 7cf2
ret /* 0xffffffff */ # 2c: 0df0
.Lbr003: bgeui a3, 2, .Lbr002 # 2e: f623f8
movi a2, .Lrel001 # 31: 21f5ff
j .Lbr001 # 34: 46faff
.Lbr004: bnez a3, .Lbr002 # 37: 56f3fe
movi a2, .Lrel003 # 3a: 21f4ff
j .Lbr001 # 3d: 06f8ff
.literal_position # 40: 00000000
# Function @ .irom0.text+0x44
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global ieee80211_send_action_unregister
.type ieee80211_send_action_unregister, @function
ieee80211_send_action_unregister:
movi a4, .Lfunc001 # 44: 41ffff
addi sp, sp, -16 /* (local0) */ # 47: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4a: 0901
call0 ieee80211_send_action_register # 4c: 050000
l32i a0, sp, 0 /* [(local0)] */ # 4f: 0801
addi sp, sp, 16 /* (top of frame) */ # 51: 12c110
ret # 54: 0df0
.literal_position # 58: 00000000
# 5c: 0c000000
# 60: 08000000
# 64: 00000000
# Function @ .irom0.text+0x68
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global ieee80211_send_action
.type ieee80211_send_action, @function
ieee80211_send_action:
addi sp, sp, -16 /* (local0) */ # 68: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6b: 0901
movi a0, .Lfunc001 # 6d: 01faff
beqi a3, 3, .Lbr005 # 70: 263315
beqi a3, 7, .Lbr009 # 73: 267326
movi a6, 127 /* 0x0000007f */ # 76: 62a07f
bne a3, a6, .Lbr006 # 79: 67930f
bnez a4, .Lbr008 # 7c: dc84
movi a7, .Lrel004 # 7e: 71f7ff
addx4 a7, a4, a7 # 81: 7074a0
l32i a7, a7, 0 # 84: 7807
j .Lbr007 # 86: 060100
.Lbr005: bltui a4, 2, .Lbr011 # 89: b62422
.Lbr006: mov a7, a0 /* .Lfunc001 */ # 8c: 7d00
.Lbr007: callx0 a7 # 8e: c00700
l32i a0, sp, 0 /* [(local0)] */ # 91: 0801
addi sp, sp, 16 /* (top of frame) */ # 93: 12c110
ret # 96: 0df0
.Lbr008: mov a7, a0 /* .Lfunc001 */ # 98: 7d00
j .Lbr007 # 9a: 06fcff
.Lbr009: bnez a4, .Lbr010 # 9d: cc94
movi a7, .Lrel003 # 9f: 71f0ff
addx4 a7, a4, a7 # a2: 7074a0
l32i a7, a7, 0 # a5: 7807
j .Lbr007 # a7: c6f8ff
.Lbr010: mov a7, a0 /* .Lfunc001 */ # aa: 7d00
j .Lbr007 # ac: 86f7ff
.Lbr011: movi a7, .Lrel001 # af: 71edff
addx4 a7, a4, a7 # b2: 7074a0
l32i a7, a7, 0 # b5: 7807
j .Lbr007 # b7: c6f4ff
.balign 4
# Function @ .irom0.text+0xbc
.balign 4
.Lfunc002: movi a2, -1 /* 0xffffffff */ # bc: 7cf2
ret /* 0xffffffff */ # be: 0df0
.literal_position # c0: 18000000
# c4: 10000000
# c8: 14000000
# Function @ .irom0.text+0xcc
.balign 4
.global ieee80211_recv_action_register
.type ieee80211_recv_action_register, @function
ieee80211_recv_action_register:
beqi a2, 3, .Lbr014 # cc: 26321a
beqi a2, 7, .Lbr015 # cf: 267220
movi a5, 127 /* 0x0000007f */ # d2: 52a07f
bne a2, a5, .Lbr013 # d5: 57920d
bnez a3, .Lbr013 # d8: cca3
movi a2, .Lrel007 # da: 21f9ff
.Lbr012: addx4 a6, a3, a2 # dd: 2063a0
s32i a4, a6, 0 # e0: 4906
movi a2, 0 /* 0x00000000 */ # e2: 0c02
ret /* 0x00000000 */ # e4: 0df0
.Lbr013: movi a2, -1 /* 0xffffffff */ # e6: 7cf2
ret /* 0xffffffff */ # e8: 0df0
.Lbr014: bnez a3, .Lbr013 # ea: 5683ff
movi a2, .Lrel005 # ed: 21f5ff
j .Lbr012 # f0: 46faff
.Lbr015: bnez a3, .Lbr013 # f3: 56f3fe
movi a2, .Lrel006 # f6: 21f4ff
j .Lbr012 # f9: 06f8ff
.literal_position # fc: bc000000
# Function @ .irom0.text+0x100
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global ieee80211_recv_action_unregister
.type ieee80211_recv_action_unregister, @function
ieee80211_recv_action_unregister:
movi a4, .Lfunc002 # 100: 41ffff
addi sp, sp, -16 /* (local0) */ # 103: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 106: 0901
call0 ieee80211_recv_action_register # 108: 050000
l32i a0, sp, 0 /* [(local0)] */ # 10b: 0801
addi sp, sp, 16 /* (top of frame) */ # 10d: 12c110
ret # 110: 0df0
.literal_position # 114: bc000000
# 118: 18000000
# 11c: 14000000
# 120: 10000000
# Function @ .irom0.text+0x124
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global ieee80211_recv_action
.type ieee80211_recv_action, @function
ieee80211_recv_action:
addi sp, sp, -16 /* (local0) */ # 124: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 127: 0901
l8ui a0, a4, 0 /* [arg2] */ # 129: 020400
movi a8, .Lfunc002 # 12c: 81faff
beqi a0, 3, .Lbr016 # 12f: 26301a
beqi a0, 7, .Lbr020 # 132: 26702b
movi a6, 127 /* 0x0000007f */ # 135: 62a07f
bne a0, a6, .Lbr017 # 138: 679016
l8ui a0, a4, 1 /* [arg2+0x1] */ # 13b: 020401
mov a7, a8 /* .Lfunc002 */ # 13e: 7d08
bnez a0, .Lbr019 # 140: dca0
movi a7, .Lrel007 # 142: 71f5ff
addx4 a7, a0, a7 # 145: 7070a0
l32i a7, a7, 0 # 148: 7807
j .Lbr018 # 14a: 860100
.Lbr016: l8ui a0, a4, 1 /* [arg2+0x1] */ # 14d: 020401
beqz a0, .Lbr022 # 150: ac20
.Lbr017: mov a7, a8 /* .Lfunc002 */ # 152: 7d08
.Lbr018: callx0 a7 # 154: c00700
l32i a0, sp, 0 /* [(local0)] */ # 157: 0801
addi sp, sp, 16 /* (top of frame) */ # 159: 12c110
ret # 15c: 0df0
.Lbr019: j .Lbr018 # 15e: 86fcff
.Lbr020: l8ui a0, a4, 1 /* [arg2+0x1] */ # 161: 020401
mov a7, a8 /* .Lfunc002 */ # 164: 7d08
bnez a0, .Lbr021 # 166: cc90
movi a7, .Lrel006 # 168: 71edff
addx4 a7, a0, a7 # 16b: 7070a0
l32i a7, a7, 0 # 16e: 7807
j .Lbr018 # 170: 06f8ff
.Lbr021: j .Lbr018 # 173: 46f7ff
.Lbr022: movi a7, .Lrel005 # 176: 71eaff
addx4 a7, a0, a7 # 179: 7070a0
l32i a7, a7, 0 # 17c: 7807
j .Lbr018 # 17e: 86f4ff

View file

@ -0,0 +1,115 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.balign 4
.literal_position
.global ieee80211_crypto_attach
.type ieee80211_crypto_attach, @function
ieee80211_crypto_attach:
ret /* arg0 */ # 0: 0df0
.balign 4
# Function @ .irom0.text+0x4
.balign 4
.global ieee80211_crypto_available
.type ieee80211_crypto_available, @function
ieee80211_crypto_available:
movi a2, 0 /* 0x00000000 */ # 4: 0c02
ret /* 0x00000000 */ # 6: 0df0
# Function @ .irom0.text+0x8
.balign 4
.global ieee80211_crypto_setkey
.type ieee80211_crypto_setkey, @function
ieee80211_crypto_setkey:
movi a2, 0 /* 0x00000000 */ # 8: 0c02
ret /* 0x00000000 */ # a: 0df0
.literal_position # c: 00000000
# Function @ .irom0.text+0x10
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global ieee80211_crypto_encap
.type ieee80211_crypto_encap, @function
ieee80211_crypto_encap:
addi sp, sp, -16 /* (local0) */ # 10: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 13: 0911
l32i a4, a3, 32 /* [arg1+0x20] */ # 15: 4883
l32i a0, a2, 136 /* [arg0+0x88] */ # 17: 022222
l32i a4, a4, 0 /* [[arg1+0x20]] */ # 1a: 4804
movi a2, g_ic # 1c: 21fcff
bbci a4, 7, .Lbr003 # 1f: 776434
l8ui a0, a0, 233 /* [[arg0+0x88]+0xe9] */ # 22: 0200e9
bltui a0, 2, .Lbr001 # 25: b62004
addi a6, a0, -1 /* [[arg0+0x88]+0xe9]-0x1 */ # 28: 0b60
j .Lbr002 # 2a: 460000
.Lbr001: mov a6, a0 /* [[arg0+0x88]+0xe9] */ # 2d: 6d00
.Lbr002: addx4 a2, a0, a2 # 2f: 2020a0
l32i a2, a2, 0x190 # 32: 222264
slli a4, a6, 6 # 35: a04611
l32i a0, a2, 152 # 38: 022226
extui a4, a4, 0, 8 # 3b: 404074
l32i a0, a0, 16 # 3e: 0840
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 40: 2901
callx0 a0 # 42: c00000
l32i a4, sp, 0 /* [(local0)] */ # 45: 4801
l32i a3, sp, 4 /* [(local1)] */ # 47: 3811
movi a0, 0 /* 0x00000000 */ # 49: 0c00
addi sp, sp, 16 /* (top of frame) */ # 4b: 12c110
movnez a0, a4, a2 # 4e: 200493
mov a2, a0 # 51: 2d00
mov a0, a3 /* [(local1)] */ # 53: 0d03
ret # 55: 0df0
.Lbr003: movi a6, 0 /* 0x00000000 */ # 57: 0c06
l8ui a0, a0, 232 /* [[arg0+0x88]+0xe8] */ # 59: 0200e8
j .Lbr002 # 5c: c6f3ff
.literal_position # 60: 00000000
# Function @ .irom0.text+0x64
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global ieee80211_crypto_decap
.type ieee80211_crypto_decap, @function
ieee80211_crypto_decap:
addi sp, sp, -16 /* (local0) */ # 64: 12c1f0
l16ui a5, a3, 22 /* [arg1+0x16] */ # 67: 52130b
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 6a: 0911
l16ui a0, a3, 20 /* [arg1+0x14] */ # 6c: 02130a
movi a6, g_ic # 6f: 61fcff
add a0, a0, a5 # 72: 5a00
bltui a0, 32, .Lbr005 # 74: b6c020
l32i a0, a3, 4 /* [arg1+0x4] */ # 77: 0813
l32i a0, a0, 4 /* [[arg1+0x4]+0x4] */ # 79: 0810
l8ui a7, a0, 4 /* [[[arg1+0x4]+0x4]+0x4] */ # 7b: 720004
add a0, a4, a0 # 7e: 0a04
bbci a7, 0, .Lbr008 # 80: 076731
l8ui a0, a0, 3 # 83: 020003
extui a0, a0, 6, 2 # 86: 000614
addi a0, a0, -1 # 89: 0b00
extui a0, a0, 0, 8 # 8b: 000074
.Lbr004: addx4 a2, a0, a6 # 8e: 6020a0
l32i a2, a2, 0x190 # 91: 222264
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 94: 2901
bnez a2, .Lbr006 # 96: cc32
.Lbr005: movi a2, 0 /* 0x00000000 */ # 98: 0c02
j .Lbr007 # 9a: 060400
.Lbr006: l32i a0, a2, 152 # 9d: 022226
l32i a0, a0, 20 # a0: 0850
callx0 a0 # a2: c00000
mov a4, a2 # a5: 4d02
l32i a3, sp, 0 /* [(local0)] */ # a7: 3801
movi a2, 0 /* 0x00000000 */ # a9: 0c02
movnez a2, a3, a4 # ab: 402393
.Lbr007: l32i a0, sp, 4 /* [(local1)] */ # ae: 0811
addi sp, sp, 16 /* (top of frame) */ # b0: 12c110
ret # b3: 0df0
.Lbr008: l32i a0, a2, 136 /* [arg0+0x88] */ # b5: 022222
l8ui a0, a0, 232 /* [[arg0+0x88]+0xe8] */ # b8: 0200e8
j .Lbr004 # bb: c6f3ff

View file

@ -0,0 +1,142 @@
.section .data, "aw", @progbits
.global ccmp
.type ccmp, @object
ccmp: .word 0x00000003 # 0: 03000000
.Ldata001: .word 0x00000008 # 4: 08000000
# NOTE: The following is apparently unreferenced code/data
.word 0x00000008 # 8: 08000000
.word 0x00000000 # c: 00000000
.Lrel001: .word .Lfunc001 # 10: 04000000
.Lrel002: .word .Lfunc002 # 14: 80000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
.balign 4
.Lfunc001: ssai 8 # 4: 004840
l32i a5, a2, 144 /* [arg0+0x90] */ # 7: 522224
l16ui a6, a3, 22 /* [arg1+0x16] */ # a: 62130b
movi a7, ccmp # d: 71fcff
l32i a9, a3, 4 /* [arg1+0x4] */ # 10: 9813
l32i a10, a7, 4 /* [.Ldata001] */ # 12: a817
l32i a7, a7, 4 /* [.Ldata001] */ # 14: 7817
l32i a8, a9, 4 /* [[arg1+0x4]+0x4] */ # 16: 8819
add a6, a6, a7 # 18: 7a66
sub a8, a8, a10 # 1a: a088c0
addi a7, a5, 1 /* [arg0+0x90]+0x1 */ # 1d: 1b75
s32i a8, a9, 4 /* a8 -> [[arg1+0x4]+0x4] */ # 1f: 8919
s16i a6, a3, 22 /* a6 -> [arg1+0x16] */ # 21: 62530b
movi a9, 32 /* 0x00000020 */ # 24: 2c09
or a11, a4, a9 # 26: 90b420
s32i a7, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 29: 726224
l32i a3, a2, 148 /* [arg0+0x94] */ # 2c: 322225
bgeu a7, a5, .Lbr001 # 2f: 57b701
addi a3, a3, 1 /* [arg0+0x94]+0x1 */ # 32: 1b33
.Lbr001: movi a5, 0 /* 0x00000000 */ # 34: 0c05
s32i a3, a2, 148 /* a3 -> [arg0+0x94] */ # 36: 326225
s8i a7, a8, 0 # 39: 724800
l32i a6, a2, 148 /* [arg0+0x94] */ # 3c: 622225
l32i a10, a2, 144 /* [arg0+0x90] */ # 3f: a22224
s8i a5, a8, 2 # 42: 524802
s8i a11, a8, 3 # 45: b24803
src a6, a6, a10 # 48: a06681
s8i a6, a8, 1 # 4b: 624801
l32i a11, a2, 144 /* [arg0+0x90] */ # 4e: b22224
l32i a10, a2, 148 /* [arg0+0x94] */ # 51: a22225
ssai 16 # 54: 104040
src a10, a10, a11 # 57: b0aa81
s8i a10, a8, 4 # 5a: a24804
l32i a6, a2, 144 /* [arg0+0x90] */ # 5d: 622224
l32i a5, a2, 148 /* [arg0+0x94] */ # 60: 522225
ssai 24 # 63: 104840
src a5, a5, a6 # 66: 605581
s8i a5, a8, 5 # 69: 524805
l32i a11, a2, 148 /* [arg0+0x94] */ # 6c: b22225
s8i a11, a8, 6 # 6f: b24806
l32i a10, a2, 148 /* [arg0+0x94] */ # 72: a22225
movi a2, 1 /* 0x00000001 */ # 75: 0c12
srli a10, a10, 8 # 77: a0a841
s8i a10, a8, 7 # 7a: a24807
ret /* 0x00000001 */ # 7d: 0df0
.balign 4
# Function @ .irom0.text+0x80
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.Lfunc002: addi sp, sp, -16 /* (local0) */ # 80: 12c1f0
l32i a8, a3, 4 /* [arg1+0x4] */ # 83: 8813
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 85: 0911
l32i a0, a8, 4 /* [[arg1+0x4]+0x4] */ # 87: 0818
add a7, a4, a0 # 89: 0a74
l8ui a5, a7, 3 # 8b: 520703
movi a9, 140 /* 0x0000008c */ # 8e: 92a08c
extui a5, a5, 5, 1 # 91: 505504
beqz a5, .Lbr006 # 94: 169508
l8ui a5, a7, 6 # 97: 520706
l8ui a11, a7, 7 # 9a: b20707
l8ui a6, a0, 0 /* [[[arg1+0x4]+0x4]] */ # 9d: 620000
slli a11, a11, 8 # a0: 80bb11
and a6, a6, a9 # a3: 906610
or a11, a11, a5 # a6: 50bb20
l8ui a5, a7, 4 # a9: 520704
movi a9, 136 /* 0x00000088 */ # ac: 92a088
slli a5, a5, 16 # af: 005511
bne a6, a9, .Lbr002 # b2: 979611
l8ui a10, a0, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # b5: a20001
extui a10, a10, 0, 2 # b8: a0a014
addi a10, a10, -3 # bb: a2cafd
bnez a10, .Lbr008 # be: 56aa06
l8ui a0, a0, 30 /* [[[arg1+0x4]+0x4]+0x1e] */ # c1: 02001e
j .Lbr009 # c4: c61900
.Lbr002: movi a0, 16 /* 0x00000010 */ # c7: 1c00
.Lbr003: l8ui a9, a7, 0 # c9: 920700
l8ui a10, a7, 5 # cc: a20705
l8ui a6, a7, 1 # cf: 620701
slli a10, a10, 24 # d2: 80aa01
slli a6, a6, 8 # d5: 806611
or a6, a6, a9 # d8: 906620
extui a7, a11, 0, 16 # db: b070f4
addx8 a9, a0, a2 # de: 2090b0
or a5, a5, a6 # e1: 605520
movi a0, 0 /* 0x00000000 */ # e4: 0c00
s32i a9, sp, 0 /* a9 -> [(local0)] */ # e6: 9901
l32i a11, a9, 8 # e8: b829
l32i a9, a9, 12 # ea: 9839
or a10, a10, a5 # ec: 50aa20
bltu a9, a7, .Lbr005 # ef: 773907
bne a9, a7, .Lbr004 # f2: 779902
bltu a11, a10, .Lbr005 # f5: a73b01
.Lbr004: movi a0, 1 /* 0x00000001 */ # f8: 0c10
.Lbr005: bnez a0, .Lbr006 # fa: ec30
l32i a11, sp, 0 /* [(local0)] */ # fc: b801
l16ui a9, a3, 22 /* [arg1+0x16] */ # fe: 92130b
s32i a10, a11, 8 /* a10 -> [[(local0)]+0x8] */ # 101: a92b
s32i a7, a11, 12 /* a7 -> [[(local0)]+0xc] */ # 103: 793b
l32i a11, a2, 152 /* [arg0+0x98] */ # 105: b22226
l32i a5, a8, 4 /* [[arg1+0x4]+0x4] */ # 108: 5818
l32i a0, a11, 4 /* [[arg0+0x98]+0x4] */ # 10a: 081b
l32i a11, a11, 8 /* [[arg0+0x98]+0x8] */ # 10c: b82b
add a6, a4, a0 # 10e: 0a64
add a11, a11, a0 # 110: 0abb
add a5, a5, a6 # 112: 6a55
movi a0, 1 /* 0x00000001 */ # 114: 0c10
s32i a5, a8, 4 /* a5 -> [[arg1+0x4]+0x4] */ # 116: 5918
sub a9, a9, a11 # 118: b099c0
s16i a9, a3, 22 /* a9 -> [arg1+0x16] */ # 11b: 92530b
j .Lbr007 # 11e: 460000
.Lbr006: movi a0, 0 /* 0x00000000 */ # 121: 0c00
.Lbr007: mov a2, a0 # 123: 2d00
l32i a0, sp, 4 /* [(local1)] */ # 125: 0811
addi sp, sp, 16 /* (top of frame) */ # 127: 12c110
ret # 12a: 0df0
.Lbr008: l8ui a0, a0, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 12c: 020018
.Lbr009: extui a0, a0, 0, 4 # 12f: 000034
j .Lbr003 # 132: c6e4ff

View file

@ -0,0 +1,165 @@
.section .data, "aw", @progbits
.global tkip
.type tkip, @object
tkip: .word 0x00000002 # 0: 02000000
.Ldata001: .word 0x00000008 # 4: 08000000
# NOTE: The following is apparently unreferenced code/data
.word 0x0000000c # 8: 0c000000
.word 0x00000008 # c: 08000000
.Lrel001: .word .Lfunc001 # 10: 08000000
.Lrel002: .word .Lfunc002 # 14: a0000000
.section .bss, "aw", @nobits
.Ldata002: .word 0x00000000 # 0: 00000000
.Ldata003: .word 0x00000000 # 4: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .irom0.text+0x8
.balign 4
.Lfunc001: movi a5, g_ic # 8: 51feff
ssai 8 # b: 004840
l32i a5, a5, 28 /* [g_ic+0x1c] */ # e: 5875
movi a11, tkip # 10: b1fdff
bbci a5, 26, .Lbr001 # 13: a77503
movi a2, 0 /* 0x00000000 */ # 16: 0c02
ret /* 0x00000000 */ # 18: 0df0
.Lbr001: l32i a7, a2, 148 /* [arg0+0x94] */ # 1a: 722225
l16ui a10, a3, 22 /* [arg1+0x16] */ # 1d: a2130b
l32i a5, a3, 4 /* [arg1+0x4] */ # 20: 5813
l32i a9, a11, 4 /* [.Ldata001] */ # 22: 981b
l32i a8, a5, 4 /* [[arg1+0x4]+0x4] */ # 24: 8815
l32i a11, a11, 4 /* [.Ldata001] */ # 26: b81b
sub a8, a8, a9 # 28: 9088c0
l32i a9, a2, 144 /* [arg0+0x90] */ # 2b: 922224
add a10, a10, a11 # 2e: baaa
src a7, a7, a9 # 30: 907781
movi a9, 95 /* 0x0000005f */ # 33: 5cf9
s32i a8, a5, 4 /* a8 -> [[arg1+0x4]+0x4] */ # 35: 8915
s16i a10, a3, 22 /* a10 -> [arg1+0x16] */ # 37: a2530b
and a9, a7, a9 # 3a: 909710
movi a10, 32 /* 0x00000020 */ # 3d: 2c0a
or a6, a4, a10 # 3f: a06420
s8i a7, a8, 0 # 42: 724800
or a9, a9, a10 # 45: a09920
s8i a9, a8, 1 # 48: 924801
l32i a5, a2, 144 /* [arg0+0x90] */ # 4b: 522224
s8i a6, a8, 3 # 4e: 624803
s8i a5, a8, 2 # 51: 524802
l32i a4, a2, 144 /* [arg0+0x90] */ # 54: 422224
l32i a3, a2, 148 /* [arg0+0x94] */ # 57: 322225
ssai 16 # 5a: 104040
src a3, a3, a4 # 5d: 403381
s8i a3, a8, 4 # 60: 324804
l32i a11, a2, 144 /* [arg0+0x90] */ # 63: b22224
l32i a10, a2, 148 /* [arg0+0x94] */ # 66: a22225
ssai 24 # 69: 104840
src a10, a10, a11 # 6c: b0aa81
s8i a10, a8, 5 # 6f: a24805
l32i a9, a2, 148 /* [arg0+0x94] */ # 72: 922225
s8i a9, a8, 6 # 75: 924806
l32i a7, a2, 148 /* [arg0+0x94] */ # 78: 722225
srli a7, a7, 8 # 7b: 707841
s8i a7, a8, 7 # 7e: 724807
l32i a6, a2, 144 /* [arg0+0x90] */ # 81: 622224
l32i a3, a2, 148 /* [arg0+0x94] */ # 84: 322225
addi a4, a6, 1 /* [arg0+0x90]+0x1 */ # 87: 1b46
bgeu a4, a6, .Lbr002 # 89: 67b401
addi a3, a3, 1 /* [arg0+0x94]+0x1 */ # 8c: 1b33
.Lbr002: s32i a3, a2, 148 /* a3 -> [arg0+0x94] */ # 8e: 326225
s32i a4, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 91: 426224
movi a2, 1 /* 0x00000001 */ # 94: 0c12
ret /* 0x00000001 */ # 96: 0df0
.literal_position # 98: 00000000
# 9c: 00000000
# Function @ .irom0.text+0xa0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.Lfunc002: addi sp, sp, -16 /* (local0) */ # a0: 12c1f0
l32i a8, a3, 4 /* [arg1+0x4] */ # a3: 8813
s32i a0, sp, 4 /* a0 -> [(local1)] */ # a5: 0911
l32i a0, a8, 4 /* [[arg1+0x4]+0x4] */ # a7: 0818
movi a6, g_ic # a9: 61fbff
add a7, a4, a0 # ac: 0a74
l8ui a5, a7, 3 # ae: 520703
l32i a6, a6, 28 /* [g_ic+0x1c] */ # b1: 6876
extui a5, a5, 5, 1 # b3: 505504
beqz a5, .Lbr007 # b6: 169509
extui a6, a6, 26, 1 # b9: 606a05
bnez a6, .Lbr007 # bc: 563609
l8ui a6, a7, 6 # bf: 620706
l8ui a5, a7, 7 # c2: 520707
l8ui a9, a0, 0 /* [[[arg1+0x4]+0x4]] */ # c5: 920000
movi a10, 140 /* 0x0000008c */ # c8: a2a08c
and a9, a9, a10 # cb: a09910
slli a5, a5, 8 # ce: 805511
or a5, a5, a6 # d1: 605520
movi a10, 136 /* 0x00000088 */ # d4: a2a088
l8ui a6, a7, 0 # d7: 620700
bne a9, a10, .Lbr003 # da: a79911
l8ui a11, a0, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # dd: b20001
extui a11, a11, 0, 2 # e0: b0b014
addi a11, a11, -3 # e3: b2cbfd
bnez a11, .Lbr009 # e6: 564b07
l8ui a0, a0, 30 /* [[[arg1+0x4]+0x4]+0x1e] */ # e9: 02001e
j .Lbr010 # ec: 461c00
.Lbr003: movi a0, 16 /* 0x00000010 */ # ef: 1c00
.Lbr004: slli a6, a6, 8 # f1: 806611
l8ui a9, a7, 2 # f4: 920702
l8ui a10, a7, 5 # f7: a20705
l8ui a11, a7, 4 # fa: b20704
slli a10, a10, 24 # fd: 80aa01
slli a11, a11, 16 # 100: 00bb11
extui a7, a5, 0, 16 # 103: 5070f4
or a6, a6, a9 # 106: 906620
or a11, a11, a6 # 109: 60bb20
addx8 a9, a0, a2 # 10c: 2090b0
or a10, a10, a11 # 10f: b0aa20
movi a11, .Ldata002 # 112: b1e2ff
s32i a9, sp, 0 /* a9 -> [(local0)] */ # 115: 9901
s32i a7, a11, 4 /* a7 -> [.Ldata003] */ # 117: 791b
s32i a10, a11, 0 /* a10 -> [.Ldata002] */ # 119: a90b
l32i a11, a9, 8 # 11b: b829
l32i a9, a9, 12 # 11d: 9839
movi a0, 0 /* 0x00000000 */ # 11f: 0c00
bltu a9, a7, .Lbr006 # 121: 773907
bne a9, a7, .Lbr005 # 124: 779902
bltu a11, a10, .Lbr006 # 127: a73b01
.Lbr005: movi a0, 1 /* 0x00000001 */ # 12a: 0c10
.Lbr006: bnez a0, .Lbr007 # 12c: ec30
l32i a0, sp, 0 /* [(local0)] */ # 12e: 0801
l16ui a11, a3, 22 /* [arg1+0x16] */ # 130: b2130b
s32i a10, a0, 8 /* a10 -> [[(local0)]+0x8] */ # 133: a920
s32i a7, a0, 12 /* a7 -> [[(local0)]+0xc] */ # 135: 7930
l32i a0, a2, 152 /* [arg0+0x98] */ # 137: 022226
l32i a6, a8, 4 /* [[arg1+0x4]+0x4] */ # 13a: 6818
l32i a5, a0, 4 /* [[arg0+0x98]+0x4] */ # 13c: 5810
l32i a0, a0, 8 /* [[arg0+0x98]+0x8] */ # 13e: 0820
add a9, a4, a5 # 140: 5a94
add a6, a6, a9 # 142: 9a66
add a0, a0, a5 # 144: 5a00
sub a11, a11, a0 # 146: 00bbc0
s32i a6, a8, 4 /* a6 -> [[arg1+0x4]+0x4] */ # 149: 6918
movi a0, 1 /* 0x00000001 */ # 14b: 0c10
s16i a11, a3, 22 /* a11 -> [arg1+0x16] */ # 14d: b2530b
j .Lbr008 # 150: 460000
.Lbr007: movi a0, 0 /* 0x00000000 */ # 153: 0c00
.Lbr008: mov a2, a0 # 155: 2d00
l32i a0, sp, 4 /* [(local1)] */ # 157: 0811
addi sp, sp, 16 /* (top of frame) */ # 159: 12c110
ret # 15c: 0df0
.Lbr009: l8ui a0, a0, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 15e: 020018
.Lbr010: extui a0, a0, 0, 4 # 161: 000034
j .Lbr004 # 164: 46e2ff

View file

@ -0,0 +1,73 @@
.section .data, "aw", @progbits
.global wep
.type wep, @object
wep: .word 0x00000001 # 0: 01000000
.Ldata001: .word 0x00000004 # 4: 04000000
# NOTE: The following is apparently unreferenced code/data
.word 0x00000004 # 8: 04000000
.word 0x00000000 # c: 00000000
.Lrel001: .word .Lfunc001 # 10: 04000000
.Lrel002: .word .Lfunc002 # 14: 60000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
.balign 4
.Lfunc001: bnez a3, .Lbr001 # 4: cc33
movi a3, 0 /* 0x00000000 */ # 6: 0c03
j .Lbr003 # 8: 461300
.Lbr001: l32i a5, a2, 144 /* [arg0+0x90] */ # b: 522224
l16ui a6, a3, 22 /* [arg1+0x16] */ # e: 62130b
movi a7, wep # 11: 71fbff
l32i a8, a3, 4 /* [arg1+0x4] */ # 14: 8813
l32i a10, a7, 4 /* [.Ldata001] */ # 16: a817
l32i a7, a7, 4 /* [.Ldata001] */ # 18: 7817
l32i a9, a8, 4 /* [[arg1+0x4]+0x4] */ # 1a: 9818
add a6, a6, a7 # 1c: 7a66
sub a9, a9, a10 # 1e: a099c0
l32i a7, a2, 148 /* [arg0+0x94] */ # 21: 722225
s32i a9, a8, 4 /* a9 -> [[arg1+0x4]+0x4] */ # 24: 9918
s16i a6, a3, 22 /* a6 -> [arg1+0x16] */ # 26: 62530b
addi a8, a5, 1 /* [arg0+0x90]+0x1 */ # 29: 1b85
bgeu a8, a5, .Lbr002 # 2b: 57b801
addi a7, a7, 1 /* [arg0+0x94]+0x1 */ # 2e: 1b77
.Lbr002: movi a3, 1 /* 0x00000001 */ # 30: 0c13
s32i a7, a2, 148 /* a7 -> [arg0+0x94] */ # 32: 726225
s32i a8, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 35: 826224
ssai 16 # 38: 104040
src a6, a7, a8 # 3b: 806781
s8i a6, a9, 2 # 3e: 624902
l32i a5, a2, 144 /* [arg0+0x90] */ # 41: 522224
l32i a11, a2, 148 /* [arg0+0x94] */ # 44: b22225
ssai 8 # 47: 004840
src a11, a11, a5 # 4a: 50bb81
s8i a11, a9, 1 # 4d: b24901
l32i a10, a2, 144 /* [arg0+0x90] */ # 50: a22224
s8i a10, a9, 0 # 53: a24900
s8i a4, a9, 3 # 56: 424903
.Lbr003: mov a2, a3 # 59: 2d03
ret # 5b: 0df0
.balign 4
# Function @ .irom0.text+0x60
.balign 4
.Lfunc002: l32i a5, a2, 152 /* [arg0+0x98] */ # 60: 522226
l32i a8, a3, 4 /* [arg1+0x4] */ # 63: 8813
l16ui a2, a3, 22 /* [arg1+0x16] */ # 65: 22130b
l32i a7, a8, 4 /* [[arg1+0x4]+0x4] */ # 68: 7818
l32i a6, a5, 4 /* [[arg0+0x98]+0x4] */ # 6a: 6815
l32i a5, a5, 8 /* [[arg0+0x98]+0x8] */ # 6c: 5825
add a9, a4, a6 # 6e: 6a94
add a7, a7, a9 # 70: 9a77
add a5, a5, a6 # 72: 6a55
sub a2, a2, a5 # 74: 5022c0
s32i a7, a8, 4 /* a7 -> [[arg1+0x4]+0x4] */ # 77: 7918
s16i a2, a3, 22 /* a2 -> [arg1+0x16] */ # 79: 22530b
movi a2, 1 /* 0x00000001 */ # 7c: 0c12
ret /* 0x00000001 */ # 7e: 0df0

View file

@ -0,0 +1,44 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global ieee80211_getmgtframe
.type ieee80211_getmgtframe, @function
ieee80211_getmgtframe:
movi a5, -4 /* 0xfffffffc */ # 4: 7cc5
addi sp, sp, -16 /* (local0) */ # 6: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 9: 0911
s32i a12, sp, 8 /* a12 -> [(local2)] */ # b: c921
movi a0, 256 /* 0x00000100 */ # d: 02a100
mov a12, a3 /* arg1 */ # 10: cd03
add a3, a3, a4 # 12: 4a33
addi a3, a3, 3 # 14: 3b33
and a4, a3, a5 # 16: 504310
bgeu a0, a4, .Lbr001 # 19: 47b004
movi a2, 0 /* 0x00000000 */ # 1c: 0c02
j .Lbr003 # 1e: 860700
.Lbr001: movi a3, 4 /* 0x00000004 */ # 21: 0c43
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 23: 2901
movi a5, 65 /* 0x00000041 */ # 25: 4c15
bgeu a4, a5, .Lbr002 # 27: 57b401
movi a3, 5 /* 0x00000005 */ # 2a: 0c53
.Lbr002: movi a2, 0 /* 0x00000000 */ # 2c: 0c02
call0 esf_buf_alloc # 2e: 01f4ffc0
# 32: 0000
beqz a2, .Lbr003 # 34: 8c82
l32i a6, a2, 4 # 36: 6812
l32i a6, a6, 4 # 38: 6816
l32i a7, sp, 0 /* [(local0)] */ # 3a: 7801
add a6, a12, a6 # 3c: 6a6c
s32i a6, a7, 0 /* a6 -> [[(local0)]] */ # 3e: 6907
.Lbr003: l32i a12, sp, 8 /* [(local2)] */ # 40: c821
l32i a0, sp, 4 /* [(local1)] */ # 42: 0811
addi sp, sp, 16 /* (top of frame) */ # 44: 12c110
ret # 47: 0df0

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,248 @@
.section .data, "aw", @progbits
.Ldata001: .byte 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.word 0x00000000 # 14: 00000000
.byte 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00
.byte 0x3a, 0x01, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0xd0, 0x07, 0x00, 0x00, 0x04, 0x01, 0x84, 0x01
.byte 0x02, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x7c, 0x15, 0x00, 0x00, 0x04, 0x02, 0x8b, 0x02
.byte 0xdf, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xf8, 0x2a, 0x00, 0x00, 0x04, 0x03, 0x96, 0x03
.byte 0xd5, 0x00, 0x75, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x70, 0x17, 0x00, 0x00, 0x00, 0x0b, 0x0c, 0x04
.byte 0x3c, 0x00, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x28, 0x23, 0x00, 0x00, 0x00, 0x0f, 0x12, 0x04
.byte 0x3c, 0x00, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xe0, 0x2e, 0x00, 0x00, 0x00, 0x0a, 0x18, 0x06
.byte 0x30, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x50, 0x46, 0x00, 0x00, 0x00, 0x0e, 0x24, 0x06
.byte 0x30, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xc0, 0x5d, 0x00, 0x00, 0x00, 0x09, 0x30, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xa0, 0x8c, 0x00, 0x00, 0x00, 0x0d, 0x48, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x80, 0xbb, 0x00, 0x00, 0x00, 0x08, 0x60, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xf0, 0xd2, 0x00, 0x00, 0x00, 0x0c, 0x6c, 0x08
.byte 0x2c, 0x00, 0x2c, 0x00
.Label001: .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00
.byte 0x3a, 0x01, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0xd0, 0x07, 0x00, 0x00, 0x04, 0x01, 0x84, 0x01
.byte 0x02, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x7c, 0x15, 0x00, 0x00, 0x04, 0x02, 0x8b, 0x01
.byte 0xdf, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xf8, 0x2a, 0x00, 0x00, 0x04, 0x03, 0x96, 0x01
.byte 0xd5, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
.balign 4
.global ieee80211_get_11g_ratetable
.type ieee80211_get_11g_ratetable, @function
ieee80211_get_11g_ratetable:
movi a2, .Ldata001 # 4: 21ffff
ret /* .Ldata001 */ # 7: 0df0
.literal_position # c: d4000000
# 10: 00000000
# Function @ .irom0.text+0x14
.balign 4
.global ieee80211_get_ratetable
.type ieee80211_get_ratetable, @function
ieee80211_get_ratetable:
l32i a2, a2, 0 /* [arg0] */ # 14: 2802
movi a3, 192 /* 0x000000c0 */ # 16: 32a0c0
ball a2, a3, .Lbr001 # 19: 37420a
movi a4, 1152 /* 0x00000480 */ # 1c: 42a480
ball a2, a4, .Lbr001 # 1f: 474204
movi a2, .Label001 # 22: 21faff
ret /* .Label001 */ # 25: 0df0
.Lbr001: movi a2, .Ldata001 # 27: 21faff
ret /* .Ldata001 */ # 2a: 0df0
.literal_position # 2c: 00000000
# Function @ .irom0.text+0x30
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global ieee80211_phy_init
.type ieee80211_phy_init, @function
ieee80211_phy_init:
addi sp, sp, -16 /* (local0) */ # 30: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 33: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 35: 0901
mov a12, a2 /* arg0 */ # 37: cd02
call0 ieee80211_setup_ratetable # 39: 050000
movi a3, 12 /* 0x0000000c */ # 3c: 0cc3
movi a0, 3 /* 0x00000003 */ # 3e: 0c30
movi a5, 4 /* 0x00000004 */ # 40: 0c45
movi a2, g_ic # 42: 21faff
addi a4, a12, -1 /* arg0-0x1 */ # 45: 0b4c
movi a6, 0 /* 0x00000000 */ # 47: 0c06
l32i a12, sp, 4 /* [(local1)] */ # 49: c811
s8i a6, a2, 125 /* 0x00 -> [g_ic+0x7d] */ # 4b: 62427d
s8i a6, a2, 126 /* 0x00 -> [g_ic+0x7e] */ # 4e: 62427e
s8i a5, a2, 127 /* 0x04 -> [g_ic+0x7f] */ # 51: 52427f
movnez a0, a3, a4 # 54: 400393
s8i a0, a2, 124 /* a0 -> [g_ic+0x7c] */ # 57: 02427c
l32i a0, sp, 0 /* [(local0)] */ # 5a: 0801
addi sp, sp, 16 /* (top of frame) */ # 5c: 12c110
ret /* g_ic */ # 5f: 0df0
.literal_position # 64: 00000000
# Function @ .irom0.text+0x68
.balign 4
.global ieee80211_phy_type_get
.type ieee80211_phy_type_get, @function
ieee80211_phy_type_get:
movi a2, g_ic+0x200 # 68: 21ffff
l32i a2, a2, 0x31c /* [g_ic+0x51c] */ # 6b: 2222c7
movi a3, 1 /* 0x00000001 */ # 6e: 0c13
addi a2, a2, -1 /* [g_ic+0x51c]-0x1 */ # 70: 0b22
movnez a2, a3, a2 # 72: 202393
ret # 75: 0df0
.literal_position # 78: 00000000
# 7c: d4000000
# 80: 00000000
# Function @ .irom0.text+0x84
.balign 4
.global ieee80211_setup_ratetable
.type ieee80211_setup_ratetable, @function
ieee80211_setup_ratetable:
movi a4, .Ldata001 # 84: 41fdff
movi a5, .Label001 # 87: 51fdff
addi a6, a2, -1 /* arg0-0x1 */ # 8a: 0b62
movnez a5, a4, a6 # 8c: 605493
movi a6, g_ic # 8f: 61fcff
l8ui a3, a5, 0 # 92: 320500
s8i a3, a6, 44 /* a3 -> [g_ic+0x2c] */ # 95: 32462c
beqz a3, .Lbr003 # 98: 9c83
movi a2, 0 /* 0x00000000 */ # 9a: 0c02
.Lbr002: add a4, a2, a6 # 9c: 6a42
slli a3, a2, 4 # 9e: c03211
add a3, a5, a3 # a1: 3a35
addi a2, a2, 1 # a3: 1b22
l8ui a3, a3, 30 # a5: 32031e
s8i a3, a4, 45 # a8: 32442d
l8ui a7, a6, 44 /* [g_ic+0x2c] */ # ab: 72062c
extui a2, a2, 0, 8 # ae: 202074
bltu a2, a7, .Lbr002 # b1: 7732e7
.Lbr003: ret # b4: 0df0
.literal_position # b8: 00000000
# bc: 00000000
# c0: 00000000
# Function @ .irom0.text+0xc4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global ieee80211_compute_duration
.type ieee80211_compute_duration, @function
ieee80211_compute_duration:
addi sp, sp, -16 /* (local0) */ # c4: 12c1f0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # c7: 0921
add a0, a4, a2 # c9: 2a04
l8ui a0, a0, 4 # cb: 020004
mov a7, a3 /* arg1 */ # ce: 7d03
slli a0, a0, 4 # d0: c00011
add a0, a2, a0 # d3: 0a02
l32i a3, a0, 24 # d5: 3860
l8ui a2, a0, 20 # d7: 220014
bnez a3, .Lbr004 # da: cc33
movi a2, 0 /* 0x00000000 */ # dc: 0c02
j .Lbr008 # de: 061400
.Lbr004: s32i a7, sp, 4 /* arg1 -> [(local1)] */ # e1: 7911
beqz a2, .Lbr005 # e3: ac52
bnei a2, 1, .Lbr007 # e5: 661246
slli a2, a3, 2 # e8: e02311
movi a3, 1000 /* 0x000003e8 */ # eb: 32a3e8
call0 __udivsi3 # ee: 01f2ffc0
# f2: 0000
mov a3, a2 # f4: 3d02
l32i a2, sp, 4 /* [(local1)] */ # f6: 2811
addx8 a2, a2, a3 # f8: 3022b0
addi a2, a2, 21 # fb: 22c215
call0 __udivsi3 # fe: 01efffc0
# 102: 0000
movi a0, 36 /* 0x00000024 */ # 104: 2c40
addx4 a0, a2, a0 # 106: 0002a0
j .Lbr007 # 109: 860800
.Lbr005: beqz a5, .Lbr009 # 10c: ac95
l8ui a2, a0, 28 # 10e: 22001c
movi a4, 96 /* 0x00000060 */ # 111: 42a060
beqz a2, .Lbr009 # 114: ac12
s32i a4, sp, 0 /* 0x00000060 -> [(local0)] */ # 116: 4901
.Lbr006: l32i a2, sp, 4 /* [(local1)] */ # 118: 2811
movi a4, 1000 /* 0x000003e8 */ # 11a: 42a3e8
slli a2, a2, 3 # 11d: d02211
mull a2, a2, a4 # 120: 402282
call0 __udivsi3 # 123: 01e7ffc0
# 127: 0000
l32i a0, sp, 0 /* [(local0)] */ # 129: 0801
add a0, a0, a2 # 12b: 2a00
addi a0, a0, 10 # 12d: ab00
.Lbr007: extui a2, a0, 0, 16 # 12f: 0020f4
.Lbr008: l32i a0, sp, 8 /* [(local2)] */ # 132: 0821
addi sp, sp, 16 /* (top of frame) */ # 134: 12c110
ret # 137: 0df0
.Lbr009: movi a2, 192 /* 0x000000c0 */ # 139: 22a0c0
s32i a2, sp, 0 /* 0x000000c0 -> [(local0)] */ # 13c: 2901
j .Lbr006 # 13e: 86f5ff
.literal_position # 144: 00000000
# Function @ .irom0.text+0x148
.balign 4
.global ieee80211_dot11Rate_rix
.type ieee80211_dot11Rate_rix, @function
ieee80211_dot11Rate_rix:
movi a6, 0 /* 0x00000000 */ # 148: 0c06
movi a8, .Ldata001 # 14a: 81feff
.Lbr010: slli a7, a6, 4 # 14d: c07611
add a7, a8, a7 # 150: 7a78
l8ui a4, a7, 30 # 152: 42071e
bne a4, a2, .Lbr011 # 155: 279409
mov a2, a6 # 158: 2d06
l8ui a8, a7, 29 # 15a: 82071d
s8i a8, a3, 0 /* a8 -> [arg1] */ # 15d: 824300
ret # 160: 0df0
.Lbr011: addi a6, a6, 1 # 162: 1b66
extui a6, a6, 0, 8 # 164: 606074
bnei a6, 12, .Lbr010 # 167: 66a6e2
movi a2, 255 /* 0x000000ff */ # 16a: 22a0ff
ret /* 0x000000ff */ # 16d: 0df0

View file

@ -0,0 +1,196 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.balign 4
.literal_position
.global ieee80211_psq_init
.type ieee80211_psq_init, @function
ieee80211_psq_init:
movi a6, 0 /* 0x00000000 */ # 0: 0c06
movi a5, 0 /* 0x00000000 */ # 2: 0c05
movi a4, 1 /* 0x00000001 */ # 4: 0c14
.Lbr001: addi a4, a4, -1 # 6: 0b44
add a3, a5, a2 # 8: 2a35
s32i a6, a3, 0 # a: 6903
addi a5, a5, 4 # c: 4b55
bgei a4, 1, .Lbr001 # e: e614f4
movi a4, 10 /* 0x0000000a */ # 11: 0ca4
s32i a4, a2, 4 /* 0x0000000a -> [arg0+0x4] */ # 13: 4912
ret /* arg0 */ # 15: 0df0
.balign 4
# Function @ .irom0.text+0x18
.balign 4
.global ieee80211_psq_cleanup
.type ieee80211_psq_cleanup, @function
ieee80211_psq_cleanup:
ret /* arg0 */ # 18: 0df0
.literal_position # 1c: 00000000
# Function @ .irom0.text+0x20
.balign 4
.global ieee80211_set_tim
.type ieee80211_set_tim, @function
ieee80211_set_tim:
movi a10, 1 /* 0x00000001 */ # 20: 0c1a
l16ui a6, a2, 26 /* [arg0+0x1a] */ # 22: 62120d
movi a8, g_ic+0x152 # 25: 81fdff
extui a7, a6, 0, 3 # 28: 607024
extui a6, a6, 3, 11 # 2b: 6063a4
add a6, a6, a8 # 2e: 8a66
l8ui a5, a6, 128 # 30: 520680
ssr a7 # 33: 000740
sra a4, a5 # 36: 5040b1
extui a4, a4, 0, 1 # 39: 404004
sub a2, a3, a4 # 3c: 4023c0
movnez a2, a10, a2 # 3f: 202a93
beqz a2, .Lbr002 # 42: 9c52
movi a11, -1 /* 0xffffffff */ # 44: 7cfb
ssl a7 # 46: 001740
sll a9, a10 # 49: 009aa1
or a8, a9, a5 # 4c: 508920
xor a9, a9, a11 # 4f: b09930
and a9, a5, a9 # 52: 909510
moveqz a8, a9, a3 # 55: 308983
s8i a8, a6, 128 # 58: 824680
.Lbr002: ret # 5b: 0df0
.literal_position # 60: 00000000
# 64: 00000000
# Function @ .irom0.text+0x68
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global ieee80211_pwrsave
.type ieee80211_pwrsave, @function
ieee80211_pwrsave:
mov a6, a2 /* arg0 */ # 68: 6d02
addi sp, sp, -16 /* (local0) */ # 6a: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 6d: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6f: 0901
l32i a2, a2, 196 /* [arg0+0xc4] */ # 71: 222231
l32i a0, a6, 192 /* [arg0+0xc0] */ # 74: 022630
mov a12, a3 /* arg1 */ # 77: cd03
blt a0, a2, .Lbr003 # 79: 27201e
l32i a3, a6, 200 /* [arg0+0xc8] */ # 7c: 322632
l32i a2, a12, 0 /* [arg1] */ # 7f: 280c
addi a3, a3, 1 /* [arg0+0xc8]+0x1 */ # 81: 1b33
s32i a3, a6, 200 /* [arg0+0xc8]+0x1 -> [arg0+0xc8] */ # 83: 326632
call0 pbuf_free # 86: 01f6ffc0
# 8a: 0000
mov a2, a12 /* arg1 */ # 8c: 2d0c
movi a3, 1 /* 0x00000001 */ # 8e: 0c13
call0 esf_buf_recycle # 90: 01f5ffc0
# 94: 0000
movi a2, 1 /* 0x00000001 */ # 96: 0c12
j .Lbr007 # 98: 060b00
.Lbr003: addi a4, a0, 1 /* [arg0+0xc0]+0x1 */ # 9b: 1b40
movi a7, 0 /* 0x00000000 */ # 9d: 0c07
l32i a5, a6, 212 /* [arg0+0xd4] */ # 9f: 522635
l32i a2, a6, 208 /* [arg0+0xd0] */ # a2: 222634
addi a5, a5, 1 /* [arg0+0xd4]+0x1 */ # a5: 1b55
bnez a2, .Lbr004 # a7: cc42
s32i a3, a6, 204 /* arg1 -> [arg0+0xcc] */ # a9: 326633
j .Lbr005 # ac: 460000
.Lbr004: s32i a3, a2, 28 /* arg1 -> [[arg0+0xd0]+0x1c] */ # af: 3972
.Lbr005: s32i a7, a12, 28 /* 0x00000000 -> [arg1+0x1c] */ # b1: 797c
s32i a12, a6, 208 /* arg1 -> [arg0+0xd0] */ # b3: c26634
s32i a4, a6, 192 /* [arg0+0xc0]+0x1 -> [arg0+0xc0] */ # b6: 426630
s32i a5, a6, 212 /* [arg0+0xd4]+0x1 -> [arg0+0xd4] */ # b9: 526635
bnei a4, 1, .Lbr006 # bc: 661406
mov a2, a6 /* arg0 */ # bf: 2d06
movi a3, 1 /* 0x00000001 */ # c1: 0c13
call0 ieee80211_set_tim # c3: 050000
.Lbr006: movi a2, 0 /* 0x00000000 */ # c6: 0c02
.Lbr007: l32i a12, sp, 4 /* [(local1)] */ # c8: c811
l32i a0, sp, 0 /* [(local0)] */ # ca: 0801
addi sp, sp, 16 /* (top of frame) */ # cc: 12c110
ret # cf: 0df0
.literal_position # d4: 00000000
# d8: 00000000
# dc: 00000000
# Function @ .irom0.text+0xe0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.balign 4
.Lfunc001: addi sp, sp, -16 /* (local0) */ # e0: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e3: 0901
s32i a14, sp, 12 /* a14 -> [(local3)] */ # e5: e931
s32i a12, sp, 4 /* a12 -> [(local1)] */ # e7: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # e9: d921
mov a12, a2 /* arg0 */ # eb: cd02
l32i a13, a2, 204 /* [arg0+0xcc] */ # ed: d22233
movi a14, 0 /* 0x00000000 */ # f0: 0c0e
bnez a13, .Lbr008 # f2: cc1d
j .Lbr012 # f4: 061000
.Lbr008: l32i a2, a13, 28 /* [[arg0+0xcc]+0x1c] */ # f7: 287d
s32i a2, a12, 204 /* [[arg0+0xcc]+0x1c] -> [arg0+0xcc] */ # f9: 226c33
call0 chm_check_same_channel # fc: 01f7ffc0
# 100: 0000
beqz a2, .Lbr009 # 102: 8c92
mov a2, a13 /* [arg0+0xcc] */ # 104: 2d0d
call0 ppTxPkt # 106: 01f5ffc0
# 10a: 0000
j .Lbr010 # 10c: c60300
.Lbr009: movi a5, g_ic # 10f: 51f1ff
addi a4, a13, 28 /* [arg0+0xcc]+0x1c */ # 112: 42cd1c
l32i a6, a5, 0x1c4 /* [g_ic+0x1c4] */ # 115: 622571
s32i a14, a13, 28 /* 0x00000000 -> [[arg0+0xcc]+0x1c] */ # 118: e97d
s32i a13, a6, 0 /* [arg0+0xcc] -> [[g_ic+0x1c4]] */ # 11a: d906
s32i a4, a5, 0x1c4 /* [arg0+0xcc]+0x1c -> [g_ic+0x1c4] */ # 11c: 426571
.Lbr010: l32i a7, a12, 192 /* [arg0+0xc0] */ # 11f: 722c30
l32i a13, a12, 204 /* [arg0+0xcc] */ # 122: d22c33
addi a7, a7, -1 /* [arg0+0xc0]-0x1 */ # 125: 0b77
s32i a7, a12, 192 /* [arg0+0xc0]-0x1 -> [arg0+0xc0] */ # 127: 726c30
beqz a13, .Lbr011 # 12a: 8c1d
j .Lbr008 # 12c: c6f1ff
.Lbr011: s32i a14, a12, 208 /* 0x00000000 -> [arg0+0xd0] */ # 12f: e26c34
s32i a14, a12, 204 /* 0x00000000 -> [arg0+0xcc] */ # 132: e26c33
s32i a14, a12, 212 /* 0x00000000 -> [arg0+0xd4] */ # 135: e26c35
.Lbr012: l32i a0, sp, 0 /* [(local0)] */ # 138: 0801
s32i a14, a12, 192 /* 0x00000000 -> [arg0+0xc0] */ # 13a: e26c30
l32i a13, sp, 8 /* [(local2)] */ # 13d: d821
l32i a12, sp, 4 /* [(local1)] */ # 13f: c811
l32i a14, sp, 12 /* [(local3)] */ # 141: e831
addi sp, sp, 16 /* (top of frame) */ # 143: 12c110
ret # 146: 0df0
# Function @ .irom0.text+0x148
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global ieee80211_node_pwrsave
.type ieee80211_node_pwrsave, @function
ieee80211_node_pwrsave:
addi sp, sp, -16 /* (local0) */ # 148: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 14b: 0911
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 14d: 2901
l32i a0, a2, 8 /* [arg0+0x8] */ # 14f: 0822
beqz a3, .Lbr013 # 151: 8c83
movi a3, 16 /* 0x00000010 */ # 153: 1c03
or a3, a0, a3 # 155: 303020
s32i a3, a2, 8 /* a3 -> [arg0+0x8] */ # 158: 3922
j .Lbr014 # 15a: c60500
.Lbr013: movi a3, 0 /* 0x00000000 */ # 15d: 0c03
movi a4, -17 /* 0xffffffef */ # 15f: 6cf4
and a4, a0, a4 # 161: 404010
s32i a4, a2, 8 /* a4 -> [arg0+0x8] */ # 164: 4922
call0 ieee80211_set_tim # 166: 050000
l32i a0, sp, 0 /* [(local0)] */ # 169: 0801
l32i a5, a0, 192 /* [[(local0)]+0xc0] */ # 16b: 522030
beqz a5, .Lbr014 # 16e: 8c35
mov a2, a0 /* [(local0)] */ # 170: 2d00
call0 .Lfunc001 # 172: c5f6ff
.Lbr014: l32i a0, sp, 4 /* [(local1)] */ # 175: 0811
addi sp, sp, 16 /* (top of frame) */ # 177: 12c110
ret # 17a: 0df0

View file

@ -0,0 +1,236 @@
.section .data, "aw", @progbits
.global ieee80211_addr_bcast
.type ieee80211_addr_bcast, @object
ieee80211_addr_bcast:
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000400
# 8: 00000000
# Function @ .irom0.text+0xc
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global ieee80211_proto_attach
.type ieee80211_proto_attach, @function
ieee80211_proto_attach:
movi a3, 2 /* 0x00000002 */ # c: 0c23
movi a4, 0x00040000 # e: 41fdff
movi a6, 1 /* 0x00000001 */ # 11: 0c16
mov a5, a2 /* arg0 */ # 13: 5d02
addi sp, sp, -16 /* (local0) */ # 15: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18: 0901
movi a2, ieee80211_tx_mgt_cb # 1a: 21f9ff
l32i a0, a5, 28 /* [arg0+0x1c] */ # 1d: 0875
s32i a6, a5, 12 /* 0x00000001 -> [arg0+0xc] */ # 1f: 6935
or a0, a0, a4 # 21: 400020
s32i a0, a5, 28 /* a0 -> [arg0+0x1c] */ # 24: 0975
call0 ppRegisterTxCallback # 26: 01f8ffc0
# 2a: 0000
l32i a0, sp, 0 /* [(local0)] */ # 2c: 0801
addi sp, sp, 16 /* (top of frame) */ # 2e: 12c110
ret # 31: 0df0
.balign 4
# Function @ .irom0.text+0x34
.balign 4
.global ieee80211_set_shortslottime
.type ieee80211_set_shortslottime, @function
ieee80211_set_shortslottime:
movi a6, 1024 /* 0x00000400 */ # 34: 62a400
l32i a5, a2, 28 /* [arg0+0x1c] */ # 37: 5872
movi a4, -1025 /* 0xfffffbff */ # 39: 42abff
and a4, a5, a4 # 3c: 404510
or a5, a5, a6 # 3f: 605520
moveqz a5, a4, a3 # 42: 305483
s32i a5, a2, 28 /* a5 -> [arg0+0x1c] */ # 45: 5972
ret /* arg0 */ # 47: 0df0
.literal_position # 4c: 00000000
# Function @ .irom0.text+0x50
.balign 4
.global ieee80211_iserp_rateset
.type ieee80211_iserp_rateset, @function
ieee80211_iserp_rateset:
l8ui a8, a2, 0 /* [arg0] */ # 50: 820200
bltui a8, 7, .Lbr003 # 53: b6781e
movi a9, .Ldata001 # 56: 91fdff
movi a10, 0 /* 0x00000000 */ # 59: 0c0a
.Lbr001: blti a8, 1, .Lbr003 # 5b: a61816
movi a5, 0 /* 0x00000000 */ # 5e: 0c05
l32i a6, a9, 0 # 60: 6809
.Lbr002: add a7, a5, a2 # 62: 2a75
l8ui a7, a7, 1 # 64: 720701
extui a7, a7, 0, 7 # 67: 707064
beq a6, a7, .Lbr004 # 6a: 77160b
blt a6, a7, .Lbr003 # 6d: 772604
addi a5, a5, 1 # 70: 1b55
bne a5, a8, .Lbr002 # 72: 8795ec
.Lbr003: movi a2, 0 /* 0x00000000 */ # 75: 0c02
ret /* 0x00000000 */ # 77: 0df0
.Lbr004: addi a9, a9, 4 # 79: 4b99
addi a10, a10, 1 # 7b: 1baa
bnei a10, 7, .Lbr001 # 7d: 667ada
movi a2, 1 /* 0x00000001 */ # 80: 0c12
ret /* 0x00000001 */ # 82: 0df0
.literal_position # 84: 20000000
# Function @ .irom0.text+0x88
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.Lfunc001: addi sp, sp, -16 /* (local0) */ # 88: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 8b: 0901
l8ui a0, a2, 0 /* [arg0] */ # 8d: 020200
beqz a0, .Lbr009 # 90: bcf0
movi a9, 0 /* 0x00000000 */ # 92: 0c09
movi a11, 128 /* 0x00000080 */ # 94: b2a080
movi a8, .Ldata002 # 97: 81fbff
slli a10, a3, 4 # 9a: c0a311
add a8, a8, a10 # 9d: aa88
l8ui a7, a8, 0 # 9f: 720800
.Lbr005: bnez a4, .Lbr006 # a2: cc94
add a3, a2, a9 # a4: 9a32
l8ui a0, a3, 1 # a6: 020301
extui a0, a0, 0, 7 # a9: 000064
s8i a0, a3, 1 # ac: 024301
.Lbr006: beqz a7, .Lbr008 # af: 9c57
movi a0, 0 /* 0x00000000 */ # b1: 0c00
add a10, a2, a9 # b3: 9aa2
l8ui a3, a10, 1 # b5: 320a01
.Lbr007: add a5, a8, a0 # b8: 0a58
l8ui a5, a5, 1 # ba: 520501
addi a0, a0, 1 # bd: 1b00
bne a5, a3, .Lbr010 # bf: 379517
or a6, a3, a11 # c2: b06320
s8i a6, a10, 1 # c5: 624a01
.Lbr008: l8ui a10, a2, 0 /* [arg0] */ # c8: a20200
addi a9, a9, 1 # cb: 1b99
extui a9, a9, 0, 8 # cd: 909074
bltu a9, a10, .Lbr005 # d0: a739ce
.Lbr009: l32i a0, sp, 0 /* [(local0)] */ # d3: 0801
addi sp, sp, 16 /* (top of frame) */ # d5: 12c110
ret /* arg0 */ # d8: 0df0
.Lbr010: extui a0, a0, 0, 8 # da: 000074
bne a7, a0, .Lbr007 # dd: 0797d7
j .Lbr008 # e0: 06f9ff
.balign 4
# Function @ .irom0.text+0xe4
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global ieee80211_setbasicrates
.type ieee80211_setbasicrates, @function
ieee80211_setbasicrates:
movi a4, 0 /* 0x00000000 */ # e4: 0c04
addi sp, sp, -16 /* (local0) */ # e6: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e9: 0901
call0 .Lfunc001 # eb: c5f9ff
l32i a0, sp, 0 /* [(local0)] */ # ee: 0801
addi sp, sp, 16 /* (top of frame) */ # f0: 12c110
ret # f3: 0df0
.balign 4
# Function @ .irom0.text+0xf8
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global ieee80211_addbasicrates
.type ieee80211_addbasicrates, @function
ieee80211_addbasicrates:
movi a4, 1 /* 0x00000001 */ # f8: 0c14
addi sp, sp, -16 /* (local0) */ # fa: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # fd: 0901
call0 .Lfunc001 # ff: 85f8ff
l32i a0, sp, 0 /* [(local0)] */ # 102: 0801
addi sp, sp, 16 /* (top of frame) */ # 104: 12c110
ret # 107: 0df0
.balign 4
# Function @ .irom0.text+0x10c
.balign 4
.global ieee80211_wme_initparams
.type ieee80211_wme_initparams, @function
ieee80211_wme_initparams:
ret /* arg0 */ # 10c: 0df0
.balign 4
# Function @ .irom0.text+0x110
.balign 4
.global ieee80211_wme_updateparams
.type ieee80211_wme_updateparams, @function
ieee80211_wme_updateparams:
ret /* arg0 */ # 110: 0df0
.literal_position # 114: 00000000
# 118: 00000000
# 11c: 00000000
# 120: 00000000
# 124: 00000000
# Function @ .irom0.text+0x128
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global ieee80211_mlme_connect_bss
.type ieee80211_mlme_connect_bss, @function
ieee80211_mlme_connect_bss:
mov a3, a2 /* arg0 */ # 128: 3d02
addi sp, sp, -16 /* (local0) */ # 12a: 12c1f0
s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 12d: 5911
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 12f: 0921
movi a2, g_ic # 131: 21f8ff
s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 134: 4901
l32i a2, a2, 16 /* [g_ic+0x10] */ # 136: 2842
movi a4, 6 /* 0x00000006 */ # 138: 0c64
s32i a3, a2, 136 /* arg0 -> [[g_ic+0x10]+0x88] */ # 13a: 326222
addi a2, a2, 64 /* [g_ic+0x10]+0x40 */ # 13d: 22c240
call0 memcpy # 140: 01f7ffc0
# 144: 0000
l32i a3, sp, 4 /* [(local1)] */ # 146: 3811
movi a0, g_ic # 148: 01f4ff
beqz a3, .Lbr011 # 14b: 8ce3
movi a3, 2 /* 0x00000002 */ # 14d: 0c23
movi a4, 176 /* 0x000000b0 */ # 14f: 42a0b0
mov a2, a0 /* g_ic */ # 152: 2d00
call0 ieee80211_sta_new_state # 154: 01f3ffc0
# 158: 0000
j .Lbr012 # 15a: 860400
.Lbr011: movi a3, 3 /* 0x00000003 */ # 15d: 0c33
mov a2, a0 /* g_ic */ # 15f: 2d00
l32i a6, sp, 0 /* [(local0)] */ # 161: 6801
movi a5, 32 /* 0x00000020 */ # 163: 2c05
movi a4, 0 /* 0x00000000 */ # 165: 0c04
movnez a4, a5, a6 # 167: 604593
call0 ieee80211_sta_new_state # 16a: 01eeffc0
# 16e: 0000
.Lbr012: l32i a0, sp, 8 /* [(local2)] */ # 170: 0821
addi sp, sp, 16 /* (top of frame) */ # 172: 12c110
ret # 175: 0df0
.section .rodata, "a", @progbits
.Ldata001: .byte 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x0b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00
.byte 0x0c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00
.byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.Ldata002: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x02, 0x04, 0x0b, 0x16, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

View file

@ -0,0 +1,497 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.balign 4
.global chm_get_current_channel
.type chm_get_current_channel, @function
chm_get_current_channel:
movi a2, .Ldata001 # 4: 21ffff
l32i a2, a2, 60 /* [.Ldata009] */ # 7: 28f2
ret /* [.Ldata009] */ # 9: 0df0
.section .bss, "aw", @nobits
.Ldata001: .word 0x00000000 # 0: 00000000
.Ldata002: .word 0x00000000 # 4: 00000000
.Ldata003: .word 0x00000000 # 8: 00000000
.Ldata004: .word 0x00000000 # c: 00000000
.Ldata005: .word 0x00000000 # 10: 00000000
.Ldata006: .word 0x00000000 # 14: 00000000
.Ldata007: .word 0x00000000 # 18: 00000000
.Ldata008: .word 0x00000000 # 1c: 00000000
.Label001: .space 28
.Ldata009: .word 0x00000000 # 3c: 00000000
.Ldata010: .byte 0x00
.Ldata011: .byte 0x00
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00feef3f
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# 14: 20000000
# 18: 48020000
# 1c: 00000000
# 20: 00000000
# 24: 00000000
# 28: 00000000
# Function @ .irom0.text+0x2c
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.balign 4
.global chm_init
.type chm_init, @function
chm_init: movi a4, -32 /* 0xffffffe0 */ # 2c: 6c04
movi a5, NMIIrqIsOn # 2e: 51f7ff
movi a3, g_ic+0x180 # 31: 31f4ff
movi a6, .Ldata001 # 34: 61f5ff
addi sp, sp, -32 /* (local0) */ # 37: 12c1e0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 3a: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 3c: d921
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3e: 0901
movi a13, 0x3feffe00 # 40: d1f0ff
movi a0, 0 /* 0x00000000 */ # 43: 0c00
s32i a2, a6, 0 /* arg0 -> [.Ldata001] */ # 45: 2906
mov a12, a2 /* arg0 */ # 47: cd02
l8ui a6, a3, 96 /* [g_ic+0x1e0] */ # 49: 620360
l8ui a2, a5, 0 /* [NMIIrqIsOn] */ # 4c: 220500
addmi a3, a3, 256 /* g_ic+0x280 */ # 4f: 32d301
l8ui a3, a3, 141 /* [g_ic+0x30d] */ # 52: 32038d
addi a6, a6, -1 /* [g_ic+0x1e0]-0x1 */ # 55: 0b66
addi a3, a3, -1 /* [g_ic+0x30d]-0x1 */ # 57: 0b33
extui a3, a3, 0, 8 # 59: 303074
movnez a0, a3, a6 # 5c: 600393
s32i a0, sp, 16 /* a0 -> [(local4)] */ # 5f: 0941
bnez a2, .Lbr002 # 61: ec32
call0 vPortEnterCritical # 63: 01eeffc0
# 67: 0000
movi a4, -32 /* 0xffffffe0 */ # 69: 6c04
.Lbr001: memw # 6b: c02000
l32i a9, a13, 0x200 /* [0x3ff00000] */ # 6e: 922d80
and a9, a9, a4 # 71: 409910
memw # 74: c02000
s32i a9, a13, 0x200 /* a9 -> [0x3ff00000] */ # 77: 926d80
memw # 7a: c02000
l32i a8, a13, 0x200 /* [0x3ff00000] */ # 7d: 822d80
bbsi a8, 0, .Lbr001 # 80: 07e8e7
l32i a0, sp, 16 /* [(local4)] */ # 83: 0841
movi a5, NMIIrqIsOn # 85: 51e2ff
.Lbr002: movi a2, 132 /* 0x00000084 */ # 88: 22a084
addx2 a0, a0, a0 # 8b: 000090
addx4 a0, a0, a12 # 8e: c000a0
add a0, a0, a2 # 91: 2a00
s32i a0, a12, 0x14c /* a0 -> [arg0+0x14c] */ # 93: 026c53
l8ui a10, a5, 0 /* [NMIIrqIsOn] */ # 96: a20500
s32i a0, sp, 12 /* a0 -> [(local3)] */ # 99: 0931
bnez a10, .Lbr003 # 9b: dcaa
memw # 9d: c02000
l32i a2, a13, 0x200 /* [0x3ff00000] */ # a0: 222d80
movi a3, 1 /* 0x00000001 */ # a3: 0c13
and a2, a2, a4 # a5: 402210
or a2, a2, a3 # a8: 302220
memw # ab: c02000
s32i a2, a13, 0x200 /* a2 -> [0x3ff00000] */ # ae: 226d80
call0 vPortExitCritical # b1: 01dbffc0
# b5: 0000
l32i a0, sp, 12 /* [(local3)] */ # b7: 0831
.Lbr003: mov a2, a0 # b9: 2d00
call0 chm_set_current_channel # bb: 01daffc0
# bf: 0000
movi a2, .Label001 # c1: 21d4ff
movi a3, .Lfunc002 # c4: 31d5ff
movi a4, 0 /* 0x00000000 */ # c7: 0c04
call0 os_timer_setfn # c9: 01d7ffc0
# cd: 0000
l32i a12, sp, 4 /* [(local1)] */ # cf: c811
l32i a13, sp, 8 /* [(local2)] */ # d1: d821
l32i a0, sp, 0 /* [(local0)] */ # d3: 0801
addi sp, sp, 32 /* (top of frame) */ # d5: 12c120
ret # d8: 0df0
.literal_position # dc: 00000000
# e0: 00000000
# Function @ .irom0.text+0xe4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.balign 4
.global chm_acquire_lock
.type chm_acquire_lock, @function
chm_acquire_lock:
addi sp, sp, -16 /* (local0) */ # e4: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # e7: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e9: 0901
mov a12, a2 /* arg0 */ # eb: cd02
movi a0, .Ldata001 # ed: 01fbff
mov a2, a4 /* arg2 */ # f0: 2d04
l8ui a4, a0, 64 /* [.Ldata010] */ # f2: 420040
l8ui a5, a0, 65 /* [.Ldata011] */ # f5: 520041
beqz a4, .Lbr005 # f8: 9c44
s32i a2, sp, 12 /* arg2 -> [(local3)] */ # fa: 2931
s32i a3, sp, 8 /* arg1 -> [(local2)] */ # fc: 3921
bgeu a5, a12, .Lbr004 # fe: c7b504
movi a2, 3 /* 0x00000003 */ # 101: 0c32
j .Lbr006 # 103: c60500
.Lbr004: call0 chm_cancel_op # 106: 050000
l32i a2, sp, 12 /* [(local3)] */ # 109: 2831
movi a0, .Ldata001 # 10b: 01f5ff
l32i a3, sp, 8 /* [(local2)] */ # 10e: 3821
.Lbr005: s8i a12, a0, 65 /* arg0 -> [.Ldata011] */ # 110: c24041
s32i a3, a0, 24 /* a3 -> [.Ldata007] */ # 113: 3960
s32i a2, a0, 28 /* a2 -> [.Ldata008] */ # 115: 2970
movi a6, 1 /* 0x00000001 */ # 117: 0c16
movi a2, 0 /* 0x00000000 */ # 119: 0c02
s8i a6, a0, 64 /* 0x01 -> [.Ldata010] */ # 11b: 624040
.Lbr006: l32i a12, sp, 4 /* [(local1)] */ # 11e: c811
l32i a0, sp, 0 /* [(local0)] */ # 120: 0801
addi sp, sp, 16 /* (top of frame) */ # 122: 12c110
ret # 125: 0df0
.literal_position # 128: 00000000
# Function @ .irom0.text+0x12c
.balign 4
.global chm_release_lock
.type chm_release_lock, @function
chm_release_lock:
movi a3, .Ldata001 # 12c: 31ffff
movi a2, 0 /* 0x00000000 */ # 12f: 0c02
s32i a2, a3, 28 /* 0x00000000 -> [.Ldata008] */ # 131: 2973
s32i a2, a3, 24 /* 0x00000000 -> [.Ldata007] */ # 133: 2963
s8i a2, a3, 64 /* 0x00 -> [.Ldata010] */ # 135: 224340
s8i a2, a3, 65 /* 0x00 -> [.Ldata011] */ # 138: 224341
ret /* 0x00000000 */ # 13b: 0df0
.literal_position # 140: 00000000
# 144: 00000000
# Function @ .irom0.text+0x148
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global chm_start_op
.type chm_start_op, @function
chm_start_op:
addi sp, sp, -16 /* (local0) */ # 148: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 14b: 0901
movi a0, .Ldata001 # 14d: 01fcff
l32i a7, a0, 4 /* [.Ldata002] */ # 150: 7810
beqz a7, .Lbr010 # 152: 8cf7
movi a2, 3 /* 0x00000003 */ # 154: 0c32
j .Lbr009 # 156: 060100
.Lbr007: call0 .Lfunc001 # 159: 450400
.Lbr008: movi a2, 0 /* 0x00000000 */ # 15c: 0c02
.Lbr009: l32i a0, sp, 0 /* [(local0)] */ # 15e: 0801
addi sp, sp, 16 /* (top of frame) */ # 160: 12c110
ret # 163: 0df0
.Lbr010: s32i a2, a0, 4 /* arg0 -> [.Ldata002] */ # 165: 2910
s32i a4, a0, 16 /* arg2 -> [.Ldata005] */ # 167: 4940
movi a8, g_ic # 169: 81f6ff
s32i a5, a0, 20 /* arg3 -> [.Ldata006] */ # 16c: 5950
l32i a8, a8, 0 /* [g_ic] */ # 16e: 8808
s32i a3, a0, 8 /* arg1 -> [.Ldata003] */ # 170: 3920
l32i a8, a8, 0 /* [[g_ic]] */ # 172: 8808
s32i a6, a0, 12 /* arg4 -> [.Ldata004] */ # 174: 6930
bbci a8, 1, .Lbr007 # 176: 1768df
call0 .Lfunc001 # 179: 450200
j .Lbr008 # 17c: 06f7ff
.literal_position # 180: 00000000
# 184: 04000000
# 188: 20000000
# 18c: 00000000
# 190: 00000000
# 194: 00000000
# 198: 00000000
# 19c: 00000000
# Function @ .irom0.text+0x1a0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.balign 4
.Lfunc001: addi sp, sp, -16 /* (local0) */ # 1a0: 12c1f0
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1a3: d931
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1a5: c921
movi a13, .Ldata001 # 1a7: d1f6ff
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1aa: 0911
l32i a12, a13, 16 /* [.Ldata005] */ # 1ac: c84d
l32i a0, a13, 12 /* [.Ldata004] */ # 1ae: 083d
s32i a0, sp, 0 /* [.Ldata004] -> [(local0)] */ # 1b0: 0901
call0 chm_get_current_channel # 1b2: 01f6ffc0
# 1b6: 0000
mov a3, a2 # 1b8: 3d02
l32i a2, a13, 4 /* [.Ldata002] */ # 1ba: 281d
l16ui a3, a3, 4 # 1bc: 321302
l16ui a4, a2, 4 /* [[.Ldata002]+0x4] */ # 1bf: 421202
beq a3, a4, .Lbr011 # 1c2: 471305
call0 chm_set_current_channel # 1c5: 01f2ffc0
# 1c9: 0000
.Lbr011: beqz a12, .Lbr012 # 1cb: 8c5c
l32i a2, sp, 0 /* [(local0)] */ # 1cd: 2801
movi a3, 0 /* 0x00000000 */ # 1cf: 0c03
callx0 a12 /* [.Ldata005] */ # 1d1: c00c00
.Lbr012: l32i a4, a13, 8 /* [.Ldata003] */ # 1d4: 482d
bnez a4, .Lbr013 # 1d6: ccc4
movi a2, .Ldata002 # 1d8: 21ebff
movi a3, 20 /* 0x00000014 */ # 1db: 1c43
call0 bzero # 1dd: 01edffc0
# 1e1: 0000
j .Lbr014 # 1e3: 860500
.Lbr013: movi a12, .Label001 # 1e6: c1e8ff
mov a2, a12 /* .Label001 */ # 1e9: 2d0c
call0 os_timer_disarm # 1eb: 01ebffc0
# 1ef: 0000
mov a2, a12 /* .Label001 */ # 1f1: 2d0c
l32i a3, a13, 8 /* [.Ldata003] */ # 1f3: 382d
movi a4, 0 /* 0x00000000 */ # 1f5: 0c04
call0 os_timer_arm # 1f7: 01e9ffc0
# 1fb: 0000
.Lbr014: l32i a12, sp, 8 /* [(local2)] */ # 1fd: c821
l32i a13, sp, 12 /* [(local3)] */ # 1ff: d831
l32i a0, sp, 4 /* [(local1)] */ # 201: 0811
addi sp, sp, 16 /* (top of frame) */ # 203: 12c110
ret # 206: 0df0
.literal_position # 208: 00000000
# 20c: 00000000
# 210: 00000000
# Function @ .irom0.text+0x214
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global chm_end_op
.type chm_end_op, @function
chm_end_op: movi a3, -4 /* 0xfffffffc */ # 214: 7cc3
addi sp, sp, -16 /* (local0) */ # 216: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 219: 0911
movi a0, .Ldata001 # 21b: 01fbff
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 21e: 2901
beq a0, a3, .Lbr015 # 220: 37101d
mov a2, a0 /* .Ldata001 */ # 223: 2d00
l32i a3, a2, 20 /* [.Ldata006] */ # 225: 3852
s32i a3, sp, 8 /* [.Ldata006] -> [(local2)] */ # 227: 3921
addi a2, a2, 4 /* .Ldata002 */ # 229: 4b22
movi a3, 20 /* 0x00000014 */ # 22b: 1c43
call0 bzero # 22d: 01f8ffc0
# 231: 0000
l32i a5, sp, 8 /* [(local2)] */ # 233: 5821
beqz a5, .Lbr015 # 235: 8c85
movi a2, .Ldata001 # 237: 21f5ff
l32i a3, sp, 0 /* [(local0)] */ # 23a: 3801
l32i a2, a2, 12 /* [.Ldata004] */ # 23c: 2832
callx0 a5 /* [(local2)] */ # 23e: c00500
.Lbr015: l32i a0, sp, 4 /* [(local1)] */ # 241: 0811
addi sp, sp, 16 /* (top of frame) */ # 243: 12c110
ret # 246: 0df0
# Function @ .irom0.text+0x248
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.Lfunc002: movi a2, 0 /* 0x00000000 */ # 248: 0c02
addi sp, sp, -16 /* (local0) */ # 24a: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 24d: 0901
call0 chm_end_op # 24f: 050000
l32i a0, sp, 0 /* [(local0)] */ # 252: 0801
addi sp, sp, 16 /* (top of frame) */ # 254: 12c110
ret # 257: 0df0
.literal_position # 25c: 00000000
# 260: 00000000
# 264: 00000000
# Function @ .irom0.text+0x268
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global chm_cancel_op
.type chm_cancel_op, @function
chm_cancel_op:
addi sp, sp, -16 /* (local0) */ # 268: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 26b: 0901
movi a0, .Ldata001 # 26d: 01fbff
l32i a2, a0, 4 /* [.Ldata002] */ # 270: 2810
beqz a2, .Lbr016 # 272: 9c12
mov a2, a0 /* .Ldata001 */ # 274: 2d00
addi a2, a2, 32 /* .Label001 */ # 276: 22c220
call0 os_timer_disarm # 279: 01faffc0
# 27d: 0000
movi a2, 4 /* 0x00000004 */ # 27f: 0c42
call0 chm_end_op # 281: 050000
movi a0, .Ldata001 # 284: 01f7ff
.Lbr016: l32i a5, a0, 24 /* [.Ldata007] */ # 287: 5860
beqz a5, .Lbr017 # 289: 8c55
movi a3, 4 /* 0x00000004 */ # 28b: 0c43
l32i a2, a0, 28 /* [.Ldata008] */ # 28d: 2870
callx0 a5 /* [.Ldata007] */ # 28f: c00500
.Lbr017: l32i a0, sp, 0 /* [(local0)] */ # 292: 0801
addi sp, sp, 16 /* (top of frame) */ # 294: 12c110
ret # 297: 0df0
.literal_position # 29c: 00000000
# 2a0: 00000000
# 2a4: 00000000
# Function @ .irom0.text+0x2a8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global chm_return_home_channel
.type chm_return_home_channel, @function
chm_return_home_channel:
addi sp, sp, -16 /* (local0) */ # 2a8: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2ab: c911
movi a12, g_ic # 2ad: c1fbff
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2b0: 0901
l32i a12, a12, 0x14c /* [g_ic+0x14c] */ # 2b2: c22c53
call0 chm_get_current_channel # 2b5: 01faffc0
# 2b9: 0000
l16ui a0, a2, 4 # 2bb: 021202
l16ui a2, a12, 4 /* [[g_ic+0x14c]+0x4] */ # 2be: 221c02
beq a0, a2, .Lbr018 # 2c1: 271007
mov a2, a12 /* [g_ic+0x14c] */ # 2c4: 2d0c
call0 chm_set_current_channel # 2c6: 01f7ffc0
# 2ca: 0000
.Lbr018: l32i a12, sp, 4 /* [(local1)] */ # 2cc: c811
l32i a0, sp, 0 /* [(local0)] */ # 2ce: 0801
addi sp, sp, 16 /* (top of frame) */ # 2d0: 12c110
ret # 2d3: 0df0
.literal_position # 2d8: 00000000
# 2dc: 00feef3f
# 2e0: 00000000
# 2e4: 00000000
# 2e8: 00000000
# 2ec: 00000000
# 2f0: 00000000
# Function @ .irom0.text+0x2f4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global chm_set_current_channel
.type chm_set_current_channel, @function
chm_set_current_channel:
movi a3, 1 /* 0x00000001 */ # 2f4: 0c13
movi a4, 0 /* 0x00000000 */ # 2f6: 0c04
addi sp, sp, -16 /* (local0) */ # 2f8: 12c1f0
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 2fb: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2fd: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2ff: 0901
mov a12, a2 /* arg0 */ # 301: cd02
l16ui a2, a2, 4 /* [arg0+0x4] */ # 303: 221202
call0 phy_change_channel # 306: 01f8ffc0
# 30a: 0000
movi a2, NMIIrqIsOn # 30c: 21f3ff
movi a0, -32 /* 0xffffffe0 */ # 30f: 6c00
l8ui a2, a2, 0 /* [NMIIrqIsOn] */ # 311: 220200
movi a13, 0x3feffe00 # 314: d1f2ff
bnez a2, .Lbr020 # 317: ec42
call0 vPortEnterCritical # 319: 01f4ffc0
# 31d: 0000
movi a0, -32 /* 0xffffffe0 */ # 31f: 6c00
.Lbr019: memw # 321: c02000
l32i a5, a13, 0x200 /* [0x3ff00000] */ # 324: 522d80
and a5, a5, a0 # 327: 005510
memw # 32a: c02000
s32i a5, a13, 0x200 /* a5 -> [0x3ff00000] */ # 32d: 526d80
memw # 330: c02000
l32i a4, a13, 0x200 /* [0x3ff00000] */ # 333: 422d80
bbsi a4, 0, .Lbr019 # 336: 07e4e7
movi a2, NMIIrqIsOn # 339: 21e9ff
l8ui a2, a2, 0 /* [NMIIrqIsOn] */ # 33c: 220200
.Lbr020: movi a3, .Ldata001 # 33f: 31e9ff
s32i a12, a3, 60 /* arg0 -> [.Ldata009] */ # 342: c9f3
bnez a2, .Lbr021 # 344: dc82
memw # 346: c02000
l32i a4, a13, 0x200 /* [0x3ff00000] */ # 349: 422d80
movi a5, 1 /* 0x00000001 */ # 34c: 0c15
and a4, a4, a0 # 34e: 004410
or a4, a4, a5 # 351: 504420
memw # 354: c02000
s32i a4, a13, 0x200 /* a4 -> [0x3ff00000] */ # 357: 426d80
call0 vPortExitCritical # 35a: 01e5ffc0
# 35e: 0000
.Lbr021: l32i a12, sp, 4 /* [(local1)] */ # 360: c811
l32i a13, sp, 8 /* [(local2)] */ # 362: d821
l32i a0, sp, 0 /* [(local0)] */ # 364: 0801
addi sp, sp, 16 /* (top of frame) */ # 366: 12c110
ret # 369: 0df0
.literal_position # 36c: 00000000
# Function @ .irom0.text+0x370
.balign 4
.global chm_freq2index
.type chm_freq2index, @function
chm_freq2index:
movi a5, 0 /* 0x00000000 */ # 370: 0c05
movi a6, .Ldata001 # 372: 61feff
movi a7, 14 /* 0x0000000e */ # 375: 0ce7
l32i a6, a6, 0 /* [.Ldata001] */ # 377: 6806
.Lbr022: addx2 a8, a5, a5 # 379: 508590
addx4 a8, a8, a6 # 37c: 6088a0
l16ui a8, a8, 136 # 37f: 821844
bne a8, a2, .Lbr023 # 382: 279803
mov a2, a5 # 385: 2d05
ret # 387: 0df0
.Lbr023: addi a5, a5, 1 # 389: 1b55
extui a5, a5, 0, 8 # 38b: 505074
bne a5, a7, .Lbr022 # 38e: 7795e7
movi a2, 255 /* 0x000000ff */ # 391: 22a0ff
ret /* 0x000000ff */ # 394: 0df0
.literal_position # 398: 00000000
# 39c: 00000000
# 3a0: 00000000
# 3a4: 00000000
# Function @ .irom0.text+0x3a8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global chm_check_same_channel
.type chm_check_same_channel, @function
chm_check_same_channel:
movi a2, g_ic # 3a8: 21fcff
addi sp, sp, -16 /* (local0) */ # 3ab: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3ae: 0911
l32i a2, a2, 0x14c /* [g_ic+0x14c] */ # 3b0: 222253
call0 ieee80211_chan2ieee # 3b3: 01faffc0
# 3b7: 0000
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 3b9: 2901
call0 chm_get_current_channel # 3bb: 01f9ffc0
# 3bf: 0000
call0 ieee80211_chan2ieee # 3c1: 01f8ffc0
# 3c5: 0000
movi a3, 0 /* 0x00000000 */ # 3c7: 0c03
l32i a4, sp, 0 /* [(local0)] */ # 3c9: 4801
l32i a0, sp, 4 /* [(local1)] */ # 3cb: 0811
sub a4, a4, a2 # 3cd: 2044c0
addi sp, sp, 16 /* (top of frame) */ # 3d0: 12c110
movi a2, 1 /* 0x00000001 */ # 3d3: 0c12
movnez a2, a3, a4 # 3d5: 402393
ret # 3d8: 0df0

File diff suppressed because it is too large Load diff

View file

Binary file not shown.

251
binary_sdk/libphy/phy.S Normal file
View file

@ -0,0 +1,251 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .text+0x8
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_register_phy_ops
.type sdk_register_phy_ops, @function
sdk_register_phy_ops:
movi a3, 0 /* 0x00000000 */ # 8: 0c03
addi sp, sp, -16 /* (local0) */ # a: 12c1f0
mov a5, a2 /* arg0 */ # d: 5d02
s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901
movi a0, .Ldata001 # 11: 01fbff
movi a2, 1 /* 0x00000001 */ # 14: 0c12
s32i a5, a0, 0 /* arg0 -> [.Ldata001] */ # 16: 5900
call0 sdk_phy_init # 18: 01fbffc0
# 1c: 0000
l32i a0, sp, 0 /* [(local0)] */ # 1e: 0801
addi sp, sp, 16 /* (top of frame) */ # 20: 12c110
ret # 23: 0df0
.literal_position # 28: 00000000
# Function @ .text+0x2c
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_phy_change_channel
.type sdk_phy_change_channel, @function
sdk_phy_change_channel:
addi sp, sp, -16 /* (local0) */ # 2c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2f: 0901
movi a0, .Ldata001 # 31: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 34: 0800
l32i a0, a0, 4 /* [[.Ldata001]+0x4] */ # 36: 0810
callx0 a0 /* [[.Ldata001]+0x4] */ # 38: c00000
movi a2, 0 /* 0x00000000 */ # 3b: 0c02
l32i a0, sp, 0 /* [(local0)] */ # 3d: 0801
addi sp, sp, 16 /* (top of frame) */ # 3f: 12c110
ret /* 0x00000000 */ # 42: 0df0
.literal_position # 44: 000af23f
# Function @ .text+0x48
.balign 4
.global sdk_phy_get_mactime
.type sdk_phy_get_mactime, @function
sdk_phy_get_mactime:
movi a2, 0x3ff20a00 # 48: 21ffff
memw # 4b: c02000
l32i a2, a2, 0x200 /* [0x3ff20c00] */ # 4e: 222280
ret /* [0x3ff20c00] */ # 51: 0df0
.section .bss, "aw", @nobits
.Ldata001: .word 0x00000000 # 0: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_rf_init
.type sdk_rf_init, @function
sdk_rf_init:
addi sp, sp, -16 /* (local0) */ # 4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7: 0901
movi a0, .Ldata001 # 9: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # c: 0800
slli a4, a2, 24 # e: 804201
l32i a0, a0, 0 /* [[.Ldata001]] */ # 11: 0800
srai a2, a4, 24 # 13: 402831
callx0 a0 /* [[.Ldata001]] */ # 16: c00000
l32i a0, sp, 0 /* [(local0)] */ # 19: 0801
addi sp, sp, 16 /* (top of frame) */ # 1b: 12c110
ret # 1e: 0df0
.literal_position # 20: 00000000
# Function @ .irom0.text+0x24
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_bb_init
.type sdk_bb_init, @function
sdk_bb_init:
addi sp, sp, -16 /* (local0) */ # 24: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 27: 0901
movi a0, .Ldata001 # 29: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 2c: 0800
l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # 2e: 0860
callx0 a0 /* [[.Ldata001]+0x18] */ # 30: c00000
l32i a0, sp, 0 /* [(local0)] */ # 33: 0801
addi sp, sp, 16 /* (top of frame) */ # 35: 12c110
ret # 38: 0df0
.literal_position # 3c: 00000000
# 40: 00000000
# Function @ .irom0.text+0x44
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_phy_init
.type sdk_phy_init, @function
sdk_phy_init:
addi sp, sp, -16 /* (local0) */ # 44: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 47: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 49: 0901
mov a12, a3 /* arg1 */ # 4b: cd03
movi a0, .Ldata001 # 4d: 01fbff
slli a3, a2, 24 # 50: 803201
l32i a0, a0, 0 /* [.Ldata001] */ # 53: 0800
srai a2, a3, 24 # 55: 302831
l32i a0, a0, 0 /* [[.Ldata001]] */ # 58: 0800
mov a3, a12 /* arg1 */ # 5a: 3d0c
callx0 a0 /* [[.Ldata001]] */ # 5c: c00000
movi a0, .Ldata001 # 5f: 01f8ff
l32i a0, a0, 0 /* [.Ldata001] */ # 62: 0800
l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # 64: 0860
mov a2, a12 /* arg1 */ # 66: 2d0c
callx0 a0 /* [[.Ldata001]+0x18] */ # 68: c00000
l32i a12, sp, 4 /* [(local1)] */ # 6b: c811
l32i a0, sp, 0 /* [(local0)] */ # 6d: 0801
addi sp, sp, 16 /* (top of frame) */ # 6f: 12c110
ret # 72: 0df0
.literal_position # 74: 00000000
# Function @ .irom0.text+0x78
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_RFChannelSel
.type sdk_RFChannelSel, @function
sdk_RFChannelSel:
addi sp, sp, -16 /* (local0) */ # 78: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7b: 0901
movi a0, .Ldata001 # 7d: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 80: 0800
slli a3, a2, 24 # 82: 803201
l32i a0, a0, 8 /* [[.Ldata001]+0x8] */ # 85: 0820
srai a2, a3, 24 # 87: 302831
callx0 a0 /* [[.Ldata001]+0x8] */ # 8a: c00000
l32i a0, sp, 0 /* [(local0)] */ # 8d: 0801
addi sp, sp, 16 /* (top of frame) */ # 8f: 12c110
ret # 92: 0df0
.literal_position # 94: 00000000
# Function @ .irom0.text+0x98
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_phy_delete_channel
.type sdk_phy_delete_channel, @function
sdk_phy_delete_channel:
addi sp, sp, -16 /* (local0) */ # 98: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9b: 0901
movi a0, .Ldata001 # 9d: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # a0: 0800
l32i a0, a0, 12 /* [[.Ldata001]+0xc] */ # a2: 0830
callx0 a0 /* [[.Ldata001]+0xc] */ # a4: c00000
l32i a0, sp, 0 /* [(local0)] */ # a7: 0801
addi sp, sp, 16 /* (top of frame) */ # a9: 12c110
ret # ac: 0df0
.literal_position # b0: 00000000
# Function @ .irom0.text+0xb4
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_phy_enable_agc
.type sdk_phy_enable_agc, @function
sdk_phy_enable_agc:
addi sp, sp, -16 /* (local0) */ # b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # b7: 0901
movi a0, .Ldata001 # b9: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # bc: 0800
l32i a0, a0, 16 /* [[.Ldata001]+0x10] */ # be: 0840
callx0 a0 /* [[.Ldata001]+0x10] */ # c0: c00000
l32i a0, sp, 0 /* [(local0)] */ # c3: 0801
addi sp, sp, 16 /* (top of frame) */ # c5: 12c110
ret # c8: 0df0
.literal_position # cc: 00000000
# Function @ .irom0.text+0xd0
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_phy_disable_agc
.type sdk_phy_disable_agc, @function
sdk_phy_disable_agc:
addi sp, sp, -16 /* (local0) */ # d0: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # d3: 0901
movi a0, .Ldata001 # d5: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # d8: 0800
l32i a0, a0, 20 /* [[.Ldata001]+0x14] */ # da: 0850
callx0 a0 /* [[.Ldata001]+0x14] */ # dc: c00000
l32i a0, sp, 0 /* [(local0)] */ # df: 0801
addi sp, sp, 16 /* (top of frame) */ # e1: 12c110
ret # e4: 0df0
.literal_position # e8: 00000000
# Function @ .irom0.text+0xec
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_phy_initialize_bb
.type sdk_phy_initialize_bb, @function
sdk_phy_initialize_bb:
addi sp, sp, -16 /* (local0) */ # ec: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # ef: 0901
movi a0, .Ldata001 # f1: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # f4: 0800
l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # f6: 0860
callx0 a0 /* [[.Ldata001]+0x18] */ # f8: c00000
l32i a0, sp, 0 /* [(local0)] */ # fb: 0801
addi sp, sp, 16 /* (top of frame) */ # fd: 12c110
ret # 100: 0df0
.literal_position # 104: 00000000
# Function @ .irom0.text+0x108
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_phy_set_sense
.type sdk_phy_set_sense, @function
sdk_phy_set_sense:
addi sp, sp, -16 /* (local0) */ # 108: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 10b: 0901
movi a0, .Ldata001 # 10d: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 110: 0800
l32i a0, a0, 28 /* [[.Ldata001]+0x1c] */ # 112: 0870
callx0 a0 /* [[.Ldata001]+0x1c] */ # 114: c00000
l32i a0, sp, 0 /* [(local0)] */ # 117: 0801
addi sp, sp, 16 /* (top of frame) */ # 119: 12c110
ret # 11c: 0df0

BIN
binary_sdk/libphy/phy.o Normal file

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -0,0 +1,361 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.balign 4
.literal_position
.global sdk_chip_v6_set_sense
.type sdk_chip_v6_set_sense, @function
sdk_chip_v6_set_sense:
ret /* arg0 */ # 0: 0df0
.balign 4
# Function @ .irom0.text+0x4
.balign 4
.global sdk_chip_v6_get_sense
.type sdk_chip_v6_get_sense, @function
sdk_chip_v6_get_sense:
ret /* arg0 */ # 4: 0df0
.balign 4
# Function @ .irom0.text+0x8
.balign 4
.global sdk_chip_v6_unset_chanfreq
.type sdk_chip_v6_unset_chanfreq, @function
sdk_chip_v6_unset_chanfreq:
movi a2, 0 /* 0x00000000 */ # 8: 0c02
ret /* 0x00000000 */ # a: 0df0
.literal_position # c: 00000000
# 10: 00000000
# 14: 00000000
# 18: 00000000
# 1c: 000e0060
# 20: 00000000
# 24: 00000000
# 28: 00000000
# 2c: 00000000
# Function @ .irom0.text+0x30
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.balign 4
.global sdk_data_collect
.type sdk_data_collect, @function
sdk_data_collect:
movi a2, .Label001 # 30: 21f7ff
addi sp, sp, -32 /* (local0) */ # 33: 12c1e0
s32i a12, sp, 20 /* a12 -> [(local5)] */ # 36: c951
s32i a13, sp, 24 /* a13 -> [(local6)] */ # 38: d961
s32i a0, sp, 16 /* a0 -> [(local4)] */ # 3a: 0941
call0 ets_printf # 3c: 01f9ffc0
# 40: 0000
movi a2, sdk_chip6_sleep_params # 42: 21f3ff
movi a3, sdk_chip6_sleep_params+0x168 # 45: 31f3ff
movi a4, 0 /* 0x00000000 */ # 48: 0c04
call0 sdk_rtc_mem_backup # 4a: 01f6ffc0
# 4e: 0000
movi a3, 1 /* 0x00000001 */ # 50: 0c13
movi a4, 5 /* 0x00000005 */ # 52: 0c54
movi a5, 7 /* 0x00000007 */ # 54: 0c75
movi a13, sdk_g_phyFuns # 56: d1f0ff
movi a6, 0 /* 0x00000000 */ # 59: 0c06
l32i a0, a13, 0 /* [sdk_g_phyFuns] */ # 5b: 080d
mov a12, a2 # 5d: cd02
l32i a0, a0, 148 /* [[sdk_g_phyFuns]+0x94] */ # 5f: 022025
movi a2, 98 /* 0x00000062 */ # 62: 22a062
callx0 a0 /* [[sdk_g_phyFuns]+0x94] */ # 65: c00000
movi a3, 1 /* 0x00000001 */ # 68: 0c13
movi a4, 6 /* 0x00000006 */ # 6a: 0c64
movi a5, 4 /* 0x00000004 */ # 6c: 0c45
movi a6, 0 /* 0x00000000 */ # 6e: 0c06
l32i a0, a13, 0 /* [sdk_g_phyFuns] */ # 70: 080d
s32i a2, sp, 8 /* a2 -> [(local2)] */ # 72: 2921
l32i a0, a0, 148 /* [[sdk_g_phyFuns]+0x94] */ # 74: 022025
movi a2, 98 /* 0x00000062 */ # 77: 22a062
callx0 a0 /* [[sdk_g_phyFuns]+0x94] */ # 7a: c00000
movi a3, 4 /* 0x00000004 */ # 7d: 0c43
movi a4, 3 /* 0x00000003 */ # 7f: 0c34
movi a5, 4 /* 0x00000004 */ # 81: 0c45
movi a6, 0 /* 0x00000000 */ # 83: 0c06
l32i a0, a13, 0 /* [sdk_g_phyFuns] */ # 85: 080d
s32i a2, sp, 12 /* a2 -> [(local3)] */ # 87: 2931
l32i a0, a0, 148 /* [[sdk_g_phyFuns]+0x94] */ # 89: 022025
movi a2, 103 /* 0x00000067 */ # 8c: 22a067
callx0 a0 /* [[sdk_g_phyFuns]+0x94] */ # 8f: c00000
movi a3, 1 /* 0x00000001 */ # 92: 0c13
movi a4, 2 /* 0x00000002 */ # 94: 0c24
movi a5, 4 /* 0x00000004 */ # 96: 0c45
movi a6, 0 /* 0x00000000 */ # 98: 0c06
l32i a0, a13, 0 /* [sdk_g_phyFuns] */ # 9a: 080d
mov a13, a2 # 9c: dd02
l32i a0, a0, 148 /* [[sdk_g_phyFuns]+0x94] */ # 9e: 022025
movi a2, 97 /* 0x00000061 */ # a1: 22a061
callx0 a0 /* [[sdk_g_phyFuns]+0x94] */ # a4: c00000
slli a4, a2, 24 # a7: 804201
slli a3, a13, 16 # aa: 003d11
l32i a2, sp, 8 /* [(local2)] */ # ad: 2821
or a3, a3, a4 # af: 403320
l32i a4, sp, 12 /* [(local3)] */ # b2: 4831
extui a2, a2, 0, 8 # b4: 202074
extui a4, a4, 0, 8 # b7: 404074
slli a4, a4, 8 # ba: 804411
or a2, a2, a4 # bd: 402220
mov a4, a12 # c0: 4d0c
or a2, a2, a3 # c2: 302220
s32i a2, sp, 0 /* a2 -> [(local0)] */ # c5: 2901
mov a3, sp /* (local0) */ # c7: 3d01
mov a2, sp /* (local0) */ # c9: 2d01
call0 sdk_rtc_mem_backup # cb: 01d7ffc0
# cf: 0000
movi a5, 0x60000e00 # d1: 51d2ff
memw # d4: c02000
addi a3, sp, 4 /* (local1) */ # d7: 4b31
add a12, a12, a2 # d9: 2acc
l32i a5, a5, 0x3fc /* [0x600011fc] */ # db: 5225ff
s32i a5, sp, 4 /* [0x600011fc] -> [(local1)] */ # de: 5911
addi a2, sp, 4 /* (local1) */ # e0: 4b21
mov a4, a12 # e2: 4d0c
call0 sdk_rtc_mem_backup # e4: 01d2ffc0
# e8: 0000
l32i a0, sp, 16 /* [(local4)] */ # ea: 0841
add a2, a2, a12 # ec: ca22
l32i a13, sp, 24 /* [(local6)] */ # ee: d861
l32i a12, sp, 20 /* [(local5)] */ # f0: c851
addi sp, sp, 32 /* (top of frame) */ # f2: 12c120
ret # f5: 0df0
.literal_position # f8: 000af23f
# fc: aa5555aa
# 100: 890f0000
# 104: ac540000
# 108: 20110000
# 10c: 6c0d0000
# 110: 00000000
# 114: 00000000
# 118: 00000000
# 11c: 00000000
# Function @ .irom0.text+0x120
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global sdk_operation_test
.type sdk_operation_test, @function
sdk_operation_test:
addi sp, sp, -16 /* (local0) */ # 120: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 123: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 125: d921
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 127: 0901
movi a2, 0x3ff20a00 # 129: 21f3ff
memw # 12c: c02000
movi a3, 0x00000f89 # 12f: 31f4ff
movi a4, 1234 /* 0x000004d2 */ # 132: 42a4d2
l32i a2, a2, 0x200 /* [0x3ff20c00] */ # 135: 222280
movi a5, 0xaa5555aa # 138: 51f1ff
add a4, a2, a4 /* [0x3ff20c00]+0x4d2 */ # 13b: 4a42
xor a4, a4, a5 # 13d: 504430
mull a2, a2, a4 # 140: 402282
mull a2, a2, a3 # 143: 302282
movi a3, 0x000054ac # 146: 31efff
call0 __udivsi3 # 149: 01f1ffc0
# 14d: 0000
movi a3, 0x00001120 # 14f: 31eeff
mull a2, a2, a3 # 152: 302282
movi a3, 0x00000d6c # 155: 31edff
call0 __udivsi3 # 158: 01efffc0
# 15c: 0000
movi a12, 0 /* 0x00000000 */ # 15e: 0c0c
movi a13, 1000 /* 0x000003e8 */ # 160: d2a3e8
.Lbr001: movi a3, 999 /* 0x000003e7 */ # 163: 32a3e7
call0 __udivsi3 # 166: 01ecffc0
# 16a: 0000
addi a12, a12, 1 # 16c: 1bcc
movi a4, 1120 /* 0x00000460 */ # 16e: 42a460
mull a2, a2, a4 # 171: 402282
bne a12, a13, .Lbr001 # 174: d79ceb
movi a12, 0 /* 0x00000000 */ # 177: 0c0c
.Lbr002: movi a3, 985 /* 0x000003d9 */ # 179: 32a3d9
movi a5, 860 /* 0x0000035c */ # 17c: 52a35c
mull a2, a2, a5 # 17f: 502282
call0 __udivsi3 # 182: 01e6ffc0
# 186: 0000
addi a12, a12, 1 # 188: 1bcc
bne a12, a13, .Lbr002 # 18a: d79ceb
l32i a12, sp, 4 /* [(local1)] */ # 18d: c811
l32i a13, sp, 8 /* [(local2)] */ # 18f: d821
l32i a0, sp, 0 /* [(local0)] */ # 191: 0801
addi sp, sp, 16 /* (top of frame) */ # 193: 12c110
ret # 196: 0df0
.literal_position # 198: 00060060
# Function @ .irom0.text+0x19c
.balign 4
.global sdk_slop_wdt_feed
.type sdk_slop_wdt_feed, @function
sdk_slop_wdt_feed:
movi a2, 115 /* 0x00000073 */ # 19c: 22a073
movi a3, 0x60000600 # 19f: 31feff
memw # 1a2: c02000
s32i a2, a3, 0x314 /* 0x00000073 -> [0x60000914] */ # 1a5: 2263c5
ret /* 0x00000073 */ # 1a8: 0df0
.literal_position # 1ac: 04000000
# 1b0: 00feef3f
# 1b4: 00000000
# 1b8: 000af23f
# 1bc: 00060060
# 1c0: 00000000
# 1c4: 00000000
# 1c8: 00000000
# 1cc: 00000000
# 1d0: 00000000
# 1d4: 00000000
# 1d8: 00000000
# 1dc: 00000000
# Function @ .irom0.text+0x1e0
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.balign 4
.global sdk_slop_test
.type sdk_slop_test, @function
sdk_slop_test:
movi a2, .Lstr001 # 1e0: 21f3ff
addi sp, sp, -32 /* (local0) */ # 1e3: 12c1e0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1e6: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1e8: d921
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 1ea: e931
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1ec: f941
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1ee: 0901
call0 ets_printf # 1f0: 01f4ffc0
# 1f4: 0000
movi a10, 1 /* 0x00000001 */ # 1f6: 0c1a
movi a9, 0x3feffe00 # 1f8: 91eeff
memw # 1fb: c02000
l32i a8, a9, 0x214 /* [0x3ff00014] */ # 1fe: 822985
or a8, a8, a10 # 201: a08820
memw # 204: c02000
movi a2, 106 /* 0x0000006a */ # 207: 22a06a
movi a3, 2 /* 0x00000002 */ # 20a: 0c23
movi a4, 8 /* 0x00000008 */ # 20c: 0c84
movi a5, 4 /* 0x00000004 */ # 20e: 0c45
movi a0, sdk_g_phyFuns # 210: 01e9ff
movi a6, 0 /* 0x00000000 */ # 213: 0c06
l32i a0, a0, 0 /* [sdk_g_phyFuns] */ # 215: 0800
movi a7, 0 /* 0x00000000 */ # 217: 0c07
l32i a0, a0, 156 /* [[sdk_g_phyFuns]+0x9c] */ # 219: 022027
s32i a8, a9, 0x214 /* a8 -> [0x3ff00014] */ # 21c: 826985
callx0 a0 /* [[sdk_g_phyFuns]+0x9c] */ # 21f: c00000
movi a12, 0x3ff20a00 # 222: c1e5ff
memw # 225: c02000
l32i a11, a12, 0x200 /* [0x3ff20c00] */ # 228: b22c80
movi a2, 14 /* 0x0000000e */ # 22b: 0ce2
call0 sdk_RFChannelSel # 22d: 01e5ffc0
# 231: 0000
movi a13, 0 /* 0x00000000 */ # 233: 0c0d
movi a14, 0x60000600 # 235: e1e1ff
movi a15, 200 /* 0x000000c8 */ # 238: f2a0c8
.Lbr003: call0 sdk_slop_wdt_feed # 23b: 050000
call0 sdk_operation_test # 23e: 050000
memw # 241: c02000
s32i a2, a14, 0x138 /* a2 -> [0x60000738] */ # 244: 226e4e
movi a2, 2 /* 0x00000002 */ # 247: 0c22
call0 sdk_pm_set_sleep_mode # 249: 01dfffc0
# 24d: 0000
movi a2, 8 /* 0x00000008 */ # 24f: 0c82
movi a3, 0 /* 0x00000000 */ # 251: 0c03
call0 sdk_pm_wakeup_opt # 253: 01deffc0
# 257: 0000
movi a2, 170 /* 0x000000aa */ # 259: 22a0aa
call0 sdk_pm_set_sleep_cycles # 25c: 01ddffc0
# 260: 0000
memw # 262: c02000
movi a2, 2 /* 0x00000002 */ # 265: 0c22
l32i a0, a12, 0x200 /* [0x3ff20c00] */ # 267: 022c80
call0 sdk_pm_goto_sleep # 26a: 01daffc0
# 26e: 0000
movi a2, 2 /* 0x00000002 */ # 270: 0c22
call0 sdk_pm_wait4wakeup # 272: 01d9ffc0
# 276: 0000
movi a2, 2 /* 0x00000002 */ # 278: 0c22
movi a3, 0 /* 0x00000000 */ # 27a: 0c03
call0 sdk_pm_wakeup_init # 27c: 01d8ffc0
# 280: 0000
memw # 282: c02000
l32i a3, a12, 0x200 /* [0x3ff20c00] */ # 285: 322c80
addi a13, a13, 1 # 288: 1bdd
bne a13, a15, .Lbr003 # 28a: f79dad
l32i a12, sp, 4 /* [(local1)] */ # 28d: c811
l32i a13, sp, 8 /* [(local2)] */ # 28f: d821
l32i a14, sp, 12 /* [(local3)] */ # 291: e831
l32i a15, sp, 16 /* [(local4)] */ # 293: f841
l32i a0, sp, 0 /* [(local0)] */ # 295: 0801
addi sp, sp, 32 /* (top of frame) */ # 297: 12c120
ret # 29a: 0df0
.literal_position # 29c: 000e0060
# 2a0: 10000000
# 2a4: 10000000
# 2a8: 00000000
# 2ac: 00000000
# 2b0: 00000000
# Function @ .irom0.text+0x2b4
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_wd_reset_cnt
.type sdk_wd_reset_cnt, @function
sdk_wd_reset_cnt:
addi sp, sp, -16 /* (local0) */ # 2b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2b7: 0901
call0 sdk_rtc_get_reset_reason # 2b9: 01fbffc0
# 2bd: 0000
movi a0, 0x60000e00 # 2bf: 01f7ff
bnei a2, 4, .Lbr004 # 2c2: 664219
memw # 2c5: c02000
l32i a3, a0, 0x3fc /* [0x600011fc] */ # 2c8: 3220ff
addi a3, a3, 1 /* [0x600011fc]+0x1 */ # 2cb: 1b33
memw # 2cd: c02000
movi a2, .Lstr002 # 2d0: 21f4ff
s32i a3, a0, 0x3fc /* [0x600011fc]+0x1 -> [0x600011fc] */ # 2d3: 3260ff
call0 ets_printf # 2d6: 01f5ffc0
# 2da: 0000
j .Lbr006 # 2dc: 860500
.Lbr004: beqi a2, 2, .Lbr005 # 2df: 262202
bnei a2, 1, .Lbr006 # 2e2: 661210
.Lbr005: movi a3, 0 /* 0x00000000 */ # 2e5: 0c03
memw # 2e7: c02000
movi a2, .Lstr002 # 2ea: 21eeff
s32i a3, a0, 0x3fc /* 0x00000000 -> [0x600011fc] */ # 2ed: 3260ff
call0 ets_printf # 2f0: 01f0ffc0
# 2f4: 0000
.Lbr006: l32i a0, sp, 0 /* [(local0)] */ # 2f6: 0801
addi sp, sp, 16 /* (top of frame) */ # 2f8: 12c110
ret # 2fb: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Label001: .word 0x000a6364 # 0: 64630a00
.Lstr001: .asciz "slop_test\n" # 4: 736c6f70
# 8: 5f746573
# c: 740a00
.balign 4
.Lstr002: .asciz "wd_reset %d\n" # 10: 77645f72
# 14: 65736574
# 18: 2025640a
# 1c: 00

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

View file

@ -0,0 +1,248 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .text+0x8
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global register_phy_ops
.type register_phy_ops, @function
register_phy_ops:
movi a3, 0 /* 0x00000000 */ # 8: 0c03
addi sp, sp, -16 /* (local0) */ # a: 12c1f0
mov a5, a2 /* arg0 */ # d: 5d02
s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901
movi a0, .Ldata001 # 11: 01fbff
movi a2, 1 /* 0x00000001 */ # 14: 0c12
s32i a5, a0, 0 /* arg0 -> [.Ldata001] */ # 16: 5900
call0 phy_init # 18: 01fbffc0
# 1c: 0000
l32i a0, sp, 0 /* [(local0)] */ # 1e: 0801
addi sp, sp, 16 /* (top of frame) */ # 20: 12c110
ret # 23: 0df0
.literal_position # 28: 00000000
# Function @ .text+0x2c
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global phy_change_channel
.type phy_change_channel, @function
phy_change_channel:
addi sp, sp, -16 /* (local0) */ # 2c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2f: 0901
movi a0, .Ldata001 # 31: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 34: 0800
l32i a0, a0, 4 /* [[.Ldata001]+0x4] */ # 36: 0810
callx0 a0 /* [[.Ldata001]+0x4] */ # 38: c00000
movi a2, 0 /* 0x00000000 */ # 3b: 0c02
l32i a0, sp, 0 /* [(local0)] */ # 3d: 0801
addi sp, sp, 16 /* (top of frame) */ # 3f: 12c110
ret /* 0x00000000 */ # 42: 0df0
.literal_position # 44: 000af23f
# Function @ .text+0x48
.balign 4
.global phy_get_mactime
.type phy_get_mactime, @function
phy_get_mactime:
movi a2, 0x3ff20a00 # 48: 21ffff
memw # 4b: c02000
l32i a2, a2, 0x200 /* [0x3ff20c00] */ # 4e: 222280
ret /* [0x3ff20c00] */ # 51: 0df0
.section .bss, "aw", @nobits
.Ldata001: .word 0x00000000 # 0: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global rf_init
.type rf_init, @function
rf_init: addi sp, sp, -16 /* (local0) */ # 4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7: 0901
movi a0, .Ldata001 # 9: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # c: 0800
slli a4, a2, 24 # e: 804201
l32i a0, a0, 0 /* [[.Ldata001]] */ # 11: 0800
srai a2, a4, 24 # 13: 402831
callx0 a0 /* [[.Ldata001]] */ # 16: c00000
l32i a0, sp, 0 /* [(local0)] */ # 19: 0801
addi sp, sp, 16 /* (top of frame) */ # 1b: 12c110
ret # 1e: 0df0
.literal_position # 20: 00000000
# Function @ .irom0.text+0x24
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global bb_init
.type bb_init, @function
bb_init: addi sp, sp, -16 /* (local0) */ # 24: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 27: 0901
movi a0, .Ldata001 # 29: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 2c: 0800
l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # 2e: 0860
callx0 a0 /* [[.Ldata001]+0x18] */ # 30: c00000
l32i a0, sp, 0 /* [(local0)] */ # 33: 0801
addi sp, sp, 16 /* (top of frame) */ # 35: 12c110
ret # 38: 0df0
.literal_position # 3c: 00000000
# 40: 00000000
# Function @ .irom0.text+0x44
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global phy_init
.type phy_init, @function
phy_init: addi sp, sp, -16 /* (local0) */ # 44: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 47: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 49: 0901
mov a12, a3 /* arg1 */ # 4b: cd03
movi a0, .Ldata001 # 4d: 01fbff
slli a3, a2, 24 # 50: 803201
l32i a0, a0, 0 /* [.Ldata001] */ # 53: 0800
srai a2, a3, 24 # 55: 302831
l32i a0, a0, 0 /* [[.Ldata001]] */ # 58: 0800
mov a3, a12 /* arg1 */ # 5a: 3d0c
callx0 a0 /* [[.Ldata001]] */ # 5c: c00000
movi a0, .Ldata001 # 5f: 01f8ff
l32i a0, a0, 0 /* [.Ldata001] */ # 62: 0800
l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # 64: 0860
mov a2, a12 /* arg1 */ # 66: 2d0c
callx0 a0 /* [[.Ldata001]+0x18] */ # 68: c00000
l32i a12, sp, 4 /* [(local1)] */ # 6b: c811
l32i a0, sp, 0 /* [(local0)] */ # 6d: 0801
addi sp, sp, 16 /* (top of frame) */ # 6f: 12c110
ret # 72: 0df0
.literal_position # 74: 00000000
# Function @ .irom0.text+0x78
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global RFChannelSel
.type RFChannelSel, @function
RFChannelSel:
addi sp, sp, -16 /* (local0) */ # 78: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7b: 0901
movi a0, .Ldata001 # 7d: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 80: 0800
slli a3, a2, 24 # 82: 803201
l32i a0, a0, 8 /* [[.Ldata001]+0x8] */ # 85: 0820
srai a2, a3, 24 # 87: 302831
callx0 a0 /* [[.Ldata001]+0x8] */ # 8a: c00000
l32i a0, sp, 0 /* [(local0)] */ # 8d: 0801
addi sp, sp, 16 /* (top of frame) */ # 8f: 12c110
ret # 92: 0df0
.literal_position # 94: 00000000
# Function @ .irom0.text+0x98
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global phy_delete_channel
.type phy_delete_channel, @function
phy_delete_channel:
addi sp, sp, -16 /* (local0) */ # 98: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9b: 0901
movi a0, .Ldata001 # 9d: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # a0: 0800
l32i a0, a0, 12 /* [[.Ldata001]+0xc] */ # a2: 0830
callx0 a0 /* [[.Ldata001]+0xc] */ # a4: c00000
l32i a0, sp, 0 /* [(local0)] */ # a7: 0801
addi sp, sp, 16 /* (top of frame) */ # a9: 12c110
ret # ac: 0df0
.literal_position # b0: 00000000
# Function @ .irom0.text+0xb4
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global phy_enable_agc
.type phy_enable_agc, @function
phy_enable_agc:
addi sp, sp, -16 /* (local0) */ # b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # b7: 0901
movi a0, .Ldata001 # b9: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # bc: 0800
l32i a0, a0, 16 /* [[.Ldata001]+0x10] */ # be: 0840
callx0 a0 /* [[.Ldata001]+0x10] */ # c0: c00000
l32i a0, sp, 0 /* [(local0)] */ # c3: 0801
addi sp, sp, 16 /* (top of frame) */ # c5: 12c110
ret # c8: 0df0
.literal_position # cc: 00000000
# Function @ .irom0.text+0xd0
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global phy_disable_agc
.type phy_disable_agc, @function
phy_disable_agc:
addi sp, sp, -16 /* (local0) */ # d0: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # d3: 0901
movi a0, .Ldata001 # d5: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # d8: 0800
l32i a0, a0, 20 /* [[.Ldata001]+0x14] */ # da: 0850
callx0 a0 /* [[.Ldata001]+0x14] */ # dc: c00000
l32i a0, sp, 0 /* [(local0)] */ # df: 0801
addi sp, sp, 16 /* (top of frame) */ # e1: 12c110
ret # e4: 0df0
.literal_position # e8: 00000000
# Function @ .irom0.text+0xec
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global phy_initialize_bb
.type phy_initialize_bb, @function
phy_initialize_bb:
addi sp, sp, -16 /* (local0) */ # ec: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # ef: 0901
movi a0, .Ldata001 # f1: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # f4: 0800
l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # f6: 0860
callx0 a0 /* [[.Ldata001]+0x18] */ # f8: c00000
l32i a0, sp, 0 /* [(local0)] */ # fb: 0801
addi sp, sp, 16 /* (top of frame) */ # fd: 12c110
ret # 100: 0df0
.literal_position # 104: 00000000
# Function @ .irom0.text+0x108
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global phy_set_sense
.type phy_set_sense, @function
phy_set_sense:
addi sp, sp, -16 /* (local0) */ # 108: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 10b: 0901
movi a0, .Ldata001 # 10d: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 110: 0800
l32i a0, a0, 28 /* [[.Ldata001]+0x1c] */ # 112: 0870
callx0 a0 /* [[.Ldata001]+0x1c] */ # 114: c00000
l32i a0, sp, 0 /* [(local0)] */ # 117: 0801
addi sp, sp, 16 /* (top of frame) */ # 119: 12c110
ret # 11c: 0df0

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,360 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.balign 4
.literal_position
.global chip_v6_set_sense
.type chip_v6_set_sense, @function
chip_v6_set_sense:
ret /* arg0 */ # 0: 0df0
.balign 4
# Function @ .irom0.text+0x4
.balign 4
.global chip_v6_get_sense
.type chip_v6_get_sense, @function
chip_v6_get_sense:
ret /* arg0 */ # 4: 0df0
.balign 4
# Function @ .irom0.text+0x8
.balign 4
.global chip_v6_unset_chanfreq
.type chip_v6_unset_chanfreq, @function
chip_v6_unset_chanfreq:
movi a2, 0 /* 0x00000000 */ # 8: 0c02
ret /* 0x00000000 */ # a: 0df0
.literal_position # c: 00000000
# 10: 00000000
# 14: 00000000
# 18: 00000000
# 1c: 000e0060
# 20: 00000000
# 24: 00000000
# 28: 00000000
# 2c: 00000000
# Function @ .irom0.text+0x30
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.balign 4
.global data_collect
.type data_collect, @function
data_collect:
movi a2, .Label001 # 30: 21f7ff
addi sp, sp, -32 /* (local0) */ # 33: 12c1e0
s32i a12, sp, 20 /* a12 -> [(local5)] */ # 36: c951
s32i a13, sp, 24 /* a13 -> [(local6)] */ # 38: d961
s32i a0, sp, 16 /* a0 -> [(local4)] */ # 3a: 0941
call0 ets_printf # 3c: 01f9ffc0
# 40: 0000
movi a2, chip6_sleep_params # 42: 21f3ff
movi a3, chip6_sleep_params+0x168 # 45: 31f3ff
movi a4, 0 /* 0x00000000 */ # 48: 0c04
call0 rtc_mem_backup # 4a: 01f6ffc0
# 4e: 0000
movi a3, 1 /* 0x00000001 */ # 50: 0c13
movi a4, 5 /* 0x00000005 */ # 52: 0c54
movi a5, 7 /* 0x00000007 */ # 54: 0c75
movi a13, g_phyFuns # 56: d1f0ff
movi a6, 0 /* 0x00000000 */ # 59: 0c06
l32i a0, a13, 0 /* [g_phyFuns] */ # 5b: 080d
mov a12, a2 # 5d: cd02
l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 5f: 022025
movi a2, 98 /* 0x00000062 */ # 62: 22a062
callx0 a0 /* [[g_phyFuns]+0x94] */ # 65: c00000
movi a3, 1 /* 0x00000001 */ # 68: 0c13
movi a4, 6 /* 0x00000006 */ # 6a: 0c64
movi a5, 4 /* 0x00000004 */ # 6c: 0c45
movi a6, 0 /* 0x00000000 */ # 6e: 0c06
l32i a0, a13, 0 /* [g_phyFuns] */ # 70: 080d
s32i a2, sp, 8 /* a2 -> [(local2)] */ # 72: 2921
l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 74: 022025
movi a2, 98 /* 0x00000062 */ # 77: 22a062
callx0 a0 /* [[g_phyFuns]+0x94] */ # 7a: c00000
movi a3, 4 /* 0x00000004 */ # 7d: 0c43
movi a4, 3 /* 0x00000003 */ # 7f: 0c34
movi a5, 4 /* 0x00000004 */ # 81: 0c45
movi a6, 0 /* 0x00000000 */ # 83: 0c06
l32i a0, a13, 0 /* [g_phyFuns] */ # 85: 080d
s32i a2, sp, 12 /* a2 -> [(local3)] */ # 87: 2931
l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 89: 022025
movi a2, 103 /* 0x00000067 */ # 8c: 22a067
callx0 a0 /* [[g_phyFuns]+0x94] */ # 8f: c00000
movi a3, 1 /* 0x00000001 */ # 92: 0c13
movi a4, 2 /* 0x00000002 */ # 94: 0c24
movi a5, 4 /* 0x00000004 */ # 96: 0c45
movi a6, 0 /* 0x00000000 */ # 98: 0c06
l32i a0, a13, 0 /* [g_phyFuns] */ # 9a: 080d
mov a13, a2 # 9c: dd02
l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 9e: 022025
movi a2, 97 /* 0x00000061 */ # a1: 22a061
callx0 a0 /* [[g_phyFuns]+0x94] */ # a4: c00000
slli a4, a2, 24 # a7: 804201
slli a3, a13, 16 # aa: 003d11
l32i a2, sp, 8 /* [(local2)] */ # ad: 2821
or a3, a3, a4 # af: 403320
l32i a4, sp, 12 /* [(local3)] */ # b2: 4831
extui a2, a2, 0, 8 # b4: 202074
extui a4, a4, 0, 8 # b7: 404074
slli a4, a4, 8 # ba: 804411
or a2, a2, a4 # bd: 402220
mov a4, a12 # c0: 4d0c
or a2, a2, a3 # c2: 302220
s32i a2, sp, 0 /* a2 -> [(local0)] */ # c5: 2901
mov a3, sp /* (local0) */ # c7: 3d01
mov a2, sp /* (local0) */ # c9: 2d01
call0 rtc_mem_backup # cb: 01d7ffc0
# cf: 0000
movi a5, 0x60000e00 # d1: 51d2ff
memw # d4: c02000
addi a3, sp, 4 /* (local1) */ # d7: 4b31
add a12, a12, a2 # d9: 2acc
l32i a5, a5, 0x3fc /* [0x600011fc] */ # db: 5225ff
s32i a5, sp, 4 /* [0x600011fc] -> [(local1)] */ # de: 5911
addi a2, sp, 4 /* (local1) */ # e0: 4b21
mov a4, a12 # e2: 4d0c
call0 rtc_mem_backup # e4: 01d2ffc0
# e8: 0000
l32i a0, sp, 16 /* [(local4)] */ # ea: 0841
add a2, a2, a12 # ec: ca22
l32i a13, sp, 24 /* [(local6)] */ # ee: d861
l32i a12, sp, 20 /* [(local5)] */ # f0: c851
addi sp, sp, 32 /* (top of frame) */ # f2: 12c120
ret # f5: 0df0
.literal_position # f8: 000af23f
# fc: aa5555aa
# 100: 890f0000
# 104: ac540000
# 108: 20110000
# 10c: 6c0d0000
# 110: 00000000
# 114: 00000000
# 118: 00000000
# 11c: 00000000
# Function @ .irom0.text+0x120
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.balign 4
.global operation_test
.type operation_test, @function
operation_test:
addi sp, sp, -16 /* (local0) */ # 120: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 123: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 125: d921
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 127: 0901
movi a2, 0x3ff20a00 # 129: 21f3ff
memw # 12c: c02000
movi a3, 0x00000f89 # 12f: 31f4ff
movi a4, 1234 /* 0x000004d2 */ # 132: 42a4d2
l32i a2, a2, 0x200 /* [0x3ff20c00] */ # 135: 222280
movi a5, 0xaa5555aa # 138: 51f1ff
add a4, a2, a4 /* [0x3ff20c00]+0x4d2 */ # 13b: 4a42
xor a4, a4, a5 # 13d: 504430
mull a2, a2, a4 # 140: 402282
mull a2, a2, a3 # 143: 302282
movi a3, 0x000054ac # 146: 31efff
call0 __udivsi3 # 149: 01f1ffc0
# 14d: 0000
movi a3, 0x00001120 # 14f: 31eeff
mull a2, a2, a3 # 152: 302282
movi a3, 0x00000d6c # 155: 31edff
call0 __udivsi3 # 158: 01efffc0
# 15c: 0000
movi a12, 0 /* 0x00000000 */ # 15e: 0c0c
movi a13, 1000 /* 0x000003e8 */ # 160: d2a3e8
.Lbr001: movi a3, 999 /* 0x000003e7 */ # 163: 32a3e7
call0 __udivsi3 # 166: 01ecffc0
# 16a: 0000
addi a12, a12, 1 # 16c: 1bcc
movi a4, 1120 /* 0x00000460 */ # 16e: 42a460
mull a2, a2, a4 # 171: 402282
bne a12, a13, .Lbr001 # 174: d79ceb
movi a12, 0 /* 0x00000000 */ # 177: 0c0c
.Lbr002: movi a3, 985 /* 0x000003d9 */ # 179: 32a3d9
movi a5, 860 /* 0x0000035c */ # 17c: 52a35c
mull a2, a2, a5 # 17f: 502282
call0 __udivsi3 # 182: 01e6ffc0
# 186: 0000
addi a12, a12, 1 # 188: 1bcc
bne a12, a13, .Lbr002 # 18a: d79ceb
l32i a12, sp, 4 /* [(local1)] */ # 18d: c811
l32i a13, sp, 8 /* [(local2)] */ # 18f: d821
l32i a0, sp, 0 /* [(local0)] */ # 191: 0801
addi sp, sp, 16 /* (top of frame) */ # 193: 12c110
ret # 196: 0df0
.literal_position # 198: 00060060
# Function @ .irom0.text+0x19c
.balign 4
.global slop_wdt_feed
.type slop_wdt_feed, @function
slop_wdt_feed:
movi a2, 115 /* 0x00000073 */ # 19c: 22a073
movi a3, 0x60000600 # 19f: 31feff
memw # 1a2: c02000
s32i a2, a3, 0x314 /* 0x00000073 -> [0x60000914] */ # 1a5: 2263c5
ret /* 0x00000073 */ # 1a8: 0df0
.literal_position # 1ac: 04000000
# 1b0: 00feef3f
# 1b4: 00000000
# 1b8: 000af23f
# 1bc: 00060060
# 1c0: 00000000
# 1c4: 00000000
# 1c8: 00000000
# 1cc: 00000000
# 1d0: 00000000
# 1d4: 00000000
# 1d8: 00000000
# 1dc: 00000000
# Function @ .irom0.text+0x1e0
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.balign 4
.global slop_test
.type slop_test, @function
slop_test: movi a2, .Lstr001 # 1e0: 21f3ff
addi sp, sp, -32 /* (local0) */ # 1e3: 12c1e0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1e6: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1e8: d921
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 1ea: e931
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1ec: f941
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1ee: 0901
call0 ets_printf # 1f0: 01f4ffc0
# 1f4: 0000
movi a10, 1 /* 0x00000001 */ # 1f6: 0c1a
movi a9, 0x3feffe00 # 1f8: 91eeff
memw # 1fb: c02000
l32i a8, a9, 0x214 /* [0x3ff00014] */ # 1fe: 822985
or a8, a8, a10 # 201: a08820
memw # 204: c02000
movi a2, 106 /* 0x0000006a */ # 207: 22a06a
movi a3, 2 /* 0x00000002 */ # 20a: 0c23
movi a4, 8 /* 0x00000008 */ # 20c: 0c84
movi a5, 4 /* 0x00000004 */ # 20e: 0c45
movi a0, g_phyFuns # 210: 01e9ff
movi a6, 0 /* 0x00000000 */ # 213: 0c06
l32i a0, a0, 0 /* [g_phyFuns] */ # 215: 0800
movi a7, 0 /* 0x00000000 */ # 217: 0c07
l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 219: 022027
s32i a8, a9, 0x214 /* a8 -> [0x3ff00014] */ # 21c: 826985
callx0 a0 /* [[g_phyFuns]+0x9c] */ # 21f: c00000
movi a12, 0x3ff20a00 # 222: c1e5ff
memw # 225: c02000
l32i a11, a12, 0x200 /* [0x3ff20c00] */ # 228: b22c80
movi a2, 14 /* 0x0000000e */ # 22b: 0ce2
call0 RFChannelSel # 22d: 01e5ffc0
# 231: 0000
movi a13, 0 /* 0x00000000 */ # 233: 0c0d
movi a14, 0x60000600 # 235: e1e1ff
movi a15, 200 /* 0x000000c8 */ # 238: f2a0c8
.Lbr003: call0 slop_wdt_feed # 23b: 050000
call0 operation_test # 23e: 050000
memw # 241: c02000
s32i a2, a14, 0x138 /* a2 -> [0x60000738] */ # 244: 226e4e
movi a2, 2 /* 0x00000002 */ # 247: 0c22
call0 pm_set_sleep_mode # 249: 01dfffc0
# 24d: 0000
movi a2, 8 /* 0x00000008 */ # 24f: 0c82
movi a3, 0 /* 0x00000000 */ # 251: 0c03
call0 pm_wakeup_opt # 253: 01deffc0
# 257: 0000
movi a2, 170 /* 0x000000aa */ # 259: 22a0aa
call0 pm_set_sleep_cycles # 25c: 01ddffc0
# 260: 0000
memw # 262: c02000
movi a2, 2 /* 0x00000002 */ # 265: 0c22
l32i a0, a12, 0x200 /* [0x3ff20c00] */ # 267: 022c80
call0 pm_goto_sleep # 26a: 01daffc0
# 26e: 0000
movi a2, 2 /* 0x00000002 */ # 270: 0c22
call0 pm_wait4wakeup # 272: 01d9ffc0
# 276: 0000
movi a2, 2 /* 0x00000002 */ # 278: 0c22
movi a3, 0 /* 0x00000000 */ # 27a: 0c03
call0 pm_wakeup_init # 27c: 01d8ffc0
# 280: 0000
memw # 282: c02000
l32i a3, a12, 0x200 /* [0x3ff20c00] */ # 285: 322c80
addi a13, a13, 1 # 288: 1bdd
bne a13, a15, .Lbr003 # 28a: f79dad
l32i a12, sp, 4 /* [(local1)] */ # 28d: c811
l32i a13, sp, 8 /* [(local2)] */ # 28f: d821
l32i a14, sp, 12 /* [(local3)] */ # 291: e831
l32i a15, sp, 16 /* [(local4)] */ # 293: f841
l32i a0, sp, 0 /* [(local0)] */ # 295: 0801
addi sp, sp, 32 /* (top of frame) */ # 297: 12c120
ret # 29a: 0df0
.literal_position # 29c: 000e0060
# 2a0: 10000000
# 2a4: 10000000
# 2a8: 00000000
# 2ac: 00000000
# 2b0: 00000000
# Function @ .irom0.text+0x2b4
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global wd_reset_cnt
.type wd_reset_cnt, @function
wd_reset_cnt:
addi sp, sp, -16 /* (local0) */ # 2b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2b7: 0901
call0 rtc_get_reset_reason # 2b9: 01fbffc0
# 2bd: 0000
movi a0, 0x60000e00 # 2bf: 01f7ff
bnei a2, 4, .Lbr004 # 2c2: 664219
memw # 2c5: c02000
l32i a3, a0, 0x3fc /* [0x600011fc] */ # 2c8: 3220ff
addi a3, a3, 1 /* [0x600011fc]+0x1 */ # 2cb: 1b33
memw # 2cd: c02000
movi a2, .Lstr002 # 2d0: 21f4ff
s32i a3, a0, 0x3fc /* [0x600011fc]+0x1 -> [0x600011fc] */ # 2d3: 3260ff
call0 ets_printf # 2d6: 01f5ffc0
# 2da: 0000
j .Lbr006 # 2dc: 860500
.Lbr004: beqi a2, 2, .Lbr005 # 2df: 262202
bnei a2, 1, .Lbr006 # 2e2: 661210
.Lbr005: movi a3, 0 /* 0x00000000 */ # 2e5: 0c03
memw # 2e7: c02000
movi a2, .Lstr002 # 2ea: 21eeff
s32i a3, a0, 0x3fc /* 0x00000000 -> [0x600011fc] */ # 2ed: 3260ff
call0 ets_printf # 2f0: 01f0ffc0
# 2f4: 0000
.Lbr006: l32i a0, sp, 0 /* [(local0)] */ # 2f6: 0801
addi sp, sp, 16 /* (top of frame) */ # 2f8: 12c110
ret # 2fb: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Label001: .word 0x000a6364 # 0: 64630a00
.Lstr001: .asciz "slop_test\n" # 4: 736c6f70
# 8: 5f746573
# c: 740a00
.balign 4
.Lstr002: .asciz "wd_reset %d\n" # 10: 77645f72
# 14: 65736574
# 18: 2025640a
# 1c: 00

File diff suppressed because it is too large Load diff

755
binary_sdk/libpp/esf_buf.S Normal file
View file

@ -0,0 +1,755 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00feef3f
# c: 00000000
# 10: 00000000
# 14: 00feef3f
# 18: 00000000
# 1c: 00000000
# 20: 00000000
# Function @ .text+0x24
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_esf_rx_buf_alloc
.type sdk_esf_rx_buf_alloc, @function
sdk_esf_rx_buf_alloc:
addi sp, sp, -16 /* (local0) */ # 24: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 27: 0901
bnei a2, 7, .Lbr001 # 29: 667211
movi a5, .Ldata001 # 2c: 51f5ff
movi a0, sdk_NMIIrqIsOn # 2f: 01f5ff
l32i a2, a5, 16 /* [.Ldata005] */ # 32: 2845
l8ui a3, a0, 0 /* [sdk_NMIIrqIsOn] */ # 34: 320000
bnez a2, .Lbr004 # 37: cce2
movi a2, 0 /* 0x00000000 */ # 39: 0c02
j .Lbr003 # 3b: c60000
.Lbr001: movi a0, 0 /* 0x00000000 */ # 3e: 0c00
.Lbr002: mov a2, a0 # 40: 2d00
.Lbr003: l32i a0, sp, 0 /* [(local0)] */ # 42: 0801
addi sp, sp, 16 /* (top of frame) */ # 44: 12c110
ret # 47: 0df0
.Lbr004: bnez a3, .Lbr006 # 49: ec93
call0 vPortEnterCritical # 4b: 01f4ffc0
# 4f: 0000
movi a4, 0x3feffe00 # 51: 41edff
movi a5, .Ldata001 # 54: 51eeff
movi a6, -32 /* 0xffffffe0 */ # 57: 6c06
.Lbr005: memw # 59: c02000
l32i a8, a4, 0x200 /* [0x3ff00000] */ # 5c: 822480
and a8, a8, a6 # 5f: 608810
memw # 62: c02000
s32i a8, a4, 0x200 /* a8 -> [0x3ff00000] */ # 65: 826480
memw # 68: c02000
l32i a7, a4, 0x200 /* [0x3ff00000] */ # 6b: 722480
bbsi a7, 0, .Lbr005 # 6e: 07e7e7
movi a0, sdk_NMIIrqIsOn # 71: 01e7ff
l32i a2, a5, 16 /* [.Ldata005] */ # 74: 2845
.Lbr006: s32i a2, sp, 4 /* [.Ldata005] -> [(local1)] */ # 76: 2911
movi a10, 0 /* 0x00000000 */ # 78: 0c0a
l32i a11, a2, 28 /* [[.Ldata005]+0x1c] */ # 7a: b872
s32i a11, a5, 16 /* [[.Ldata005]+0x1c] -> [.Ldata005] */ # 7c: b945
s32i a10, a2, 28 /* 0x00000000 -> [[.Ldata005]+0x1c] */ # 7e: a972
l8ui a9, a0, 0 /* [sdk_NMIIrqIsOn] */ # 80: 920000
mov a0, a2 /* [.Ldata005] */ # 83: 0d02
bnez a9, .Lbr007 # 85: ec29
memw # 87: c02000
movi a2, 0x3feffe00 # 8a: 21e2ff
l32i a0, a2, 0x200 /* [0x3ff00000] */ # 8d: 022280
movi a3, -32 /* 0xffffffe0 */ # 90: 6c03
and a0, a0, a3 # 92: 300010
movi a3, 1 /* 0x00000001 */ # 95: 0c13
or a0, a0, a3 # 97: 300020
memw # 9a: c02000
s32i a0, a2, 0x200 /* a0 -> [0x3ff00000] */ # 9d: 026280
call0 vPortExitCritical # a0: 01e0ffc0
# a4: 0000
movi a5, .Ldata001 # a6: 51dcff
l32i a0, sp, 4 /* [(local1)] */ # a9: 0811
.Lbr007: l32i a4, a5, 20 /* [.Ldata006] */ # ab: 4855
addi a4, a4, -1 /* [.Ldata006]-0x1 */ # ad: 0b44
s32i a4, a5, 20 /* [.Ldata006]-0x1 -> [.Ldata006] */ # af: 4955
j .Lbr002 # b1: c6e2ff
.section .bss, "aw", @nobits
.Ldata001: .word 0x00000000 # 0: 00000000
.Ldata002: .word 0x00000000 # 4: 00000000
.Ldata003: .word 0x00000000 # 8: 00000000
.Ldata004: .word 0x00000000 # c: 00000000
.Ldata005: .word 0x00000000 # 10: 00000000
.Ldata006: .word 0x00000000 # 14: 00000000
.space 8
.Ldata007: .space 1116
.word 0x00000000 # 47c: 00000000
.Ldata008: .space 2144
.Ldata009: .space 608
.Ldata010: .space 600
.space 8
.Label001: .space 72
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00feef3f
# c: 00000000
# 10: 00000000
# 14: 00feef3f
# 18: 00400000
# 1c: 00feef3f
# 20: 00000000
# 24: 00000000
# 28: 00feef3f
# 2c: 00800000
# 30: 00feef3f
# 34: 00000000
# 38: 00000000
# 3c: 00feef3f
# 40: 00002000
# 44: 00feef3f
# 48: 00000000
# 4c: 00000000
# 50: 00feef3f
# 54: 00200000
# 58: 00000000
# 5c: 00000000
# 60: 00000000
# 64: 00000000
# 68: 00000000
# 6c: 00000000
# 70: 00000000
# 74: 00000000
# 78: 00000000
# Function @ .irom0.text+0x7c
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.balign 4
.global sdk_esf_buf_alloc
.type sdk_esf_buf_alloc, @function
sdk_esf_buf_alloc:
movi a10, 0 /* 0x00000000 */ # 7c: 0c0a
movi a7, sdk_NMIIrqIsOn # 7e: 71e0ff
movi a6, .Ldata001 # 81: 61e0ff
addi sp, sp, -32 /* (local0) */ # 84: 12c1e0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 87: c921
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 89: 0911
bnei a3, 1, .Lbr008 # 8b: 66130e
beqz a2, .Lbr008 # 8e: 8cb2
l32i a12, a6, 0 /* [.Ldata001] */ # 90: c806
l8ui a9, a7, 0 /* [sdk_NMIIrqIsOn] */ # 92: 920700
bnez a12, .Lbr022 # 95: 56fc17
mov a12, a10 /* 0x00000000 */ # 98: cd0a
j .Lbr021 # 9a: c65b00
.Lbr008: bnei a3, 4, .Lbr012 # 9d: 664376
l32i a12, a6, 4 /* [.Ldata002] */ # a0: c816
l8ui a2, a7, 0 /* [sdk_NMIIrqIsOn] */ # a2: 220700
beqz a12, .Lbr027 # a5: 160c20
bnez a2, .Lbr010 # a8: ecb2
call0 vPortEnterCritical # aa: 01ebffc0
# ae: 0000
movi a0, 0x3feffe00 # b0: 01d6ff
movi a6, .Ldata001 # b3: 61d6ff
movi a7, sdk_NMIIrqIsOn # b6: 71d6ff
movi a8, -32 /* 0xffffffe0 */ # b9: 6c08
movi a10, 0 /* 0x00000000 */ # bb: 0c0a
.Lbr009: memw # bd: c02000
l32i a4, a0, 0x200 /* [0x3ff00000] */ # c0: 422080
and a4, a4, a8 # c3: 804410
memw # c6: c02000
s32i a4, a0, 0x200 /* a4 -> [0x3ff00000] */ # c9: 426080
memw # cc: c02000
l32i a3, a0, 0x200 /* [0x3ff00000] */ # cf: 322080
bbsi a3, 0, .Lbr009 # d2: 07e3e7
l32i a12, a6, 4 /* [.Ldata002] */ # d5: c816
.Lbr010: s32i a12, sp, 20 /* [.Ldata002] -> [(local5)] */ # d7: c951
mov a2, a12 /* [.Ldata002] */ # d9: 2d0c
l32i a9, a12, 28 /* [[.Ldata002]+0x1c] */ # db: 987c
s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata002]+0x1c] */ # dd: a97c
l8ui a5, a7, 0 /* [sdk_NMIIrqIsOn] */ # df: 520700
s32i a9, a6, 4 /* [[.Ldata002]+0x1c] -> [.Ldata002] */ # e2: 9916
bnez a5, .Lbr011 # e4: dcf5
memw # e6: c02000
movi a11, 0x3feffe00 # e9: b1caff
l32i a10, a11, 0x200 /* [0x3ff00000] */ # ec: a22b80
movi a0, -32 /* 0xffffffe0 */ # ef: 6c00
and a10, a10, a0 # f1: 00aa10
movi a0, 1 /* 0x00000001 */ # f4: 0c10
or a10, a10, a0 # f6: 00aa20
memw # f9: c02000
s32i a10, a11, 0x200 /* a10 -> [0x3ff00000] */ # fc: a26b80
call0 vPortExitCritical # ff: 01d7ffc0
# 103: 0000
l32i a2, sp, 20 /* [(local5)] */ # 105: 2851
.Lbr011: l32i a4, a2, 4 # 107: 4812
l32i a3, a2, 16 # 109: 3842
s32i a3, a4, 4 # 10b: 3914
l32i a2, a2, 32 # 10d: 2882
movi a3, 0x00004000 # 10f: 31c2ff
l32i a0, a2, 0 # 112: 0802
j .Lbr026 # 114: 465f00
.Lbr012: bnei a3, 5, .Lbr016 # 117: 66537c
l32i a12, a6, 8 /* [.Ldata003] */ # 11a: c826
l8ui a5, a7, 0 /* [sdk_NMIIrqIsOn] */ # 11c: 520700
beqz a12, .Lbr027 # 11f: 166c18
bnez a5, .Lbr014 # 122: ecb5
call0 vPortEnterCritical # 124: 01cfffc0
# 128: 0000
movi a0, 0x3feffe00 # 12a: 01bcff
movi a6, .Ldata001 # 12d: 61bcff
movi a7, sdk_NMIIrqIsOn # 130: 71bdff
movi a8, -32 /* 0xffffffe0 */ # 133: 6c08
movi a10, 0 /* 0x00000000 */ # 135: 0c0a
.Lbr013: memw # 137: c02000
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 13a: b22080
and a11, a11, a8 # 13d: 80bb10
memw # 140: c02000
s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 143: b26080
memw # 146: c02000
l32i a9, a0, 0x200 /* [0x3ff00000] */ # 149: 922080
bbsi a9, 0, .Lbr013 # 14c: 07e9e7
l32i a12, a6, 8 /* [.Ldata003] */ # 14f: c826
.Lbr014: l32i a3, a12, 28 /* [[.Ldata003]+0x1c] */ # 151: 387c
s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata003]+0x1c] */ # 153: a97c
l8ui a2, a7, 0 /* [sdk_NMIIrqIsOn] */ # 155: 220700
s32i a3, a6, 8 /* [[.Ldata003]+0x1c] -> [.Ldata003] */ # 158: 3926
bnez a2, .Lbr015 # 15a: dcd2
memw # 15c: c02000
movi a5, 0x3feffe00 # 15f: 51b2ff
l32i a4, a5, 0x200 /* [0x3ff00000] */ # 162: 422580
movi a6, -32 /* 0xffffffe0 */ # 165: 6c06
and a4, a4, a6 # 167: 604410
movi a6, 1 /* 0x00000001 */ # 16a: 0c16
or a4, a4, a6 # 16c: 604420
memw # 16f: c02000
s32i a4, a5, 0x200 /* a4 -> [0x3ff00000] */ # 172: 426580
call0 vPortExitCritical # 175: 01bbffc0
# 179: 0000
.Lbr015: l32i a2, a12, 32 /* [[.Ldata003]+0x20] */ # 17b: 288c
movi a3, 0 /* 0x00000000 */ # 17d: 0c03
movi a4, 24 /* 0x00000018 */ # 17f: 1c84
call0 memset # 181: 01b9ffc0
# 185: 0000
l32i a8, a12, 4 /* [[.Ldata003]+0x4] */ # 187: 881c
l32i a7, a12, 16 /* [[.Ldata003]+0x10] */ # 189: 784c
s32i a7, a8, 4 /* [[.Ldata003]+0x10] -> [[[.Ldata003]+0x4]+0x4] */ # 18b: 7918
l32i a2, a12, 32 /* [[.Ldata003]+0x20] */ # 18d: 288c
movi a3, 0x00008000 # 18f: 31a7ff
l32i a0, a2, 0 /* [[[.Ldata003]+0x20]] */ # 192: 0802
j .Lbr026 # 194: 463f00
.Lbr016: bnei a3, 6, .Lbr020 # 197: 666370
l32i a12, a6, 12 /* [.Ldata004] */ # 19a: c836
l8ui a9, a7, 0 /* [sdk_NMIIrqIsOn] */ # 19c: 920700
beqz a12, .Lbr027 # 19f: 166c10
bnez a9, .Lbr018 # 1a2: ecb9
call0 vPortEnterCritical # 1a4: 01b2ffc0
# 1a8: 0000
movi a0, 0x3feffe00 # 1aa: 01a1ff
movi a6, .Ldata001 # 1ad: 61a1ff
movi a7, sdk_NMIIrqIsOn # 1b0: 71a2ff
movi a8, -32 /* 0xffffffe0 */ # 1b3: 6c08
movi a10, 0 /* 0x00000000 */ # 1b5: 0c0a
.Lbr017: memw # 1b7: c02000
l32i a12, a0, 0x200 /* [0x3ff00000] */ # 1ba: c22080
and a12, a12, a8 # 1bd: 80cc10
memw # 1c0: c02000
s32i a12, a0, 0x200 /* a12 -> [0x3ff00000] */ # 1c3: c26080
memw # 1c6: c02000
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 1c9: b22080
bbsi a11, 0, .Lbr017 # 1cc: 07ebe7
l32i a12, a6, 12 /* [.Ldata004] */ # 1cf: c836
.Lbr018: s32i a12, sp, 16 /* [.Ldata004] -> [(local4)] */ # 1d1: c941
mov a2, a12 /* [.Ldata004] */ # 1d3: 2d0c
l32i a4, a12, 28 /* [[.Ldata004]+0x1c] */ # 1d5: 487c
s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata004]+0x1c] */ # 1d7: a97c
l8ui a3, a7, 0 /* [sdk_NMIIrqIsOn] */ # 1d9: 320700
s32i a4, a6, 12 /* [[.Ldata004]+0x1c] -> [.Ldata004] */ # 1dc: 4936
bnez a3, .Lbr019 # 1de: dcf3
memw # 1e0: c02000
movi a6, 0x3feffe00 # 1e3: 6196ff
l32i a5, a6, 0x200 /* [0x3ff00000] */ # 1e6: 522680
movi a7, -32 /* 0xffffffe0 */ # 1e9: 6c07
and a5, a5, a7 # 1eb: 705510
movi a7, 1 /* 0x00000001 */ # 1ee: 0c17
or a5, a5, a7 # 1f0: 705520
memw # 1f3: c02000
s32i a5, a6, 0x200 /* a5 -> [0x3ff00000] */ # 1f6: 526680
call0 vPortExitCritical # 1f9: 019dffc0
# 1fd: 0000
l32i a2, sp, 16 /* [(local4)] */ # 1ff: 2841
.Lbr019: l32i a2, a2, 32 # 201: 2882
movi a3, 0x00200000 # 203: 318fff
l32i a0, a2, 0 # 206: 0802
j .Lbr026 # 208: 462200
.Lbr020: movi a12, 0 /* 0x00000000 */ # 20b: 0c0c
.Lbr021: mov a2, a12 # 20d: 2d0c
l32i a0, sp, 4 /* [(local1)] */ # 20f: 0811
l32i a12, sp, 8 /* [(local2)] */ # 211: c821
addi sp, sp, 32 /* (top of frame) */ # 213: 12c120
ret # 216: 0df0
.Lbr022: s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 218: 2901
bnez a9, .Lbr024 # 21a: ecb9
call0 vPortEnterCritical # 21c: 0196ffc0
# 220: 0000
movi a0, 0x3feffe00 # 222: 0188ff
movi a8, -32 /* 0xffffffe0 */ # 225: 6c08
movi a10, 0 /* 0x00000000 */ # 227: 0c0a
.Lbr023: memw # 229: c02000
l32i a12, a0, 0x200 /* [0x3ff00000] */ # 22c: c22080
and a12, a12, a8 # 22f: 80cc10
memw # 232: c02000
s32i a12, a0, 0x200 /* a12 -> [0x3ff00000] */ # 235: c26080
memw # 238: c02000
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 23b: b22080
bbsi a11, 0, .Lbr023 # 23e: 07ebe7
movi a6, .Ldata001 # 241: 6182ff
movi a7, sdk_NMIIrqIsOn # 244: 7181ff
l32i a12, a6, 0 /* [.Ldata001] */ # 247: c806
.Lbr024: s32i a12, sp, 12 /* [.Ldata001] -> [(local3)] */ # 249: c931
l32i a3, a12, 28 /* [[.Ldata001]+0x1c] */ # 24b: 387c
s32i a3, a6, 0 /* [[.Ldata001]+0x1c] -> [.Ldata001] */ # 24d: 3906
s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata001]+0x1c] */ # 24f: a97c
l8ui a2, a7, 0 /* [sdk_NMIIrqIsOn] */ # 251: 220700
mov a3, a12 /* [.Ldata001] */ # 254: 3d0c
bnez a2, .Lbr025 # 256: dcf2
memw # 258: c02000
movi a5, 0x3feffe00 # 25b: 517dff
l32i a4, a5, 0x200 /* [0x3ff00000] */ # 25e: 422580
movi a6, -32 /* 0xffffffe0 */ # 261: 6c06
and a4, a4, a6 # 263: 604410
movi a6, 1 /* 0x00000001 */ # 266: 0c16
or a4, a4, a6 # 268: 604420
memw # 26b: c02000
s32i a4, a5, 0x200 /* a4 -> [0x3ff00000] */ # 26e: 426580
call0 vPortExitCritical # 271: 0181ffc0
# 275: 0000
l32i a3, sp, 12 /* [(local3)] */ # 277: 3831
.Lbr025: l32i a7, sp, 0 /* [(local0)] */ # 279: 7801
l32i a9, a3, 4 # 27b: 9813
s32i a7, a3, 0 # 27d: 7903
l16ui a8, a7, 10 /* [[(local0)]+0xa] */ # 27f: 821705
l32i a7, a7, 4 /* [[(local0)]+0x4] */ # 282: 7817
s32i a7, a9, 4 # 284: 7919
s16i a8, a3, 22 # 286: 82530b
addi a7, a7, -36 /* [[(local0)]+0x4]-0x24 */ # 289: 72c7dc
l32i a2, a3, 32 # 28c: 2883
s32i a7, a3, 16 # 28e: 7943
l32i a0, a2, 0 # 290: 0802
movi a3, 0x00002000 # 292: 3170ff
.Lbr026: extui a8, a0, 0, 6 # 295: 008054
srli a9, a0, 6 # 298: 009641
or a9, a9, a3 # 29b: 309920
slli a9, a9, 6 # 29e: a09911
or a8, a8, a9 # 2a1: 908820
s32i a8, a2, 0 # 2a4: 8902
j .Lbr021 # 2a6: c6d8ff
.Lbr027: movi a12, 0 /* 0x00000000 */ # 2a9: 0c0c
j .Lbr021 # 2ab: 86d7ff
.literal_position # 2b0: 00000000
# 2b4: 00feef3f
# 2b8: 00000000
# 2bc: 00000000
# 2c0: 00feef3f
# 2c4: 00000000
# 2c8: 00feef3f
# 2cc: 00000000
# 2d0: 00000000
# 2d4: 00feef3f
# 2d8: 00000000
# 2dc: 00feef3f
# 2e0: 00000000
# 2e4: 00000000
# 2e8: 00feef3f
# 2ec: 00000000
# 2f0: 00feef3f
# 2f4: 00000000
# 2f8: 00000000
# 2fc: 00feef3f
# 300: 00feef3f
# 304: 00000000
# 308: 00feef3f
# 30c: 00000000
# 310: 00000000
# 314: 00000000
# 318: 00000000
# 31c: 00000000
# 320: 00000000
# 324: 00000000
# 328: 00000000
# 32c: 00000000
# 330: 00000000
# 334: 00000000
# 338: 00000000
# 33c: 00000000
# 340: 00000000
# 344: 00000000
# 348: 00000000
# 34c: 00000000
# Function @ .irom0.text+0x350
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_esf_buf_recycle
.type sdk_esf_buf_recycle, @function
sdk_esf_buf_recycle:
addi a4, a3, -1 /* arg1-0x1 */ # 350: 0b43
addi sp, sp, -16 /* (local0) */ # 352: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 355: 0911
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 357: 2901
beqz a4, .Lbr039 # 359: 16841c
addi a9, a3, -2 /* arg1-0x2 */ # 35c: 92c3fe
beqz a9, .Lbr039 # 35f: 16291c
bnei a3, 4, .Lbr030 # 362: 66436c
l32i a2, a2, 32 /* [arg0+0x20] */ # 365: 2882
movi a3, 0 /* 0x00000000 */ # 367: 0c03
movi a4, 24 /* 0x00000018 */ # 369: 1c84
call0 memset # 36b: 01eaffc0
# 36f: 0000
movi a5, sdk_NMIIrqIsOn # 371: 51cfff
l8ui a3, a5, 0 /* [sdk_NMIIrqIsOn] */ # 374: 320500
bnez a3, .Lbr029 # 377: ec43
call0 vPortEnterCritical # 379: 01e7ffc0
# 37d: 0000
.Lbr028: memw # 37f: c02000
movi a3, 0x3feffe00 # 382: 31ccff
l32i a5, a3, 0x200 /* [0x3ff00000] */ # 385: 522380
movi a0, -32 /* 0xffffffe0 */ # 388: 6c00
and a5, a5, a0 # 38a: 005510
memw # 38d: c02000
s32i a5, a3, 0x200 /* a5 -> [0x3ff00000] */ # 390: 526380
memw # 393: c02000
l32i a4, a3, 0x200 /* [0x3ff00000] */ # 396: 422380
bbsi a4, 0, .Lbr028 # 399: 07e4e2
movi a5, sdk_NMIIrqIsOn # 39c: 51c7ff
.Lbr029: movi a8, .Ldata001 # 39f: 81c7ff
l32i a7, sp, 0 /* [(local0)] */ # 3a2: 7801
l32i a9, a8, 4 /* [.Ldata002] */ # 3a4: 9818
s32i a9, a7, 28 /* [.Ldata002] -> [[(local0)]+0x1c] */ # 3a6: 9977
l8ui a6, a5, 0 /* [sdk_NMIIrqIsOn] */ # 3a8: 620500
s32i a7, a8, 4 /* [(local0)] -> [.Ldata002] */ # 3ab: 7918
bnez a6, .Lbr042 # 3ad: 56f61d
memw # 3b0: c02000
movi a11, 0x3feffe00 # 3b3: b1c3ff
l32i a10, a11, 0x200 /* [0x3ff00000] */ # 3b6: a22b80
movi a0, -32 /* 0xffffffe0 */ # 3b9: 6c00
and a10, a10, a0 # 3bb: 00aa10
movi a0, 1 /* 0x00000001 */ # 3be: 0c10
or a10, a10, a0 # 3c0: 00aa20
memw # 3c3: c02000
s32i a10, a11, 0x200 /* a10 -> [0x3ff00000] */ # 3c6: a26b80
call0 vPortExitCritical # 3c9: 01d4ffc0
# 3cd: 0000
j .Lbr042 # 3cf: 466f00
.Lbr030: bnei a3, 5, .Lbr033 # 3d2: 66536c
l32i a2, a2, 32 /* [arg0+0x20] */ # 3d5: 2882
movi a3, 0 /* 0x00000000 */ # 3d7: 0c03
movi a4, 24 /* 0x00000018 */ # 3d9: 1c84
call0 memset # 3db: 01d1ffc0
# 3df: 0000
movi a3, sdk_NMIIrqIsOn # 3e1: 31b8ff
l8ui a3, a3, 0 /* [sdk_NMIIrqIsOn] */ # 3e4: 320300
bnez a3, .Lbr032 # 3e7: ec13
call0 vPortEnterCritical # 3e9: 01ceffc0
# 3ed: 0000
.Lbr031: memw # 3ef: c02000
movi a4, 0x3feffe00 # 3f2: 41b5ff
l32i a5, a4, 0x200 /* [0x3ff00000] */ # 3f5: 522480
movi a6, -32 /* 0xffffffe0 */ # 3f8: 6c06
and a5, a5, a6 # 3fa: 605510
memw # 3fd: c02000
s32i a5, a4, 0x200 /* a5 -> [0x3ff00000] */ # 400: 526480
memw # 403: c02000
l32i a4, a4, 0x200 /* [0x3ff00000] */ # 406: 422480
bbsi a4, 0, .Lbr031 # 409: 07e4e2
.Lbr032: movi a7, sdk_NMIIrqIsOn # 40c: 71b1ff
movi a9, .Ldata001 # 40f: 91afff
l32i a8, sp, 0 /* [(local0)] */ # 412: 8801
l32i a10, a9, 8 /* [.Ldata003] */ # 414: a829
s32i a10, a8, 28 /* [.Ldata003] -> [[(local0)]+0x1c] */ # 416: a978
l8ui a7, a7, 0 /* [sdk_NMIIrqIsOn] */ # 418: 720700
s32i a8, a9, 8 /* [(local0)] -> [.Ldata003] */ # 41b: 8929
bnez a7, .Lbr042 # 41d: 56f716
memw # 420: c02000
movi a0, 0x3feffe00 # 423: 01acff
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 426: b22080
movi a2, -32 /* 0xffffffe0 */ # 429: 6c02
and a11, a11, a2 # 42b: 20bb10
movi a2, 1 /* 0x00000001 */ # 42e: 0c12
or a11, a11, a2 # 430: 20bb20
memw # 433: c02000
s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 436: b26080
call0 vPortExitCritical # 439: 01bbffc0
# 43d: 0000
j .Lbr042 # 43f: 465300
.Lbr033: bnei a3, 6, .Lbr036 # 442: 66636c
l32i a2, a2, 32 /* [arg0+0x20] */ # 445: 2882
movi a3, 0 /* 0x00000000 */ # 447: 0c03
movi a4, 24 /* 0x00000018 */ # 449: 1c84
call0 memset # 44b: 01b8ffc0
# 44f: 0000
movi a3, sdk_NMIIrqIsOn # 451: 31a1ff
l8ui a3, a3, 0 /* [sdk_NMIIrqIsOn] */ # 454: 320300
bnez a3, .Lbr035 # 457: ec13
call0 vPortEnterCritical # 459: 01b5ffc0
# 45d: 0000
.Lbr034: memw # 45f: c02000
movi a4, 0x3feffe00 # 462: 419eff
l32i a5, a4, 0x200 /* [0x3ff00000] */ # 465: 522480
movi a6, -32 /* 0xffffffe0 */ # 468: 6c06
and a5, a5, a6 # 46a: 605510
memw # 46d: c02000
s32i a5, a4, 0x200 /* a5 -> [0x3ff00000] */ # 470: 526480
memw # 473: c02000
l32i a4, a4, 0x200 /* [0x3ff00000] */ # 476: 422480
bbsi a4, 0, .Lbr034 # 479: 07e4e2
.Lbr035: movi a7, sdk_NMIIrqIsOn # 47c: 719aff
movi a9, .Ldata001 # 47f: 9198ff
l32i a8, sp, 0 /* [(local0)] */ # 482: 8801
l32i a10, a9, 12 /* [.Ldata004] */ # 484: a839
s32i a10, a8, 28 /* [.Ldata004] -> [[(local0)]+0x1c] */ # 486: a978
l8ui a7, a7, 0 /* [sdk_NMIIrqIsOn] */ # 488: 720700
s32i a8, a9, 12 /* [(local0)] -> [.Ldata004] */ # 48b: 8939
bnez a7, .Lbr042 # 48d: 56f70f
memw # 490: c02000
movi a0, 0x3feffe00 # 493: 0195ff
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 496: b22080
movi a2, -32 /* 0xffffffe0 */ # 499: 6c02
and a11, a11, a2 # 49b: 20bb10
movi a2, 1 /* 0x00000001 */ # 49e: 0c12
or a11, a11, a2 # 4a0: 20bb20
memw # 4a3: c02000
s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 4a6: b26080
call0 vPortExitCritical # 4a9: 01a2ffc0
# 4ad: 0000
j .Lbr042 # 4af: 463700
.Lbr036: addi a4, a3, -7 /* arg1-0x7 */ # 4b2: 42c3f9
bnez a4, .Lbr042 # 4b5: 56740d
l32i a2, a2, 32 /* [arg0+0x20] */ # 4b8: 2882
movi a3, 0 /* 0x00000000 */ # 4ba: 0c03
movi a4, 12 /* 0x0000000c */ # 4bc: 0cc4
call0 memset # 4be: 019effc0
# 4c2: 0000
movi a3, sdk_NMIIrqIsOn # 4c4: 318aff
l8ui a4, a3, 0 /* [sdk_NMIIrqIsOn] */ # 4c7: 420300
bnez a4, .Lbr038 # 4ca: ec44
call0 vPortEnterCritical # 4cc: 019cffc0
# 4d0: 0000
.Lbr037: memw # 4d2: c02000
movi a0, 0x3feffe00 # 4d5: 0186ff
l32i a7, a0, 0x200 /* [0x3ff00000] */ # 4d8: 722080
movi a5, -32 /* 0xffffffe0 */ # 4db: 6c05
and a7, a7, a5 # 4dd: 507710
memw # 4e0: c02000
s32i a7, a0, 0x200 /* a7 -> [0x3ff00000] */ # 4e3: 726080
memw # 4e6: c02000
l32i a6, a0, 0x200 /* [0x3ff00000] */ # 4e9: 622080
bbsi a6, 0, .Lbr037 # 4ec: 07e6e2
movi a3, sdk_NMIIrqIsOn # 4ef: 3181ff
.Lbr038: movi a10, .Ldata001 # 4f2: a181ff
l32i a9, sp, 0 /* [(local0)] */ # 4f5: 9801
l32i a11, a10, 16 /* [.Ldata005] */ # 4f7: b84a
s32i a11, a9, 28 /* [.Ldata005] -> [[(local0)]+0x1c] */ # 4f9: b979
l8ui a8, a3, 0 /* [sdk_NMIIrqIsOn] */ # 4fb: 820300
s32i a9, a10, 16 /* [(local0)] -> [.Ldata005] */ # 4fe: 994a
bnez a8, .Lbr042 # 500: 56c808
memw # 503: c02000
movi a2, 0x3feffe00 # 506: 217dff
l32i a0, a2, 0x200 /* [0x3ff00000] */ # 509: 022280
movi a3, -32 /* 0xffffffe0 */ # 50c: 6c03
and a0, a0, a3 # 50e: 300010
movi a3, 1 /* 0x00000001 */ # 511: 0c13
or a0, a0, a3 # 513: 300020
memw # 516: c02000
s32i a0, a2, 0x200 /* a0 -> [0x3ff00000] */ # 519: 026280
call0 vPortExitCritical # 51c: 0189ffc0
# 520: 0000
j .Lbr042 # 522: 861a00
.Lbr039: movi a3, 0 /* 0x00000000 */ # 525: 0c03
l32i a2, sp, 0 /* [(local0)] */ # 527: 2801
movi a4, 24 /* 0x00000018 */ # 529: 1c84
l32i a2, a2, 32 /* [[(local0)]+0x20] */ # 52b: 2882
call0 memset # 52d: 0185ffc0
# 531: 0000
movi a5, sdk_NMIIrqIsOn # 533: 5174ff
movi a0, 0x3feffe00 # 536: 0172ff
l8ui a4, a5, 0 /* [sdk_NMIIrqIsOn] */ # 539: 420500
movi a3, -32 /* 0xffffffe0 */ # 53c: 6c03
bnez a4, .Lbr041 # 53e: ec44
call0 vPortEnterCritical # 540: 0182ffc0
# 544: 0000
movi a0, 0x3feffe00 # 546: 0170ff
movi a3, -32 /* 0xffffffe0 */ # 549: 6c03
.Lbr040: memw # 54b: c02000
l32i a6, a0, 0x200 /* [0x3ff00000] */ # 54e: 622080
and a6, a6, a3 # 551: 306610
memw # 554: c02000
s32i a6, a0, 0x200 /* a6 -> [0x3ff00000] */ # 557: 626080
memw # 55a: c02000
l32i a5, a0, 0x200 /* [0x3ff00000] */ # 55d: 522080
bbsi a5, 0, .Lbr040 # 560: 07e5e7
movi a5, sdk_NMIIrqIsOn # 563: 516aff
.Lbr041: movi a9, .Ldata001 # 566: 916aff
l32i a8, sp, 0 /* [(local0)] */ # 569: 8801
l32i a10, a9, 0 /* [.Ldata001] */ # 56b: a809
s32i a10, a8, 28 /* [.Ldata001] -> [[(local0)]+0x1c] */ # 56d: a978
l8ui a7, a5, 0 /* [sdk_NMIIrqIsOn] */ # 56f: 720500
s32i a8, a9, 0 /* [(local0)] -> [.Ldata001] */ # 572: 8909
bnez a7, .Lbr042 # 574: dc87
memw # 576: c02000
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 579: b22080
movi a2, 1 /* 0x00000001 */ # 57c: 0c12
and a11, a11, a3 # 57e: 30bb10
or a11, a11, a2 # 581: 20bb20
memw # 584: c02000
s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 587: b26080
call0 vPortExitCritical # 58a: 0170ffc0
# 58e: 0000
.Lbr042: l32i a0, sp, 4 /* [(local1)] */ # 590: 0811
addi sp, sp, 16 /* (top of frame) */ # 592: 12c110
ret # 595: 0df0
.literal_position # 598: 400f0000
# 59c: 20000000
# 5a0: 00000000
# 5a4: 80040000
# 5a8: 00f00000
# 5ac: e00c0000
# 5b0: a0110000
# Function @ .irom0.text+0x5b4
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.balign 4
.global sdk_esf_buf_setup
.type sdk_esf_buf_setup, @function
sdk_esf_buf_setup:
addi sp, sp, -32 /* (local0) */ # 5b4: 12c1e0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5b7: 0901
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 5b9: e931
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 5bb: c911
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 5bd: f941
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 5bf: d921
movi a15, 60 /* 0x0000003c */ # 5c1: 3ccf
movi a13, .Ldata010 # 5c3: d1f5ff
movi a12, .Ldata007 # 5c6: c1f5ff
movi a14, 1 /* 0x00000001 */ # 5c9: 0c1e
.Lbr043: movi a4, sdk_wDevCtrl # 5cb: 41f5ff
mov a2, a12 # 5ce: 2d0c
l32i a4, a4, 40 /* [sdk_wDevCtrl+0x28] */ # 5d0: 48a4
movi a3, 1 /* 0x00000001 */ # 5d2: 0c13
add a5, a15, a4 # 5d4: 4a5f
s32i a5, a12, 4 # 5d6: 591c
s32i a5, a12, 8 # 5d8: 592c
l32i a4, a4, 4 /* [[sdk_wDevCtrl+0x28]+0x4] */ # 5da: 4814
s32i a4, a12, 16 # 5dc: 494c
s16i a14, a12, 12 # 5de: e25c06
s32i a13, a12, 32 # 5e1: d98c
call0 sdk_esf_buf_recycle # 5e3: 050000
addi a12, a12, 36 # 5e6: c2cc24
addi a13, a13, 24 # 5e9: d2cd18
addi a15, a15, -12 # 5ec: f2cff4
bgei a15, 1, .Lbr043 # 5ef: e61fd8
movi a14, 8 /* 0x00000008 */ # 5f2: 0c8e
movi a15, 0x0000f000 # 5f4: f1edff
movi a7, .Ldata008 # 5f7: 71ebff
s32i a7, sp, 20 /* .Ldata008 -> [(local5)] */ # 5fa: 7951
.Lbr044: memw # 5fc: c02000
l32i a8, sp, 20 /* [(local5)] */ # 5ff: 8851
l16ui a10, a8, 0 /* [[(local5)]] */ # 601: a21800
movi a11, 256 /* 0x00000100 */ # 604: b2a100
and a10, a10, a15 # 607: f0aa10
or a10, a10, a11 # 60a: b0aa20
memw # 60d: c02000
s32i a13, a12, 32 # 610: d98c
mov a2, a12 # 612: 2d0c
movi a3, 4 /* 0x00000004 */ # 614: 0c43
s16i a10, a8, 0 /* a10 -> [[(local5)]] */ # 616: a25800
s32i a8, a12, 4 # 619: 891c
s32i a8, a12, 8 # 61b: 892c
movi a9, 1 /* 0x00000001 */ # 61d: 0c19
s16i a9, a12, 12 # 61f: 925c06
addi a8, a8, 12 /* [(local5)]+0xc */ # 622: cb88
s32i a8, a12, 16 # 624: 894c
call0 sdk_esf_buf_recycle # 626: 050000
addi a12, a12, 36 # 629: c2cc24
addi a13, a13, 24 # 62c: d2cd18
addi a14, a14, -1 # 62f: 0bee
l32i a11, sp, 20 /* [(local5)] */ # 631: b851
movi a0, 268 /* 0x0000010c */ # 633: 02a10c
add a11, a11, a0 /* [(local5)]+0x10c */ # 636: 0abb
s32i a11, sp, 20 /* [(local5)]+0x10c -> [(local5)] */ # 638: b951
bgei a14, 1, .Lbr044 # 63a: e61ebe
movi a14, 8 /* 0x00000008 */ # 63d: 0c8e
movi a3, .Ldata009 # 63f: 31dbff
s32i a3, sp, 24 /* .Ldata009 -> [(local6)] */ # 642: 3961
.Lbr045: memw # 644: c02000
l32i a4, sp, 24 /* [(local6)] */ # 647: 4861
l16ui a6, a4, 0 /* [[(local6)]] */ # 649: 621400
movi a7, 64 /* 0x00000040 */ # 64c: 4c07
and a6, a6, a15 # 64e: f06610
or a6, a6, a7 # 651: 706620
memw # 654: c02000
s32i a13, a12, 32 # 657: d98c
mov a2, a12 # 659: 2d0c
movi a3, 5 /* 0x00000005 */ # 65b: 0c53
s16i a6, a4, 0 /* a6 -> [[(local6)]] */ # 65d: 625400
s32i a4, a12, 4 # 660: 491c
s32i a4, a12, 8 # 662: 492c
movi a5, 1 /* 0x00000001 */ # 664: 0c15
s16i a5, a12, 12 # 666: 525c06
addi a4, a4, 12 /* [(local6)]+0xc */ # 669: cb44
s32i a4, a12, 16 # 66b: 494c
call0 sdk_esf_buf_recycle # 66d: 050000
addi a12, a12, 36 # 670: c2cc24
addi a13, a13, 24 # 673: d2cd18
l32i a7, sp, 24 /* [(local6)] */ # 676: 7861
addi a14, a14, -1 # 678: 0bee
addi a7, a7, 76 /* [(local6)]+0x4c */ # 67a: 72c74c
s32i a7, sp, 24 /* [(local6)]+0x4c -> [(local6)] */ # 67d: 7961
bgei a14, 1, .Lbr045 # 67f: e61ec1
movi a14, 4 /* 0x00000004 */ # 682: 0c4e
.Lbr046: s32i a13, a12, 32 # 684: d98c
mov a2, a12 # 686: 2d0c
movi a3, 6 /* 0x00000006 */ # 688: 0c63
call0 sdk_esf_buf_recycle # 68a: 050000
addi a12, a12, 36 # 68d: c2cc24
addi a13, a13, 24 # 690: d2cd18
addi a14, a14, -1 # 693: 0bee
bgei a14, 1, .Lbr046 # 695: e61eeb
movi a14, 6 /* 0x00000006 */ # 698: 0c6e
movi a13, .Label001 # 69a: d1c5ff
.Lbr047: s32i a13, a12, 32 # 69d: d98c
mov a2, a12 # 69f: 2d0c
movi a3, 7 /* 0x00000007 */ # 6a1: 0c73
call0 sdk_esf_buf_recycle # 6a3: 050000
addi a12, a12, 36 # 6a6: c2cc24
addi a13, a13, 12 # 6a9: cbdd
addi a14, a14, -1 # 6ab: 0bee
bgei a14, 1, .Lbr047 # 6ad: e61eec
l32i a12, sp, 4 /* [(local1)] */ # 6b0: c811
l32i a13, sp, 8 /* [(local2)] */ # 6b2: d821
l32i a14, sp, 12 /* [(local3)] */ # 6b4: e831
l32i a15, sp, 16 /* [(local4)] */ # 6b6: f841
l32i a0, sp, 0 /* [(local0)] */ # 6b8: 0801
addi sp, sp, 32 /* (top of frame) */ # 6ba: 12c120
ret # 6bd: 0df0

View file

@ -0,0 +1,600 @@
.section .bss, "aw", @nobits
.global sdk_interface_mask
.type sdk_interface_mask, @object
sdk_interface_mask:
.byte 0x00
.space 15
.global sdk_if_ctrl
.type sdk_if_ctrl, @object
sdk_if_ctrl:
.space 32
.section .irom0.text, "ax", @progbits
.literal_position # 0: 10000000
# Function @ .irom0.text+0x4
.balign 4
.global sdk_ic_get_addr
.type sdk_ic_get_addr, @function
sdk_ic_get_addr:
movi a3, sdk_if_ctrl # 4: 31ffff
slli a2, a2, 4 # 7: c02211
add a2, a3, a2 # a: 2a23
ret # c: 0df0
.literal_position # 10: 10000000
# Function @ .irom0.text+0x14
.balign 4
.global sdk_ic_set_opmode
.type sdk_ic_set_opmode, @function
sdk_ic_set_opmode:
movi a5, sdk_if_ctrl # 14: 51ffff
slli a6, a2, 4 # 17: c06211
add a5, a5, a6 # 1a: 6a55
s32i a3, a5, 8 # 1c: 3925
s8i a4, a5, 12 # 1e: 42450c
ret /* arg0 */ # 21: 0df0
.literal_position # 24: 10000000
# 28: 00000000
# 2c: 00000000
# 30: 00000000
# Function @ .irom0.text+0x34
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.balign 4
.global sdk_ic_enable_interface
.type sdk_ic_enable_interface, @function
sdk_ic_enable_interface:
addi sp, sp, -16 /* (local0) */ # 34: 12c1f0
s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 37: 5911
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 39: 0921
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 3b: c931
s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 3d: 4901
mov a12, a2 /* arg0 */ # 3f: cd02
movi a2, sdk_if_ctrl # 41: 21f8ff
slli a4, a12, 4 # 44: c04c11
add a2, a2, a4 # 47: 4a22
movi a4, 6 /* 0x00000006 */ # 49: 0c64
call0 memcpy # 4b: 01f8ffc0
# 4f: 0000
mov a2, a12 /* arg0 */ # 51: 2d0c
l32i a3, sp, 0 /* [(local0)] */ # 53: 3801
l32i a4, sp, 4 /* [(local1)] */ # 55: 4811
call0 sdk_ic_set_opmode # 57: 050000
ssl a12 # 5a: 001c40
movi a5, sdk_interface_mask # 5d: 51f2ff
movi a3, 1 /* 0x00000001 */ # 60: 0c13
l8ui a2, a5, 0 /* [sdk_interface_mask] */ # 62: 220500
sll a3, a3 # 65: 0033a1
or a2, a2, a3 # 68: 302220
extui a2, a2, 0, 8 # 6b: 202074
s8i a2, a5, 0 /* a2 -> [sdk_interface_mask] */ # 6e: 224500
call0 __popcountsi2 # 71: 01efffc0
# 75: 0000
extui a2, a2, 0, 8 # 77: 202074
l32i a12, sp, 12 /* [(local3)] */ # 7a: c831
l32i a0, sp, 8 /* [(local2)] */ # 7c: 0821
addi sp, sp, 16 /* (top of frame) */ # 7e: 12c110
ret # 81: 0df0
.literal_position # 84: 00000000
# Function @ .irom0.text+0x88
.balign 4
.global sdk_ic_interface_enabled
.type sdk_ic_interface_enabled, @function
sdk_ic_interface_enabled:
movi a3, sdk_interface_mask # 88: 31ffff
l8ui a3, a3, 0 /* [sdk_interface_mask] */ # 8b: 320300
ssr a2 # 8e: 000240
srl a2, a3 # 91: 302091
extui a2, a2, 0, 1 # 94: 202004
ret # 97: 0df0
.literal_position # 9c: 00000000
# a0: 00000000
# a4: 00000000
# a8: 00000000
# ac: 00000000
# Function @ .irom0.text+0xb0
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_ic_disable_interface
.type sdk_ic_disable_interface, @function
sdk_ic_disable_interface:
addi sp, sp, -16 /* (local0) */ # b0: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # b3: 0901
movi a0, sdk_interface_mask # b5: 01f9ff
movi a4, 1 /* 0x00000001 */ # b8: 0c14
l8ui a0, a0, 0 /* [sdk_interface_mask] */ # ba: 020000
ssr a2 # bd: 000240
srl a3, a0 # c0: 003091
bbci a3, 0, .Lbr001 # c3: 07631f
ssl a2 # c6: 001240
sll a3, a4 # c9: 0034a1
movi a4, -1 /* 0xffffffff */ # cc: 7cf4
xor a3, a3, a4 # ce: 403330
movi a4, sdk_interface_mask # d1: 41f3ff
and a3, a0, a3 # d4: 303010
s8i a3, a4, 0 /* a3 -> [sdk_interface_mask] */ # d7: 324400
call0 sdk_rc_disable_trc_by_interface # da: 01f3ffc0
# de: 0000
movi a0, sdk_interface_mask # e0: 01f1ff
l8ui a0, a0, 0 /* [sdk_interface_mask] */ # e3: 020000
.Lbr001: mov a2, a0 /* [sdk_interface_mask] */ # e6: 2d00
call0 __popcountsi2 # e8: 01f1ffc0
# ec: 0000
extui a2, a2, 0, 8 # ee: 202074
l32i a0, sp, 0 /* [(local0)] */ # f1: 0801
addi sp, sp, 16 /* (top of frame) */ # f3: 12c110
ret # f6: 0df0
.literal_position # f8: 10000000
# Function @ .irom0.text+0xfc
.balign 4
.global sdk_ic_is_pure_sta
.type sdk_ic_is_pure_sta, @function
sdk_ic_is_pure_sta:
movi a4, sdk_if_ctrl # fc: 41ffff
slli a5, a2, 4 # ff: c05211
add a4, a4, a5 # 102: 5a44
l32i a3, a4, 8 # 104: 3824
movi a2, 0 /* 0x00000000 */ # 106: 0c02
beqi a3, 1, .Lbr002 # 108: 261307
l8ui a7, a4, 12 # 10b: 72040c
movi a6, 1 /* 0x00000001 */ # 10e: 0c16
moveqz a2, a6, a7 # 110: 702683
.Lbr002: extui a2, a2, 0, 8 # 113: 202074
ret # 116: 0df0
.literal_position # 118: 10000000
# Function @ .irom0.text+0x11c
.balign 4
.global sdk_ic_get_ptk_alg
.type sdk_ic_get_ptk_alg, @function
sdk_ic_get_ptk_alg:
movi a3, sdk_if_ctrl # 11c: 31ffff
slli a2, a2, 4 # 11f: c02211
add a2, a3, a2 # 122: 2a23
l8ui a2, a2, 13 # 124: 22020d
ret # 127: 0df0
.literal_position # 12c: 10000000
# Function @ .irom0.text+0x130
.balign 4
.global sdk_ic_get_gtk_alg
.type sdk_ic_get_gtk_alg, @function
sdk_ic_get_gtk_alg:
movi a3, sdk_if_ctrl # 130: 31ffff
slli a2, a2, 4 # 133: c02211
add a2, a3, a2 # 136: 2a23
l8ui a2, a2, 14 # 138: 22020e
ret # 13b: 0df0
.literal_position # 140: 10000000
# Function @ .irom0.text+0x144
.balign 4
.global sdk_ic_set_ptk_alg
.type sdk_ic_set_ptk_alg, @function
sdk_ic_set_ptk_alg:
movi a4, sdk_if_ctrl # 144: 41ffff
slli a5, a2, 4 # 147: c05211
add a4, a4, a5 # 14a: 5a44
s8i a3, a4, 13 # 14c: 32440d
ret /* arg0 */ # 14f: 0df0
.literal_position # 154: 10000000
# Function @ .irom0.text+0x158
.balign 4
.global sdk_ic_set_gtk_alg
.type sdk_ic_set_gtk_alg, @function
sdk_ic_set_gtk_alg:
movi a4, sdk_if_ctrl # 158: 41ffff
slli a5, a2, 4 # 15b: c05211
add a4, a4, a5 # 15e: 5a44
s8i a3, a4, 14 # 160: 32440e
ret /* arg0 */ # 163: 0df0
.literal_position # 168: 10000000
# Function @ .irom0.text+0x16c
.balign 4
.global sdk_ic_interface_is_p2p
.type sdk_ic_interface_is_p2p, @function
sdk_ic_interface_is_p2p:
movi a3, sdk_if_ctrl # 16c: 31ffff
slli a2, a2, 4 # 16f: c02211
add a2, a3, a2 # 172: 2a23
l8ui a2, a2, 12 # 174: 22020c
ret # 177: 0df0
.literal_position # 17c: 00000000
# 180: 00000000
# Function @ .irom0.text+0x184
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.Lfunc001: movi a3, 0 /* 0x00000000 */ # 184: 0c03
addi sp, sp, -16 /* (local0) */ # 186: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 189: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18b: 0901
mov a12, a2 /* arg0 */ # 18d: cd02
call0 sdk_ic_set_ptk_alg # 18f: 050000
mov a2, a12 /* arg0 */ # 192: 2d0c
movi a3, 0 /* 0x00000000 */ # 194: 0c03
call0 sdk_ic_set_gtk_alg # 196: 050000
mov a2, a12 /* arg0 */ # 199: 2d0c
call0 sdk_wDev_Crypto_Disable # 19b: 01f8ffc0
# 19f: 0000
mov a3, a12 /* arg0 */ # 1a1: 3d0c
movi a2, 1 /* 0x00000001 */ # 1a3: 0c12
movi a4, 0 /* 0x00000000 */ # 1a5: 0c04
call0 sdk_wDev_SetRxPolicy # 1a7: 01f6ffc0
# 1ab: 0000
l32i a12, sp, 4 /* [(local1)] */ # 1ad: c811
l32i a0, sp, 0 /* [(local0)] */ # 1af: 0801
addi sp, sp, 16 /* (top of frame) */ # 1b1: 12c110
ret # 1b4: 0df0
.literal_position # 1b8: 00000000
# 1bc: 00000000
# 1c0: 00000000
# 1c4: 00000000
# 1c8: 00000000
# Function @ .irom0.text+0x1cc
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.Lfunc002: addi sp, sp, -16 /* (local0) */ # 1cc: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1cf: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d1: 0901
mov a12, a2 /* arg0 */ # 1d3: cd02
movi a2, .Lstr001 # 1d5: 21f8ff
mov a3, a12 /* arg0 */ # 1d8: 3d0c
call0 printf # 1da: 01f8ffc0
# 1de: 0000
movi a2, 0 /* 0x00000000 */ # 1e0: 0c02
mov a3, a12 /* arg0 */ # 1e2: 3d0c
movi a4, 0 /* 0x00000000 */ # 1e4: 0c04
call0 sdk_wDev_SetRxPolicy # 1e6: 01f6ffc0
# 1ea: 0000
mov a2, a12 /* arg0 */ # 1ec: 2d0c
call0 sdk_ic_disable_interface # 1ee: 050000
bnez a2, .Lbr003 # 1f1: cca2
call0 sdk_wDevDisableRx # 1f3: 01f4ffc0
# 1f7: 0000
call0 sdk_pm_force_scan_unlock # 1f9: 01f3ffc0
# 1fd: 0000
.Lbr003: l32i a12, sp, 4 /* [(local1)] */ # 1ff: c811
l32i a0, sp, 0 /* [(local0)] */ # 201: 0801
addi sp, sp, 16 /* (top of frame) */ # 203: 12c110
ret # 206: 0df0
.literal_position # 208: 0c000000
# 20c: 18000000
# 210: 00000000
# 214: 00000000
# 218: 00000000
# 21c: 00000000
# Function @ .irom0.text+0x220
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.balign 4
.global sdk_ic_set_vif
.type sdk_ic_set_vif, @function
sdk_ic_set_vif:
addi sp, sp, -32 /* (local0) */ # 220: 12c1e0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 223: 0921
s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 225: 5911
s32i a6, sp, 0 /* arg4 -> [(local0)] */ # 227: 6901
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 229: c931
s32i a13, sp, 16 /* a13 -> [(local4)] */ # 22b: d941
mov a12, a2 /* arg0 */ # 22d: cd02
mov a13, a4 /* arg2 */ # 22f: dd04
bnei a3, 2, .Lbr004 # 231: 662316
movi a2, .Lstr002 # 234: 21f5ff
mov a3, a12 /* arg0 */ # 237: 3d0c
call0 printf # 239: 01f5ffc0
# 23d: 0000
mov a2, a12 /* arg0 */ # 23f: 2d0c
l32i a3, sp, 4 /* [(local1)] */ # 241: 3811
l32i a4, sp, 0 /* [(local0)] */ # 243: 4801
call0 sdk_ic_set_opmode # 245: 050000
j .Lbr007 # 248: 860d00
.Lbr004: bnei a3, 1, .Lbr006 # 24b: 661330
movi a2, .Lstr003 # 24e: 21efff
mov a3, a12 /* arg0 */ # 251: 3d0c
call0 printf # 253: 01f0ffc0
# 257: 0000
mov a2, a12 /* arg0 */ # 259: 2d0c
mov a3, a13 /* arg2 */ # 25b: 3d0d
call0 sdk_wDev_SetMacAddress # 25d: 01eeffc0
# 261: 0000
mov a3, a13 /* arg2 */ # 263: 3d0d
mov a2, a12 /* arg0 */ # 265: 2d0c
l32i a4, sp, 4 /* [(local1)] */ # 267: 4811
l32i a5, sp, 0 /* [(local0)] */ # 269: 5801
call0 sdk_ic_enable_interface # 26b: 050000
bnei a2, 1, .Lbr005 # 26e: 661205
call0 sdk_wDevEnableRx # 271: 01eaffc0
# 275: 0000
.Lbr005: mov a2, a12 /* arg0 */ # 277: 2d0c
call0 .Lfunc001 # 279: 85f0ff
j .Lbr007 # 27c: 860000
.Lbr006: call0 .Lfunc002 # 27f: c5f4ff
.Lbr007: l32i a12, sp, 12 /* [(local3)] */ # 282: c831
l32i a13, sp, 16 /* [(local4)] */ # 284: d841
l32i a0, sp, 8 /* [(local2)] */ # 286: 0821
addi sp, sp, 32 /* (top of frame) */ # 288: 12c120
ret # 28b: 0df0
.literal_position # 290: 24000000
# 294: 00000000
# 298: 00feef3f
# 29c: 00000000
# 2a0: 00000000
# 2a4: 00000000
# 2a8: 00000000
# 2ac: 00000000
# 2b0: 00000000
# 2b4: 00000000
# Function @ .irom0.text+0x2b8
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.balign 4
.global sdk_ic_set_sta
.type sdk_ic_set_sta, @function
sdk_ic_set_sta:
addi sp, sp, -32 /* (local0) */ # 2b8: 12c1e0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 2bb: c921
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 2bd: 0911
s32i a14, sp, 16 /* a14 -> [(local4)] */ # 2bf: e941
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 2c1: d931
mov a14, a6 /* arg4 */ # 2c3: ed06
mov a13, a2 /* arg0 */ # 2c5: dd02
beqz a3, .Lbr010 # 2c7: 169308
mov a3, a4 /* arg2 */ # 2ca: 3d04
s32i a7, sp, 0 /* arg5 -> [(local0)] */ # 2cc: 7901
mov a4, a5 /* arg3 */ # 2ce: 4d05
mov a5, a6 /* arg4 */ # 2d0: 5d06
call0 sdk_rc_enable_trc # 2d2: 01f3ffc0
# 2d6: 0000
mov a12, a2 # 2d8: cd02
mov a3, a14 /* arg4 */ # 2da: 3d0e
movi a2, .Lstr004 # 2dc: 21edff
call0 printf # 2df: 01f1ffc0
# 2e3: 0000
beqz a12, .Lbr011 # 2e5: 165c07
mov a2, a13 /* arg0 */ # 2e8: 2d0d
call0 sdk_ic_interface_is_p2p # 2ea: 050000
movi a14, -32 /* 0xffffffe0 */ # 2ed: 6c0e
l32i a4, sp, 0 /* [(local0)] */ # 2ef: 4801
mov a0, a2 # 2f1: 0d02
s32i a2, sp, 20 /* a2 -> [(local5)] */ # 2f3: 2951
movi a2, sdk_NMIIrqIsOn # 2f5: 21e7ff
s32i a4, a12, 92 # 2f8: 426c17
l8ui a2, a2, 0 /* [sdk_NMIIrqIsOn] */ # 2fb: 220200
movi a13, 0x3feffe00 # 2fe: d1e6ff
bnez a2, .Lbr009 # 301: dce2
call0 vPortEnterCritical # 303: 01e9ffc0
# 307: 0000
.Lbr008: memw # 309: c02000
l32i a6, a13, 0x200 /* [0x3ff00000] */ # 30c: 622d80
and a6, a6, a14 # 30f: e06610
memw # 312: c02000
s32i a6, a13, 0x200 /* a6 -> [0x3ff00000] */ # 315: 626d80
memw # 318: c02000
l32i a5, a13, 0x200 /* [0x3ff00000] */ # 31b: 522d80
bbsi a5, 0, .Lbr008 # 31e: 07e5e7
l32i a0, sp, 20 /* [(local5)] */ # 321: 0851
.Lbr009: mov a2, a12 # 323: 2d0c
movi a3, 0 /* 0x00000000 */ # 325: 0c03
mov a4, a0 # 327: 4d00
call0 sdk_rcUpdatePhyMode # 329: 01e0ffc0
# 32d: 0000
movi a7, sdk_NMIIrqIsOn # 32f: 71dbff
l8ui a7, a7, 0 /* [sdk_NMIIrqIsOn] */ # 332: 720700
bnez a7, .Lbr011 # 335: ec57
memw # 337: c02000
l32i a8, a13, 0x200 /* [0x3ff00000] */ # 33a: 822d80
movi a9, 1 /* 0x00000001 */ # 33d: 0c19
and a8, a8, a14 # 33f: e08810
or a8, a8, a9 # 342: 908820
memw # 345: c02000
s32i a8, a13, 0x200 /* a8 -> [0x3ff00000] */ # 348: 826d80
call0 vPortExitCritical # 34b: 01d9ffc0
# 34f: 0000
j .Lbr011 # 351: 460200
.Lbr010: mov a3, a4 /* arg2 */ # 354: 3d04
mov a4, a5 /* arg3 */ # 356: 4d05
call0 sdk_rc_disable_trc # 358: 01d7ffc0
# 35c: 0000
.Lbr011: l32i a12, sp, 8 /* [(local2)] */ # 35e: c821
l32i a13, sp, 12 /* [(local3)] */ # 360: d831
l32i a14, sp, 16 /* [(local4)] */ # 362: e841
l32i a0, sp, 4 /* [(local1)] */ # 364: 0811
addi sp, sp, 32 /* (top of frame) */ # 366: 12c120
ret # 369: 0df0
.literal_position # 36c: 34000000
# 370: 3c000000
# 374: 2c000000
# 378: 00000000
# 37c: 00000000
# 380: 00000000
# 384: 00000000
# 388: 00000000
# Function @ .irom0.text+0x38c
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.balign 4
.global sdk_ic_bss_info_update
.type sdk_ic_bss_info_update, @function
sdk_ic_bss_info_update:
addi sp, sp, -16 /* (local0) */ # 38c: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 38f: 0911
bnei a4, 2, .Lbr012 # 391: 662412
s32i a5, sp, 0 /* arg3 -> [(local0)] */ # 394: 5901
beqz a5, .Lbr015 # 396: bcb5
mov a4, a3 /* arg1 */ # 398: 4d03
mov a3, a2 /* arg0 */ # 39a: 3d02
movi a2, 2 /* 0x00000002 */ # 39c: 0c22
call0 sdk_wDev_SetRxPolicy # 39e: 01f6ffc0
# 3a2: 0000
j .Lbr016 # 3a4: 060c00
.Lbr012: bnei a4, 1, .Lbr013 # 3a7: 661417
mov a4, a3 /* arg1 */ # 3aa: 4d03
mov a3, a2 /* arg0 */ # 3ac: 3d02
movi a2, 2 /* 0x00000002 */ # 3ae: 0c22
call0 sdk_wDev_SetRxPolicy # 3b0: 01f3ffc0
# 3b4: 0000
movi a2, .Lstr006 # 3b6: 21edff
call0 printf # 3b9: 01f1ffc0
# 3bd: 0000
j .Lbr014 # 3bf: c60200
.Lbr013: call0 .Lfunc001 # 3c2: 05dcff
movi a2, .Lstr007 # 3c5: 21eaff
call0 printf # 3c8: 01efffc0
# 3cc: 0000
.Lbr014: l32i a0, sp, 4 /* [(local1)] */ # 3ce: 0811
addi sp, sp, 16 /* (top of frame) */ # 3d0: 12c110
ret # 3d3: 0df0
.Lbr015: call0 .Lfunc001 # 3d5: c5daff
.Lbr016: movi a2, .Lstr005 # 3d8: 21e7ff
l32i a3, sp, 0 /* [(local0)] */ # 3db: 3801
call0 printf # 3dd: 01eaffc0
# 3e1: 0000
j .Lbr014 # 3e3: c6f9ff
.literal_position # 3e8: 00000000
# 3ec: 00000000
# Function @ .irom0.text+0x3f0
# Local variables/stack:
# (local0): word[4] @ -0x30
# (local1): word @ -0x20
# (local2): word @ -0x1c
# (local3): word @ -0x18
# (local4): word @ -0x14
# (local5): word @ -0x10
# (local6): word @ -0xc
# (local7): word[2] @ -0x8
.balign 4
.global sdk_ic_set_key
.type sdk_ic_set_key, @function
sdk_ic_set_key:
addi sp, sp, -48 /* (local0) */ # 3f0: 12c1d0
s32i a0, sp, 28 /* a0 -> [(local4)] */ # 3f3: 0971
s32i a4, sp, 16 /* arg2 -> [(local1)] */ # 3f5: 4941
s32i a5, sp, 20 /* arg3 -> [(local2)] */ # 3f7: 5951
s32i a7, sp, 24 /* arg5 -> [(local3)] */ # 3f9: 7961
s32i a14, sp, 40 /* a14 -> [(local7)] */ # 3fb: e9a1
s32i a13, sp, 36 /* a13 -> [(local6)] */ # 3fd: d991
s32i a12, sp, 32 /* a12 -> [(local5)] */ # 3ff: c981
mov a13, a2 /* arg0 */ # 401: dd02
mov a12, a3 /* arg1 */ # 403: cd03
mov a14, a6 /* arg4 */ # 405: ed06
bltui a6, 6, .Lbr017 # 407: b66605
call0 sdk_ic_set_ptk_alg # 40a: 050000
j .Lbr019 # 40d: 460400
.Lbr017: bnez a3, .Lbr018 # 410: ccb3
call0 sdk_ic_set_ptk_alg # 412: 050000
mov a2, a13 /* arg0 */ # 415: 2d0d
mov a3, a12 /* arg1 */ # 417: 3d0c
call0 sdk_ic_set_gtk_alg # 419: 050000
j .Lbr019 # 41c: 860000
.Lbr018: call0 sdk_ic_set_gtk_alg # 41f: 050000
.Lbr019: mov a6, a14 /* arg4 */ # 422: 6d0e
l32i a4, sp, 16 /* [(local1)] */ # 424: 4841
l32i a5, sp, 20 /* [(local2)] */ # 426: 5851
l32i a7, sp, 24 /* [(local3)] */ # 428: 7861
mov a2, a12 /* arg1 */ # 42a: 2d0c
mov a3, a13 /* arg0 */ # 42c: 3d0d
l8ui a0, sp, 48 /* [(local8)] */ # 42e: 020130
s32i a0, sp, 0 /* [(local8)] -> [(local0)] */ # 431: 0901
call0 sdk_wDev_Insert_KeyEntry # 433: 01edffc0
# 437: 0000
mov a3, a12 /* arg1 */ # 439: 3d0c
mov a2, a13 /* arg0 */ # 43b: 2d0d
call0 sdk_wDev_Crypto_Conf # 43d: 01ebffc0
# 441: 0000
l32i a12, sp, 32 /* [(local5)] */ # 443: c881
l32i a13, sp, 36 /* [(local6)] */ # 445: d891
l32i a14, sp, 40 /* [(local7)] */ # 447: e8a1
l32i a0, sp, 28 /* [(local4)] */ # 449: 0871
addi sp, sp, 48 /* (local8) */ # 44b: 12c130
ret # 44e: 0df0
.literal_position # 450: 00000000
# Function @ .irom0.text+0x454
# Local variables/stack:
# (local0): word[4] @ -0x10
.balign 4
.global sdk_ic_remove_key
.type sdk_ic_remove_key, @function
sdk_ic_remove_key:
addi sp, sp, -16 /* (local0) */ # 454: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 457: 0901
call0 sdk_wDev_remove_KeyEntry # 459: 01fdffc0
# 45d: 0000
l32i a0, sp, 0 /* [(local0)] */ # 45f: 0801
addi sp, sp, 16 /* (top of frame) */ # 461: 12c110
ret # 464: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "del if%d\n" # 0: 64656c20
# 4: 69662564
# 8: 0a00
.balign 4
.Lstr002: .asciz "chg if%d\n" # c: 63686720
# 10: 69662564
# 14: 0a00
.balign 4
.Lstr003: .asciz "add if%d\n" # 18: 61646420
# 1c: 69662564
# 20: 0a00
.balign 4
.Lstr004: .asciz "aid %d\n" # 24: 61696420
# 28: 25640a00
.Lstr005: .asciz "bcn %d\n" # 2c: 62636e20
# 30: 25640a00
.Lstr006: .asciz "cnt \n" # 34: 636e7420
# 38: 0a00
.balign 4
.Lstr007: .asciz "uncnt \n" # 3c: 756e636e
# 40: 74200a00

2721
binary_sdk/libpp/lmac.S Normal file

File diff suppressed because it is too large Load diff

View file

3173
binary_sdk/libpp/pm.S Normal file

File diff suppressed because it is too large Load diff

4034
binary_sdk/libpp/pp.S Normal file

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more