📄 mpu_subsystem.asm
字号:
.dwattr DW$7, DW_AT_end_file("MPU_subsystem.c")
.dwattr DW$7, DW_AT_end_line(0x42)
.dwattr DW$7, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$7
.sect ".text"
.align 4
.clink
.armfunc _MAILBOX_Write
.state32
.global _MAILBOX_Write
DW$11 .dwtag DW_TAG_subprogram, DW_AT_name("MAILBOX_Write"), DW_AT_symbol_name("_MAILBOX_Write")
.dwattr DW$11, DW_AT_low_pc(_MAILBOX_Write)
.dwattr DW$11, DW_AT_high_pc(0x00)
.dwattr DW$11, DW_AT_begin_file("MPU_subsystem.c")
.dwattr DW$11, DW_AT_begin_line(0x47)
.dwattr DW$11, DW_AT_begin_column(0x06)
.dwpsn "MPU_subsystem.c",72,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: MAILBOX_Write *
;* *
;* Regs Modified : A1,V9,SP,SR *
;* Regs Used : A1,A2,A3,V9,SP,SR *
;* Local Frame Size : 0 Args + 8 Auto + 0 Save = 8 byte *
;*****************************************************************************
_MAILBOX_Write:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #8
.dwcfa 0x0e, 8
;* A1 assigned to _mailbox_name
DW$12 .dwtag DW_TAG_formal_parameter, DW_AT_name("mailbox_name"), DW_AT_symbol_name("_mailbox_name")
.dwattr DW$12, DW_AT_type(*DW$T$10)
.dwattr DW$12, DW_AT_location[DW_OP_reg0]
;* A2 assigned to _data_a
DW$13 .dwtag DW_TAG_formal_parameter, DW_AT_name("data_a"), DW_AT_symbol_name("_data_a")
.dwattr DW$13, DW_AT_type(*DW$T$8)
.dwattr DW$13, DW_AT_location[DW_OP_reg1]
;* A3 assigned to _data_b
DW$14 .dwtag DW_TAG_formal_parameter, DW_AT_name("data_b"), DW_AT_symbol_name("_data_b")
.dwattr DW$14, DW_AT_type(*DW$T$8)
.dwattr DW$14, DW_AT_location[DW_OP_reg2]
DW$15 .dwtag DW_TAG_variable, DW_AT_name("mailbox_name"), DW_AT_symbol_name("_mailbox_name")
.dwattr DW$15, DW_AT_type(*DW$T$10)
.dwattr DW$15, DW_AT_location[DW_OP_breg13 0]
DW$16 .dwtag DW_TAG_variable, DW_AT_name("data_a"), DW_AT_symbol_name("_data_a")
.dwattr DW$16, DW_AT_type(*DW$T$8)
.dwattr DW$16, DW_AT_location[DW_OP_breg13 4]
DW$17 .dwtag DW_TAG_variable, DW_AT_name("data_b"), DW_AT_symbol_name("_data_b")
.dwattr DW$17, DW_AT_type(*DW$T$8)
.dwattr DW$17, DW_AT_location[DW_OP_breg13 6]
STRH A3, [SP, #6] ; |72|
STRH A2, [SP, #4] ; |72|
STR A1, [SP, #0] ; |72|
.dwpsn "MPU_subsystem.c",73,1
B L13 ; |73|
; |73|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L11:
.dwpsn "MPU_subsystem.c",76,3
LDR A1, CON5 ; |76|
LDRH V9, [SP, #4] ; |76|
LDR A1, [A1, #0] ; |76|
STRH V9, [A1, #0] ; |76|
.dwpsn "MPU_subsystem.c",77,3
LDR A1, CON5 ; |77|
LDRH V9, [SP, #6] ; |77|
LDR A1, [A1, #0] ; |77|
STRH V9, [A1, #4] ; |77|
.dwpsn "MPU_subsystem.c",78,8
B L14 ; |78|
; |78|
;* --------------------------------------------------------------------------*
L12:
.dwpsn "MPU_subsystem.c",80,3
LDR A1, CON5 ; |80|
LDRH V9, [SP, #4] ; |80|
LDR A1, [A1, #0] ; |80|
STRH V9, [A1, #36] ; |80|
.dwpsn "MPU_subsystem.c",81,3
LDR A1, CON5 ; |81|
LDRH V9, [SP, #6] ; |81|
LDR A1, [A1, #0] ; |81|
STRH V9, [A1, #40] ; |81|
.dwpsn "MPU_subsystem.c",82,10
B L14 ; |82|
; |82|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L13:
.dwpsn "MPU_subsystem.c",73,1
LDR V9, [SP, #0] ; |73|
SUBS V9, V9, #1 ; |73|
BEQ L11 ; |73|
; |73|
;* --------------------------------------------------------------------------*
SUBS V9, V9, #1 ; |73|
BEQ L12 ; |73|
; |73|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L14:
.dwpsn "MPU_subsystem.c",85,1
ADD SP, SP, #8
.dwcfa 0x0e, 0
BX LR
.dwattr DW$11, DW_AT_end_file("MPU_subsystem.c")
.dwattr DW$11, DW_AT_end_line(0x55)
.dwattr DW$11, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$11
.sect ".text"
.align 4
.clink
.armfunc _MAILBOX_GetFlag
.state32
.global _MAILBOX_GetFlag
DW$18 .dwtag DW_TAG_subprogram, DW_AT_name("MAILBOX_GetFlag"), DW_AT_symbol_name("_MAILBOX_GetFlag")
.dwattr DW$18, DW_AT_low_pc(_MAILBOX_GetFlag)
.dwattr DW$18, DW_AT_high_pc(0x00)
.dwattr DW$18, DW_AT_begin_file("MPU_subsystem.c")
.dwattr DW$18, DW_AT_begin_line(0x5a)
.dwattr DW$18, DW_AT_begin_column(0x07)
.dwpsn "MPU_subsystem.c",91,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: MAILBOX_GetFlag *
;* *
;* Regs Modified : A1,V9,SP,SR *
;* Regs Used : A1,V9,SP,SR *
;* Local Frame Size : 0 Args + 4 Auto + 0 Save = 4 byte *
;*****************************************************************************
_MAILBOX_GetFlag:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #4
.dwcfa 0x0e, 4
;* A1 assigned to _mailbox_name
DW$19 .dwtag DW_TAG_formal_parameter, DW_AT_name("mailbox_name"), DW_AT_symbol_name("_mailbox_name")
.dwattr DW$19, DW_AT_type(*DW$T$10)
.dwattr DW$19, DW_AT_location[DW_OP_reg0]
DW$20 .dwtag DW_TAG_variable, DW_AT_name("mailbox_name"), DW_AT_symbol_name("_mailbox_name")
.dwattr DW$20, DW_AT_type(*DW$T$10)
.dwattr DW$20, DW_AT_location[DW_OP_breg13 0]
STR A1, [SP, #0] ; |91|
.dwpsn "MPU_subsystem.c",92,1
B L17 ; |92|
; |92|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L15:
.dwpsn "MPU_subsystem.c",95,3
LDR V9, CON5 ; |95|
LDR V9, [V9, #0] ; |95|
LDRH V9, [V9, #24] ; |95|
AND V9, V9, #1 ; |95|
MOV A1, V9, LSL #16 ; |101|
MOV A1, A1, ASR #16 ; |101|
B L18 ; |95|
; |95|
;* --------------------------------------------------------------------------*
L16:
.dwpsn "MPU_subsystem.c",97,3
LDR V9, CON5 ; |97|
LDR V9, [V9, #0] ; |97|
LDRH V9, [V9, #44] ; |97|
AND V9, V9, #1 ; |97|
MOV A1, V9, LSL #16 ; |101|
MOV A1, A1, ASR #16 ; |101|
B L18 ; |97|
; |97|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L17:
.dwpsn "MPU_subsystem.c",92,1
LDR V9, [SP, #0] ; |92|
SUBS V9, V9, #1 ; |92|
BEQ L15 ; |92|
; |92|
;* --------------------------------------------------------------------------*
SUBS V9, V9, #1 ; |92|
BEQ L16 ; |92|
; |92|
;* --------------------------------------------------------------------------*
.dwpsn "MPU_subsystem.c",101,1
MOV A1, #0 ; |101|
;* --------------------------------------------------------------------------*
L18:
.dwpsn "MPU_subsystem.c",102,1
ADD SP, SP, #4 ; |101|
.dwcfa 0x0e, 0
BX LR
.dwattr DW$18, DW_AT_end_file("MPU_subsystem.c")
.dwattr DW$18, DW_AT_end_line(0x66)
.dwattr DW$18, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$18
.sect ".text"
.align 4
.clink
.armfunc _MAILBOX_InthProcess
.state32
.global _MAILBOX_InthProcess
DW$21 .dwtag DW_TAG_subprogram, DW_AT_name("MAILBOX_InthProcess"), DW_AT_symbol_name("_MAILBOX_InthProcess")
.dwattr DW$21, DW_AT_low_pc(_MAILBOX_InthProcess)
.dwattr DW$21, DW_AT_high_pc(0x00)
.dwattr DW$21, DW_AT_begin_file("MPU_subsystem.c")
.dwattr DW$21, DW_AT_begin_line(0x6b)
.dwattr DW$21, DW_AT_begin_column(0x06)
.dwpsn "MPU_subsystem.c",108,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: MAILBOX_InthProcess *
;* *
;* Regs Modified : A1,V9,SP,LR,SR *
;* Regs Used : A1,V9,SP,LR,SR *
;* Local Frame Size : 0 Args + 0 Auto + 4 Save = 4 byte *
;*****************************************************************************
_MAILBOX_InthProcess:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
.dwcfa 0x0e, 4
.dwpsn "MPU_subsystem.c",109,1
MOV A1, #15 ; |109|
BL _MAILBOX_Read ; |109|
; |109|
.dwpsn "MPU_subsystem.c",110,1
MOV A1, #16 ; |110|
BL _MAILBOX_Read ; |110|
; |110|
.dwpsn "MPU_subsystem.c",113,1
LDR V9, CON6 ; |113|
LDR V9, [V9, #0] ; |113|
ADD V9, V9, #32 ; |113|
LDRH A1, [V9, #0] ; |113|
ORR A1, A1, #1 ; |113|
STRH A1, [V9, #0] ; |113|
.dwpsn "MPU_subsystem.c",114,1
LDR V9, CON6 ; |114|
LDR V9, [V9, #0] ; |114|
ADD V9, V9, #128 ; |114|
LDRH A1, [V9, #0] ; |114|
ORR A1, A1, #1 ; |114|
STRH A1, [V9, #0] ; |114|
.dwpsn "MPU_subsystem.c",115,1
LDR V9, CON6 ; |115|
LDR V9, [V9, #0] ; |115|
ADD V9, V9, #160 ; |115|
LDRH A1, [V9, #0] ; |115|
ORR A1, A1, #1 ; |115|
STRH A1, [V9, #0] ; |115|
.dwpsn "MPU_subsystem.c",116,1
LDR V9, CON6 ; |116|
LDR V9, [V9, #0] ; |116|
ADD V9, V9, #224 ; |116|
LDRH A1, [V9, #0] ; |116|
ORR A1, A1, #1 ; |116|
STRH A1, [V9, #0] ; |116|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -