📄 dsp_subsystem.asm
字号:
STR A1, [V9, #40] ; |111|
.dwpsn "DSP_subsystem.c",112,1
BX LR
.dwattr DW$9, DW_AT_end_file("DSP_subsystem.c")
.dwattr DW$9, DW_AT_end_line(0x70)
.dwattr DW$9, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$9
.sect ".text"
.align 4
.clink
.armfunc _Switch_to_DSP
.state32
.global _Switch_to_DSP
DW$10 .dwtag DW_TAG_subprogram, DW_AT_name("Switch_to_DSP"), DW_AT_symbol_name("_Switch_to_DSP")
.dwattr DW$10, DW_AT_low_pc(_Switch_to_DSP)
.dwattr DW$10, DW_AT_high_pc(0x00)
.dwattr DW$10, DW_AT_begin_file("DSP_subsystem.c")
.dwattr DW$10, DW_AT_begin_line(0x75)
.dwattr DW$10, DW_AT_begin_column(0x06)
.dwpsn "DSP_subsystem.c",118,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: Switch_to_DSP *
;* *
;* 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 + 0 Auto + 4 Save = 4 byte *
;*****************************************************************************
_Switch_to_DSP:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
.dwcfa 0x0e, 4
.dwpsn "DSP_subsystem.c",120,1
LDR V9, CON2 ; |120|
LDR V9, [V9, #0] ; |120|
ADD V9, V9, #32 ; |120|
LDRH A1, [V9, #0] ; |120|
BIC A1, A1, #1 ; |120|
STRH A1, [V9, #0] ; |120|
.dwpsn "DSP_subsystem.c",121,1
LDR V9, CON2 ; |121|
LDR V9, [V9, #0] ; |121|
ADD V9, V9, #128 ; |121|
LDRH A1, [V9, #0] ; |121|
BIC A1, A1, #1 ; |121|
STRH A1, [V9, #0] ; |121|
.dwpsn "DSP_subsystem.c",122,1
LDR V9, CON2 ; |122|
LDR V9, [V9, #0] ; |122|
ADD V9, V9, #160 ; |122|
LDRH A1, [V9, #0] ; |122|
BIC A1, A1, #1 ; |122|
STRH A1, [V9, #0] ; |122|
.dwpsn "DSP_subsystem.c",123,1
LDR V9, CON2 ; |123|
LDR V9, [V9, #0] ; |123|
ADD V9, V9, #224 ; |123|
LDRH A1, [V9, #0] ; |123|
BIC A1, A1, #1 ; |123|
STRH A1, [V9, #0] ; |123|
.dwpsn "DSP_subsystem.c",124,1
LDR V9, CON2 ; |124|
LDR V9, [V9, #0] ; |124|
ADD V9, V9, #176 ; |124|
LDRH A1, [V9, #0] ; |124|
BIC A1, A1, #1 ; |124|
STRH A1, [V9, #0] ; |124|
.dwpsn "DSP_subsystem.c",125,1
LDR V9, CON3 ; |125|
LDR V9, [V9, #0] ; |125|
LDRH A1, [V9, #0] ; |125|
BIC A1, A1, #1 ; |125|
STRH A1, [V9, #0] ; |125|
.dwpsn "DSP_subsystem.c",126,1
LDR V9, CON3 ; |126|
LDR V9, [V9, #0] ; |126|
ADD V9, V9, #64 ; |126|
LDRH A1, [V9, #0] ; |126|
BIC A1, A1, #1 ; |126|
STRH A1, [V9, #0] ; |126|
.dwpsn "DSP_subsystem.c",127,1
LDR V9, CON3 ; |127|
LDR V9, [V9, #0] ; |127|
ADD V9, V9, #384 ; |127|
LDRH A1, [V9, #0] ; |127|
BIC A1, A1, #1 ; |127|
STRH A1, [V9, #0] ; |127|
.dwpsn "DSP_subsystem.c",129,1
LDR A1, CON4 ; |129|
MOV V9, #0 ; |129|
STRB V9, [A1, #0] ; |129|
.dwpsn "DSP_subsystem.c",131,1
MOV A3, #1 ; |131|
MOV A2, #1 ; |131|
MOV A1, #1 ; |131|
BL _MAILBOX_Write ; |131|
; |131|
.dwpsn "DSP_subsystem.c",133,1
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L1
;*
;* Loop source line : 133
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L1:
DW$L$_Switch_to_DSP$2$B:
.dwpsn "DSP_subsystem.c",133,7
LDR V9, CON4 ; |133|
LDRB V9, [V9, #0] ; |133|
CMP V9, #0 ; |133|
BEQ L1 ; |133|
; |133|
DW$L$_Switch_to_DSP$2$E:
;* --------------------------------------------------------------------------*
.dwpsn "DSP_subsystem.c",134,1
.dwcfa 0x0e, 4
LDMFD SP!, {PC}
DW$11 .dwtag DW_TAG_loop
.dwattr DW$11, DW_AT_name("D:\src\boston_board_test\ARM\arm_src\DSP_subsystem.asm:L1:1:1214374280")
.dwattr DW$11, DW_AT_begin_file("DSP_subsystem.c")
.dwattr DW$11, DW_AT_begin_line(0x85)
.dwattr DW$11, DW_AT_end_line(0x85)
DW$12 .dwtag DW_TAG_loop_range
.dwattr DW$12, DW_AT_low_pc(DW$L$_Switch_to_DSP$2$B)
.dwattr DW$12, DW_AT_high_pc(DW$L$_Switch_to_DSP$2$E)
.dwendtag DW$11
.dwattr DW$10, DW_AT_end_file("DSP_subsystem.c")
.dwattr DW$10, DW_AT_end_line(0x86)
.dwattr DW$10, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$10
;******************************************************************************
;* CONSTANT TABLE *
;******************************************************************************
.sect ".text"
.align 4
CON1: .field _DSPMMU_Base_Addr,32
.align 4
CON2: .field _OCP_PER_SSW_MPU_CONF_Base_Addr,32
.align 4
CON3: .field _TIPB_PER_RHSW_MPU_CNF_Base_Addr,32
.align 4
CON4: .field _DSP_status,32
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;******************************************************************************
.global _MAILBOX_Write
.global _DSP_status
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
DW$T$19 .dwtag DW_TAG_subroutine_type
.dwattr DW$T$19, DW_AT_language(DW_LANG_C)
DW$13 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$10)
DW$14 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$8)
DW$15 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$8)
.dwendtag DW$T$19
DW$T$21 .dwtag DW_TAG_subroutine_type
.dwattr DW$T$21, DW_AT_language(DW_LANG_C)
DW$T$8 .dwtag DW_TAG_base_type, DW_AT_name("short")
.dwattr DW$T$8, DW_AT_encoding(DW_ATE_signed)
.dwattr DW$T$8, DW_AT_byte_size(0x02)
DW$T$10 .dwtag DW_TAG_base_type, DW_AT_name("int")
.dwattr DW$T$10, DW_AT_encoding(DW_ATE_signed)
.dwattr DW$T$10, DW_AT_byte_size(0x04)
DW$T$11 .dwtag DW_TAG_base_type, DW_AT_name("unsigned int")
.dwattr DW$T$11, DW_AT_encoding(DW_ATE_unsigned)
.dwattr DW$T$11, DW_AT_byte_size(0x04)
DW$T$26 .dwtag DW_TAG_base_type, DW_AT_name("unsigned char")
.dwattr DW$T$26, DW_AT_encoding(DW_ATE_unsigned_char)
.dwattr DW$T$26, DW_AT_byte_size(0x01)
.dwattr DW$9, DW_AT_external(0x01)
.dwattr DW$10, DW_AT_external(0x01)
.dwattr DW$CU, DW_AT_language(DW_LANG_C)
;***************************************************************
;* DWARF CIE ENTRIES *
;***************************************************************
DW$CIE .dwcie 1, 26
.dwcfa 0x0c, 13, 0
.dwcfa 0x07, 0
.dwcfa 0x07, 1
.dwcfa 0x07, 2
.dwcfa 0x07, 3
.dwcfa 0x08, 4
.dwcfa 0x08, 5
.dwcfa 0x08, 6
.dwcfa 0x08, 7
.dwcfa 0x08, 8
.dwcfa 0x08, 9
.dwcfa 0x08, 10
.dwcfa 0x08, 11
.dwcfa 0x07, 12
.dwcfa 0x07, 13
.dwcfa 0x07, 14
.dwcfa 0x07, 15
.dwcfa 0x07, 16
.dwcfa 0x07, 17
.dwcfa 0x07, 18
.dwcfa 0x07, 19
.dwcfa 0x07, 20
.dwcfa 0x07, 21
.dwcfa 0x07, 22
.dwcfa 0x07, 23
.dwcfa 0x07, 24
.dwcfa 0x07, 25
.dwcfa 0x07, 26
;***************************************************************
;* DWARF REGISTER MAP *
;***************************************************************
DW$16 .dwtag DW_TAG_assign_register, DW_AT_name("A1")
.dwattr DW$16, DW_AT_location[DW_OP_reg0]
DW$17 .dwtag DW_TAG_assign_register, DW_AT_name("A2")
.dwattr DW$17, DW_AT_location[DW_OP_reg1]
DW$18 .dwtag DW_TAG_assign_register, DW_AT_name("A3")
.dwattr DW$18, DW_AT_location[DW_OP_reg2]
DW$19 .dwtag DW_TAG_assign_register, DW_AT_name("A4")
.dwattr DW$19, DW_AT_location[DW_OP_reg3]
DW$20 .dwtag DW_TAG_assign_register, DW_AT_name("V1")
.dwattr DW$20, DW_AT_location[DW_OP_reg4]
DW$21 .dwtag DW_TAG_assign_register, DW_AT_name("V2")
.dwattr DW$21, DW_AT_location[DW_OP_reg5]
DW$22 .dwtag DW_TAG_assign_register, DW_AT_name("V3")
.dwattr DW$22, DW_AT_location[DW_OP_reg6]
DW$23 .dwtag DW_TAG_assign_register, DW_AT_name("V4")
.dwattr DW$23, DW_AT_location[DW_OP_reg7]
DW$24 .dwtag DW_TAG_assign_register, DW_AT_name("V5")
.dwattr DW$24, DW_AT_location[DW_OP_reg8]
DW$25 .dwtag DW_TAG_assign_register, DW_AT_name("V6")
.dwattr DW$25, DW_AT_location[DW_OP_reg9]
DW$26 .dwtag DW_TAG_assign_register, DW_AT_name("V7")
.dwattr DW$26, DW_AT_location[DW_OP_reg10]
DW$27 .dwtag DW_TAG_assign_register, DW_AT_name("V8")
.dwattr DW$27, DW_AT_location[DW_OP_reg11]
DW$28 .dwtag DW_TAG_assign_register, DW_AT_name("V9")
.dwattr DW$28, DW_AT_location[DW_OP_reg12]
DW$29 .dwtag DW_TAG_assign_register, DW_AT_name("SP")
.dwattr DW$29, DW_AT_location[DW_OP_reg13]
DW$30 .dwtag DW_TAG_assign_register, DW_AT_name("LR")
.dwattr DW$30, DW_AT_location[DW_OP_reg14]
DW$31 .dwtag DW_TAG_assign_register, DW_AT_name("PC")
.dwattr DW$31, DW_AT_location[DW_OP_reg15]
DW$32 .dwtag DW_TAG_assign_register, DW_AT_name("C0")
.dwattr DW$32, DW_AT_location[DW_OP_reg16]
DW$33 .dwtag DW_TAG_assign_register, DW_AT_name("C1")
.dwattr DW$33, DW_AT_location[DW_OP_reg17]
DW$34 .dwtag DW_TAG_assign_register, DW_AT_name("C2")
.dwattr DW$34, DW_AT_location[DW_OP_reg18]
DW$35 .dwtag DW_TAG_assign_register, DW_AT_name("C3")
.dwattr DW$35, DW_AT_location[DW_OP_reg19]
DW$36 .dwtag DW_TAG_assign_register, DW_AT_name("C4")
.dwattr DW$36, DW_AT_location[DW_OP_reg20]
DW$37 .dwtag DW_TAG_assign_register, DW_AT_name("C5")
.dwattr DW$37, DW_AT_location[DW_OP_reg21]
DW$38 .dwtag DW_TAG_assign_register, DW_AT_name("C6")
.dwattr DW$38, DW_AT_location[DW_OP_reg22]
DW$39 .dwtag DW_TAG_assign_register, DW_AT_name("C7")
.dwattr DW$39, DW_AT_location[DW_OP_reg23]
DW$40 .dwtag DW_TAG_assign_register, DW_AT_name("AP")
.dwattr DW$40, DW_AT_location[DW_OP_reg24]
DW$41 .dwtag DW_TAG_assign_register, DW_AT_name("SR")
.dwattr DW$41, DW_AT_location[DW_OP_reg25]
DW$42 .dwtag DW_TAG_assign_register, DW_AT_name("CIE_RETA")
.dwattr DW$42, DW_AT_location[DW_OP_reg26]
.dwendtag DW$CU
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -