📄 lib_at91.s79
字号:
LDRB R3,[R8, #+8]
MOV R2,R2, LSL R3
BEQ ??at91_usart_open_0
ORR R0,R2,R0, LSL R1
MOV R1,#+0x1
LDRB R2,[R8, #+10]
ORR R1,R0,R1, LSL R2
B ??at91_usart_open_1
??at91_usart_open_0:
ORR R1,R2,R0, LSL R1
??at91_usart_open_1:
LDR R0,[R8, #+4]
BL at91_pio_close
MOV R0,#+0xAC
LDR R1,[R8, #+0]
STR R0,[R1, #+0]
MOV R0,#+0x0
LDR R1,[R8, #+0]
STR R0,[R1, #+52]
LDR R1,[R8, #+0]
STR R0,[R1, #+60]
LDR R0,[R8, #+0]
STR R6,[R0, #+32]
LDR R0,[R8, #+0]
STR R5,[R0, #+4]
LDR R0,[R8, #+0]
STR R7,[R0, #+40]
MOV R0,#+0x50
LDR R1,[R8, #+0]
STR R0,[R1, #+0]
LDMIA SP!,{R4-R8,PC} ;; return
CFI EndBlock cfiBlock10
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock11 Using cfiCommon0
CFI Function at91_usart_close
CODE32
at91_usart_close:
STMDB SP!,{R4,R5,LR} ;; Push
CFI RET Frame(CFA, -4)
CFI R5 Frame(CFA, -8)
CFI R4 Frame(CFA, -12)
CFI CFA SP+12
MOV R4,R0
LDRB R0,[R4, #+11]
BL at91_clock_close
MOV R2,#+0x0
MOV R0,#+0x1
LDRB R1,[R4, #+9]
MOV R3,R0
LDRB R5,[R4, #+8]
MOV R3,R3, LSL R5
ORR R0,R3,R0, LSL R1
MOV R1,#+0x1
LDRB R3,[R4, #+10]
ORR R1,R0,R1, LSL R3
LDR R0,[R4, #+4]
BL at91_pio_open
MVN R0,#+0x0
LDR R1,[R4, #+0]
STR R0,[R1, #+12]
MOV R0,#+0x0
LDR R1,[R4, #+0]
STR R0,[R1, #+52]
LDR R1,[R4, #+0]
STR R0,[R1, #+60]
MOV R0,#+0xAC
LDR R1,[R4, #+0]
STR R0,[R1, #+0]
LDMIA SP!,{R4,R5,PC} ;; return
CFI EndBlock cfiBlock11
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock12 Using cfiCommon0
CFI Function at91_usart_get_status
CODE32
at91_usart_get_status:
LDR R1,[R0, #+0]
LDR R0,[R1, #+20]
MOV PC,LR ;; return
CFI EndBlock cfiBlock12
RSEG NEARFUNC_A:CODE:NOROOT(2)
CODE32
at91_usart_trig_cmd:
REQUIRE ??Subroutine0_0
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock13 Using cfiCommon0
CFI NoFunction
??Subroutine0_0:
LDR R2,[R0, #+0]
STR R1,[R2, #+0]
MOV PC,LR ;; return
CFI EndBlock cfiBlock13
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock14 Using cfiCommon0
CFI Function at91_usart_write
CODE32
at91_usart_write:
B ??Subroutine2_0
CFI EndBlock cfiBlock14
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock15 Using cfiCommon0
CFI Function at91_usart_read
CODE32
at91_usart_read:
LDR R2,[R0, #+0]
LDR R0,[R2, #+24]
B ??Subroutine1_1
CFI EndBlock cfiBlock15
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock16 Using cfiCommon0
CFI Function at91_usart_send_frame
CODE32
at91_usart_send_frame:
STMDB SP!,{R4} ;; Push
CFI R4 Frame(CFA, -4)
CFI CFA SP+4
??at91_usart_send_frame_0:
LDR R3,[R0, #+0]
LDR R4,[R3, #+20]
AND R4,R4,#+0xFF ;; Zero extend
TST R4,#+0x10
BEQ ??at91_usart_send_frame_0
STR R1,[R3, #+56]
LDR R1,[R0, #+0]
STR R2,[R1, #+60]
MOV R0,#+0x1
LDMIA SP!,{R4} ;; Pop
CFI R4 SameValue
CFI CFA SP+0
MOV PC,LR ;; return
CFI EndBlock cfiBlock16
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock17 Using cfiCommon0
CFI Function at91_usart_receive_frame
CODE32
at91_usart_receive_frame:
STMDB SP!,{R4,R5} ;; Push
CFI R5 Frame(CFA, -4)
CFI R4 Frame(CFA, -8)
CFI CFA SP+8
MOV R4,#+0xA
MUL R5,R3,R4
MOV R3,R5, LSR #+2
LDR R4,[R0, #+0]
STR R3,[R4, #+36]
MOV R3,#+0x800
LDR R4,[R0, #+0]
STR R3,[R4, #+0]
LDR R3,[R0, #+0]
STR R1,[R3, #+48]
LDR R1,[R0, #+0]
STR R2,[R1, #+52]
MOV R0,#+0x1
LDMIA SP!,{R4,R5} ;; Pop
CFI R4 SameValue
CFI R5 SameValue
CFI CFA SP+0
MOV PC,LR ;; return
CFI EndBlock cfiBlock17
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock18 Using cfiCommon0
CFI Function at91_tc_open
CODE32
at91_tc_open:
STMDB SP!,{R4-R8,LR} ;; Push
CFI RET Frame(CFA, -4)
CFI R8 Frame(CFA, -8)
CFI R7 Frame(CFA, -12)
CFI R6 Frame(CFA, -16)
CFI R5 Frame(CFA, -20)
CFI R4 Frame(CFA, -24)
CFI CFA SP+24
MOV R4,R0
MOV R5,R1
MOV R8,R2
MOV R7,R3
MOV R6,R4
LDRB R0,[R6, #+8]
BL at91_clock_open
MOV R0,#+0x1
LDRB R2,[R6, #+11]
MOV R1,R0, LSL R2
CMP R8,#+0x1
LDREQB R2,[R6, #+9]
ORREQ R1,R1,R0, LSL R2
CMP R7,#+0x1
LDREQB R2,[R6, #+10]
ORREQ R1,R1,R0, LSL R2
LDR R0,[R6, #+4]
BL at91_pio_close
MOV R0,#+0x2
LDR R1,[R6, #+0]
STR R0,[R1, #+0]
MVN R0,#+0x0
LDR R1,[R6, #+0]
STR R0,[R1, #+40]
LDR R0,[R6, #+0]
LDR R1,[R0, #+32]
STR R5,[R0, #+4]
MOV R0,#+0x1
LDR R1,[R6, #+0]
STR R0,[R1, #+0]
LDMIA SP!,{R4-R8,PC} ;; return
CFI EndBlock cfiBlock18
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock19 Using cfiCommon0
CFI Function at91_tc_close
CODE32
at91_tc_close:
STMDB SP!,{LR} ;; Push
CFI RET Frame(CFA, -4)
CFI CFA SP+4
MOV R1,R0
MOV R0,#+0x2
LDR R2,[R1, #+0]
STR R0,[R2, #+0]
MVN R0,#+0x0
LDR R2,[R1, #+0]
STR R0,[R2, #+40]
LDRB R0,[R1, #+8]
BL at91_clock_close
LDMIA SP!,{PC} ;; return
CFI EndBlock cfiBlock19
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock20 Using cfiCommon0
CFI Function at91_tc_get_status
CODE32
at91_tc_get_status:
LDR R1,[R0, #+0]
LDR R0,[R1, #+32]
MOV PC,LR ;; return
CFI EndBlock cfiBlock20
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock21 Using cfiCommon0
CFI Function at91_tc_trig_cmd
CODE32
at91_tc_trig_cmd:
STMDB SP!,{LR} ;; Push
CFI RET Frame(CFA, -4)
CFI CFA SP+4
CMP R1,#+0x1
BEQ ??at91_tc_trig_cmd_0
CMP R1,#+0x2
BEQ ??at91_tc_trig_cmd_1
LDMIA SP!,{PC} ;; return
??at91_tc_trig_cmd_0:
MOV R1,#+0x4
LDR R2,[R0, #+0]
STR R1,[R2, #+0]
LDMIA SP!,{PC} ;; return
??at91_tc_trig_cmd_1:
MOV R1,#+0x1
LDR R2,[R0, #+0]
AND R0,R2,#+0xF0
STR R1,[R0, #+192]
LDMIA SP!,{PC} ;; return
CFI EndBlock cfiBlock21
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock22 Using cfiCommon0
CFI Function at91_tc_set_mode
CODE32
at91_tc_set_mode:
CMP R2,#+0x0
BEQ ??at91_tc_set_mode_0
LDR R2,[R0, #+0]
LDR R0,[R2, #+4]
ORR R0,R0,R1
B ??at91_tc_set_mode_1
??at91_tc_set_mode_0:
MVN R1,R1
LDR R2,[R0, #+0]
LDR R0,[R2, #+4]
AND R0,R0,R1
??at91_tc_set_mode_1:
STR R0,[R2, #+4]
MOV PC,LR ;; return
CFI EndBlock cfiBlock22
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock23 Using cfiCommon0
CFI Function at91_tc_read
CODE32
at91_tc_read:
MOV R2,R1
LDR R1,[R0, #+0]
LDR R3,[R1, #+20]
STR R3,[R2, #+0]
LDR R1,[R0, #+0]
LDR R3,[R1, #+24]
STR R3,[R2, #+4]
LDR R1,[R0, #+0]
LDR R3,[R1, #+28]
STR R3,[R2, #+8]
LDR R1,[R0, #+0]
LDR R0,[R1, #+16]
STR R0,[R2, #+12]
MOV PC,LR ;; return
CFI EndBlock cfiBlock23
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock24 Using cfiCommon0
CFI Function at91_tc_write
CODE32
at91_tc_write:
REQUIRE ??Subroutine2_0
MOV R2,R1
LDR R1,[R2, #+0]
LDR R3,[R0, #+0]
STR R1,[R3, #+20]
LDR R1,[R2, #+4]
LDR R3,[R0, #+0]
STR R1,[R3, #+24]
LDR R1,[R2, #+8]
CFI EndBlock cfiBlock24
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock25 Using cfiCommon0
CFI NoFunction
??Subroutine2_0:
LDR R2,[R0, #+0]
STR R1,[R2, #+28]
MOV PC,LR ;; return
CFI EndBlock cfiBlock25
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock26 Using cfiCommon0
CFI Function at91_default_fiq_handler
CODE32
at91_default_fiq_handler:
??at91_default_fiq_handler_0:
B ??at91_default_fiq_handler_0
CFI EndBlock cfiBlock26
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock27 Using cfiCommon0
CFI Function at91_default_irq_handler
CODE32
at91_default_irq_handler:
??at91_default_irq_handler_0:
B ??at91_default_irq_handler_0
CFI EndBlock cfiBlock27
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock28 Using cfiCommon0
CFI Function at91_spurious_handler
CODE32
at91_spurious_handler:
??at91_spurious_handler_0:
B ??at91_spurious_handler_0
CFI EndBlock cfiBlock28
RSEG HUGE_ID:HUGECONST:SORT:NOROOT(2)
`?<Initializer for Pio>`:
DC32 0FFFF0000H
RSEG HUGE_ID:HUGECONST:SORT:NOROOT(2)
`?*?HUGE_ID`:
RSEG INITTAB:CODE:ROOT(2)
?init?tab?HUGE_I:
DCD sfe(HUGE_I) - sfb(HUGE_I), sfb(HUGE_I), sfb(HUGE_ID)
END
;
; 80 bytes in segment HUGE_C
; 4 bytes in segment HUGE_I
; 4 bytes in segment HUGE_ID
; 12 bytes in segment INITTAB
; 1 240 bytes in segment NEARFUNC_A
;
; 1 240 bytes of CODE memory (+ 12 bytes shared)
; 84 bytes of HUGECONST memory
; 4 bytes of HUGEDATA memory
;
;Errors: none
;Warnings: 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -