📄 triton_voice_loop.asm
字号:
.armfunc _McsiVoiceLoopBack
.state32
.global _McsiVoiceLoopBack
DW$90 .dwtag DW_TAG_subprogram, DW_AT_name("McsiVoiceLoopBack"), DW_AT_symbol_name("_McsiVoiceLoopBack")
.dwattr DW$90, DW_AT_low_pc(_McsiVoiceLoopBack)
.dwattr DW$90, DW_AT_high_pc(0x00)
.dwattr DW$90, DW_AT_begin_file("Triton_voice_loop.c")
.dwattr DW$90, DW_AT_begin_line(0x6c)
.dwattr DW$90, DW_AT_begin_column(0x06)
.dwpsn "Triton_voice_loop.c",109,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: McsiVoiceLoopBack *
;* *
;* Regs Modified : A1,A2,A3,A4,V9,SP,LR,SR *
;* Regs Used : A1,A2,A3,A4,V9,SP,LR,SR *
;* Local Frame Size : 0 Args + 20 Auto + 4 Save = 24 byte *
;*****************************************************************************
_McsiVoiceLoopBack:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
SUB SP, SP, #20
.dwcfa 0x0e, 24
DW$91 .dwtag DW_TAG_variable, DW_AT_name("val"), DW_AT_symbol_name("_val")
.dwattr DW$91, DW_AT_type(*DW$T$9)
.dwattr DW$91, DW_AT_location[DW_OP_breg13 0]
DW$92 .dwtag DW_TAG_variable, DW_AT_name("i"), DW_AT_symbol_name("_i")
.dwattr DW$92, DW_AT_type(*DW$T$10)
.dwattr DW$92, DW_AT_location[DW_OP_breg13 4]
DW$93 .dwtag DW_TAG_variable, DW_AT_name("end_of_dma"), DW_AT_symbol_name("_end_of_dma")
.dwattr DW$93, DW_AT_type(*DW$T$10)
.dwattr DW$93, DW_AT_location[DW_OP_breg13 8]
DW$94 .dwtag DW_TAG_variable, DW_AT_name("temp"), DW_AT_symbol_name("_temp")
.dwattr DW$94, DW_AT_type(*DW$T$10)
.dwattr DW$94, DW_AT_location[DW_OP_breg13 12]
DW$95 .dwtag DW_TAG_variable, DW_AT_name("reg_val"), DW_AT_symbol_name("_reg_val")
.dwattr DW$95, DW_AT_type(*DW$T$22)
.dwattr DW$95, DW_AT_location[DW_OP_breg13 16]
.dwpsn "Triton_voice_loop.c",112,7
MOV V9, #0 ; |112|
STR V9, [SP, #8] ; |112|
.dwpsn "Triton_voice_loop.c",128,3
LDR A1, CON18 ; |128|
BL _MCSI_disable ; |128|
; |128|
.dwpsn "Triton_voice_loop.c",136,3
MOV V9, #0 ; |136|
LDR A1, CON18 ; |136|
STRH V9, [A1, #0] ; |136|
.dwpsn "Triton_voice_loop.c",138,2
MOV V9, #15 ; |138|
LDR A1, CON19 ; |138|
STRH V9, [A1, #0] ; |138|
.dwpsn "Triton_voice_loop.c",142,4
MOV V9, #1 ; |142|
LDR A1, CON20 ; |142|
STRH V9, [A1, #0] ; |142|
.dwpsn "Triton_voice_loop.c",143,3
MOV V9, #0 ; |143|
LDR A1, CON21 ; |143|
STRH V9, [A1, #0] ; |143|
.dwpsn "Triton_voice_loop.c",146,2
MOV V9, #13 ; |146|
LDR A1, CON22 ; |146|
STRH V9, [A1, #0] ; |146|
.dwpsn "Triton_voice_loop.c",147,3
MOV V9, #0 ; |147|
LDR A1, CON23 ; |147|
STRH V9, [A1, #0] ; |147|
.dwpsn "Triton_voice_loop.c",155,3
BL _triton_voice_loop_config ; |155|
; |155|
.dwpsn "Triton_voice_loop.c",160,2
MOV A1, #212 ; |160|
BL _MSI2C_MasterPollingReceiveAbb ; |160|
; |160|
STRB A1, [SP, #16] ; |160|
.dwpsn "Triton_voice_loop.c",161,4
MOV V9, #129 ; |161|
STRB V9, [SP, #16] ; |161|
.dwpsn "Triton_voice_loop.c",163,4
MOV A1, #212 ; |163|
LDRB A2, [SP, #16] ; |163|
BL _MSI2C_MasterPollingSendAbb ; |163|
; |163|
.dwpsn "Triton_voice_loop.c",165,2
MOV A1, #1 ; |165|
BL _Triton_Ear_Amp_Gain_Settings ; |165|
; |165|
.dwpsn "Triton_voice_loop.c",166,2
MOV A1, #223 ; |166|
MOV A2, #1 ; |166|
BL _MSI2C_MasterPollingSendAbb ; |166|
; |166|
.dwpsn "Triton_voice_loop.c",169,2
MOV A1, #214 ; |169|
BL _MSI2C_MasterPollingReceiveAbb ; |169|
; |169|
STRB A1, [SP, #16] ; |169|
.dwpsn "Triton_voice_loop.c",170,4
LDRB V9, [SP, #16] ; |170|
AND V9, V9, #15 ; |170|
ORR V9, V9, #48 ; |170|
STRB V9, [SP, #16] ; |170|
.dwpsn "Triton_voice_loop.c",172,2
MOV A1, #214 ; |172|
LDRB A2, [SP, #16] ; |172|
BL _MSI2C_MasterPollingSendAbb ; |172|
; |172|
.dwpsn "Triton_voice_loop.c",182,3
MOV A2, #16 ; |182|
MOV A1, #219 ; |182|
BL _MSI2C_MasterPollingSendAbb ; |182|
; |182|
.dwpsn "Triton_voice_loop.c",196,2
MOV A1, #210 ; |196|
BL _MSI2C_MasterPollingReceiveAbb ; |196|
; |196|
STRB A1, [SP, #16] ; |196|
.dwpsn "Triton_voice_loop.c",198,2
MOV A1, #210 ; |198|
MOV A2, #19 ; |198|
BL _MSI2C_MasterPollingSendAbb ; |198|
; |198|
;* --------------------------------------------------------------------------*
.dwpsn "Triton_voice_loop.c",203,2
ADR A2, SL1 ; |203|
MOV A1, #1 ; |203|
BL _UART_Printf ; |203|
; |203|
.dwpsn "Triton_voice_loop.c",204,2
ADR A2, SL2 ; |204|
MOV A1, #1 ; |204|
BL _UART_Printf ; |204|
; |204|
.dwpsn "Triton_voice_loop.c",205,2
ADR A2, SL3 ; |205|
MOV A1, #1 ; |205|
BL _UART_Printf ; |205|
; |205|
.dwpsn "Triton_voice_loop.c",206,3
MOV A1, #1 ; |206|
BL _UART_GetNum ; |206|
; |206|
STRH A1, [SP, #0] ; |206|
.dwpsn "Triton_voice_loop.c",207,6
MOV A1, #1 ; |207|
ADR A2, SL4 ; |207|
BL _UART_Printf ; |207|
; |207|
.dwpsn "Triton_voice_loop.c",208,3
MOV A2, #0 ; |208|
LDR A1, CON30 ; |208|
LDR A3, CON32 ; |208|
BL _memset ; |208|
; |208|
.dwpsn "Triton_voice_loop.c",210,9
B L11 ; |210|
; |210|
;* --------------------------------------------------------------------------*
DW$96 .dwtag DW_TAG_lexical_block, DW_AT_low_pc(0x00), DW_AT_high_pc(0x00)
;* --------------------------------------------------------------------------*
L1:
.dwpsn "Triton_voice_loop.c",215,7
LDR A1, CON18 ; |215|
BL _MCSI_enable ; |215|
; |215|
.dwpsn "Triton_voice_loop.c",217,12
MOV V9, #0 ; |217|
STR V9, [SP, #4] ; |217|
.dwpsn "Triton_voice_loop.c",217,16
LDR V9, [SP, #4] ; |217|
CMP V9, #4096 ; |217|
BGE L3 ; |217|
; |217|
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L2
;*
;* Loop source line : 217
;* Loop closing brace source line : 220
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L2:
DW$L$_McsiVoiceLoopBack$5$B:
.dwpsn "Triton_voice_loop.c",220,5
LDR V9, [SP, #4] ; |220|
MOV A1, V9, LSL #1 ; |220|
LDR A2, CON30 ; |220|
LDR V9, CON12 ; |220|
LDRH V9, [V9, #0] ; |220|
STRH V9, [A2, +A1] ; |220|
.dwpsn "Triton_voice_loop.c",217,23
LDR V9, [SP, #4] ; |217|
ADD V9, V9, #1 ; |217|
STR V9, [SP, #4] ; |217|
.dwpsn "Triton_voice_loop.c",217,16
LDR V9, [SP, #4] ; |217|
CMP V9, #4096 ; |217|
BLT L2 ; |217|
; |217|
DW$L$_McsiVoiceLoopBack$5$E:
;* --------------------------------------------------------------------------*
L3:
.dwpsn "Triton_voice_loop.c",221,11
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L4
;*
;* Loop source line : 221
;* Loop closing brace source line : 228
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L4:
DW$L$_McsiVoiceLoopBack$7$B:
.dwpsn "Triton_voice_loop.c",223,9
MOV V9, #0 ; |223|
STR V9, [SP, #4] ; |223|
.dwpsn "Triton_voice_loop.c",223,13
LDR V9, [SP, #4] ; |223|
CMP V9, #4096 ; |223|
BGE L4 ; |223|
; |223|
DW$L$_McsiVoiceLoopBack$7$E:
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L5
;*
;* Loop source line : 223
;* Loop closing brace source line : 227
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L5:
DW$L$_McsiVoiceLoopBack$8$B:
.dwpsn "Triton_voice_loop.c",225,5
LDR V9, [SP, #4] ; |225|
LDR A1, CON30 ; |225|
MOV V9, V9, LSL #1 ; |225|
LDRH V9, [A1, +V9] ; |225|
LDR A1, CON10 ; |225|
STRH V9, [A1, #0] ; |225|
.dwpsn "Triton_voice_loop.c",223,20
LDR V9, [SP, #4] ; |223|
ADD V9, V9, #1 ; |223|
STR V9, [SP, #4] ; |223|
.dwpsn "Triton_voice_loop.c",223,13
LDR V9, [SP, #4] ; |223|
CMP V9, #4096 ; |223|
BLT L5 ; |223|
; |223|
DW$L$_McsiVoiceLoopBack$8$E:
;* --------------------------------------------------------------------------*
DW$L$_McsiVoiceLoopBack$9$B:
.dwpsn "Triton_voice_loop.c",221,11
B L4 ; |221|
; |221|
DW$L$_McsiVoiceLoopBack$9$E:
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L6:
.dwpsn "Triton_voice_loop.c",233,7
LDR A1, CON18 ; |233|
BL _MCSI_enable ; |233|
; |233|
.dwpsn "Triton_voice_loop.c",234,11
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L7
;*
;* Loop source line : 234
;* Loop closing brace source line : 256
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L7:
DW$L$_McsiVoiceLoopBack$12$B:
.dwpsn "Triton_voice_loop.c",240,6
LDR V9, [SP, #12] ; |240|
ADD V9, V9, #500 ; |240|
STR V9, [SP, #12] ; |240|
.dwpsn "Triton_voice_loop.c",241,11
MOV V9, #0 ; |241|
STR V9, [SP, #4] ; |241|
.dwpsn "Triton_voice_loop.c",241,17
LDR V9, [SP, #4] ; |241|
CMP V9, #500 ; |241|
BGE L9 ; |241|
; |241|
DW$L$_McsiVoiceLoopBack$12$E:
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L8
;*
;* Loop source line : 241
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -