📄 stm32f10x_can.s79
字号:
B.N ??CAN_TransmitStatus_10
??CAN_TransmitStatus_7:
MOVS R4,#+2
B.N ??CAN_TransmitStatus_11
??CAN_TransmitStatus_8:
MOVS R4,#+0
B.N ??CAN_TransmitStatus_11
??CAN_TransmitStatus_9:
MOVS R4,#+1
B.N ??CAN_TransmitStatus_11
??CAN_TransmitStatus_10:
MOVS R4,#+0
??CAN_TransmitStatus_11:
MOVS R0,R4
LSLS R0,R0,#+24 ;; ZeroExtS R0,R0,#+24,#+24
LSRS R0,R0,#+24
POP {R4,R5,PC} ;; return
DATA
??CAN_TransmitStatus_1:
DC32 0x1e3
RSEG CODE:CODE:NOROOT(2)
THUMB
CAN_CancelTransmit:
PUSH {R4,LR}
MOVS R4,R0
CMP R4,#+3
BCC.N ??CAN_CancelTransmit_0
LDR.N R1,??CAN_CancelTransmit_1 ;; 0x215
LDR.N R0,??DataTable106 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??CAN_CancelTransmit_0:
CMP R4,#+0
BEQ.N ??CAN_CancelTransmit_2
CMP R4,#+1
BEQ.N ??CAN_CancelTransmit_3
CMP R4,#+2
BEQ.N ??CAN_CancelTransmit_4
B.N ??CAN_CancelTransmit_5
??CAN_CancelTransmit_2:
LDR.N R0,??DataTable115 ;; CAN
LDR R0,[R0, #+0]
LDR.N R1,??DataTable115 ;; CAN
LDR R1,[R1, #+0]
LDR R1,[R1, #+8]
ORRS R1,R1,#0x80
STR R1,[R0, #+8]
B.N ??CAN_CancelTransmit_5
??CAN_CancelTransmit_3:
LDR.N R0,??DataTable115 ;; CAN
LDR R0,[R0, #+0]
LDR.N R1,??DataTable115 ;; CAN
LDR R1,[R1, #+0]
LDR R1,[R1, #+8]
ORRS R1,R1,#0x8000
STR R1,[R0, #+8]
B.N ??CAN_CancelTransmit_5
??CAN_CancelTransmit_4:
LDR.N R0,??DataTable115 ;; CAN
LDR R0,[R0, #+0]
LDR.N R1,??DataTable115 ;; CAN
LDR R1,[R1, #+0]
LDR R1,[R1, #+8]
ORRS R1,R1,#0x800000
STR R1,[R0, #+8]
??CAN_CancelTransmit_5:
POP {R4,PC} ;; return
DATA
??CAN_CancelTransmit_1:
DC32 0x215
RSEG CODE:CODE:NOROOT(2)
DATA
??DataTable106:
DC32 `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
RSEG CODE:CODE:NOROOT(2)
THUMB
CAN_FIFORelease:
PUSH {R4,LR}
MOVS R4,R0
CMP R4,#+0
BEQ.N ??CAN_FIFORelease_0
CMP R4,#+1
BEQ.N ??CAN_FIFORelease_0
LDR.N R1,??CAN_FIFORelease_1 ;; 0x22f
LDR.N R0,??DataTable142 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??CAN_FIFORelease_0:
CMP R4,#+0
BNE.N ??CAN_FIFORelease_2
LDR.N R0,??DataTable115 ;; CAN
LDR R0,[R0, #+0]
MOVS R1,#+32
STR R1,[R0, #+12]
B.N ??CAN_FIFORelease_3
??CAN_FIFORelease_2:
LDR.N R0,??DataTable115 ;; CAN
LDR R0,[R0, #+0]
MOVS R1,#+32
STR R1,[R0, #+16]
??CAN_FIFORelease_3:
POP {R4,PC} ;; return
DATA
??CAN_FIFORelease_1:
DC32 0x22f
RSEG CODE:CODE:NOROOT(2)
DATA
??DataTable115:
DC32 CAN
RSEG CODE:CODE:NOROOT(2)
THUMB
CAN_MessagePending:
PUSH {R4,LR}
MOVS R4,R0
MOVS R0,#+0
CMP R4,#+0
BEQ.N ??CAN_MessagePending_0
CMP R4,#+1
BEQ.N ??CAN_MessagePending_0
LDR.N R1,??CAN_MessagePending_1 ;; 0x249
LDR.N R0,??DataTable142 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??CAN_MessagePending_0:
CMP R4,#+0
BNE.N ??CAN_MessagePending_2
LDR.N R0,??DataTable144 ;; CAN
LDR R0,[R0, #+0]
LDR R0,[R0, #+12]
LSLS R0,R0,#+30 ;; ZeroExtS R0,R0,#+30,#+30
LSRS R0,R0,#+30
B.N ??CAN_MessagePending_3
??CAN_MessagePending_2:
CMP R4,#+1
BNE.N ??CAN_MessagePending_4
LDR.N R0,??DataTable144 ;; CAN
LDR R0,[R0, #+0]
LDR R0,[R0, #+16]
LSLS R0,R0,#+30 ;; ZeroExtS R0,R0,#+30,#+30
LSRS R0,R0,#+30
B.N ??CAN_MessagePending_3
??CAN_MessagePending_4:
MOVS R0,#+0
??CAN_MessagePending_3:
POP {R4,PC} ;; return
Nop
DATA
??CAN_MessagePending_1:
DC32 0x249
RSEG CODE:CODE:NOROOT(2)
THUMB
CAN_Receive:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
CMP R4,#+0
BEQ.N ??CAN_Receive_0
CMP R4,#+1
BEQ.N ??CAN_Receive_0
LDR.N R1,??CAN_Receive_1 ;; 0x265
LDR.N R0,??DataTable142 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??CAN_Receive_0:
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+432]
LSRS R0,R0,#+21
STR R0,[R5, #+0]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+432]
LSRS R0,R0,#+3
LSLS R0,R0,#+14 ;; ZeroExtS R0,R0,#+14,#+14
LSRS R0,R0,#+14
STR R0,[R5, #+4]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+432]
MOVS R1,#+4
ANDS R1,R1,R0
STRB R1,[R5, #+8]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+432]
MOVS R1,#+2
ANDS R1,R1,R0
STRB R1,[R5, #+9]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+436]
LSLS R0,R0,#+28 ;; ZeroExtS R0,R0,#+28,#+28
LSRS R0,R0,#+28
STRB R0,[R5, #+10]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+436]
LSRS R0,R0,#+8
STRB R0,[R5, #+19]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+440]
STRB R0,[R5, #+11]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+440]
LSRS R0,R0,#+8
STRB R0,[R5, #+12]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+440]
LSRS R0,R0,#+16
STRB R0,[R5, #+13]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+440]
LSRS R0,R0,#+24
STRB R0,[R5, #+14]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+444]
STRB R0,[R5, #+15]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+444]
LSRS R0,R0,#+8
STRB R0,[R5, #+16]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+444]
LSRS R0,R0,#+16
STRB R0,[R5, #+17]
LSLS R4,R4,#+24 ;; ZeroExtS R4,R4,#+24,#+24
LSRS R4,R4,#+24
MOVS R0,#+16
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
MLA R0,R4,R0,R1
LDR R0,[R0, #+444]
LSRS R0,R0,#+24
STRB R0,[R5, #+18]
MOVS R0,R4
BL CAN_FIFORelease
POP {R4,R5,PC} ;; return
DATA
??CAN_Receive_1:
DC32 0x265
RSEG CODE:CODE:NOROOT(2)
THUMB
CAN_Sleep:
MOVS R0,#+0
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
LDR.N R2,??DataTable144 ;; CAN
LDR R2,[R2, #+0]
LDR R2,[R2, #+0]
ORRS R2,R2,#0x2
STR R2,[R1, #+0]
MOVS R1,#+1
MOVS R0,R1
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
LDR R1,[R1, #+4]
LSLS R1,R1,#+30
BMI.N ??CAN_Sleep_0
MOVS R0,#+0
??CAN_Sleep_0:
BX LR ;; return
RSEG CODE:CODE:NOROOT(2)
THUMB
CAN_WakeUp:
MOVS R0,#+0
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
LDR.N R2,??DataTable144 ;; CAN
LDR R2,[R2, #+0]
LDR R2,[R2, #+0]
MOVS R3,#+2
BICS R2,R2,R3
STR R2,[R1, #+0]
MOVS R1,#+0
MOVS R0,R1
LDR.N R1,??DataTable144 ;; CAN
LDR R1,[R1, #+0]
LDR R1,[R1, #+4]
LSLS R1,R1,#+30
BMI.N ??CAN_WakeUp_0
MOVS R0,#+1
??CAN_WakeUp_0:
BX LR ;; return
RSEG CODE:CODE:NOROOT(2)
THUMB
CAN_GetFlagStatus:
PUSH {R4,LR}
MOVS R4,R0
MOVS R0,#+0
CMP R4,#+1
BEQ.N ??CAN_GetFlagStatus_0
CMP R4,#+2
BEQ.N ??CAN_GetFlagStatus_0
CMP R4,#+4
BEQ.N ??CAN_GetFlagStatus_0
LDR.N R1,??CAN_GetFlagStatus_1 ;; 0x2c6
LDR.N R0,??DataTable142 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??CAN_GetFlagStatus_0:
LDR.N R0,??DataTable144 ;; CAN
LDR R0,[R0, #+0]
LDR R0,[R0, #+24]
ANDS R4,R4,R0
CMP R4,#+0
BEQ.N ??CAN_GetFlagStatus_2
MOVS R0,#+1
B.N ??CAN_GetFlagStatus_3
??CAN_GetFlagStatus_2:
MOVS R0,#+0
??CAN_GetFlagStatus_3:
POP {R4,PC} ;; return
Nop
DATA
??CAN_GetFlagStatus_1:
DC32 0x2c6
RSEG CODE:CODE:NOROOT(2)
THUMB
CAN_ClearFlag:
PUSH {R4,LR}
MOVS R4,R0
CMP R4,#+1
BEQ.N ??CAN_ClearFlag_0
CMP R4,#+2
BEQ.N ??CAN_ClearFlag_0
CMP R4,#+4
BEQ.N ??CAN_ClearFlag_0
LDR.N R1,??CAN_ClearFlag_1 ;; 0x2e1
LDR.N R0,??DataTable142 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -