📄 stm32f10x_gpio.s
字号:
MOVS R1,#+2
STRB R1,[R0, #+2]
MOVS R1,#+4
STRB R1,[R0, #+3]
BX LR ;; return
Nop
DATA
??GPIO_StructInit_0:
DC32 0xffff
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_ReadInputDataBit:
PUSH {R0,R4}
MOVS R2,R0
MOVS R3,#+0
MOVS R0,R3
LDR R3,[R2, #+8]
ANDS R3,R3,R1
MOVS R4,R3
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
SUBS R4,R4,#+1
SBCS R4,R4,R4
MVNS R4,R4
LSRS R4,R4,#+31
MOVS R0,R4
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ADD SP,SP,#+4
POP {R4}
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_ReadInputData:
LDR R0,[R0, #+8]
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_ReadOutputDataBit:
PUSH {R0,R4}
MOVS R2,R0
MOVS R3,#+0
MOVS R0,R3
LDR R3,[R2, #+12]
ANDS R3,R3,R1
MOVS R4,R3
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
SUBS R4,R4,#+1
SBCS R4,R4,R4
MVNS R4,R4
LSRS R4,R4,#+31
MOVS R0,R4
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ADD SP,SP,#+4
POP {R4}
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_ReadOutputData:
LDR R0,[R0, #+12]
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_SetBits:
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
STR R1,[R0, #+16]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_ResetBits:
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
STR R1,[R0, #+20]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_WriteBit:
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
CMP R2,#+0
BEQ.N ??GPIO_WriteBit_0
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
STR R1,[R0, #+16]
B.N ??GPIO_WriteBit_1
??GPIO_WriteBit_0:
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
STR R1,[R0, #+20]
??GPIO_WriteBit_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_Write:
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
STR R1,[R0, #+12]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_PinLockConfig:
MOVS R3,#+65536
MOVS R2,R3
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
ORRS R2,R2,R1
STR R2,[R0, #+24]
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
STR R1,[R0, #+24]
STR R2,[R0, #+24]
LDR R3,[R0, #+24]
MOVS R2,R3
LDR R3,[R0, #+24]
MOVS R2,R3
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_EventOutputConfig:
MOVS R3,#+0
MOVS R2,R3
LDR.N R3,??GPIO_EventOutputConfig_0 ;; 0x40010000
LDR R3,[R3, #+0]
MOVS R2,R3
MOVS R3,R2
LDR.N R2,??GPIO_EventOutputConfig_0+0x4 ;; 0xff80
ANDS R2,R2,R3
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ORRS R2,R2,R0, LSL #+4
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
ORRS R2,R2,R1
LDR.N R3,??GPIO_EventOutputConfig_0 ;; 0x40010000
STR R2,[R3, #+0]
BX LR ;; return
DATA
??GPIO_EventOutputConfig_0:
DC32 0x40010000
DC32 0xff80
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_EventOutputCmd:
LDR.N R1,??GPIO_EventOutputCmd_0 ;; 0x4220001c
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
STR R0,[R1, #+0]
BX LR ;; return
DATA
??GPIO_EventOutputCmd_0:
DC32 0x4220001c
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_PinRemapConfig:
PUSH {R0,R4-R6}
MOVS R6,#+0
MOVS R2,R6
MOVS R6,#+0
MOVS R3,R6
MOVS R6,#+0
MOVS R4,R6
MOVS R6,#+0
MOVS R5,R6
LDR.N R6,??GPIO_PinRemapConfig_0 ;; 0x40010004
LDR R6,[R6, #+0]
MOVS R4,R6
ANDS R6,R0,#0xF0000
LSRS R5,R6,#+16
UXTH R6,R0 ;; ZeroExtS R6,R0,#+16,#+16
MOVS R2,R6
LSLS R6,R0,#+10
BPL.N ??GPIO_PinRemapConfig_1
MOVS R6,R4
MVNS R4,#+117440512
ANDS R4,R4,R6
B.N ??GPIO_PinRemapConfig_2
??GPIO_PinRemapConfig_1:
LSLS R6,R0,#+11
BPL.N ??GPIO_PinRemapConfig_3
MOVS R6,#+3
LSLS R6,R6,R5
MOVS R3,R6
BICS R4,R4,R3
B.N ??GPIO_PinRemapConfig_2
??GPIO_PinRemapConfig_3:
BICS R4,R4,R2
??GPIO_PinRemapConfig_2:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??GPIO_PinRemapConfig_4
LSLS R6,R0,#+10
BPL.N ??GPIO_PinRemapConfig_5
ORRS R4,R4,R2, LSL #+16
B.N ??GPIO_PinRemapConfig_4
??GPIO_PinRemapConfig_5:
ORRS R4,R4,R2
??GPIO_PinRemapConfig_4:
LDR.N R6,??GPIO_PinRemapConfig_0 ;; 0x40010004
STR R4,[R6, #+0]
ADD SP,SP,#+4
POP {R4-R6}
BX LR ;; return
DATA
??GPIO_PinRemapConfig_0:
DC32 0x40010004
SECTION `.XML`:CODE:NOROOT(2)
THUMB
GPIO_EXTILineConfig:
PUSH {R4,R5}
MOVS R3,#+0
MOVS R2,R3
MOVS R3,#+15
LSLS R4,R1,#+30 ;; ZeroExtS R4,R1,#+30,#+30
LSRS R4,R4,#+30
MOVS R5,#+4
MULS R4,R5,R4
LSLS R3,R3,R4
MOVS R2,R3
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
ASRS R3,R1,#+2
MOVS R4,#+4
MULS R3,R4,R3
LDR.N R4,??GPIO_EXTILineConfig_0 ;; 0x40010008
LDR R3,[R4, R3]
BICS R3,R3,R2
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
ASRS R4,R1,#+2
MOVS R5,#+4
MULS R4,R5,R4
LDR.N R5,??GPIO_EXTILineConfig_0 ;; 0x40010008
STR R3,[R5, R4]
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
ASRS R3,R1,#+2
MOVS R4,#+4
MULS R3,R4,R3
LDR.N R4,??GPIO_EXTILineConfig_0 ;; 0x40010008
LDR R3,[R4, R3]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
LSLS R4,R1,#+30 ;; ZeroExtS R4,R1,#+30,#+30
LSRS R4,R4,#+30
MOVS R5,#+4
MULS R4,R5,R4
LSLS R4,R0,R4
ORRS R4,R4,R3
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
ASRS R3,R1,#+2
MOVS R5,#+4
MULS R3,R5,R3
LDR.N R5,??GPIO_EXTILineConfig_0 ;; 0x40010008
STR R4,[R5, R3]
POP {R4,R5}
BX LR ;; return
Nop
DATA
??GPIO_EXTILineConfig_0:
DC32 0x40010008
END
//
// 814 bytes in section .XML
//
// 814 bytes of CODE memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -