📄 main.s
字号:
LDR.N R0,??DataTable11 ;; 0x40012400
BL ADC_SoftwareStartConvCmd
??GetADC1Channel_0:
MOVS R1,#+2
LDR.N R0,??DataTable11 ;; 0x40012400
BL ADC_GetFlagStatus
CMP R0,#+0
BEQ.N ??GetADC1Channel_0
LDR.N R0,??DataTable11 ;; 0x40012400
BL ADC_GetConversionValue
POP {R4,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
InitADC1:
PUSH {LR}
SUB SP,SP,#+28
MOVS R1,#+1
MOVS R0,#+512
BL RCC_APB2PeriphClockCmd
LDR.N R0,??DataTable11 ;; 0x40012400
BL ADC_DeInit
MOVS R0,#+8
STRH R0,[SP, #+0]
MOVS R0,#+0
STRB R0,[SP, #+2]
MOVS R0,#+0
STRB R0,[SP, #+3]
MOV R1,SP
LDR.N R0,??DataTable19 ;; 0x40011000
BL GPIO_Init
ADD R0,SP,#+4
BL ADC_StructInit
MOVS R0,#+0
STR R0,[SP, #+4]
MOVS R0,#+0
STRB R0,[SP, #+8]
MOVS R0,#+0
STRB R0,[SP, #+9]
MOVS R0,#+917504
STR R0,[SP, #+12]
MOVS R0,#+0
STR R0,[SP, #+16]
MOVS R0,#+1
STRB R0,[SP, #+20]
ADD R1,SP,#+4
LDR.N R0,??DataTable11 ;; 0x40012400
BL ADC_Init
MOVS R1,#+1
LDR.N R0,??DataTable11 ;; 0x40012400
BL ADC_Cmd
LDR.N R0,??DataTable11 ;; 0x40012400
BL ADC_ResetCalibration
??InitADC1_0:
LDR.N R0,??DataTable11 ;; 0x40012400
BL ADC_GetResetCalibrationStatus
CMP R0,#+1
BEQ.N ??InitADC1_0
LDR.N R0,??DataTable11 ;; 0x40012400
BL ADC_StartCalibration
??InitADC1_1:
LDR.N R0,??DataTable11 ;; 0x40012400
BL ADC_GetCalibrationStatus
CMP R0,#+1
BEQ.N ??InitADC1_1
ADD SP,SP,#+28
POP {PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable11:
DC32 0x40012400
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_TEMP:
PUSH {R0,R4-R7,LR}
MOVS R4,R0
MOVS R0,#+13
BL GetADC1Channel
MOVS R5,R0
LDR.N R0,??ADC_TEMP_0 ;; ??TAD + 14
LDR.N R1,??ADC_TEMP_0+0x4 ;; ??TAD + 12
LDRH R1,[R1, #+0]
STRH R1,[R0, #+0]
LDR.N R0,??ADC_TEMP_0+0x4 ;; ??TAD + 12
LDR.N R1,??ADC_TEMP_0+0x8 ;; ??TAD + 10
LDRH R1,[R1, #+0]
STRH R1,[R0, #+0]
LDR.N R0,??ADC_TEMP_0+0x8 ;; ??TAD + 10
LDR.N R1,??ADC_TEMP_0+0xC ;; ??TAD + 8
LDRH R1,[R1, #+0]
STRH R1,[R0, #+0]
LDR.N R0,??ADC_TEMP_0+0xC ;; ??TAD + 8
LDR.N R1,??ADC_TEMP_0+0x10 ;; ??TAD + 6
LDRH R1,[R1, #+0]
STRH R1,[R0, #+0]
LDR.N R0,??ADC_TEMP_0+0x10 ;; ??TAD + 6
LDR.N R1,??ADC_TEMP_0+0x14 ;; ??TAD + 4
LDRH R1,[R1, #+0]
STRH R1,[R0, #+0]
LDR.N R0,??ADC_TEMP_0+0x14 ;; ??TAD + 4
LDR.N R1,??ADC_TEMP_0+0x18 ;; ??TAD + 2
LDRH R1,[R1, #+0]
STRH R1,[R0, #+0]
LDR.N R0,??ADC_TEMP_0+0x18 ;; ??TAD + 2
LDR.N R1,??ADC_TEMP_0+0x1C ;; ??TAD
LDRH R1,[R1, #+0]
STRH R1,[R0, #+0]
LDR.N R0,??ADC_TEMP_0+0x1C ;; ??TAD
STRH R5,[R0, #+0]
LDR.N R0,??ADC_TEMP_0+0x20 ;; ??ADC_COUNT
LDRH R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R1,??ADC_TEMP_0+0x20 ;; ??ADC_COUNT
STRH R0,[R1, #+0]
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
CMP R0,#+5
BCC.N ??ADC_TEMP_1
LDR.N R0,??ADC_TEMP_0+0x20 ;; ??ADC_COUNT
MOVS R1,#+0
STRH R1,[R0, #+0]
MOVS R0,#+0
MOVS R7,R0
MOVS R0,#+0
MOVS R5,R0
??ADC_TEMP_2:
UXTH R5,R5 ;; ZeroExtS R5,R5,#+16,#+16
CMP R5,#+8
BCS.N ??ADC_TEMP_3
UXTH R5,R5 ;; ZeroExtS R5,R5,#+16,#+16
MOVS R0,#+2
MULS R0,R5,R0
LDR.N R1,??ADC_TEMP_0+0x1C ;; ??TAD
LDRH R0,[R1, R0]
ADDS R7,R7,R0
ADDS R5,R5,#+1
B.N ??ADC_TEMP_2
??ADC_TEMP_3:
LSRS R7,R7,#+3
LSRS R7,R7,#+4
LDR.N R0,??ADC_TEMP_0+0x24 ;; TEMP_TAB
LDRH R0,[R0, #+0]
MOVS R6,R0
MOVS R0,#+0
MOVS R5,R0
??ADC_TEMP_4:
UXTH R5,R5 ;; ZeroExtS R5,R5,#+16,#+16
CMP R5,#+130
BCS.N ??ADC_TEMP_5
UXTH R6,R6 ;; ZeroExtS R6,R6,#+16,#+16
CMP R7,R6
BCS.N ??ADC_TEMP_5
ADDS R5,R5,#+1
MOVS R0,R5
MOVS R5,R0
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
MOVS R1,#+2
MULS R0,R1,R0
LDR.N R1,??ADC_TEMP_0+0x24 ;; TEMP_TAB
LDRH R0,[R1, R0]
MOVS R6,R0
B.N ??ADC_TEMP_4
??ADC_TEMP_5:
STRH R5,[R4, #+0]
CMP R7,#+250
BCC.N ??ADC_TEMP_1
MOVS R0,#+255
STRH R0,[R4, #+0]
??ADC_TEMP_1:
ADD SP,SP,#+4
POP {R4-R7,PC} ;; return
DATA
??ADC_TEMP_0:
DC32 ??TAD + 14
DC32 ??TAD + 12
DC32 ??TAD + 10
DC32 ??TAD + 8
DC32 ??TAD + 6
DC32 ??TAD + 4
DC32 ??TAD + 2
DC32 ??TAD
DC32 ??ADC_COUNT
DC32 TEMP_TAB
SECTION `.bss`:DATA:NOROOT(1)
??ADC_COUNT:
DS8 2
SECTION `.bss`:DATA:NOROOT(2)
??TAD:
DS8 16
SECTION `.XML`:CODE:NOROOT(2)
THUMB
delay:
MOVS R2,#+0
MOVS R1,R2
??delay_0:
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
CMP R1,R0
BCS.N ??delay_1
ADDS R1,R1,#+1
B.N ??delay_0
??delay_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
delay_nop:
PUSH {R0,R4,R5,LR}
MOVS R4,R0
??delay_nop_0:
MOVS R0,R4
SUBS R4,R0,#+1
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
CMP R0,#+0
BEQ.N ??delay_nop_1
MOVS R0,#+200
MOVS R5,R0
??delay_nop_2:
UXTH R5,R5 ;; ZeroExtS R5,R5,#+16,#+16
CMP R5,#+0
BEQ.N ??delay_nop_0
BL WWDG_ClearFlag
SUBS R5,R5,#+1
B.N ??delay_nop_2
??delay_nop_1:
ADD SP,SP,#+4
POP {R4,R5,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
InitGPIO:
PUSH {R0,LR}
MOVS R1,#+1
MOVS R0,#+60
BL RCC_APB2PeriphClockCmd
LDR.N R0,??InitGPIO_0 ;; 0x40010800
BL GPIO_DeInit
LDR.N R0,??DataTable17 ;; 0x40010c00
BL GPIO_DeInit
LDR.N R0,??DataTable19 ;; 0x40011000
BL GPIO_DeInit
LDR.N R0,??DataTable14 ;; 0x40011400
BL GPIO_DeInit
LDR.N R0,??InitGPIO_0+0x4 ;; 0x191d
STRH R0,[SP, #+0]
MOVS R0,#+3
STRB R0,[SP, #+2]
MOVS R0,#+16
STRB R0,[SP, #+3]
MOV R1,SP
LDR.N R0,??InitGPIO_0 ;; 0x40010800
BL GPIO_Init
MOVS R0,#+242
STRH R0,[SP, #+0]
MOVS R0,#+0
STRB R0,[SP, #+2]
MOVS R0,#+4
STRB R0,[SP, #+3]
MOV R1,SP
LDR.N R0,??InitGPIO_0 ;; 0x40010800
BL GPIO_Init
LDR.N R0,??InitGPIO_0+0x8 ;; 0xa25
STRH R0,[SP, #+0]
MOVS R0,#+0
STRB R0,[SP, #+2]
MOVS R0,#+4
STRB R0,[SP, #+3]
MOV R1,SP
LDR.N R0,??DataTable17 ;; 0x40010c00
BL GPIO_Init
LDR.N R0,??InitGPIO_0+0xC ;; 0xf5e2
STRH R0,[SP, #+0]
MOVS R0,#+3
STRB R0,[SP, #+2]
MOVS R0,#+16
STRB R0,[SP, #+3]
MOV R1,SP
LDR.N R0,??DataTable17 ;; 0x40010c00
BL GPIO_Init
MOVS R1,#+65024
LDR.N R0,??DataTable17 ;; 0x40010c00
BL GPIO_Write
LDR.N R0,??InitGPIO_0+0x10 ;; 0x1fe9
STRH R0,[SP, #+0]
MOVS R0,#+3
STRB R0,[SP, #+2]
MOVS R0,#+16
STRB R0,[SP, #+3]
MOV R1,SP
LDR.N R0,??DataTable19 ;; 0x40011000
BL GPIO_Init
MOVS R0,#+22
STRH R0,[SP, #+0]
MOVS R0,#+0
STRB R0,[SP, #+2]
MOVS R0,#+4
STRB R0,[SP, #+3]
MOV R1,SP
LDR.N R0,??DataTable19 ;; 0x40011000
BL GPIO_Init
ADD SP,SP,#+4
POP {PC} ;; return
DATA
??InitGPIO_0:
DC32 0x40010800
DC32 0x191d
DC32 0xa25
DC32 0xf5e2
DC32 0x1fe9
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable14:
DC32 0x40011400
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable17:
DC32 0x40010c00
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable19:
DC32 0x40011000
SECTION `.XML`:CODE:NOROOT(2)
THUMB
InitTemperature:
LDR.N R0,??InitTemperature_0 ;; TemRHA
LDR.N R1,??InitTemperature_0+0x4 ;; 0x40011000
STR R1,[R0, #+0]
LDR.N R0,??InitTemperature_0+0x8 ;; TemRHA + 4
MOVS R1,#+12
STRB R1,[R0, #+0]
LDR.N R0,??InitTemperature_0+0xC ;; TemRHA + 8
LDR.N R1,??InitTemperature_0+0x10 ;; 0x40011400
STR R1,[R0, #+0]
LDR.N R0,??InitTemperature_0+0x14 ;; TemRHA + 12
MOVS R1,#+2
STRB R1,[R0, #+0]
BX LR ;; return
Nop
DATA
??InitTemperature_0:
DC32 TemRHA
DC32 0x40011000
DC32 TemRHA + 4
DC32 TemRHA + 8
DC32 0x40011400
DC32 TemRHA + 12
SECTION `.XML`:CODE:NOROOT(2)
THUMB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -