diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index cfe68da..58975a2 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -6,7 +6,7 @@
-
+
@@ -18,7 +18,7 @@
-
+
diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs
index 60ab128..1d79db8 100644
--- a/.settings/stm32cubeide.project.prefs
+++ b/.settings/stm32cubeide.project.prefs
@@ -1,4 +1,4 @@
66BE74F758C12D739921AEA421D593D3=3
-8DF89ED150041C4CBC7CB9A9CAA90856=49D03C461CB58C358FC38377BBF9225B
-DC22A860405A8BF2F2C095E5B6529F12=49D03C461CB58C358FC38377BBF9225B
+8DF89ED150041C4CBC7CB9A9CAA90856=F46B32B5BAB702A632C55EDACF07DC3A
+DC22A860405A8BF2F2C095E5B6529F12=F10B3BB9AE74C7F02862DDE67690A377
eclipse.preferences.version=1
diff --git a/Debug/Core/Src/main.d b/Debug/Core/Src/main.d
index daac744..c8dc6b3 100644
--- a/Debug/Core/Src/main.d
+++ b/Debug/Core/Src/main.d
@@ -27,7 +27,7 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/SW_APPs/Main_APP.h
+ C:/Users/wuwen/Desktop/M3s_stm32/SW_APPs/Main_APP.h
../Core/Inc/main.h:
@@ -87,4 +87,4 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/SW_APPs/Main_APP.h:
+C:/Users/wuwen/Desktop/M3s_stm32/SW_APPs/Main_APP.h:
diff --git a/Debug/Core/Src/subdir.mk b/Debug/Core/Src/subdir.mk
index d9be193..d12825b 100644
--- a/Debug/Core/Src/subdir.mk
+++ b/Debug/Core/Src/subdir.mk
@@ -31,5 +31,12 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Core/Src/%.o: ../Core/Src/%.c Core/Src/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I"/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/SW_APPs" -I"/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices" -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I"C:/Users/wuwen/Desktop/M3s_stm32/SW_APPs" -I"C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices" -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Core-2f-Src
+
+clean-Core-2f-Src:
+ -$(RM) ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/stm32f1xx_hal_msp.d ./Core/Src/stm32f1xx_hal_msp.o ./Core/Src/stm32f1xx_it.d ./Core/Src/stm32f1xx_it.o ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/system_stm32f1xx.d ./Core/Src/system_stm32f1xx.o
+
+.PHONY: clean-Core-2f-Src
diff --git a/Debug/Core/Startup/subdir.mk b/Debug/Core/Startup/subdir.mk
index c8f5c7c..dead2cb 100644
--- a/Debug/Core/Startup/subdir.mk
+++ b/Debug/Core/Startup/subdir.mk
@@ -18,3 +18,10 @@ S_DEPS += \
Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk
arm-none-eabi-gcc -mcpu=cortex-m3 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" "$<"
+clean: clean-Core-2f-Startup
+
+clean-Core-2f-Startup:
+ -$(RM) ./Core/Startup/startup_stm32f103zetx.d ./Core/Startup/startup_stm32f103zetx.o
+
+.PHONY: clean-Core-2f-Startup
+
diff --git a/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk b/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk
index 7afa6f5..af7b13a 100644
--- a/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk
+++ b/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk
@@ -64,5 +64,12 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Drivers/STM32F1xx_HAL_Driver/Src/%.o: ../Drivers/STM32F1xx_HAL_Driver/Src/%.c Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I"/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/SW_APPs" -I"/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices" -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I"C:/Users/wuwen/Desktop/M3s_stm32/SW_APPs" -I"C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices" -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Drivers-2f-STM32F1xx_HAL_Driver-2f-Src
+
+clean-Drivers-2f-STM32F1xx_HAL_Driver-2f-Src:
+ -$(RM) ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o
+
+.PHONY: clean-Drivers-2f-STM32F1xx_HAL_Driver-2f-Src
diff --git a/Debug/HW_Devices/key.d b/Debug/HW_Devices/key.d
new file mode 100644
index 0000000..d05fd82
--- /dev/null
+++ b/Debug/HW_Devices/key.d
@@ -0,0 +1,89 @@
+HW_Devices/key.o: ../HW_Devices/key.c ../HW_Devices/key.h \
+ ../Core/Inc/main.h ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_sram.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_fsmc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h
+
+../HW_Devices/key.h:
+
+../Core/Inc/main.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+
+../Core/Inc/stm32f1xx_hal_conf.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+
+../Drivers/CMSIS/Include/core_cm3.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_sram.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_fsmc.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h:
diff --git a/Debug/HW_Devices/key.su b/Debug/HW_Devices/key.su
new file mode 100644
index 0000000..5790ffc
--- /dev/null
+++ b/Debug/HW_Devices/key.su
@@ -0,0 +1 @@
+key.c:13:6:GEI_BUTTON_CODE 16 static
diff --git a/Debug/HW_Devices/subdir.mk b/Debug/HW_Devices/subdir.mk
index c4c5357..e377082 100644
--- a/Debug/HW_Devices/subdir.mk
+++ b/Debug/HW_Devices/subdir.mk
@@ -8,6 +8,7 @@ C_SRCS += \
../HW_Devices/LCD.c \
../HW_Devices/eeprom.c \
../HW_Devices/iic.c \
+../HW_Devices/key.c \
../HW_Devices/rs522.c \
../HW_Devices/touch.c
@@ -15,6 +16,7 @@ OBJS += \
./HW_Devices/LCD.o \
./HW_Devices/eeprom.o \
./HW_Devices/iic.o \
+./HW_Devices/key.o \
./HW_Devices/rs522.o \
./HW_Devices/touch.o
@@ -22,11 +24,19 @@ C_DEPS += \
./HW_Devices/LCD.d \
./HW_Devices/eeprom.d \
./HW_Devices/iic.d \
+./HW_Devices/key.d \
./HW_Devices/rs522.d \
./HW_Devices/touch.d
# Each subdirectory must supply rules for building sources it contributes
HW_Devices/%.o: ../HW_Devices/%.c HW_Devices/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I"/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/SW_APPs" -I"/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices" -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I"C:/Users/wuwen/Desktop/M3s_stm32/SW_APPs" -I"C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices" -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-HW_Devices
+
+clean-HW_Devices:
+ -$(RM) ./HW_Devices/LCD.d ./HW_Devices/LCD.o ./HW_Devices/eeprom.d ./HW_Devices/eeprom.o ./HW_Devices/iic.d ./HW_Devices/iic.o ./HW_Devices/key.d ./HW_Devices/key.o ./HW_Devices/rs522.d ./HW_Devices/rs522.o ./HW_Devices/touch.d ./HW_Devices/touch.o
+
+.PHONY: clean-HW_Devices
diff --git a/Debug/SW_APPs/APP_IDcard.d b/Debug/SW_APPs/APP_IDcard.d
index ac7c981..5c0f6a6 100644
--- a/Debug/SW_APPs/APP_IDcard.d
+++ b/Debug/SW_APPs/APP_IDcard.d
@@ -27,9 +27,8 @@ SW_APPs/APP_IDcard.o: ../SW_APPs/APP_IDcard.c ../SW_APPs/APP_IDcard.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h \
- ../SW_APPs/windows.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/lcd.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/rs522.h
+ ../SW_APPs/windows.h C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/lcd.h \
+ C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/rs522.h
../SW_APPs/APP_IDcard.h:
@@ -93,6 +92,6 @@ SW_APPs/APP_IDcard.o: ../SW_APPs/APP_IDcard.c ../SW_APPs/APP_IDcard.h \
../SW_APPs/windows.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/lcd.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/lcd.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/rs522.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/rs522.h:
diff --git a/Debug/SW_APPs/APP_blood.d b/Debug/SW_APPs/APP_blood.d
index 3a54850..390530a 100644
--- a/Debug/SW_APPs/APP_blood.d
+++ b/Debug/SW_APPs/APP_blood.d
@@ -27,11 +27,9 @@ SW_APPs/APP_blood.o: ../SW_APPs/APP_blood.c ../SW_APPs/APP_blood.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h \
- ../SW_APPs/windows.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/lcd.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/LCD.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/iic.h \
- ../SW_APPs/FFT.h
+ ../SW_APPs/windows.h C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/lcd.h \
+ C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/LCD.h \
+ C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/iic.h ../SW_APPs/FFT.h
../SW_APPs/APP_blood.h:
@@ -95,10 +93,10 @@ SW_APPs/APP_blood.o: ../SW_APPs/APP_blood.c ../SW_APPs/APP_blood.h \
../SW_APPs/windows.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/lcd.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/lcd.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/LCD.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/LCD.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/iic.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/iic.h:
../SW_APPs/FFT.h:
diff --git a/Debug/SW_APPs/APP_morsecode.d b/Debug/SW_APPs/APP_morsecode.d
new file mode 100644
index 0000000..a2a48d2
--- /dev/null
+++ b/Debug/SW_APPs/APP_morsecode.d
@@ -0,0 +1,98 @@
+SW_APPs/APP_morsecode.o: ../SW_APPs/APP_morsecode.c \
+ ../SW_APPs/APP_morsecode.h ../Core/Inc/main.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ ../Core/Inc/stm32f1xx_hal_conf.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h \
+ ../Drivers/CMSIS/Include/core_cm3.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_sram.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_fsmc.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h \
+ ../SW_APPs/windows.h C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/lcd.h \
+ C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/key.h
+
+../SW_APPs/APP_morsecode.h:
+
+../Core/Inc/main.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
+
+../Core/Inc/stm32f1xx_hal_conf.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h:
+
+../Drivers/CMSIS/Include/core_cm3.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_sram.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_fsmc.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h:
+
+../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h:
+
+../SW_APPs/windows.h:
+
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/lcd.h:
+
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/key.h:
diff --git a/Debug/SW_APPs/APP_morsecode.su b/Debug/SW_APPs/APP_morsecode.su
new file mode 100644
index 0000000..3cc6505
--- /dev/null
+++ b/Debug/SW_APPs/APP_morsecode.su
@@ -0,0 +1,3 @@
+APP_morsecode.c:140:6:APP_morsecode_init 24 static
+APP_morsecode.c:151:6:getmorsecode 24 static
+APP_morsecode.c:164:6:APP_morsecode_loop 40 static
diff --git a/Debug/SW_APPs/Main_APP.d b/Debug/SW_APPs/Main_APP.d
index b34a7f3..e882a16 100644
--- a/Debug/SW_APPs/Main_APP.d
+++ b/Debug/SW_APPs/Main_APP.d
@@ -1,6 +1,6 @@
SW_APPs/Main_APP.o: ../SW_APPs/Main_APP.c ../SW_APPs/Main_APP.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/LCD.h \
- ../Core/Inc/main.h ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
+ C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/LCD.h ../Core/Inc/main.h \
+ ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
../Core/Inc/stm32f1xx_hal_conf.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
@@ -28,16 +28,14 @@ SW_APPs/Main_APP.o: ../SW_APPs/Main_APP.c ../SW_APPs/Main_APP.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h \
- ../SW_APPs/windows.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/lcd.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/touch.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/eeprom.h \
- ../SW_APPs/APP_blood.h ../SW_APPs/APP_IDcard.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/rs522.h
+ ../SW_APPs/windows.h C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/lcd.h \
+ C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/touch.h \
+ C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/eeprom.h \
+ C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/key.h
../SW_APPs/Main_APP.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/LCD.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/LCD.h:
../Core/Inc/main.h:
@@ -99,14 +97,10 @@ SW_APPs/Main_APP.o: ../SW_APPs/Main_APP.c ../SW_APPs/Main_APP.h \
../SW_APPs/windows.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/lcd.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/lcd.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/touch.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/touch.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/eeprom.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/eeprom.h:
-../SW_APPs/APP_blood.h:
-
-../SW_APPs/APP_IDcard.h:
-
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/rs522.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/key.h:
diff --git a/Debug/SW_APPs/Main_APP.su b/Debug/SW_APPs/Main_APP.su
index fe98fe4..b07367f 100644
--- a/Debug/SW_APPs/Main_APP.su
+++ b/Debug/SW_APPs/Main_APP.su
@@ -1 +1 @@
-Main_APP.c:24:6:main_app 96 static
+Main_APP.c:21:6:main_app 96 static
diff --git a/Debug/SW_APPs/subdir.mk b/Debug/SW_APPs/subdir.mk
index 036430a..d313fd1 100644
--- a/Debug/SW_APPs/subdir.mk
+++ b/Debug/SW_APPs/subdir.mk
@@ -7,23 +7,33 @@
C_SRCS += \
../SW_APPs/APP_IDcard.c \
../SW_APPs/APP_blood.c \
+../SW_APPs/APP_morsecode.c \
../SW_APPs/Main_APP.c \
../SW_APPs/windows.c
OBJS += \
./SW_APPs/APP_IDcard.o \
./SW_APPs/APP_blood.o \
+./SW_APPs/APP_morsecode.o \
./SW_APPs/Main_APP.o \
./SW_APPs/windows.o
C_DEPS += \
./SW_APPs/APP_IDcard.d \
./SW_APPs/APP_blood.d \
+./SW_APPs/APP_morsecode.d \
./SW_APPs/Main_APP.d \
./SW_APPs/windows.d
# Each subdirectory must supply rules for building sources it contributes
SW_APPs/%.o: ../SW_APPs/%.c SW_APPs/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I"/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/SW_APPs" -I"/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices" -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xE -c -I../Core/Inc -I"C:/Users/wuwen/Desktop/M3s_stm32/SW_APPs" -I"C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices" -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-SW_APPs
+
+clean-SW_APPs:
+ -$(RM) ./SW_APPs/APP_IDcard.d ./SW_APPs/APP_IDcard.o ./SW_APPs/APP_blood.d ./SW_APPs/APP_blood.o ./SW_APPs/APP_morsecode.d ./SW_APPs/APP_morsecode.o ./SW_APPs/Main_APP.d ./SW_APPs/Main_APP.o ./SW_APPs/windows.d ./SW_APPs/windows.o
+
+.PHONY: clean-SW_APPs
diff --git a/Debug/SW_APPs/windows.d b/Debug/SW_APPs/windows.d
index 0fc1d01..1ed56ec 100644
--- a/Debug/SW_APPs/windows.d
+++ b/Debug/SW_APPs/windows.d
@@ -27,8 +27,8 @@ SW_APPs/windows.o: ../SW_APPs/windows.c ../SW_APPs/windows.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/lcd.h \
- /Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/touch.h
+ C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/lcd.h \
+ C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/touch.h
../SW_APPs/windows.h:
@@ -90,6 +90,6 @@ SW_APPs/windows.o: ../SW_APPs/windows.c ../SW_APPs/windows.h \
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/lcd.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/lcd.h:
-/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/HW_Devices/touch.h:
+C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/touch.h:
diff --git a/Debug/m3s.bin b/Debug/m3s.bin
index 64dc0cf..5c78341 100755
Binary files a/Debug/m3s.bin and b/Debug/m3s.bin differ
diff --git a/Debug/m3s.list b/Debug/m3s.list
index 0fb9a74..edbdb57 100644
--- a/Debug/m3s.list
+++ b/Debug/m3s.list
@@ -5,45 +5,45 @@ Sections:
Idx Name Size VMA LMA File off Algn
0 .isr_vector 000001e4 08000000 08000000 00010000 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 1 .text 0000a4d0 080001e8 080001e8 000101e8 2**3
+ 1 .text 000096b0 080001e8 080001e8 000101e8 2**3
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .rodata 00000fb4 0800a6b8 0800a6b8 0001a6b8 2**3
+ 2 .rodata 00000f9c 08009898 08009898 00019898 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 3 .ARM.extab 00000000 0800b66c 0800b66c 000201e4 2**0
+ 3 .ARM.extab 00000000 0800a834 0800a834 000201dc 2**0
CONTENTS
- 4 .ARM 00000000 0800b66c 0800b66c 000201e4 2**0
+ 4 .ARM 00000000 0800a834 0800a834 000201dc 2**0
CONTENTS
- 5 .preinit_array 00000000 0800b66c 0800b66c 000201e4 2**0
+ 5 .preinit_array 00000000 0800a834 0800a834 000201dc 2**0
CONTENTS, ALLOC, LOAD, DATA
- 6 .init_array 00000004 0800b66c 0800b66c 0001b66c 2**2
+ 6 .init_array 00000004 0800a834 0800a834 0001a834 2**2
CONTENTS, ALLOC, LOAD, DATA
- 7 .fini_array 00000004 0800b670 0800b670 0001b670 2**2
+ 7 .fini_array 00000004 0800a838 0800a838 0001a838 2**2
CONTENTS, ALLOC, LOAD, DATA
- 8 .data 000001e4 20000000 0800b674 00020000 2**2
+ 8 .data 000001dc 20000000 0800a83c 00020000 2**2
CONTENTS, ALLOC, LOAD, DATA
- 9 .bss 00002364 200001e4 0800b858 000201e4 2**2
+ 9 .bss 000023b4 200001dc 0800aa18 000201dc 2**2
ALLOC
- 10 ._user_heap_stack 00000c00 20002548 0800b858 00022548 2**0
+ 10 ._user_heap_stack 00000c00 20002590 0800aa18 00022590 2**0
ALLOC
- 11 .ARM.attributes 00000029 00000000 00000000 000201e4 2**0
+ 11 .ARM.attributes 00000029 00000000 00000000 000201dc 2**0
CONTENTS, READONLY
- 12 .debug_info 0001bb92 00000000 00000000 0002020d 2**0
+ 12 .debug_info 0001b34c 00000000 00000000 00020205 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 13 .debug_abbrev 00003d70 00000000 00000000 0003bd9f 2**0
+ 13 .debug_abbrev 00003d0f 00000000 00000000 0003b551 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 14 .debug_aranges 000013a8 00000000 00000000 0003fb10 2**3
+ 14 .debug_aranges 00001320 00000000 00000000 0003f260 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 15 .debug_ranges 00001250 00000000 00000000 00040eb8 2**3
+ 15 .debug_ranges 000011f8 00000000 00000000 00040580 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 16 .debug_macro 0001e8fd 00000000 00000000 00042108 2**0
+ 16 .debug_macro 0001e07b 00000000 00000000 00041778 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 17 .debug_line 00019533 00000000 00000000 00060a05 2**0
+ 17 .debug_line 00018c59 00000000 00000000 0005f7f3 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 18 .debug_str 000a103e 00000000 00000000 00079f38 2**0
+ 18 .debug_str 000a0a1e 00000000 00000000 0007844c 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 19 .comment 00000053 00000000 00000000 0011af76 2**0
+ 19 .comment 00000053 00000000 00000000 00118e6a 2**0
CONTENTS, READONLY
- 20 .debug_frame 00006560 00000000 00000000 0011afcc 2**2
+ 20 .debug_frame 000061c0 00000000 00000000 00118ec0 2**2
CONTENTS, READONLY, DEBUGGING, OCTETS
Disassembly of section .text:
@@ -60,9 +60,9 @@ Disassembly of section .text:
80001fa: 2301 movs r3, #1
80001fc: 7023 strb r3, [r4, #0]
80001fe: bd10 pop {r4, pc}
- 8000200: 200001e4 .word 0x200001e4
+ 8000200: 200001dc .word 0x200001dc
8000204: 00000000 .word 0x00000000
- 8000208: 0800a6a0 .word 0x0800a6a0
+ 8000208: 08009880 .word 0x08009880
0800020c :
800020c: b508 push {r3, lr}
@@ -73,8 +73,8 @@ Disassembly of section .text:
8000216: f3af 8000 nop.w
800021a: bd08 pop {r3, pc}
800021c: 00000000 .word 0x00000000
- 8000220: 200001e8 .word 0x200001e8
- 8000224: 0800a6a0 .word 0x0800a6a0
+ 8000220: 200001e0 .word 0x200001e0
+ 8000224: 08009880 .word 0x08009880
08000228 :
8000228: 4603 mov r3, r0
@@ -713,7 +713,7 @@ Disassembly of section .text:
80009d2: e712 b.n 80007fa <__aeabi_dmul+0x24a>
080009d4 <__gedf2>:
- 80009d4: f04f 3cff mov.w ip, #4294967295 ; 0xffffffff
+ 80009d4: f04f 3cff mov.w ip, #4294967295
80009d8: e006 b.n 80009e8 <__cmpdf2+0x4>
80009da: bf00 nop
@@ -1499,7 +1499,7 @@ int main(void)
80011ac: f000 f876 bl 800129c
/* USER CODE BEGIN 2 */
main_app();
- 80011b0: f005 ff7a bl 80070a8
+ 80011b0: f005 f92c bl 800640c
/* USER CODE END 2 */
/* Infinite loop */
@@ -1522,7 +1522,7 @@ void SystemClock_Config(void)
80011c0: 2228 movs r2, #40 ; 0x28
80011c2: 2100 movs r1, #0
80011c4: 4618 mov r0, r3
- 80011c6: f006 fae7 bl 8007798
+ 80011c6: f005 fcc1 bl 8006b4c
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
80011ca: 1d3b adds r3, r7, #4
80011cc: 2200 movs r2, #0
@@ -1671,7 +1671,7 @@ static void MX_I2C2_Init(void)
}
800128c: bf00 nop
800128e: bd80 pop {r7, pc}
- 8001290: 20000214 .word 0x20000214
+ 8001290: 20000268 .word 0x20000268
8001294: 40005800 .word 0x40005800
8001298: 000186a0 .word 0x000186a0
@@ -1754,7 +1754,7 @@ static void MX_SPI1_Init(void)
}
80012fc: bf00 nop
80012fe: bd80 pop {r7, pc}
- 8001300: 200002f8 .word 0x200002f8
+ 8001300: 2000034c .word 0x2000034c
8001304: 40013000 .word 0x40013000
08001308 :
@@ -1803,7 +1803,7 @@ static void MX_TIM6_Init(void)
8001334: 619a str r2, [r3, #24]
if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
8001336: 480d ldr r0, [pc, #52] ; (800136c )
- 8001338: f003 f8dd bl 80044f6
+ 8001338: f002 fbf5 bl 8003b26
800133c: 4603 mov r3, r0
800133e: 2b00 cmp r3, #0
8001340: d001 beq.n 8001346
@@ -1821,7 +1821,7 @@ static void MX_TIM6_Init(void)
800134e: 463b mov r3, r7
8001350: 4619 mov r1, r3
8001352: 4806 ldr r0, [pc, #24] ; (800136c )
- 8001354: f003 faf2 bl 800493c
+ 8001354: f002 fe0a bl 8003f6c
8001358: 4603 mov r3, r0
800135a: 2b00 cmp r3, #0
800135c: d001 beq.n 8001362
@@ -1839,7 +1839,7 @@ static void MX_TIM6_Init(void)
8001366: 46bd mov sp, r7
8001368: bd80 pop {r7, pc}
800136a: bf00 nop
- 800136c: 200002b0 .word 0x200002b0
+ 800136c: 20000304 .word 0x20000304
8001370: 40001000 .word 0x40001000
08001374 :
@@ -2261,7 +2261,7 @@ static void MX_FSMC_Init(void)
8001604: 2200 movs r2, #0
8001606: 4619 mov r1, r3
8001608: 4808 ldr r0, [pc, #32] ; (800162c )
- 800160a: f002 ff27 bl 800445c
+ 800160a: f002 fa3f bl 8003a8c
800160e: 4603 mov r3, r0
8001610: 2b00 cmp r3, #0
8001612: d001 beq.n 8001618
@@ -2288,7 +2288,7 @@ static void MX_FSMC_Init(void)
8001626: 3720 adds r7, #32
8001628: 46bd mov sp, r7
800162a: bd80 pop {r7, pc}
- 800162c: 20000268 .word 0x20000268
+ 800162c: 200002bc .word 0x200002bc
8001630: a0000104 .word 0xa0000104
8001634: 40010000 .word 0x40010000
@@ -2735,7 +2735,7 @@ static void HAL_FSMC_MspInit(void){
8001896: 46bd mov sp, r7
8001898: bd80 pop {r7, pc}
800189a: bf00 nop
- 800189c: 20000200 .word 0x20000200
+ 800189c: 200001f8 .word 0x200001f8
80018a0: 40021000 .word 0x40021000
80018a4: 40012000 .word 0x40012000
80018a8: 40011800 .word 0x40011800
@@ -2934,7 +2934,7 @@ void TIM6_IRQHandler(void)
/* USER CODE END TIM6_IRQn 0 */
HAL_TIM_IRQHandler(&htim6);
8001918: 4802 ldr r0, [pc, #8] ; (8001924 )
- 800191a: f002 fe69 bl 80045f0
+ 800191a: f002 f981 bl 8003c20
/* USER CODE BEGIN TIM6_IRQn 1 */
/* USER CODE END TIM6_IRQn 1 */
@@ -2942,7 +2942,7 @@ void TIM6_IRQHandler(void)
800191e: bf00 nop
8001920: bd80 pop {r7, pc}
8001922: bf00 nop
- 8001924: 200002b0 .word 0x200002b0
+ 8001924: 20000304 .word 0x20000304
08001928 <_getpid>:
void initialise_monitor_handles()
@@ -2971,12 +2971,12 @@ int _kill(int pid, int sig)
800193c: 6078 str r0, [r7, #4]
800193e: 6039 str r1, [r7, #0]
errno = EINVAL;
- 8001940: f005 fef0 bl 8007724 <__errno>
+ 8001940: f005 f8ca bl 8006ad8 <__errno>
8001944: 4603 mov r3, r0
8001946: 2216 movs r2, #22
8001948: 601a str r2, [r3, #0]
return -1;
- 800194a: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
+ 800194a: f04f 33ff mov.w r3, #4294967295
}
800194e: 4618 mov r0, r3
8001950: 3708 adds r7, #8
@@ -2992,7 +2992,7 @@ void _exit (int status)
800195a: af00 add r7, sp, #0
800195c: 6078 str r0, [r7, #4]
_kill(status, -1);
- 800195e: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff
+ 800195e: f04f 31ff mov.w r1, #4294967295
8001962: 6878 ldr r0, [r7, #4]
8001964: f7ff ffe7 bl 8001936 <_kill>
while (1) {} /* Make sure we hang here */
@@ -3054,7 +3054,7 @@ int _close(int file)
80019a8: af00 add r7, sp, #0
80019aa: 6078 str r0, [r7, #4]
return -1;
- 80019ac: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
+ 80019ac: f04f 33ff mov.w r3, #4294967295
}
80019b0: 4618 mov r0, r3
80019b2: 370c adds r7, #12
@@ -3169,12 +3169,12 @@ void *_sbrk(ptrdiff_t incr)
8001a32: d207 bcs.n 8001a44 <_sbrk+0x40>
{
errno = ENOMEM;
- 8001a34: f005 fe76 bl 8007724 <__errno>
+ 8001a34: f005 f850 bl 8006ad8 <__errno>
8001a38: 4603 mov r3, r0
8001a3a: 220c movs r2, #12
8001a3c: 601a str r2, [r3, #0]
return (void *)-1;
- 8001a3e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
+ 8001a3e: f04f 33ff mov.w r3, #4294967295
8001a42: e009 b.n 8001a58 <_sbrk+0x54>
}
@@ -3199,8 +3199,8 @@ void *_sbrk(ptrdiff_t incr)
8001a5e: bd80 pop {r7, pc}
8001a60: 20010000 .word 0x20010000
8001a64: 00000800 .word 0x00000800
- 8001a68: 20000204 .word 0x20000204
- 8001a6c: 20002548 .word 0x20002548
+ 8001a68: 200001fc .word 0x200001fc
+ 8001a6c: 20002590 .word 0x20002590
08001a70 :
* @note This function should be used only after reset.
@@ -3290,7 +3290,7 @@ LoopFillZerobss:
8001aa2: f7ff ffe5 bl 8001a70
/* Call static constructors */
bl __libc_init_array
- 8001aa6: f005 fe43 bl 8007730 <__libc_init_array>
+ 8001aa6: f005 f81d bl 8006ae4 <__libc_init_array>
/* Call the application's entry point.*/
bl main
8001aaa: f7ff fb71 bl 8001190
@@ -3299,13 +3299,13 @@ LoopFillZerobss:
ldr r0, =_sdata
8001ab0: 20000000 .word 0x20000000
ldr r1, =_edata
- 8001ab4: 200001e4 .word 0x200001e4
+ 8001ab4: 200001dc .word 0x200001dc
ldr r2, =_sidata
- 8001ab8: 0800b674 .word 0x0800b674
+ 8001ab8: 0800a83c .word 0x0800a83c
ldr r2, =_sbss
- 8001abc: 200001e4 .word 0x200001e4
+ 8001abc: 200001dc .word 0x200001dc
ldr r4, =_ebss
- 8001ac0: 20002548 .word 0x20002548
+ 8001ac0: 20002590 .word 0x20002590
08001ac4 :
* @retval : None
@@ -3404,7 +3404,7 @@ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
8001b28: 2200 movs r2, #0
8001b2a: 6879 ldr r1, [r7, #4]
- 8001b2c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
+ 8001b2c: f04f 30ff mov.w r0, #4294967295
8001b30: f000 f927 bl 8001d82
uwTickPrio = TickPriority;
8001b34: 4a06 ldr r2, [pc, #24] ; (8001b50 )
@@ -3453,7 +3453,7 @@ __weak void HAL_IncTick(void)
8001b6c: bc80 pop {r7}
8001b6e: 4770 bx lr
8001b70: 20000008 .word 0x20000008
- 8001b74: 20000350 .word 0x20000350
+ 8001b74: 200003a4 .word 0x200003a4
08001b78 :
* @note This function is declared as __weak to be overwritten in case of other
@@ -3472,7 +3472,7 @@ __weak uint32_t HAL_GetTick(void)
8001b82: 46bd mov sp, r7
8001b84: bc80 pop {r7}
8001b86: 4770 bx lr
- 8001b88: 20000350 .word 0x20000350
+ 8001b88: 200003a4 .word 0x200003a4
08001b8c :
* implementations in user file.
@@ -3495,7 +3495,7 @@ __weak void HAL_Delay(uint32_t Delay)
/* Add a freq to guarantee minimum wait */
if (wait < HAL_MAX_DELAY)
8001b9e: 68fb ldr r3, [r7, #12]
- 8001ba0: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
+ 8001ba0: f1b3 3fff cmp.w r3, #4294967295
8001ba4: d005 beq.n 8001bb2
{
wait += (uint32_t)(uwTickFreq);
@@ -3688,7 +3688,7 @@ __weak void HAL_Delay(uint32_t Delay)
8001cf4: 2300 movs r3, #0
8001cf6: 617b str r3, [r7, #20]
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
- 8001cf8: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
+ 8001cf8: f04f 32ff mov.w r2, #4294967295
8001cfc: 69bb ldr r3, [r7, #24]
8001cfe: fa02 f303 lsl.w r3, r2, r3
8001d02: 43da mvns r2, r3
@@ -3697,7 +3697,7 @@ __weak void HAL_Delay(uint32_t Delay)
8001d08: 697b ldr r3, [r7, #20]
8001d0a: 409a lsls r2, r3
((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
- 8001d0c: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff
+ 8001d0c: f04f 31ff mov.w r1, #4294967295
8001d10: 697b ldr r3, [r7, #20]
8001d12: fa01 f303 lsl.w r3, r1, r3
8001d16: 43d9 mvns r1, r3
@@ -3733,7 +3733,7 @@ __weak void HAL_Delay(uint32_t Delay)
8001d44: 6053 str r3, [r2, #4]
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
8001d46: 210f movs r1, #15
- 8001d48: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
+ 8001d48: f04f 30ff mov.w r0, #4294967295
8001d4c: f7ff ff90 bl 8001c70 <__NVIC_SetPriority>
SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
8001d50: 4b05 ldr r3, [pc, #20] ; (8001d68 )
@@ -6574,7 +6574,7 @@ static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uin
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
8002dd2: 683b ldr r3, [r7, #0]
- 8002dd4: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
+ 8002dd4: f1b3 3fff cmp.w r3, #4294967295
8002dd8: d021 beq.n 8002e1e
{
if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
@@ -6739,7 +6739,7 @@ static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeD
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
8002ed6: 687b ldr r3, [r7, #4]
- 8002ed8: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
+ 8002ed8: f1b3 3fff cmp.w r3, #4294967295
8002edc: d021 beq.n 8002f22
{
if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
@@ -6858,7 +6858,7 @@ static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c,
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
8002f8a: 68bb ldr r3, [r7, #8]
- 8002f8c: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
+ 8002f8c: f1b3 3fff cmp.w r3, #4294967295
8002f90: d021 beq.n 8002fd6
{
if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
@@ -6951,7 +6951,7 @@ static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c,
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
800300c: 68bb ldr r3, [r7, #8]
- 800300e: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
+ 800300e: f1b3 3fff cmp.w r3, #4294967295
8003012: d021 beq.n 8003058
{
if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
@@ -8432,7 +8432,7 @@ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK
8003836: bf00 nop
8003838: 40022000 .word 0x40022000
800383c: 40021000 .word 0x40021000
- 8003840: 0800a80c .word 0x0800a80c
+ 8003840: 0800996c .word 0x0800996c
8003844: 20000000 .word 0x20000000
8003848: 20000004 .word 0x20000004
@@ -8580,7 +8580,7 @@ uint32_t HAL_RCC_GetSysClockFreq(void)
80038f6: bc90 pop {r4, r7}
80038f8: 4770 bx lr
80038fa: bf00 nop
- 80038fc: 0800a6b8 .word 0x0800a6b8
+ 80038fc: 08009898 .word 0x08009898
8003900: 40021000 .word 0x40021000
8003904: 007a1200 .word 0x007a1200
8003908: 003d0900 .word 0x003d0900
@@ -8628,7 +8628,7 @@ uint32_t HAL_RCC_GetPCLK1Freq(void)
800393c: 4618 mov r0, r3
800393e: bd80 pop {r7, pc}
8003940: 40021000 .word 0x40021000
- 8003944: 0800a81c .word 0x0800a81c
+ 8003944: 0800997c .word 0x0800997c
08003948 :
* @brief This function provides delay (in milliseconds) based on CPU cycles method.
@@ -8869,14786 +8869,12465 @@ HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi)
8003a88: 46bd mov sp, r7
8003a8a: bd80 pop {r7, pc}
-08003a8c :
- * @param Size amount of data to be sent
- * @param Timeout Timeout duration
- * @retval HAL status
- */
-HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout)
-{
- 8003a8c: b580 push {r7, lr}
- 8003a8e: b088 sub sp, #32
- 8003a90: af00 add r7, sp, #0
- 8003a92: 60f8 str r0, [r7, #12]
- 8003a94: 60b9 str r1, [r7, #8]
- 8003a96: 603b str r3, [r7, #0]
- 8003a98: 4613 mov r3, r2
- 8003a9a: 80fb strh r3, [r7, #6]
- uint32_t tickstart;
- HAL_StatusTypeDef errorcode = HAL_OK;
- 8003a9c: 2300 movs r3, #0
- 8003a9e: 77fb strb r3, [r7, #31]
-
- /* Check Direction parameter */
- assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction));
-
- /* Process Locked */
- __HAL_LOCK(hspi);
- 8003aa0: 68fb ldr r3, [r7, #12]
- 8003aa2: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
- 8003aa6: 2b01 cmp r3, #1
- 8003aa8: d101 bne.n 8003aae
- 8003aaa: 2302 movs r3, #2
- 8003aac: e126 b.n 8003cfc
- 8003aae: 68fb ldr r3, [r7, #12]
- 8003ab0: 2201 movs r2, #1
- 8003ab2: f883 2050 strb.w r2, [r3, #80] ; 0x50
-
- /* Init tickstart for timeout management*/
- tickstart = HAL_GetTick();
- 8003ab6: f7fe f85f bl 8001b78
- 8003aba: 61b8 str r0, [r7, #24]
- initial_TxXferCount = Size;
- 8003abc: 88fb ldrh r3, [r7, #6]
- 8003abe: 82fb strh r3, [r7, #22]
-
- if (hspi->State != HAL_SPI_STATE_READY)
- 8003ac0: 68fb ldr r3, [r7, #12]
- 8003ac2: f893 3051 ldrb.w r3, [r3, #81] ; 0x51
- 8003ac6: b2db uxtb r3, r3
- 8003ac8: 2b01 cmp r3, #1
- 8003aca: d002 beq.n 8003ad2
- {
- errorcode = HAL_BUSY;
- 8003acc: 2302 movs r3, #2
- 8003ace: 77fb strb r3, [r7, #31]
- goto error;
- 8003ad0: e10b b.n 8003cea
- }
-
- if ((pData == NULL) || (Size == 0U))
- 8003ad2: 68bb ldr r3, [r7, #8]
- 8003ad4: 2b00 cmp r3, #0
- 8003ad6: d002 beq.n 8003ade
- 8003ad8: 88fb ldrh r3, [r7, #6]
- 8003ada: 2b00 cmp r3, #0
- 8003adc: d102 bne.n 8003ae4
- {
- errorcode = HAL_ERROR;
- 8003ade: 2301 movs r3, #1
- 8003ae0: 77fb strb r3, [r7, #31]
- goto error;
- 8003ae2: e102 b.n 8003cea
- }
-
- /* Set the transaction information */
- hspi->State = HAL_SPI_STATE_BUSY_TX;
- 8003ae4: 68fb ldr r3, [r7, #12]
- 8003ae6: 2203 movs r2, #3
- 8003ae8: f883 2051 strb.w r2, [r3, #81] ; 0x51
- hspi->ErrorCode = HAL_SPI_ERROR_NONE;
- 8003aec: 68fb ldr r3, [r7, #12]
- 8003aee: 2200 movs r2, #0
- 8003af0: 655a str r2, [r3, #84] ; 0x54
- hspi->pTxBuffPtr = (uint8_t *)pData;
- 8003af2: 68fb ldr r3, [r7, #12]
- 8003af4: 68ba ldr r2, [r7, #8]
- 8003af6: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferSize = Size;
- 8003af8: 68fb ldr r3, [r7, #12]
- 8003afa: 88fa ldrh r2, [r7, #6]
- 8003afc: 869a strh r2, [r3, #52] ; 0x34
- hspi->TxXferCount = Size;
- 8003afe: 68fb ldr r3, [r7, #12]
- 8003b00: 88fa ldrh r2, [r7, #6]
- 8003b02: 86da strh r2, [r3, #54] ; 0x36
-
- /*Init field not used in handle to zero */
- hspi->pRxBuffPtr = (uint8_t *)NULL;
- 8003b04: 68fb ldr r3, [r7, #12]
- 8003b06: 2200 movs r2, #0
- 8003b08: 639a str r2, [r3, #56] ; 0x38
- hspi->RxXferSize = 0U;
- 8003b0a: 68fb ldr r3, [r7, #12]
- 8003b0c: 2200 movs r2, #0
- 8003b0e: 879a strh r2, [r3, #60] ; 0x3c
- hspi->RxXferCount = 0U;
- 8003b10: 68fb ldr r3, [r7, #12]
- 8003b12: 2200 movs r2, #0
- 8003b14: 87da strh r2, [r3, #62] ; 0x3e
- hspi->TxISR = NULL;
- 8003b16: 68fb ldr r3, [r7, #12]
- 8003b18: 2200 movs r2, #0
- 8003b1a: 645a str r2, [r3, #68] ; 0x44
- hspi->RxISR = NULL;
- 8003b1c: 68fb ldr r3, [r7, #12]
- 8003b1e: 2200 movs r2, #0
- 8003b20: 641a str r2, [r3, #64] ; 0x40
-
- /* Configure communication direction : 1Line */
- if (hspi->Init.Direction == SPI_DIRECTION_1LINE)
- 8003b22: 68fb ldr r3, [r7, #12]
- 8003b24: 689b ldr r3, [r3, #8]
- 8003b26: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
- 8003b2a: d10f bne.n 8003b4c
- {
- /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */
- __HAL_SPI_DISABLE(hspi);
- 8003b2c: 68fb ldr r3, [r7, #12]
- 8003b2e: 681b ldr r3, [r3, #0]
- 8003b30: 681a ldr r2, [r3, #0]
- 8003b32: 68fb ldr r3, [r7, #12]
- 8003b34: 681b ldr r3, [r3, #0]
- 8003b36: f022 0240 bic.w r2, r2, #64 ; 0x40
- 8003b3a: 601a str r2, [r3, #0]
- SPI_1LINE_TX(hspi);
- 8003b3c: 68fb ldr r3, [r7, #12]
- 8003b3e: 681b ldr r3, [r3, #0]
- 8003b40: 681a ldr r2, [r3, #0]
- 8003b42: 68fb ldr r3, [r7, #12]
- 8003b44: 681b ldr r3, [r3, #0]
- 8003b46: f442 4280 orr.w r2, r2, #16384 ; 0x4000
- 8003b4a: 601a str r2, [r3, #0]
- SPI_RESET_CRC(hspi);
- }
-#endif /* USE_SPI_CRC */
-
- /* Check if the SPI is already enabled */
- if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE)
- 8003b4c: 68fb ldr r3, [r7, #12]
- 8003b4e: 681b ldr r3, [r3, #0]
- 8003b50: 681b ldr r3, [r3, #0]
- 8003b52: f003 0340 and.w r3, r3, #64 ; 0x40
- 8003b56: 2b40 cmp r3, #64 ; 0x40
- 8003b58: d007 beq.n 8003b6a
- {
- /* Enable SPI peripheral */
- __HAL_SPI_ENABLE(hspi);
- 8003b5a: 68fb ldr r3, [r7, #12]
- 8003b5c: 681b ldr r3, [r3, #0]
- 8003b5e: 681a ldr r2, [r3, #0]
- 8003b60: 68fb ldr r3, [r7, #12]
- 8003b62: 681b ldr r3, [r3, #0]
- 8003b64: f042 0240 orr.w r2, r2, #64 ; 0x40
- 8003b68: 601a str r2, [r3, #0]
- }
-
- /* Transmit data in 16 Bit mode */
- if (hspi->Init.DataSize == SPI_DATASIZE_16BIT)
- 8003b6a: 68fb ldr r3, [r7, #12]
- 8003b6c: 68db ldr r3, [r3, #12]
- 8003b6e: f5b3 6f00 cmp.w r3, #2048 ; 0x800
- 8003b72: d14b bne.n 8003c0c
- {
- if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U))
- 8003b74: 68fb ldr r3, [r7, #12]
- 8003b76: 685b ldr r3, [r3, #4]
- 8003b78: 2b00 cmp r3, #0
- 8003b7a: d002 beq.n 8003b82
- 8003b7c: 8afb ldrh r3, [r7, #22]
- 8003b7e: 2b01 cmp r3, #1
- 8003b80: d13e bne.n 8003c00
- {
- hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr);
- 8003b82: 68fb ldr r3, [r7, #12]
- 8003b84: 6b1b ldr r3, [r3, #48] ; 0x30
- 8003b86: 881a ldrh r2, [r3, #0]
- 8003b88: 68fb ldr r3, [r7, #12]
- 8003b8a: 681b ldr r3, [r3, #0]
- 8003b8c: 60da str r2, [r3, #12]
- hspi->pTxBuffPtr += sizeof(uint16_t);
- 8003b8e: 68fb ldr r3, [r7, #12]
- 8003b90: 6b1b ldr r3, [r3, #48] ; 0x30
- 8003b92: 1c9a adds r2, r3, #2
- 8003b94: 68fb ldr r3, [r7, #12]
- 8003b96: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferCount--;
- 8003b98: 68fb ldr r3, [r7, #12]
- 8003b9a: 8edb ldrh r3, [r3, #54] ; 0x36
- 8003b9c: b29b uxth r3, r3
- 8003b9e: 3b01 subs r3, #1
- 8003ba0: b29a uxth r2, r3
- 8003ba2: 68fb ldr r3, [r7, #12]
- 8003ba4: 86da strh r2, [r3, #54] ; 0x36
- }
- /* Transmit data in 16 Bit mode */
- while (hspi->TxXferCount > 0U)
- 8003ba6: e02b b.n 8003c00
- {
- /* Wait until TXE flag is set to send data */
- if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE))
- 8003ba8: 68fb ldr r3, [r7, #12]
- 8003baa: 681b ldr r3, [r3, #0]
- 8003bac: 689b ldr r3, [r3, #8]
- 8003bae: f003 0302 and.w r3, r3, #2
- 8003bb2: 2b02 cmp r3, #2
- 8003bb4: d112 bne.n 8003bdc
- {
- hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr);
- 8003bb6: 68fb ldr r3, [r7, #12]
- 8003bb8: 6b1b ldr r3, [r3, #48] ; 0x30
- 8003bba: 881a ldrh r2, [r3, #0]
- 8003bbc: 68fb ldr r3, [r7, #12]
- 8003bbe: 681b ldr r3, [r3, #0]
- 8003bc0: 60da str r2, [r3, #12]
- hspi->pTxBuffPtr += sizeof(uint16_t);
- 8003bc2: 68fb ldr r3, [r7, #12]
- 8003bc4: 6b1b ldr r3, [r3, #48] ; 0x30
- 8003bc6: 1c9a adds r2, r3, #2
- 8003bc8: 68fb ldr r3, [r7, #12]
- 8003bca: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferCount--;
- 8003bcc: 68fb ldr r3, [r7, #12]
- 8003bce: 8edb ldrh r3, [r3, #54] ; 0x36
- 8003bd0: b29b uxth r3, r3
- 8003bd2: 3b01 subs r3, #1
- 8003bd4: b29a uxth r2, r3
- 8003bd6: 68fb ldr r3, [r7, #12]
- 8003bd8: 86da strh r2, [r3, #54] ; 0x36
- 8003bda: e011 b.n 8003c00
- }
- else
- {
- /* Timeout management */
- if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
- 8003bdc: f7fd ffcc bl 8001b78
- 8003be0: 4602 mov r2, r0
- 8003be2: 69bb ldr r3, [r7, #24]
- 8003be4: 1ad3 subs r3, r2, r3
- 8003be6: 683a ldr r2, [r7, #0]
- 8003be8: 429a cmp r2, r3
- 8003bea: d803 bhi.n 8003bf4
- 8003bec: 683b ldr r3, [r7, #0]
- 8003bee: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
- 8003bf2: d102 bne.n 8003bfa
- 8003bf4: 683b ldr r3, [r7, #0]
- 8003bf6: 2b00 cmp r3, #0
- 8003bf8: d102 bne.n 8003c00
- {
- errorcode = HAL_TIMEOUT;
- 8003bfa: 2303 movs r3, #3
- 8003bfc: 77fb strb r3, [r7, #31]
- goto error;
- 8003bfe: e074 b.n 8003cea
- while (hspi->TxXferCount > 0U)
- 8003c00: 68fb ldr r3, [r7, #12]
- 8003c02: 8edb ldrh r3, [r3, #54] ; 0x36
- 8003c04: b29b uxth r3, r3
- 8003c06: 2b00 cmp r3, #0
- 8003c08: d1ce bne.n 8003ba8
- 8003c0a: e04c b.n 8003ca6
- }
- }
- /* Transmit data in 8 Bit mode */
- else
- {
- if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U))
- 8003c0c: 68fb ldr r3, [r7, #12]
- 8003c0e: 685b ldr r3, [r3, #4]
- 8003c10: 2b00 cmp r3, #0
- 8003c12: d002 beq.n 8003c1a
- 8003c14: 8afb ldrh r3, [r7, #22]
- 8003c16: 2b01 cmp r3, #1
- 8003c18: d140 bne.n 8003c9c
- {
- *((__IO uint8_t *)&hspi->Instance->DR) = (*hspi->pTxBuffPtr);
- 8003c1a: 68fb ldr r3, [r7, #12]
- 8003c1c: 6b1a ldr r2, [r3, #48] ; 0x30
- 8003c1e: 68fb ldr r3, [r7, #12]
- 8003c20: 681b ldr r3, [r3, #0]
- 8003c22: 330c adds r3, #12
- 8003c24: 7812 ldrb r2, [r2, #0]
- 8003c26: 701a strb r2, [r3, #0]
- hspi->pTxBuffPtr += sizeof(uint8_t);
- 8003c28: 68fb ldr r3, [r7, #12]
- 8003c2a: 6b1b ldr r3, [r3, #48] ; 0x30
- 8003c2c: 1c5a adds r2, r3, #1
- 8003c2e: 68fb ldr r3, [r7, #12]
- 8003c30: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferCount--;
- 8003c32: 68fb ldr r3, [r7, #12]
- 8003c34: 8edb ldrh r3, [r3, #54] ; 0x36
- 8003c36: b29b uxth r3, r3
- 8003c38: 3b01 subs r3, #1
- 8003c3a: b29a uxth r2, r3
- 8003c3c: 68fb ldr r3, [r7, #12]
- 8003c3e: 86da strh r2, [r3, #54] ; 0x36
- }
- while (hspi->TxXferCount > 0U)
- 8003c40: e02c b.n 8003c9c
- {
- /* Wait until TXE flag is set to send data */
- if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE))
- 8003c42: 68fb ldr r3, [r7, #12]
- 8003c44: 681b ldr r3, [r3, #0]
- 8003c46: 689b ldr r3, [r3, #8]
- 8003c48: f003 0302 and.w r3, r3, #2
- 8003c4c: 2b02 cmp r3, #2
- 8003c4e: d113 bne.n 8003c78
- {
- *((__IO uint8_t *)&hspi->Instance->DR) = (*hspi->pTxBuffPtr);
- 8003c50: 68fb ldr r3, [r7, #12]
- 8003c52: 6b1a ldr r2, [r3, #48] ; 0x30
- 8003c54: 68fb ldr r3, [r7, #12]
- 8003c56: 681b ldr r3, [r3, #0]
- 8003c58: 330c adds r3, #12
- 8003c5a: 7812 ldrb r2, [r2, #0]
- 8003c5c: 701a strb r2, [r3, #0]
- hspi->pTxBuffPtr += sizeof(uint8_t);
- 8003c5e: 68fb ldr r3, [r7, #12]
- 8003c60: 6b1b ldr r3, [r3, #48] ; 0x30
- 8003c62: 1c5a adds r2, r3, #1
- 8003c64: 68fb ldr r3, [r7, #12]
- 8003c66: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferCount--;
- 8003c68: 68fb ldr r3, [r7, #12]
- 8003c6a: 8edb ldrh r3, [r3, #54] ; 0x36
- 8003c6c: b29b uxth r3, r3
- 8003c6e: 3b01 subs r3, #1
- 8003c70: b29a uxth r2, r3
- 8003c72: 68fb ldr r3, [r7, #12]
- 8003c74: 86da strh r2, [r3, #54] ; 0x36
- 8003c76: e011 b.n 8003c9c
- }
- else
- {
- /* Timeout management */
- if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
- 8003c78: f7fd ff7e bl 8001b78
- 8003c7c: 4602 mov r2, r0
- 8003c7e: 69bb ldr r3, [r7, #24]
- 8003c80: 1ad3 subs r3, r2, r3
- 8003c82: 683a ldr r2, [r7, #0]
- 8003c84: 429a cmp r2, r3
- 8003c86: d803 bhi.n 8003c90
- 8003c88: 683b ldr r3, [r7, #0]
- 8003c8a: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
- 8003c8e: d102 bne.n 8003c96
- 8003c90: 683b ldr r3, [r7, #0]
- 8003c92: 2b00 cmp r3, #0
- 8003c94: d102 bne.n 8003c9c
- {
- errorcode = HAL_TIMEOUT;
- 8003c96: 2303 movs r3, #3
- 8003c98: 77fb strb r3, [r7, #31]
- goto error;
- 8003c9a: e026 b.n 8003cea
- while (hspi->TxXferCount > 0U)
- 8003c9c: 68fb ldr r3, [r7, #12]
- 8003c9e: 8edb ldrh r3, [r3, #54] ; 0x36
- 8003ca0: b29b uxth r3, r3
- 8003ca2: 2b00 cmp r3, #0
- 8003ca4: d1cd bne.n 8003c42
- SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT);
- }
-#endif /* USE_SPI_CRC */
-
- /* Check the end of the transaction */
- if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK)
- 8003ca6: 69ba ldr r2, [r7, #24]
- 8003ca8: 6839 ldr r1, [r7, #0]
- 8003caa: 68f8 ldr r0, [r7, #12]
- 8003cac: f000 fbb8 bl 8004420
- 8003cb0: 4603 mov r3, r0
- 8003cb2: 2b00 cmp r3, #0
- 8003cb4: d002 beq.n 8003cbc
- {
- hspi->ErrorCode = HAL_SPI_ERROR_FLAG;
- 8003cb6: 68fb ldr r3, [r7, #12]
- 8003cb8: 2220 movs r2, #32
- 8003cba: 655a str r2, [r3, #84] ; 0x54
- }
-
- /* Clear overrun flag in 2 Lines communication mode because received is not read */
- if (hspi->Init.Direction == SPI_DIRECTION_2LINES)
- 8003cbc: 68fb ldr r3, [r7, #12]
- 8003cbe: 689b ldr r3, [r3, #8]
- 8003cc0: 2b00 cmp r3, #0
- 8003cc2: d10a bne.n 8003cda
- {
- __HAL_SPI_CLEAR_OVRFLAG(hspi);
- 8003cc4: 2300 movs r3, #0
- 8003cc6: 613b str r3, [r7, #16]
- 8003cc8: 68fb ldr r3, [r7, #12]
- 8003cca: 681b ldr r3, [r3, #0]
- 8003ccc: 68db ldr r3, [r3, #12]
- 8003cce: 613b str r3, [r7, #16]
- 8003cd0: 68fb ldr r3, [r7, #12]
- 8003cd2: 681b ldr r3, [r3, #0]
- 8003cd4: 689b ldr r3, [r3, #8]
- 8003cd6: 613b str r3, [r7, #16]
- 8003cd8: 693b ldr r3, [r7, #16]
- }
-
- if (hspi->ErrorCode != HAL_SPI_ERROR_NONE)
- 8003cda: 68fb ldr r3, [r7, #12]
- 8003cdc: 6d5b ldr r3, [r3, #84] ; 0x54
- 8003cde: 2b00 cmp r3, #0
- 8003ce0: d002 beq.n 8003ce8
- {
- errorcode = HAL_ERROR;
- 8003ce2: 2301 movs r3, #1
- 8003ce4: 77fb strb r3, [r7, #31]
- 8003ce6: e000 b.n 8003cea
- }
-
-error:
- 8003ce8: bf00 nop
- hspi->State = HAL_SPI_STATE_READY;
- 8003cea: 68fb ldr r3, [r7, #12]
- 8003cec: 2201 movs r2, #1
- 8003cee: f883 2051 strb.w r2, [r3, #81] ; 0x51
- /* Process Unlocked */
- __HAL_UNLOCK(hspi);
- 8003cf2: 68fb ldr r3, [r7, #12]
- 8003cf4: 2200 movs r2, #0
- 8003cf6: f883 2050 strb.w r2, [r3, #80] ; 0x50
- return errorcode;
- 8003cfa: 7ffb ldrb r3, [r7, #31]
-}
- 8003cfc: 4618 mov r0, r3
- 8003cfe: 3720 adds r7, #32
- 8003d00: 46bd mov sp, r7
- 8003d02: bd80 pop {r7, pc}
-
-08003d04 :
- * @param Size amount of data to be received
- * @param Timeout Timeout duration
- * @retval HAL status
- */
-HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout)
-{
- 8003d04: b580 push {r7, lr}
- 8003d06: b088 sub sp, #32
- 8003d08: af02 add r7, sp, #8
- 8003d0a: 60f8 str r0, [r7, #12]
- 8003d0c: 60b9 str r1, [r7, #8]
- 8003d0e: 603b str r3, [r7, #0]
- 8003d10: 4613 mov r3, r2
- 8003d12: 80fb strh r3, [r7, #6]
-#if (USE_SPI_CRC != 0U)
- __IO uint32_t tmpreg = 0U;
-#endif /* USE_SPI_CRC */
- uint32_t tickstart;
- HAL_StatusTypeDef errorcode = HAL_OK;
- 8003d14: 2300 movs r3, #0
- 8003d16: 75fb strb r3, [r7, #23]
-
- if ((hspi->Init.Mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES))
- 8003d18: 68fb ldr r3, [r7, #12]
- 8003d1a: 685b ldr r3, [r3, #4]
- 8003d1c: f5b3 7f82 cmp.w r3, #260 ; 0x104
- 8003d20: d112 bne.n 8003d48
- 8003d22: 68fb ldr r3, [r7, #12]
- 8003d24: 689b ldr r3, [r3, #8]
- 8003d26: 2b00 cmp r3, #0
- 8003d28: d10e bne.n 8003d48
- {
- hspi->State = HAL_SPI_STATE_BUSY_RX;
- 8003d2a: 68fb ldr r3, [r7, #12]
- 8003d2c: 2204 movs r2, #4
- 8003d2e: f883 2051 strb.w r2, [r3, #81] ; 0x51
- /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line */
- return HAL_SPI_TransmitReceive(hspi, pData, pData, Size, Timeout);
- 8003d32: 88fa ldrh r2, [r7, #6]
- 8003d34: 683b ldr r3, [r7, #0]
- 8003d36: 9300 str r3, [sp, #0]
- 8003d38: 4613 mov r3, r2
- 8003d3a: 68ba ldr r2, [r7, #8]
- 8003d3c: 68b9 ldr r1, [r7, #8]
- 8003d3e: 68f8 ldr r0, [r7, #12]
- 8003d40: f000 f8f1 bl 8003f26
- 8003d44: 4603 mov r3, r0
- 8003d46: e0ea b.n 8003f1e
- }
-
- /* Process Locked */
- __HAL_LOCK(hspi);
- 8003d48: 68fb ldr r3, [r7, #12]
- 8003d4a: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
- 8003d4e: 2b01 cmp r3, #1
- 8003d50: d101 bne.n 8003d56
- 8003d52: 2302 movs r3, #2
- 8003d54: e0e3 b.n 8003f1e
- 8003d56: 68fb ldr r3, [r7, #12]
- 8003d58: 2201 movs r2, #1
- 8003d5a: f883 2050 strb.w r2, [r3, #80] ; 0x50
-
- /* Init tickstart for timeout management*/
- tickstart = HAL_GetTick();
- 8003d5e: f7fd ff0b bl 8001b78
- 8003d62: 6138 str r0, [r7, #16]
-
- if (hspi->State != HAL_SPI_STATE_READY)
- 8003d64: 68fb ldr r3, [r7, #12]
- 8003d66: f893 3051 ldrb.w r3, [r3, #81] ; 0x51
- 8003d6a: b2db uxtb r3, r3
- 8003d6c: 2b01 cmp r3, #1
- 8003d6e: d002 beq.n 8003d76
- {
- errorcode = HAL_BUSY;
- 8003d70: 2302 movs r3, #2
- 8003d72: 75fb strb r3, [r7, #23]
- goto error;
- 8003d74: e0ca b.n 8003f0c
- }
-
- if ((pData == NULL) || (Size == 0U))
- 8003d76: 68bb ldr r3, [r7, #8]
- 8003d78: 2b00 cmp r3, #0
- 8003d7a: d002 beq.n 8003d82
- 8003d7c: 88fb ldrh r3, [r7, #6]
- 8003d7e: 2b00 cmp r3, #0
- 8003d80: d102 bne.n 8003d88
- {
- errorcode = HAL_ERROR;
- 8003d82: 2301 movs r3, #1
- 8003d84: 75fb strb r3, [r7, #23]
- goto error;
- 8003d86: e0c1 b.n 8003f0c
- }
-
- /* Set the transaction information */
- hspi->State = HAL_SPI_STATE_BUSY_RX;
- 8003d88: 68fb ldr r3, [r7, #12]
- 8003d8a: 2204 movs r2, #4
- 8003d8c: f883 2051 strb.w r2, [r3, #81] ; 0x51
- hspi->ErrorCode = HAL_SPI_ERROR_NONE;
- 8003d90: 68fb ldr r3, [r7, #12]
- 8003d92: 2200 movs r2, #0
- 8003d94: 655a str r2, [r3, #84] ; 0x54
- hspi->pRxBuffPtr = (uint8_t *)pData;
- 8003d96: 68fb ldr r3, [r7, #12]
- 8003d98: 68ba ldr r2, [r7, #8]
- 8003d9a: 639a str r2, [r3, #56] ; 0x38
- hspi->RxXferSize = Size;
- 8003d9c: 68fb ldr r3, [r7, #12]
- 8003d9e: 88fa ldrh r2, [r7, #6]
- 8003da0: 879a strh r2, [r3, #60] ; 0x3c
- hspi->RxXferCount = Size;
- 8003da2: 68fb ldr r3, [r7, #12]
- 8003da4: 88fa ldrh r2, [r7, #6]
- 8003da6: 87da strh r2, [r3, #62] ; 0x3e
-
- /*Init field not used in handle to zero */
- hspi->pTxBuffPtr = (uint8_t *)NULL;
- 8003da8: 68fb ldr r3, [r7, #12]
- 8003daa: 2200 movs r2, #0
- 8003dac: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferSize = 0U;
- 8003dae: 68fb ldr r3, [r7, #12]
- 8003db0: 2200 movs r2, #0
- 8003db2: 869a strh r2, [r3, #52] ; 0x34
- hspi->TxXferCount = 0U;
- 8003db4: 68fb ldr r3, [r7, #12]
- 8003db6: 2200 movs r2, #0
- 8003db8: 86da strh r2, [r3, #54] ; 0x36
- hspi->RxISR = NULL;
- 8003dba: 68fb ldr r3, [r7, #12]
- 8003dbc: 2200 movs r2, #0
- 8003dbe: 641a str r2, [r3, #64] ; 0x40
- hspi->TxISR = NULL;
- 8003dc0: 68fb ldr r3, [r7, #12]
- 8003dc2: 2200 movs r2, #0
- 8003dc4: 645a str r2, [r3, #68] ; 0x44
- hspi->RxXferCount--;
- }
-#endif /* USE_SPI_CRC */
-
- /* Configure communication direction: 1Line */
- if (hspi->Init.Direction == SPI_DIRECTION_1LINE)
- 8003dc6: 68fb ldr r3, [r7, #12]
- 8003dc8: 689b ldr r3, [r3, #8]
- 8003dca: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
- 8003dce: d10f bne.n 8003df0
- {
- /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */
- __HAL_SPI_DISABLE(hspi);
- 8003dd0: 68fb ldr r3, [r7, #12]
- 8003dd2: 681b ldr r3, [r3, #0]
- 8003dd4: 681a ldr r2, [r3, #0]
- 8003dd6: 68fb ldr r3, [r7, #12]
- 8003dd8: 681b ldr r3, [r3, #0]
- 8003dda: f022 0240 bic.w r2, r2, #64 ; 0x40
- 8003dde: 601a str r2, [r3, #0]
- SPI_1LINE_RX(hspi);
- 8003de0: 68fb ldr r3, [r7, #12]
- 8003de2: 681b ldr r3, [r3, #0]
- 8003de4: 681a ldr r2, [r3, #0]
- 8003de6: 68fb ldr r3, [r7, #12]
- 8003de8: 681b ldr r3, [r3, #0]
- 8003dea: f422 4280 bic.w r2, r2, #16384 ; 0x4000
- 8003dee: 601a str r2, [r3, #0]
- }
-
- /* Check if the SPI is already enabled */
- if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE)
- 8003df0: 68fb ldr r3, [r7, #12]
- 8003df2: 681b ldr r3, [r3, #0]
- 8003df4: 681b ldr r3, [r3, #0]
- 8003df6: f003 0340 and.w r3, r3, #64 ; 0x40
- 8003dfa: 2b40 cmp r3, #64 ; 0x40
- 8003dfc: d007 beq.n 8003e0e
- {
- /* Enable SPI peripheral */
- __HAL_SPI_ENABLE(hspi);
- 8003dfe: 68fb ldr r3, [r7, #12]
- 8003e00: 681b ldr r3, [r3, #0]
- 8003e02: 681a ldr r2, [r3, #0]
- 8003e04: 68fb ldr r3, [r7, #12]
- 8003e06: 681b ldr r3, [r3, #0]
- 8003e08: f042 0240 orr.w r2, r2, #64 ; 0x40
- 8003e0c: 601a str r2, [r3, #0]
- }
-
- /* Receive data in 8 Bit mode */
- if (hspi->Init.DataSize == SPI_DATASIZE_8BIT)
- 8003e0e: 68fb ldr r3, [r7, #12]
- 8003e10: 68db ldr r3, [r3, #12]
- 8003e12: 2b00 cmp r3, #0
- 8003e14: d162 bne.n 8003edc
- {
- /* Transfer loop */
- while (hspi->RxXferCount > 0U)
- 8003e16: e02e b.n 8003e76
- {
- /* Check the RXNE flag */
- if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE))
- 8003e18: 68fb ldr r3, [r7, #12]
- 8003e1a: 681b ldr r3, [r3, #0]
- 8003e1c: 689b ldr r3, [r3, #8]
- 8003e1e: f003 0301 and.w r3, r3, #1
- 8003e22: 2b01 cmp r3, #1
- 8003e24: d115 bne.n 8003e52
- {
- /* read the received data */
- (* (uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR;
- 8003e26: 68fb ldr r3, [r7, #12]
- 8003e28: 681b ldr r3, [r3, #0]
- 8003e2a: f103 020c add.w r2, r3, #12
- 8003e2e: 68fb ldr r3, [r7, #12]
- 8003e30: 6b9b ldr r3, [r3, #56] ; 0x38
- 8003e32: 7812 ldrb r2, [r2, #0]
- 8003e34: b2d2 uxtb r2, r2
- 8003e36: 701a strb r2, [r3, #0]
- hspi->pRxBuffPtr += sizeof(uint8_t);
- 8003e38: 68fb ldr r3, [r7, #12]
- 8003e3a: 6b9b ldr r3, [r3, #56] ; 0x38
- 8003e3c: 1c5a adds r2, r3, #1
- 8003e3e: 68fb ldr r3, [r7, #12]
- 8003e40: 639a str r2, [r3, #56] ; 0x38
- hspi->RxXferCount--;
- 8003e42: 68fb ldr r3, [r7, #12]
- 8003e44: 8fdb ldrh r3, [r3, #62] ; 0x3e
- 8003e46: b29b uxth r3, r3
- 8003e48: 3b01 subs r3, #1
- 8003e4a: b29a uxth r2, r3
- 8003e4c: 68fb ldr r3, [r7, #12]
- 8003e4e: 87da strh r2, [r3, #62] ; 0x3e
- 8003e50: e011 b.n 8003e76
- }
- else
- {
- /* Timeout management */
- if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
- 8003e52: f7fd fe91 bl 8001b78
- 8003e56: 4602 mov r2, r0
- 8003e58: 693b ldr r3, [r7, #16]
- 8003e5a: 1ad3 subs r3, r2, r3
- 8003e5c: 683a ldr r2, [r7, #0]
- 8003e5e: 429a cmp r2, r3
- 8003e60: d803 bhi.n 8003e6a
- 8003e62: 683b ldr r3, [r7, #0]
- 8003e64: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
- 8003e68: d102 bne.n 8003e70
- 8003e6a: 683b ldr r3, [r7, #0]
- 8003e6c: 2b00 cmp r3, #0
- 8003e6e: d102 bne.n 8003e76
- {
- errorcode = HAL_TIMEOUT;
- 8003e70: 2303 movs r3, #3
- 8003e72: 75fb strb r3, [r7, #23]
- goto error;
- 8003e74: e04a b.n 8003f0c
- while (hspi->RxXferCount > 0U)
- 8003e76: 68fb ldr r3, [r7, #12]
- 8003e78: 8fdb ldrh r3, [r3, #62] ; 0x3e
- 8003e7a: b29b uxth r3, r3
- 8003e7c: 2b00 cmp r3, #0
- 8003e7e: d1cb bne.n 8003e18
- 8003e80: e031 b.n 8003ee6
- {
- /* Transfer loop */
- while (hspi->RxXferCount > 0U)
- {
- /* Check the RXNE flag */
- if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE))
- 8003e82: 68fb ldr r3, [r7, #12]
- 8003e84: 681b ldr r3, [r3, #0]
- 8003e86: 689b ldr r3, [r3, #8]
- 8003e88: f003 0301 and.w r3, r3, #1
- 8003e8c: 2b01 cmp r3, #1
- 8003e8e: d113 bne.n 8003eb8
- {
- *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR;
- 8003e90: 68fb ldr r3, [r7, #12]
- 8003e92: 681b ldr r3, [r3, #0]
- 8003e94: 68da ldr r2, [r3, #12]
- 8003e96: 68fb ldr r3, [r7, #12]
- 8003e98: 6b9b ldr r3, [r3, #56] ; 0x38
- 8003e9a: b292 uxth r2, r2
- 8003e9c: 801a strh r2, [r3, #0]
- hspi->pRxBuffPtr += sizeof(uint16_t);
- 8003e9e: 68fb ldr r3, [r7, #12]
- 8003ea0: 6b9b ldr r3, [r3, #56] ; 0x38
- 8003ea2: 1c9a adds r2, r3, #2
- 8003ea4: 68fb ldr r3, [r7, #12]
- 8003ea6: 639a str r2, [r3, #56] ; 0x38
- hspi->RxXferCount--;
- 8003ea8: 68fb ldr r3, [r7, #12]
- 8003eaa: 8fdb ldrh r3, [r3, #62] ; 0x3e
- 8003eac: b29b uxth r3, r3
- 8003eae: 3b01 subs r3, #1
- 8003eb0: b29a uxth r2, r3
- 8003eb2: 68fb ldr r3, [r7, #12]
- 8003eb4: 87da strh r2, [r3, #62] ; 0x3e
- 8003eb6: e011 b.n 8003edc
- }
- else
- {
- /* Timeout management */
- if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
- 8003eb8: f7fd fe5e bl 8001b78
- 8003ebc: 4602 mov r2, r0
- 8003ebe: 693b ldr r3, [r7, #16]
- 8003ec0: 1ad3 subs r3, r2, r3
- 8003ec2: 683a ldr r2, [r7, #0]
- 8003ec4: 429a cmp r2, r3
- 8003ec6: d803 bhi.n 8003ed0
- 8003ec8: 683b ldr r3, [r7, #0]
- 8003eca: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
- 8003ece: d102 bne.n 8003ed6
- 8003ed0: 683b ldr r3, [r7, #0]
- 8003ed2: 2b00 cmp r3, #0
- 8003ed4: d102 bne.n 8003edc
- {
- errorcode = HAL_TIMEOUT;
- 8003ed6: 2303 movs r3, #3
- 8003ed8: 75fb strb r3, [r7, #23]
- goto error;
- 8003eda: e017 b.n 8003f0c
- while (hspi->RxXferCount > 0U)
- 8003edc: 68fb ldr r3, [r7, #12]
- 8003ede: 8fdb ldrh r3, [r3, #62] ; 0x3e
- 8003ee0: b29b uxth r3, r3
- 8003ee2: 2b00 cmp r3, #0
- 8003ee4: d1cd bne.n 8003e82
- UNUSED(tmpreg);
- }
-#endif /* USE_SPI_CRC */
-
- /* Check the end of the transaction */
- if (SPI_EndRxTransaction(hspi, Timeout, tickstart) != HAL_OK)
- 8003ee6: 693a ldr r2, [r7, #16]
- 8003ee8: 6839 ldr r1, [r7, #0]
- 8003eea: 68f8 ldr r0, [r7, #12]
- 8003eec: f000 fa46 bl 800437c
- 8003ef0: 4603 mov r3, r0
- 8003ef2: 2b00 cmp r3, #0
- 8003ef4: d002 beq.n 8003efc
- {
- hspi->ErrorCode = HAL_SPI_ERROR_FLAG;
- 8003ef6: 68fb ldr r3, [r7, #12]
- 8003ef8: 2220 movs r2, #32
- 8003efa: 655a str r2, [r3, #84] ; 0x54
- __HAL_SPI_CLEAR_CRCERRFLAG(hspi);
- }
- }
-#endif /* USE_SPI_CRC */
-
- if (hspi->ErrorCode != HAL_SPI_ERROR_NONE)
- 8003efc: 68fb ldr r3, [r7, #12]
- 8003efe: 6d5b ldr r3, [r3, #84] ; 0x54
- 8003f00: 2b00 cmp r3, #0
- 8003f02: d002 beq.n 8003f0a
- {
- errorcode = HAL_ERROR;
- 8003f04: 2301 movs r3, #1
- 8003f06: 75fb strb r3, [r7, #23]
- 8003f08: e000 b.n 8003f0c
- }
-
-error :
- 8003f0a: bf00 nop
- hspi->State = HAL_SPI_STATE_READY;
- 8003f0c: 68fb ldr r3, [r7, #12]
- 8003f0e: 2201 movs r2, #1
- 8003f10: f883 2051 strb.w r2, [r3, #81] ; 0x51
- __HAL_UNLOCK(hspi);
- 8003f14: 68fb ldr r3, [r7, #12]
- 8003f16: 2200 movs r2, #0
- 8003f18: f883 2050 strb.w r2, [r3, #80] ; 0x50
- return errorcode;
- 8003f1c: 7dfb ldrb r3, [r7, #23]
-}
- 8003f1e: 4618 mov r0, r3
- 8003f20: 3718 adds r7, #24
- 8003f22: 46bd mov sp, r7
- 8003f24: bd80 pop {r7, pc}
-
-08003f26 :
- * @param Timeout Timeout duration
- * @retval HAL status
- */
-HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size,
- uint32_t Timeout)
-{
- 8003f26: b580 push {r7, lr}
- 8003f28: b08c sub sp, #48 ; 0x30
- 8003f2a: af00 add r7, sp, #0
- 8003f2c: 60f8 str r0, [r7, #12]
- 8003f2e: 60b9 str r1, [r7, #8]
- 8003f30: 607a str r2, [r7, #4]
- 8003f32: 807b strh r3, [r7, #2]
-#if (USE_SPI_CRC != 0U)
- __IO uint32_t tmpreg = 0U;
-#endif /* USE_SPI_CRC */
-
- /* Variable used to alternate Rx and Tx during transfer */
- uint32_t txallowed = 1U;
- 8003f34: 2301 movs r3, #1
- 8003f36: 62fb str r3, [r7, #44] ; 0x2c
- HAL_StatusTypeDef errorcode = HAL_OK;
- 8003f38: 2300 movs r3, #0
- 8003f3a: f887 302b strb.w r3, [r7, #43] ; 0x2b
-
- /* Check Direction parameter */
- assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction));
-
- /* Process Locked */
- __HAL_LOCK(hspi);
- 8003f3e: 68fb ldr r3, [r7, #12]
- 8003f40: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
- 8003f44: 2b01 cmp r3, #1
- 8003f46: d101 bne.n 8003f4c
- 8003f48: 2302 movs r3, #2
- 8003f4a: e18a b.n 8004262
- 8003f4c: 68fb ldr r3, [r7, #12]
- 8003f4e: 2201 movs r2, #1
- 8003f50: f883 2050 strb.w r2, [r3, #80] ; 0x50
-
- /* Init tickstart for timeout management*/
- tickstart = HAL_GetTick();
- 8003f54: f7fd fe10 bl 8001b78
- 8003f58: 6278 str r0, [r7, #36] ; 0x24
-
- /* Init temporary variables */
- tmp_state = hspi->State;
- 8003f5a: 68fb ldr r3, [r7, #12]
- 8003f5c: f893 3051 ldrb.w r3, [r3, #81] ; 0x51
- 8003f60: f887 3023 strb.w r3, [r7, #35] ; 0x23
- tmp_mode = hspi->Init.Mode;
- 8003f64: 68fb ldr r3, [r7, #12]
- 8003f66: 685b ldr r3, [r3, #4]
- 8003f68: 61fb str r3, [r7, #28]
- initial_TxXferCount = Size;
- 8003f6a: 887b ldrh r3, [r7, #2]
- 8003f6c: 837b strh r3, [r7, #26]
-
- if (!((tmp_state == HAL_SPI_STATE_READY) || \
- 8003f6e: f897 3023 ldrb.w r3, [r7, #35] ; 0x23
- 8003f72: 2b01 cmp r3, #1
- 8003f74: d00f beq.n 8003f96
- 8003f76: 69fb ldr r3, [r7, #28]
- 8003f78: f5b3 7f82 cmp.w r3, #260 ; 0x104
- 8003f7c: d107 bne.n 8003f8e
- ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_state == HAL_SPI_STATE_BUSY_RX))))
- 8003f7e: 68fb ldr r3, [r7, #12]
- 8003f80: 689b ldr r3, [r3, #8]
- 8003f82: 2b00 cmp r3, #0
- 8003f84: d103 bne.n 8003f8e
- 8003f86: f897 3023 ldrb.w r3, [r7, #35] ; 0x23
- 8003f8a: 2b04 cmp r3, #4
- 8003f8c: d003 beq.n 8003f96
- {
- errorcode = HAL_BUSY;
- 8003f8e: 2302 movs r3, #2
- 8003f90: f887 302b strb.w r3, [r7, #43] ; 0x2b
- goto error;
- 8003f94: e15b b.n 800424e
- }
-
- if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U))
- 8003f96: 68bb ldr r3, [r7, #8]
- 8003f98: 2b00 cmp r3, #0
- 8003f9a: d005 beq.n 8003fa8
- 8003f9c: 687b ldr r3, [r7, #4]
- 8003f9e: 2b00 cmp r3, #0
- 8003fa0: d002 beq.n 8003fa8
- 8003fa2: 887b ldrh r3, [r7, #2]
- 8003fa4: 2b00 cmp r3, #0
- 8003fa6: d103 bne.n 8003fb0
- {
- errorcode = HAL_ERROR;
- 8003fa8: 2301 movs r3, #1
- 8003faa: f887 302b strb.w r3, [r7, #43] ; 0x2b
- goto error;
- 8003fae: e14e b.n 800424e
- }
-
- /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */
- if (hspi->State != HAL_SPI_STATE_BUSY_RX)
- 8003fb0: 68fb ldr r3, [r7, #12]
- 8003fb2: f893 3051 ldrb.w r3, [r3, #81] ; 0x51
- 8003fb6: b2db uxtb r3, r3
- 8003fb8: 2b04 cmp r3, #4
- 8003fba: d003 beq.n 8003fc4
- {
- hspi->State = HAL_SPI_STATE_BUSY_TX_RX;
- 8003fbc: 68fb ldr r3, [r7, #12]
- 8003fbe: 2205 movs r2, #5
- 8003fc0: f883 2051 strb.w r2, [r3, #81] ; 0x51
- }
-
- /* Set the transaction information */
- hspi->ErrorCode = HAL_SPI_ERROR_NONE;
- 8003fc4: 68fb ldr r3, [r7, #12]
- 8003fc6: 2200 movs r2, #0
- 8003fc8: 655a str r2, [r3, #84] ; 0x54
- hspi->pRxBuffPtr = (uint8_t *)pRxData;
- 8003fca: 68fb ldr r3, [r7, #12]
- 8003fcc: 687a ldr r2, [r7, #4]
- 8003fce: 639a str r2, [r3, #56] ; 0x38
- hspi->RxXferCount = Size;
- 8003fd0: 68fb ldr r3, [r7, #12]
- 8003fd2: 887a ldrh r2, [r7, #2]
- 8003fd4: 87da strh r2, [r3, #62] ; 0x3e
- hspi->RxXferSize = Size;
- 8003fd6: 68fb ldr r3, [r7, #12]
- 8003fd8: 887a ldrh r2, [r7, #2]
- 8003fda: 879a strh r2, [r3, #60] ; 0x3c
- hspi->pTxBuffPtr = (uint8_t *)pTxData;
- 8003fdc: 68fb ldr r3, [r7, #12]
- 8003fde: 68ba ldr r2, [r7, #8]
- 8003fe0: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferCount = Size;
- 8003fe2: 68fb ldr r3, [r7, #12]
- 8003fe4: 887a ldrh r2, [r7, #2]
- 8003fe6: 86da strh r2, [r3, #54] ; 0x36
- hspi->TxXferSize = Size;
- 8003fe8: 68fb ldr r3, [r7, #12]
- 8003fea: 887a ldrh r2, [r7, #2]
- 8003fec: 869a strh r2, [r3, #52] ; 0x34
-
- /*Init field not used in handle to zero */
- hspi->RxISR = NULL;
- 8003fee: 68fb ldr r3, [r7, #12]
- 8003ff0: 2200 movs r2, #0
- 8003ff2: 641a str r2, [r3, #64] ; 0x40
- hspi->TxISR = NULL;
- 8003ff4: 68fb ldr r3, [r7, #12]
- 8003ff6: 2200 movs r2, #0
- 8003ff8: 645a str r2, [r3, #68] ; 0x44
- SPI_RESET_CRC(hspi);
- }
-#endif /* USE_SPI_CRC */
-
- /* Check if the SPI is already enabled */
- if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE)
- 8003ffa: 68fb ldr r3, [r7, #12]
- 8003ffc: 681b ldr r3, [r3, #0]
- 8003ffe: 681b ldr r3, [r3, #0]
- 8004000: f003 0340 and.w r3, r3, #64 ; 0x40
- 8004004: 2b40 cmp r3, #64 ; 0x40
- 8004006: d007 beq.n 8004018
- {
- /* Enable SPI peripheral */
- __HAL_SPI_ENABLE(hspi);
- 8004008: 68fb ldr r3, [r7, #12]
- 800400a: 681b ldr r3, [r3, #0]
- 800400c: 681a ldr r2, [r3, #0]
- 800400e: 68fb ldr r3, [r7, #12]
- 8004010: 681b ldr r3, [r3, #0]
- 8004012: f042 0240 orr.w r2, r2, #64 ; 0x40
- 8004016: 601a str r2, [r3, #0]
- }
-
- /* Transmit and Receive data in 16 Bit mode */
- if (hspi->Init.DataSize == SPI_DATASIZE_16BIT)
- 8004018: 68fb ldr r3, [r7, #12]
- 800401a: 68db ldr r3, [r3, #12]
- 800401c: f5b3 6f00 cmp.w r3, #2048 ; 0x800
- 8004020: d178 bne.n 8004114
- {
- if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U))
- 8004022: 68fb ldr r3, [r7, #12]
- 8004024: 685b ldr r3, [r3, #4]
- 8004026: 2b00 cmp r3, #0
- 8004028: d002 beq.n 8004030
- 800402a: 8b7b ldrh r3, [r7, #26]
- 800402c: 2b01 cmp r3, #1
- 800402e: d166 bne.n 80040fe
- {
- hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr);
- 8004030: 68fb ldr r3, [r7, #12]
- 8004032: 6b1b ldr r3, [r3, #48] ; 0x30
- 8004034: 881a ldrh r2, [r3, #0]
- 8004036: 68fb ldr r3, [r7, #12]
- 8004038: 681b ldr r3, [r3, #0]
- 800403a: 60da str r2, [r3, #12]
- hspi->pTxBuffPtr += sizeof(uint16_t);
- 800403c: 68fb ldr r3, [r7, #12]
- 800403e: 6b1b ldr r3, [r3, #48] ; 0x30
- 8004040: 1c9a adds r2, r3, #2
- 8004042: 68fb ldr r3, [r7, #12]
- 8004044: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferCount--;
- 8004046: 68fb ldr r3, [r7, #12]
- 8004048: 8edb ldrh r3, [r3, #54] ; 0x36
- 800404a: b29b uxth r3, r3
- 800404c: 3b01 subs r3, #1
- 800404e: b29a uxth r2, r3
- 8004050: 68fb ldr r3, [r7, #12]
- 8004052: 86da strh r2, [r3, #54] ; 0x36
- }
- while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U))
- 8004054: e053 b.n 80040fe
- {
- /* Check TXE flag */
- if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U))
- 8004056: 68fb ldr r3, [r7, #12]
- 8004058: 681b ldr r3, [r3, #0]
- 800405a: 689b ldr r3, [r3, #8]
- 800405c: f003 0302 and.w r3, r3, #2
- 8004060: 2b02 cmp r3, #2
- 8004062: d11b bne.n 800409c
- 8004064: 68fb ldr r3, [r7, #12]
- 8004066: 8edb ldrh r3, [r3, #54] ; 0x36
- 8004068: b29b uxth r3, r3
- 800406a: 2b00 cmp r3, #0
- 800406c: d016 beq.n 800409c
- 800406e: 6afb ldr r3, [r7, #44] ; 0x2c
- 8004070: 2b01 cmp r3, #1
- 8004072: d113 bne.n 800409c
- {
- hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr);
- 8004074: 68fb ldr r3, [r7, #12]
- 8004076: 6b1b ldr r3, [r3, #48] ; 0x30
- 8004078: 881a ldrh r2, [r3, #0]
- 800407a: 68fb ldr r3, [r7, #12]
- 800407c: 681b ldr r3, [r3, #0]
- 800407e: 60da str r2, [r3, #12]
- hspi->pTxBuffPtr += sizeof(uint16_t);
- 8004080: 68fb ldr r3, [r7, #12]
- 8004082: 6b1b ldr r3, [r3, #48] ; 0x30
- 8004084: 1c9a adds r2, r3, #2
- 8004086: 68fb ldr r3, [r7, #12]
- 8004088: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferCount--;
- 800408a: 68fb ldr r3, [r7, #12]
- 800408c: 8edb ldrh r3, [r3, #54] ; 0x36
- 800408e: b29b uxth r3, r3
- 8004090: 3b01 subs r3, #1
- 8004092: b29a uxth r2, r3
- 8004094: 68fb ldr r3, [r7, #12]
- 8004096: 86da strh r2, [r3, #54] ; 0x36
- /* Next Data is a reception (Rx). Tx not allowed */
- txallowed = 0U;
- 8004098: 2300 movs r3, #0
- 800409a: 62fb str r3, [r7, #44] ; 0x2c
- }
-#endif /* USE_SPI_CRC */
- }
-
- /* Check RXNE flag */
- if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U))
- 800409c: 68fb ldr r3, [r7, #12]
- 800409e: 681b ldr r3, [r3, #0]
- 80040a0: 689b ldr r3, [r3, #8]
- 80040a2: f003 0301 and.w r3, r3, #1
- 80040a6: 2b01 cmp r3, #1
- 80040a8: d119 bne.n 80040de
- 80040aa: 68fb ldr r3, [r7, #12]
- 80040ac: 8fdb ldrh r3, [r3, #62] ; 0x3e
- 80040ae: b29b uxth r3, r3
- 80040b0: 2b00 cmp r3, #0
- 80040b2: d014 beq.n 80040de
- {
- *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR;
- 80040b4: 68fb ldr r3, [r7, #12]
- 80040b6: 681b ldr r3, [r3, #0]
- 80040b8: 68da ldr r2, [r3, #12]
- 80040ba: 68fb ldr r3, [r7, #12]
- 80040bc: 6b9b ldr r3, [r3, #56] ; 0x38
- 80040be: b292 uxth r2, r2
- 80040c0: 801a strh r2, [r3, #0]
- hspi->pRxBuffPtr += sizeof(uint16_t);
- 80040c2: 68fb ldr r3, [r7, #12]
- 80040c4: 6b9b ldr r3, [r3, #56] ; 0x38
- 80040c6: 1c9a adds r2, r3, #2
- 80040c8: 68fb ldr r3, [r7, #12]
- 80040ca: 639a str r2, [r3, #56] ; 0x38
- hspi->RxXferCount--;
- 80040cc: 68fb ldr r3, [r7, #12]
- 80040ce: 8fdb ldrh r3, [r3, #62] ; 0x3e
- 80040d0: b29b uxth r3, r3
- 80040d2: 3b01 subs r3, #1
- 80040d4: b29a uxth r2, r3
- 80040d6: 68fb ldr r3, [r7, #12]
- 80040d8: 87da strh r2, [r3, #62] ; 0x3e
- /* Next Data is a Transmission (Tx). Tx is allowed */
- txallowed = 1U;
- 80040da: 2301 movs r3, #1
- 80040dc: 62fb str r3, [r7, #44] ; 0x2c
- }
- if (((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY))
- 80040de: f7fd fd4b bl 8001b78
- 80040e2: 4602 mov r2, r0
- 80040e4: 6a7b ldr r3, [r7, #36] ; 0x24
- 80040e6: 1ad3 subs r3, r2, r3
- 80040e8: 6bba ldr r2, [r7, #56] ; 0x38
- 80040ea: 429a cmp r2, r3
- 80040ec: d807 bhi.n 80040fe
- 80040ee: 6bbb ldr r3, [r7, #56] ; 0x38
- 80040f0: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
- 80040f4: d003 beq.n 80040fe
- {
- errorcode = HAL_TIMEOUT;
- 80040f6: 2303 movs r3, #3
- 80040f8: f887 302b strb.w r3, [r7, #43] ; 0x2b
- goto error;
- 80040fc: e0a7 b.n 800424e
- while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U))
- 80040fe: 68fb ldr r3, [r7, #12]
- 8004100: 8edb ldrh r3, [r3, #54] ; 0x36
- 8004102: b29b uxth r3, r3
- 8004104: 2b00 cmp r3, #0
- 8004106: d1a6 bne.n 8004056
- 8004108: 68fb ldr r3, [r7, #12]
- 800410a: 8fdb ldrh r3, [r3, #62] ; 0x3e
- 800410c: b29b uxth r3, r3
- 800410e: 2b00 cmp r3, #0
- 8004110: d1a1 bne.n 8004056
- 8004112: e07c b.n 800420e
- }
- }
- /* Transmit and Receive data in 8 Bit mode */
- else
- {
- if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U))
- 8004114: 68fb ldr r3, [r7, #12]
- 8004116: 685b ldr r3, [r3, #4]
- 8004118: 2b00 cmp r3, #0
- 800411a: d002 beq.n 8004122
- 800411c: 8b7b ldrh r3, [r7, #26]
- 800411e: 2b01 cmp r3, #1
- 8004120: d16b bne.n 80041fa
- {
- *((__IO uint8_t *)&hspi->Instance->DR) = (*hspi->pTxBuffPtr);
- 8004122: 68fb ldr r3, [r7, #12]
- 8004124: 6b1a ldr r2, [r3, #48] ; 0x30
- 8004126: 68fb ldr r3, [r7, #12]
- 8004128: 681b ldr r3, [r3, #0]
- 800412a: 330c adds r3, #12
- 800412c: 7812 ldrb r2, [r2, #0]
- 800412e: 701a strb r2, [r3, #0]
- hspi->pTxBuffPtr += sizeof(uint8_t);
- 8004130: 68fb ldr r3, [r7, #12]
- 8004132: 6b1b ldr r3, [r3, #48] ; 0x30
- 8004134: 1c5a adds r2, r3, #1
- 8004136: 68fb ldr r3, [r7, #12]
- 8004138: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferCount--;
- 800413a: 68fb ldr r3, [r7, #12]
- 800413c: 8edb ldrh r3, [r3, #54] ; 0x36
- 800413e: b29b uxth r3, r3
- 8004140: 3b01 subs r3, #1
- 8004142: b29a uxth r2, r3
- 8004144: 68fb ldr r3, [r7, #12]
- 8004146: 86da strh r2, [r3, #54] ; 0x36
- }
- while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U))
- 8004148: e057 b.n 80041fa
- {
- /* Check TXE flag */
- if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U))
- 800414a: 68fb ldr r3, [r7, #12]
- 800414c: 681b ldr r3, [r3, #0]
- 800414e: 689b ldr r3, [r3, #8]
- 8004150: f003 0302 and.w r3, r3, #2
- 8004154: 2b02 cmp r3, #2
- 8004156: d11c bne.n 8004192
- 8004158: 68fb ldr r3, [r7, #12]
- 800415a: 8edb ldrh r3, [r3, #54] ; 0x36
- 800415c: b29b uxth r3, r3
- 800415e: 2b00 cmp r3, #0
- 8004160: d017 beq.n 8004192
- 8004162: 6afb ldr r3, [r7, #44] ; 0x2c
- 8004164: 2b01 cmp r3, #1
- 8004166: d114 bne.n 8004192
- {
- *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr);
- 8004168: 68fb ldr r3, [r7, #12]
- 800416a: 6b1a ldr r2, [r3, #48] ; 0x30
- 800416c: 68fb ldr r3, [r7, #12]
- 800416e: 681b ldr r3, [r3, #0]
- 8004170: 330c adds r3, #12
- 8004172: 7812 ldrb r2, [r2, #0]
- 8004174: 701a strb r2, [r3, #0]
- hspi->pTxBuffPtr++;
- 8004176: 68fb ldr r3, [r7, #12]
- 8004178: 6b1b ldr r3, [r3, #48] ; 0x30
- 800417a: 1c5a adds r2, r3, #1
- 800417c: 68fb ldr r3, [r7, #12]
- 800417e: 631a str r2, [r3, #48] ; 0x30
- hspi->TxXferCount--;
- 8004180: 68fb ldr r3, [r7, #12]
- 8004182: 8edb ldrh r3, [r3, #54] ; 0x36
- 8004184: b29b uxth r3, r3
- 8004186: 3b01 subs r3, #1
- 8004188: b29a uxth r2, r3
- 800418a: 68fb ldr r3, [r7, #12]
- 800418c: 86da strh r2, [r3, #54] ; 0x36
- /* Next Data is a reception (Rx). Tx not allowed */
- txallowed = 0U;
- 800418e: 2300 movs r3, #0
- 8004190: 62fb str r3, [r7, #44] ; 0x2c
- }
-#endif /* USE_SPI_CRC */
- }
-
- /* Wait until RXNE flag is reset */
- if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U))
- 8004192: 68fb ldr r3, [r7, #12]
- 8004194: 681b ldr r3, [r3, #0]
- 8004196: 689b ldr r3, [r3, #8]
- 8004198: f003 0301 and.w r3, r3, #1
- 800419c: 2b01 cmp r3, #1
- 800419e: d119 bne.n 80041d4
- 80041a0: 68fb ldr r3, [r7, #12]
- 80041a2: 8fdb ldrh r3, [r3, #62] ; 0x3e
- 80041a4: b29b uxth r3, r3
- 80041a6: 2b00 cmp r3, #0
- 80041a8: d014 beq.n 80041d4
- {
- (*(uint8_t *)hspi->pRxBuffPtr) = hspi->Instance->DR;
- 80041aa: 68fb ldr r3, [r7, #12]
- 80041ac: 681b ldr r3, [r3, #0]
- 80041ae: 68da ldr r2, [r3, #12]
- 80041b0: 68fb ldr r3, [r7, #12]
- 80041b2: 6b9b ldr r3, [r3, #56] ; 0x38
- 80041b4: b2d2 uxtb r2, r2
- 80041b6: 701a strb r2, [r3, #0]
- hspi->pRxBuffPtr++;
- 80041b8: 68fb ldr r3, [r7, #12]
- 80041ba: 6b9b ldr r3, [r3, #56] ; 0x38
- 80041bc: 1c5a adds r2, r3, #1
- 80041be: 68fb ldr r3, [r7, #12]
- 80041c0: 639a str r2, [r3, #56] ; 0x38
- hspi->RxXferCount--;
- 80041c2: 68fb ldr r3, [r7, #12]
- 80041c4: 8fdb ldrh r3, [r3, #62] ; 0x3e
- 80041c6: b29b uxth r3, r3
- 80041c8: 3b01 subs r3, #1
- 80041ca: b29a uxth r2, r3
- 80041cc: 68fb ldr r3, [r7, #12]
- 80041ce: 87da strh r2, [r3, #62] ; 0x3e
- /* Next Data is a Transmission (Tx). Tx is allowed */
- txallowed = 1U;
- 80041d0: 2301 movs r3, #1
- 80041d2: 62fb str r3, [r7, #44] ; 0x2c
- }
- if ((((HAL_GetTick() - tickstart) >= Timeout) && ((Timeout != HAL_MAX_DELAY))) || (Timeout == 0U))
- 80041d4: f7fd fcd0 bl 8001b78
- 80041d8: 4602 mov r2, r0
- 80041da: 6a7b ldr r3, [r7, #36] ; 0x24
- 80041dc: 1ad3 subs r3, r2, r3
- 80041de: 6bba ldr r2, [r7, #56] ; 0x38
- 80041e0: 429a cmp r2, r3
- 80041e2: d803 bhi.n 80041ec
- 80041e4: 6bbb ldr r3, [r7, #56] ; 0x38
- 80041e6: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
- 80041ea: d102 bne.n 80041f2
- 80041ec: 6bbb ldr r3, [r7, #56] ; 0x38
- 80041ee: 2b00 cmp r3, #0
- 80041f0: d103 bne.n 80041fa
- {
- errorcode = HAL_TIMEOUT;
- 80041f2: 2303 movs r3, #3
- 80041f4: f887 302b strb.w r3, [r7, #43] ; 0x2b
- goto error;
- 80041f8: e029 b.n 800424e
- while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U))
- 80041fa: 68fb ldr r3, [r7, #12]
- 80041fc: 8edb ldrh r3, [r3, #54] ; 0x36
- 80041fe: b29b uxth r3, r3
- 8004200: 2b00 cmp r3, #0
- 8004202: d1a2 bne.n 800414a
- 8004204: 68fb ldr r3, [r7, #12]
- 8004206: 8fdb ldrh r3, [r3, #62] ; 0x3e
- 8004208: b29b uxth r3, r3
- 800420a: 2b00 cmp r3, #0
- 800420c: d19d bne.n 800414a
- }
- }
-#endif /* USE_SPI_CRC */
-
- /* Check the end of the transaction */
- if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK)
- 800420e: 6a7a ldr r2, [r7, #36] ; 0x24
- 8004210: 6bb9 ldr r1, [r7, #56] ; 0x38
- 8004212: 68f8 ldr r0, [r7, #12]
- 8004214: f000 f904 bl 8004420
- 8004218: 4603 mov r3, r0
- 800421a: 2b00 cmp r3, #0
- 800421c: d006 beq.n 800422c
- {
- errorcode = HAL_ERROR;
- 800421e: 2301 movs r3, #1
- 8004220: f887 302b strb.w r3, [r7, #43] ; 0x2b
- hspi->ErrorCode = HAL_SPI_ERROR_FLAG;
- 8004224: 68fb ldr r3, [r7, #12]
- 8004226: 2220 movs r2, #32
- 8004228: 655a str r2, [r3, #84] ; 0x54
- goto error;
- 800422a: e010 b.n 800424e
- }
-
- /* Clear overrun flag in 2 Lines communication mode because received is not read */
- if (hspi->Init.Direction == SPI_DIRECTION_2LINES)
- 800422c: 68fb ldr r3, [r7, #12]
- 800422e: 689b ldr r3, [r3, #8]
- 8004230: 2b00 cmp r3, #0
- 8004232: d10b bne.n 800424c
- {
- __HAL_SPI_CLEAR_OVRFLAG(hspi);
- 8004234: 2300 movs r3, #0
- 8004236: 617b str r3, [r7, #20]
- 8004238: 68fb ldr r3, [r7, #12]
- 800423a: 681b ldr r3, [r3, #0]
- 800423c: 68db ldr r3, [r3, #12]
- 800423e: 617b str r3, [r7, #20]
- 8004240: 68fb ldr r3, [r7, #12]
- 8004242: 681b ldr r3, [r3, #0]
- 8004244: 689b ldr r3, [r3, #8]
- 8004246: 617b str r3, [r7, #20]
- 8004248: 697b ldr r3, [r7, #20]
- 800424a: e000 b.n 800424e
- }
-
-error :
- 800424c: bf00 nop
- hspi->State = HAL_SPI_STATE_READY;
- 800424e: 68fb ldr r3, [r7, #12]
- 8004250: 2201 movs r2, #1
- 8004252: f883 2051 strb.w r2, [r3, #81] ; 0x51
- __HAL_UNLOCK(hspi);
- 8004256: 68fb ldr r3, [r7, #12]
- 8004258: 2200 movs r2, #0
- 800425a: f883 2050 strb.w r2, [r3, #80] ; 0x50
- return errorcode;
- 800425e: f897 302b ldrb.w r3, [r7, #43] ; 0x2b
-}
- 8004262: 4618 mov r0, r3
- 8004264: 3730 adds r7, #48 ; 0x30
- 8004266: 46bd mov sp, r7
- 8004268: bd80 pop {r7, pc}
- ...
-
-0800426c :
- * @param Tickstart tick start value
- * @retval HAL status
- */
-static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, FlagStatus State,
- uint32_t Timeout, uint32_t Tickstart)
-{
- 800426c: b580 push {r7, lr}
- 800426e: b088 sub sp, #32
- 8004270: af00 add r7, sp, #0
- 8004272: 60f8 str r0, [r7, #12]
- 8004274: 60b9 str r1, [r7, #8]
- 8004276: 603b str r3, [r7, #0]
- 8004278: 4613 mov r3, r2
- 800427a: 71fb strb r3, [r7, #7]
- __IO uint32_t count;
- uint32_t tmp_timeout;
- uint32_t tmp_tickstart;
-
- /* Adjust Timeout value in case of end of transfer */
- tmp_timeout = Timeout - (HAL_GetTick() - Tickstart);
- 800427c: f7fd fc7c bl 8001b78
- 8004280: 4602 mov r2, r0
- 8004282: 6abb ldr r3, [r7, #40] ; 0x28
- 8004284: 1a9b subs r3, r3, r2
- 8004286: 683a ldr r2, [r7, #0]
- 8004288: 4413 add r3, r2
- 800428a: 61fb str r3, [r7, #28]
- tmp_tickstart = HAL_GetTick();
- 800428c: f7fd fc74 bl 8001b78
- 8004290: 61b8 str r0, [r7, #24]
-
- /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */
- count = tmp_timeout * ((SystemCoreClock * 32U) >> 20U);
- 8004292: 4b39 ldr r3, [pc, #228] ; (8004378 )
- 8004294: 681b ldr r3, [r3, #0]
- 8004296: 015b lsls r3, r3, #5
- 8004298: 0d1b lsrs r3, r3, #20
- 800429a: 69fa ldr r2, [r7, #28]
- 800429c: fb02 f303 mul.w r3, r2, r3
- 80042a0: 617b str r3, [r7, #20]
-
- while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State)
- 80042a2: e054 b.n 800434e
- {
- if (Timeout != HAL_MAX_DELAY)
- 80042a4: 683b ldr r3, [r7, #0]
- 80042a6: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff
- 80042aa: d050 beq.n 800434e
- {
- if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U))
- 80042ac: f7fd fc64 bl 8001b78
- 80042b0: 4602 mov r2, r0
- 80042b2: 69bb ldr r3, [r7, #24]
- 80042b4: 1ad3 subs r3, r2, r3
- 80042b6: 69fa ldr r2, [r7, #28]
- 80042b8: 429a cmp r2, r3
- 80042ba: d902 bls.n 80042c2
- 80042bc: 69fb ldr r3, [r7, #28]
- 80042be: 2b00 cmp r3, #0
- 80042c0: d13d bne.n 800433e
- /* Disable the SPI and reset the CRC: the CRC value should be cleared
- on both master and slave sides in order to resynchronize the master
- and slave for their respective CRC calculation */
-
- /* Disable TXE, RXNE and ERR interrupts for the interrupt process */
- __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR));
- 80042c2: 68fb ldr r3, [r7, #12]
- 80042c4: 681b ldr r3, [r3, #0]
- 80042c6: 685a ldr r2, [r3, #4]
- 80042c8: 68fb ldr r3, [r7, #12]
- 80042ca: 681b ldr r3, [r3, #0]
- 80042cc: f022 02e0 bic.w r2, r2, #224 ; 0xe0
- 80042d0: 605a str r2, [r3, #4]
-
- if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE)
- 80042d2: 68fb ldr r3, [r7, #12]
- 80042d4: 685b ldr r3, [r3, #4]
- 80042d6: f5b3 7f82 cmp.w r3, #260 ; 0x104
- 80042da: d111 bne.n 8004300
- 80042dc: 68fb ldr r3, [r7, #12]
- 80042de: 689b ldr r3, [r3, #8]
- 80042e0: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
- 80042e4: d004 beq.n 80042f0
- || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY)))
- 80042e6: 68fb ldr r3, [r7, #12]
- 80042e8: 689b ldr r3, [r3, #8]
- 80042ea: f5b3 6f80 cmp.w r3, #1024 ; 0x400
- 80042ee: d107 bne.n 8004300
- {
- /* Disable SPI peripheral */
- __HAL_SPI_DISABLE(hspi);
- 80042f0: 68fb ldr r3, [r7, #12]
- 80042f2: 681b ldr r3, [r3, #0]
- 80042f4: 681a ldr r2, [r3, #0]
- 80042f6: 68fb ldr r3, [r7, #12]
- 80042f8: 681b ldr r3, [r3, #0]
- 80042fa: f022 0240 bic.w r2, r2, #64 ; 0x40
- 80042fe: 601a str r2, [r3, #0]
- }
-
- /* Reset CRC Calculation */
- if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)
- 8004300: 68fb ldr r3, [r7, #12]
- 8004302: 6a9b ldr r3, [r3, #40] ; 0x28
- 8004304: f5b3 5f00 cmp.w r3, #8192 ; 0x2000
- 8004308: d10f bne.n 800432a
- {
- SPI_RESET_CRC(hspi);
- 800430a: 68fb ldr r3, [r7, #12]
- 800430c: 681b ldr r3, [r3, #0]
- 800430e: 681a ldr r2, [r3, #0]
- 8004310: 68fb ldr r3, [r7, #12]
- 8004312: 681b ldr r3, [r3, #0]
- 8004314: f422 5200 bic.w r2, r2, #8192 ; 0x2000
- 8004318: 601a str r2, [r3, #0]
- 800431a: 68fb ldr r3, [r7, #12]
- 800431c: 681b ldr r3, [r3, #0]
- 800431e: 681a ldr r2, [r3, #0]
- 8004320: 68fb ldr r3, [r7, #12]
- 8004322: 681b ldr r3, [r3, #0]
- 8004324: f442 5200 orr.w r2, r2, #8192 ; 0x2000
- 8004328: 601a str r2, [r3, #0]
- }
-
- hspi->State = HAL_SPI_STATE_READY;
- 800432a: 68fb ldr r3, [r7, #12]
- 800432c: 2201 movs r2, #1
- 800432e: f883 2051 strb.w r2, [r3, #81] ; 0x51
-
- /* Process Unlocked */
- __HAL_UNLOCK(hspi);
- 8004332: 68fb ldr r3, [r7, #12]
- 8004334: 2200 movs r2, #0
- 8004336: f883 2050 strb.w r2, [r3, #80] ; 0x50
-
- return HAL_TIMEOUT;
- 800433a: 2303 movs r3, #3
- 800433c: e017 b.n 800436e
- }
- /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop procedure */
- if(count == 0U)
- 800433e: 697b ldr r3, [r7, #20]
- 8004340: 2b00 cmp r3, #0
- 8004342: d101 bne.n 8004348
- {
- tmp_timeout = 0U;
- 8004344: 2300 movs r3, #0
- 8004346: 61fb str r3, [r7, #28]
- }
- count--;
- 8004348: 697b ldr r3, [r7, #20]
- 800434a: 3b01 subs r3, #1
- 800434c: 617b str r3, [r7, #20]
- while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State)
- 800434e: 68fb ldr r3, [r7, #12]
- 8004350: 681b ldr r3, [r3, #0]
- 8004352: 689a ldr r2, [r3, #8]
- 8004354: 68bb ldr r3, [r7, #8]
- 8004356: 4013 ands r3, r2
- 8004358: 68ba ldr r2, [r7, #8]
- 800435a: 429a cmp r2, r3
- 800435c: bf0c ite eq
- 800435e: 2301 moveq r3, #1
- 8004360: 2300 movne r3, #0
- 8004362: b2db uxtb r3, r3
- 8004364: 461a mov r2, r3
- 8004366: 79fb ldrb r3, [r7, #7]
- 8004368: 429a cmp r2, r3
- 800436a: d19b bne.n 80042a4
- }
- }
-
- return HAL_OK;
- 800436c: 2300 movs r3, #0
-}
- 800436e: 4618 mov r0, r3
- 8004370: 3720 adds r7, #32
- 8004372: 46bd mov sp, r7
- 8004374: bd80 pop {r7, pc}
- 8004376: bf00 nop
- 8004378: 20000000 .word 0x20000000
-
-0800437c :
- * @param Timeout Timeout duration
- * @param Tickstart tick start value
- * @retval HAL status
- */
-static HAL_StatusTypeDef SPI_EndRxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart)
-{
- 800437c: b580 push {r7, lr}
- 800437e: b086 sub sp, #24
- 8004380: af02 add r7, sp, #8
- 8004382: 60f8 str r0, [r7, #12]
- 8004384: 60b9 str r1, [r7, #8]
- 8004386: 607a str r2, [r7, #4]
- if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE)
- 8004388: 68fb ldr r3, [r7, #12]
- 800438a: 685b ldr r3, [r3, #4]
- 800438c: f5b3 7f82 cmp.w r3, #260 ; 0x104
- 8004390: d111 bne.n 80043b6
- 8004392: 68fb ldr r3, [r7, #12]
- 8004394: 689b ldr r3, [r3, #8]
- 8004396: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
- 800439a: d004 beq.n 80043a6
- || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY)))
- 800439c: 68fb ldr r3, [r7, #12]
- 800439e: 689b ldr r3, [r3, #8]
- 80043a0: f5b3 6f80 cmp.w r3, #1024 ; 0x400
- 80043a4: d107 bne.n 80043b6
- {
- /* Disable SPI peripheral */
- __HAL_SPI_DISABLE(hspi);
- 80043a6: 68fb ldr r3, [r7, #12]
- 80043a8: 681b ldr r3, [r3, #0]
- 80043aa: 681a ldr r2, [r3, #0]
- 80043ac: 68fb ldr r3, [r7, #12]
- 80043ae: 681b ldr r3, [r3, #0]
- 80043b0: f022 0240 bic.w r2, r2, #64 ; 0x40
- 80043b4: 601a str r2, [r3, #0]
- }
-
- if ((hspi->Init.Mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY))
- 80043b6: 68fb ldr r3, [r7, #12]
- 80043b8: 685b ldr r3, [r3, #4]
- 80043ba: f5b3 7f82 cmp.w r3, #260 ; 0x104
- 80043be: d117 bne.n 80043f0
- 80043c0: 68fb ldr r3, [r7, #12]
- 80043c2: 689b ldr r3, [r3, #8]
- 80043c4: f5b3 6f80 cmp.w r3, #1024 ; 0x400
- 80043c8: d112 bne.n 80043f0
- {
- /* Wait the RXNE reset */
- if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, RESET, Timeout, Tickstart) != HAL_OK)
- 80043ca: 687b ldr r3, [r7, #4]
- 80043cc: 9300 str r3, [sp, #0]
- 80043ce: 68bb ldr r3, [r7, #8]
- 80043d0: 2200 movs r2, #0
- 80043d2: 2101 movs r1, #1
- 80043d4: 68f8 ldr r0, [r7, #12]
- 80043d6: f7ff ff49 bl 800426c
- 80043da: 4603 mov r3, r0
- 80043dc: 2b00 cmp r3, #0
- 80043de: d01a beq.n 8004416
- {
- SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG);
- 80043e0: 68fb ldr r3, [r7, #12]
- 80043e2: 6d5b ldr r3, [r3, #84] ; 0x54
- 80043e4: f043 0220 orr.w r2, r3, #32
- 80043e8: 68fb ldr r3, [r7, #12]
- 80043ea: 655a str r2, [r3, #84] ; 0x54
- return HAL_TIMEOUT;
- 80043ec: 2303 movs r3, #3
- 80043ee: e013 b.n 8004418
- }
- }
- else
- {
- /* Control the BSY flag */
- if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK)
- 80043f0: 687b ldr r3, [r7, #4]
- 80043f2: 9300 str r3, [sp, #0]
- 80043f4: 68bb ldr r3, [r7, #8]
- 80043f6: 2200 movs r2, #0
- 80043f8: 2180 movs r1, #128 ; 0x80
- 80043fa: 68f8 ldr r0, [r7, #12]
- 80043fc: f7ff ff36 bl 800426c
- 8004400: 4603 mov r3, r0
- 8004402: 2b00 cmp r3, #0
- 8004404: d007 beq.n 8004416
- {
- SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG);
- 8004406: 68fb ldr r3, [r7, #12]
- 8004408: 6d5b ldr r3, [r3, #84] ; 0x54
- 800440a: f043 0220 orr.w r2, r3, #32
- 800440e: 68fb ldr r3, [r7, #12]
- 8004410: 655a str r2, [r3, #84] ; 0x54
- return HAL_TIMEOUT;
- 8004412: 2303 movs r3, #3
- 8004414: e000 b.n 8004418
- }
- }
- return HAL_OK;
- 8004416: 2300 movs r3, #0
-}
- 8004418: 4618 mov r0, r3
- 800441a: 3710 adds r7, #16
- 800441c: 46bd mov sp, r7
- 800441e: bd80 pop {r7, pc}
-
-08004420 :
- * @param Timeout Timeout duration
- * @param Tickstart tick start value
- * @retval HAL status
- */
-static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart)
-{
- 8004420: b580 push {r7, lr}
- 8004422: b086 sub sp, #24
- 8004424: af02 add r7, sp, #8
- 8004426: 60f8 str r0, [r7, #12]
- 8004428: 60b9 str r1, [r7, #8]
- 800442a: 607a str r2, [r7, #4]
- /* Control the BSY flag */
- if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK)
- 800442c: 687b ldr r3, [r7, #4]
- 800442e: 9300 str r3, [sp, #0]
- 8004430: 68bb ldr r3, [r7, #8]
- 8004432: 2200 movs r2, #0
- 8004434: 2180 movs r1, #128 ; 0x80
- 8004436: 68f8 ldr r0, [r7, #12]
- 8004438: f7ff ff18 bl 800426c
- 800443c: 4603 mov r3, r0
- 800443e: 2b00 cmp r3, #0
- 8004440: d007 beq.n 8004452
- {
- SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG);
- 8004442: 68fb ldr r3, [r7, #12]
- 8004444: 6d5b ldr r3, [r3, #84] ; 0x54
- 8004446: f043 0220 orr.w r2, r3, #32
- 800444a: 68fb ldr r3, [r7, #12]
- 800444c: 655a str r2, [r3, #84] ; 0x54
- return HAL_TIMEOUT;
- 800444e: 2303 movs r3, #3
- 8004450: e000 b.n 8004454
- }
- return HAL_OK;
- 8004452: 2300 movs r3, #0
-}
- 8004454: 4618 mov r0, r3
- 8004456: 3710 adds r7, #16
- 8004458: 46bd mov sp, r7
- 800445a: bd80 pop {r7, pc}
-
-0800445c :
+08003a8c :
* @param ExtTiming Pointer to SRAM extended mode timing structure
* @retval HAL status
*/
HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FSMC_NORSRAM_TimingTypeDef *Timing,
FSMC_NORSRAM_TimingTypeDef *ExtTiming)
{
- 800445c: b580 push {r7, lr}
- 800445e: b084 sub sp, #16
- 8004460: af00 add r7, sp, #0
- 8004462: 60f8 str r0, [r7, #12]
- 8004464: 60b9 str r1, [r7, #8]
- 8004466: 607a str r2, [r7, #4]
+ 8003a8c: b580 push {r7, lr}
+ 8003a8e: b084 sub sp, #16
+ 8003a90: af00 add r7, sp, #0
+ 8003a92: 60f8 str r0, [r7, #12]
+ 8003a94: 60b9 str r1, [r7, #8]
+ 8003a96: 607a str r2, [r7, #4]
/* Check the SRAM handle parameter */
if ((hsram == NULL) || (hsram->Init.BurstAccessMode == FSMC_BURST_ACCESS_MODE_ENABLE))
- 8004468: 68fb ldr r3, [r7, #12]
- 800446a: 2b00 cmp r3, #0
- 800446c: d004 beq.n 8004478
- 800446e: 68fb ldr r3, [r7, #12]
- 8004470: 699b ldr r3, [r3, #24]
- 8004472: f5b3 7f80 cmp.w r3, #256 ; 0x100
- 8004476: d101 bne.n 800447c
+ 8003a98: 68fb ldr r3, [r7, #12]
+ 8003a9a: 2b00 cmp r3, #0
+ 8003a9c: d004 beq.n 8003aa8
+ 8003a9e: 68fb ldr r3, [r7, #12]
+ 8003aa0: 699b ldr r3, [r3, #24]
+ 8003aa2: f5b3 7f80 cmp.w r3, #256 ; 0x100
+ 8003aa6: d101 bne.n 8003aac
{
return HAL_ERROR;
- 8004478: 2301 movs r3, #1
- 800447a: e038 b.n 80044ee
+ 8003aa8: 2301 movs r3, #1
+ 8003aaa: e038 b.n 8003b1e
}
if (hsram->State == HAL_SRAM_STATE_RESET)
- 800447c: 68fb ldr r3, [r7, #12]
- 800447e: f893 3041 ldrb.w r3, [r3, #65] ; 0x41
- 8004482: b2db uxtb r3, r3
- 8004484: 2b00 cmp r3, #0
- 8004486: d106 bne.n 8004496
+ 8003aac: 68fb ldr r3, [r7, #12]
+ 8003aae: f893 3041 ldrb.w r3, [r3, #65] ; 0x41
+ 8003ab2: b2db uxtb r3, r3
+ 8003ab4: 2b00 cmp r3, #0
+ 8003ab6: d106 bne.n 8003ac6
{
/* Allocate lock resource and initialize it */
hsram->Lock = HAL_UNLOCKED;
- 8004488: 68fb ldr r3, [r7, #12]
- 800448a: 2200 movs r2, #0
- 800448c: f883 2040 strb.w r2, [r3, #64] ; 0x40
+ 8003ab8: 68fb ldr r3, [r7, #12]
+ 8003aba: 2200 movs r2, #0
+ 8003abc: f883 2040 strb.w r2, [r3, #64] ; 0x40
/* Init the low level hardware */
hsram->MspInitCallback(hsram);
#else
/* Initialize the low level hardware (MSP) */
HAL_SRAM_MspInit(hsram);
- 8004490: 68f8 ldr r0, [r7, #12]
- 8004492: f7fd fa0d bl 80018b0
+ 8003ac0: 68f8 ldr r0, [r7, #12]
+ 8003ac2: f7fd fef5 bl 80018b0
#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
}
/* Initialize SRAM control Interface */
(void)FSMC_NORSRAM_Init(hsram->Instance, &(hsram->Init));
- 8004496: 68fb ldr r3, [r7, #12]
- 8004498: 681a ldr r2, [r3, #0]
- 800449a: 68fb ldr r3, [r7, #12]
- 800449c: 3308 adds r3, #8
- 800449e: 4619 mov r1, r3
- 80044a0: 4610 mov r0, r2
- 80044a2: f000 fac9 bl 8004a38
+ 8003ac6: 68fb ldr r3, [r7, #12]
+ 8003ac8: 681a ldr r2, [r3, #0]
+ 8003aca: 68fb ldr r3, [r7, #12]
+ 8003acc: 3308 adds r3, #8
+ 8003ace: 4619 mov r1, r3
+ 8003ad0: 4610 mov r0, r2
+ 8003ad2: f000 fac9 bl 8004068
/* Initialize SRAM timing Interface */
(void)FSMC_NORSRAM_Timing_Init(hsram->Instance, Timing, hsram->Init.NSBank);
- 80044a6: 68fb ldr r3, [r7, #12]
- 80044a8: 6818 ldr r0, [r3, #0]
- 80044aa: 68fb ldr r3, [r7, #12]
- 80044ac: 689b ldr r3, [r3, #8]
- 80044ae: 461a mov r2, r3
- 80044b0: 68b9 ldr r1, [r7, #8]
- 80044b2: f000 fb2b bl 8004b0c
+ 8003ad6: 68fb ldr r3, [r7, #12]
+ 8003ad8: 6818 ldr r0, [r3, #0]
+ 8003ada: 68fb ldr r3, [r7, #12]
+ 8003adc: 689b ldr r3, [r3, #8]
+ 8003ade: 461a mov r2, r3
+ 8003ae0: 68b9 ldr r1, [r7, #8]
+ 8003ae2: f000 fb2b bl 800413c
/* Initialize SRAM extended mode timing Interface */
(void)FSMC_NORSRAM_Extended_Timing_Init(hsram->Extended, ExtTiming, hsram->Init.NSBank,
- 80044b6: 68fb ldr r3, [r7, #12]
- 80044b8: 6858 ldr r0, [r3, #4]
- 80044ba: 68fb ldr r3, [r7, #12]
- 80044bc: 689a ldr r2, [r3, #8]
- 80044be: 68fb ldr r3, [r7, #12]
- 80044c0: 6b1b ldr r3, [r3, #48] ; 0x30
- 80044c2: 6879 ldr r1, [r7, #4]
- 80044c4: f000 fb56 bl 8004b74
+ 8003ae6: 68fb ldr r3, [r7, #12]
+ 8003ae8: 6858 ldr r0, [r3, #4]
+ 8003aea: 68fb ldr r3, [r7, #12]
+ 8003aec: 689a ldr r2, [r3, #8]
+ 8003aee: 68fb ldr r3, [r7, #12]
+ 8003af0: 6b1b ldr r3, [r3, #48] ; 0x30
+ 8003af2: 6879 ldr r1, [r7, #4]
+ 8003af4: f000 fb56 bl 80041a4
hsram->Init.ExtendedMode);
/* Enable the NORSRAM device */
__FSMC_NORSRAM_ENABLE(hsram->Instance, hsram->Init.NSBank);
- 80044c8: 68fb ldr r3, [r7, #12]
- 80044ca: 681b ldr r3, [r3, #0]
- 80044cc: 68fa ldr r2, [r7, #12]
- 80044ce: 6892 ldr r2, [r2, #8]
- 80044d0: f853 1022 ldr.w r1, [r3, r2, lsl #2]
- 80044d4: 68fb ldr r3, [r7, #12]
- 80044d6: 681b ldr r3, [r3, #0]
- 80044d8: 68fa ldr r2, [r7, #12]
- 80044da: 6892 ldr r2, [r2, #8]
- 80044dc: f041 0101 orr.w r1, r1, #1
- 80044e0: f843 1022 str.w r1, [r3, r2, lsl #2]
+ 8003af8: 68fb ldr r3, [r7, #12]
+ 8003afa: 681b ldr r3, [r3, #0]
+ 8003afc: 68fa ldr r2, [r7, #12]
+ 8003afe: 6892 ldr r2, [r2, #8]
+ 8003b00: f853 1022 ldr.w r1, [r3, r2, lsl #2]
+ 8003b04: 68fb ldr r3, [r7, #12]
+ 8003b06: 681b ldr r3, [r3, #0]
+ 8003b08: 68fa ldr r2, [r7, #12]
+ 8003b0a: 6892 ldr r2, [r2, #8]
+ 8003b0c: f041 0101 orr.w r1, r1, #1
+ 8003b10: f843 1022 str.w r1, [r3, r2, lsl #2]
/* Initialize the SRAM controller state */
hsram->State = HAL_SRAM_STATE_READY;
- 80044e4: 68fb ldr r3, [r7, #12]
- 80044e6: 2201 movs r2, #1
- 80044e8: f883 2041 strb.w r2, [r3, #65] ; 0x41
+ 8003b14: 68fb ldr r3, [r7, #12]
+ 8003b16: 2201 movs r2, #1
+ 8003b18: f883 2041 strb.w r2, [r3, #65] ; 0x41
return HAL_OK;
- 80044ec: 2300 movs r3, #0
+ 8003b1c: 2300 movs r3, #0
}
- 80044ee: 4618 mov r0, r3
- 80044f0: 3710 adds r7, #16
- 80044f2: 46bd mov sp, r7
- 80044f4: bd80 pop {r7, pc}
+ 8003b1e: 4618 mov r0, r3
+ 8003b20: 3710 adds r7, #16
+ 8003b22: 46bd mov sp, r7
+ 8003b24: bd80 pop {r7, pc}
-080044f6 :
+08003b26 :
* Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init()
* @param htim TIM Base handle
* @retval HAL status
*/
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim)
{
- 80044f6: b580 push {r7, lr}
- 80044f8: b082 sub sp, #8
- 80044fa: af00 add r7, sp, #0
- 80044fc: 6078 str r0, [r7, #4]
+ 8003b26: b580 push {r7, lr}
+ 8003b28: b082 sub sp, #8
+ 8003b2a: af00 add r7, sp, #0
+ 8003b2c: 6078 str r0, [r7, #4]
/* Check the TIM handle allocation */
if (htim == NULL)
- 80044fe: 687b ldr r3, [r7, #4]
- 8004500: 2b00 cmp r3, #0
- 8004502: d101 bne.n 8004508
+ 8003b2e: 687b ldr r3, [r7, #4]
+ 8003b30: 2b00 cmp r3, #0
+ 8003b32: d101 bne.n 8003b38
{
return HAL_ERROR;
- 8004504: 2301 movs r3, #1
- 8004506: e041 b.n 800458c
+ 8003b34: 2301 movs r3, #1
+ 8003b36: e041 b.n 8003bbc
assert_param(IS_TIM_INSTANCE(htim->Instance));
assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
if (htim->State == HAL_TIM_STATE_RESET)
- 8004508: 687b ldr r3, [r7, #4]
- 800450a: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
- 800450e: b2db uxtb r3, r3
- 8004510: 2b00 cmp r3, #0
- 8004512: d106 bne.n 8004522
+ 8003b38: 687b ldr r3, [r7, #4]
+ 8003b3a: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
+ 8003b3e: b2db uxtb r3, r3
+ 8003b40: 2b00 cmp r3, #0
+ 8003b42: d106 bne.n 8003b52
{
/* Allocate lock resource and initialize it */
htim->Lock = HAL_UNLOCKED;
- 8004514: 687b ldr r3, [r7, #4]
- 8004516: 2200 movs r2, #0
- 8004518: f883 203c strb.w r2, [r3, #60] ; 0x3c
+ 8003b44: 687b ldr r3, [r7, #4]
+ 8003b46: 2200 movs r2, #0
+ 8003b48: f883 203c strb.w r2, [r3, #60] ; 0x3c
}
/* Init the low level hardware : GPIO, CLOCK, NVIC */
htim->Base_MspInitCallback(htim);
#else
/* Init the low level hardware : GPIO, CLOCK, NVIC */
HAL_TIM_Base_MspInit(htim);
- 800451c: 6878 ldr r0, [r7, #4]
- 800451e: f7fd f94d bl 80017bc
+ 8003b4c: 6878 ldr r0, [r7, #4]
+ 8003b4e: f7fd fe35 bl 80017bc
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
/* Set the TIM state */
htim->State = HAL_TIM_STATE_BUSY;
- 8004522: 687b ldr r3, [r7, #4]
- 8004524: 2202 movs r2, #2
- 8004526: f883 203d strb.w r2, [r3, #61] ; 0x3d
+ 8003b52: 687b ldr r3, [r7, #4]
+ 8003b54: 2202 movs r2, #2
+ 8003b56: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Set the Time Base configuration */
TIM_Base_SetConfig(htim->Instance, &htim->Init);
- 800452a: 687b ldr r3, [r7, #4]
- 800452c: 681a ldr r2, [r3, #0]
- 800452e: 687b ldr r3, [r7, #4]
- 8004530: 3304 adds r3, #4
- 8004532: 4619 mov r1, r3
- 8004534: 4610 mov r0, r2
- 8004536: f000 f987 bl 8004848
+ 8003b5a: 687b ldr r3, [r7, #4]
+ 8003b5c: 681a ldr r2, [r3, #0]
+ 8003b5e: 687b ldr r3, [r7, #4]
+ 8003b60: 3304 adds r3, #4
+ 8003b62: 4619 mov r1, r3
+ 8003b64: 4610 mov r0, r2
+ 8003b66: f000 f987 bl 8003e78
/* Initialize the DMA burst operation state */
htim->DMABurstState = HAL_DMA_BURST_STATE_READY;
- 800453a: 687b ldr r3, [r7, #4]
- 800453c: 2201 movs r2, #1
- 800453e: f883 2046 strb.w r2, [r3, #70] ; 0x46
+ 8003b6a: 687b ldr r3, [r7, #4]
+ 8003b6c: 2201 movs r2, #1
+ 8003b6e: f883 2046 strb.w r2, [r3, #70] ; 0x46
/* Initialize the TIM channels state */
TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY);
- 8004542: 687b ldr r3, [r7, #4]
- 8004544: 2201 movs r2, #1
- 8004546: f883 203e strb.w r2, [r3, #62] ; 0x3e
- 800454a: 687b ldr r3, [r7, #4]
- 800454c: 2201 movs r2, #1
- 800454e: f883 203f strb.w r2, [r3, #63] ; 0x3f
- 8004552: 687b ldr r3, [r7, #4]
- 8004554: 2201 movs r2, #1
- 8004556: f883 2040 strb.w r2, [r3, #64] ; 0x40
- 800455a: 687b ldr r3, [r7, #4]
- 800455c: 2201 movs r2, #1
- 800455e: f883 2041 strb.w r2, [r3, #65] ; 0x41
+ 8003b72: 687b ldr r3, [r7, #4]
+ 8003b74: 2201 movs r2, #1
+ 8003b76: f883 203e strb.w r2, [r3, #62] ; 0x3e
+ 8003b7a: 687b ldr r3, [r7, #4]
+ 8003b7c: 2201 movs r2, #1
+ 8003b7e: f883 203f strb.w r2, [r3, #63] ; 0x3f
+ 8003b82: 687b ldr r3, [r7, #4]
+ 8003b84: 2201 movs r2, #1
+ 8003b86: f883 2040 strb.w r2, [r3, #64] ; 0x40
+ 8003b8a: 687b ldr r3, [r7, #4]
+ 8003b8c: 2201 movs r2, #1
+ 8003b8e: f883 2041 strb.w r2, [r3, #65] ; 0x41
TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY);
- 8004562: 687b ldr r3, [r7, #4]
- 8004564: 2201 movs r2, #1
- 8004566: f883 2042 strb.w r2, [r3, #66] ; 0x42
- 800456a: 687b ldr r3, [r7, #4]
- 800456c: 2201 movs r2, #1
- 800456e: f883 2043 strb.w r2, [r3, #67] ; 0x43
- 8004572: 687b ldr r3, [r7, #4]
- 8004574: 2201 movs r2, #1
- 8004576: f883 2044 strb.w r2, [r3, #68] ; 0x44
- 800457a: 687b ldr r3, [r7, #4]
- 800457c: 2201 movs r2, #1
- 800457e: f883 2045 strb.w r2, [r3, #69] ; 0x45
+ 8003b92: 687b ldr r3, [r7, #4]
+ 8003b94: 2201 movs r2, #1
+ 8003b96: f883 2042 strb.w r2, [r3, #66] ; 0x42
+ 8003b9a: 687b ldr r3, [r7, #4]
+ 8003b9c: 2201 movs r2, #1
+ 8003b9e: f883 2043 strb.w r2, [r3, #67] ; 0x43
+ 8003ba2: 687b ldr r3, [r7, #4]
+ 8003ba4: 2201 movs r2, #1
+ 8003ba6: f883 2044 strb.w r2, [r3, #68] ; 0x44
+ 8003baa: 687b ldr r3, [r7, #4]
+ 8003bac: 2201 movs r2, #1
+ 8003bae: f883 2045 strb.w r2, [r3, #69] ; 0x45
/* Initialize the TIM state*/
htim->State = HAL_TIM_STATE_READY;
- 8004582: 687b ldr r3, [r7, #4]
- 8004584: 2201 movs r2, #1
- 8004586: f883 203d strb.w r2, [r3, #61] ; 0x3d
+ 8003bb2: 687b ldr r3, [r7, #4]
+ 8003bb4: 2201 movs r2, #1
+ 8003bb6: f883 203d strb.w r2, [r3, #61] ; 0x3d
return HAL_OK;
- 800458a: 2300 movs r3, #0
+ 8003bba: 2300 movs r3, #0
}
- 800458c: 4618 mov r0, r3
- 800458e: 3708 adds r7, #8
- 8004590: 46bd mov sp, r7
- 8004592: bd80 pop {r7, pc}
+ 8003bbc: 4618 mov r0, r3
+ 8003bbe: 3708 adds r7, #8
+ 8003bc0: 46bd mov sp, r7
+ 8003bc2: bd80 pop {r7, pc}
-08004594 :
+08003bc4 :
* @brief Stops the TIM Base generation in interrupt mode.
* @param htim TIM Base handle
* @retval HAL status
*/
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)
{
- 8004594: b480 push {r7}
- 8004596: b083 sub sp, #12
- 8004598: af00 add r7, sp, #0
- 800459a: 6078 str r0, [r7, #4]
+ 8003bc4: b480 push {r7}
+ 8003bc6: b083 sub sp, #12
+ 8003bc8: af00 add r7, sp, #0
+ 8003bca: 6078 str r0, [r7, #4]
/* Check the parameters */
assert_param(IS_TIM_INSTANCE(htim->Instance));
/* Disable the TIM Update interrupt */
__HAL_TIM_DISABLE_IT(htim, TIM_IT_UPDATE);
- 800459c: 687b ldr r3, [r7, #4]
- 800459e: 681b ldr r3, [r3, #0]
- 80045a0: 68da ldr r2, [r3, #12]
- 80045a2: 687b ldr r3, [r7, #4]
- 80045a4: 681b ldr r3, [r3, #0]
- 80045a6: f022 0201 bic.w r2, r2, #1
- 80045aa: 60da str r2, [r3, #12]
+ 8003bcc: 687b ldr r3, [r7, #4]
+ 8003bce: 681b ldr r3, [r3, #0]
+ 8003bd0: 68da ldr r2, [r3, #12]
+ 8003bd2: 687b ldr r3, [r7, #4]
+ 8003bd4: 681b ldr r3, [r3, #0]
+ 8003bd6: f022 0201 bic.w r2, r2, #1
+ 8003bda: 60da str r2, [r3, #12]
/* Disable the Peripheral */
__HAL_TIM_DISABLE(htim);
- 80045ac: 687b ldr r3, [r7, #4]
- 80045ae: 681b ldr r3, [r3, #0]
- 80045b0: 6a1a ldr r2, [r3, #32]
- 80045b2: f241 1311 movw r3, #4369 ; 0x1111
- 80045b6: 4013 ands r3, r2
- 80045b8: 2b00 cmp r3, #0
- 80045ba: d10f bne.n 80045dc
- 80045bc: 687b ldr r3, [r7, #4]
- 80045be: 681b ldr r3, [r3, #0]
- 80045c0: 6a1a ldr r2, [r3, #32]
- 80045c2: f240 4344 movw r3, #1092 ; 0x444
- 80045c6: 4013 ands r3, r2
- 80045c8: 2b00 cmp r3, #0
- 80045ca: d107 bne.n 80045dc
- 80045cc: 687b ldr r3, [r7, #4]
- 80045ce: 681b ldr r3, [r3, #0]
- 80045d0: 681a ldr r2, [r3, #0]
- 80045d2: 687b ldr r3, [r7, #4]
- 80045d4: 681b ldr r3, [r3, #0]
- 80045d6: f022 0201 bic.w r2, r2, #1
- 80045da: 601a str r2, [r3, #0]
+ 8003bdc: 687b ldr r3, [r7, #4]
+ 8003bde: 681b ldr r3, [r3, #0]
+ 8003be0: 6a1a ldr r2, [r3, #32]
+ 8003be2: f241 1311 movw r3, #4369 ; 0x1111
+ 8003be6: 4013 ands r3, r2
+ 8003be8: 2b00 cmp r3, #0
+ 8003bea: d10f bne.n 8003c0c
+ 8003bec: 687b ldr r3, [r7, #4]
+ 8003bee: 681b ldr r3, [r3, #0]
+ 8003bf0: 6a1a ldr r2, [r3, #32]
+ 8003bf2: f240 4344 movw r3, #1092 ; 0x444
+ 8003bf6: 4013 ands r3, r2
+ 8003bf8: 2b00 cmp r3, #0
+ 8003bfa: d107 bne.n 8003c0c
+ 8003bfc: 687b ldr r3, [r7, #4]
+ 8003bfe: 681b ldr r3, [r3, #0]
+ 8003c00: 681a ldr r2, [r3, #0]
+ 8003c02: 687b ldr r3, [r7, #4]
+ 8003c04: 681b ldr r3, [r3, #0]
+ 8003c06: f022 0201 bic.w r2, r2, #1
+ 8003c0a: 601a str r2, [r3, #0]
/* Set the TIM state */
htim->State = HAL_TIM_STATE_READY;
- 80045dc: 687b ldr r3, [r7, #4]
- 80045de: 2201 movs r2, #1
- 80045e0: f883 203d strb.w r2, [r3, #61] ; 0x3d
+ 8003c0c: 687b ldr r3, [r7, #4]
+ 8003c0e: 2201 movs r2, #1
+ 8003c10: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Return function status */
return HAL_OK;
- 80045e4: 2300 movs r3, #0
+ 8003c14: 2300 movs r3, #0
}
- 80045e6: 4618 mov r0, r3
- 80045e8: 370c adds r7, #12
- 80045ea: 46bd mov sp, r7
- 80045ec: bc80 pop {r7}
- 80045ee: 4770 bx lr
+ 8003c16: 4618 mov r0, r3
+ 8003c18: 370c adds r7, #12
+ 8003c1a: 46bd mov sp, r7
+ 8003c1c: bc80 pop {r7}
+ 8003c1e: 4770 bx lr
-080045f0 :
+08003c20 :
* @brief This function handles TIM interrupts requests.
* @param htim TIM handle
* @retval None
*/
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
{
- 80045f0: b580 push {r7, lr}
- 80045f2: b082 sub sp, #8
- 80045f4: af00 add r7, sp, #0
- 80045f6: 6078 str r0, [r7, #4]
+ 8003c20: b580 push {r7, lr}
+ 8003c22: b082 sub sp, #8
+ 8003c24: af00 add r7, sp, #0
+ 8003c26: 6078 str r0, [r7, #4]
/* Capture compare 1 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
- 80045f8: 687b ldr r3, [r7, #4]
- 80045fa: 681b ldr r3, [r3, #0]
- 80045fc: 691b ldr r3, [r3, #16]
- 80045fe: f003 0302 and.w r3, r3, #2
- 8004602: 2b02 cmp r3, #2
- 8004604: d122 bne.n 800464c
+ 8003c28: 687b ldr r3, [r7, #4]
+ 8003c2a: 681b ldr r3, [r3, #0]
+ 8003c2c: 691b ldr r3, [r3, #16]
+ 8003c2e: f003 0302 and.w r3, r3, #2
+ 8003c32: 2b02 cmp r3, #2
+ 8003c34: d122 bne.n 8003c7c
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET)
- 8004606: 687b ldr r3, [r7, #4]
- 8004608: 681b ldr r3, [r3, #0]
- 800460a: 68db ldr r3, [r3, #12]
- 800460c: f003 0302 and.w r3, r3, #2
- 8004610: 2b02 cmp r3, #2
- 8004612: d11b bne.n 800464c
+ 8003c36: 687b ldr r3, [r7, #4]
+ 8003c38: 681b ldr r3, [r3, #0]
+ 8003c3a: 68db ldr r3, [r3, #12]
+ 8003c3c: f003 0302 and.w r3, r3, #2
+ 8003c40: 2b02 cmp r3, #2
+ 8003c42: d11b bne.n 8003c7c
{
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
- 8004614: 687b ldr r3, [r7, #4]
- 8004616: 681b ldr r3, [r3, #0]
- 8004618: f06f 0202 mvn.w r2, #2
- 800461c: 611a str r2, [r3, #16]
+ 8003c44: 687b ldr r3, [r7, #4]
+ 8003c46: 681b ldr r3, [r3, #0]
+ 8003c48: f06f 0202 mvn.w r2, #2
+ 8003c4c: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
- 800461e: 687b ldr r3, [r7, #4]
- 8004620: 2201 movs r2, #1
- 8004622: 771a strb r2, [r3, #28]
+ 8003c4e: 687b ldr r3, [r7, #4]
+ 8003c50: 2201 movs r2, #1
+ 8003c52: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
- 8004624: 687b ldr r3, [r7, #4]
- 8004626: 681b ldr r3, [r3, #0]
- 8004628: 699b ldr r3, [r3, #24]
- 800462a: f003 0303 and.w r3, r3, #3
- 800462e: 2b00 cmp r3, #0
- 8004630: d003 beq.n 800463a
+ 8003c54: 687b ldr r3, [r7, #4]
+ 8003c56: 681b ldr r3, [r3, #0]
+ 8003c58: 699b ldr r3, [r3, #24]
+ 8003c5a: f003 0303 and.w r3, r3, #3
+ 8003c5e: 2b00 cmp r3, #0
+ 8003c60: d003 beq.n 8003c6a
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
- 8004632: 6878 ldr r0, [r7, #4]
- 8004634: f000 f8ed bl 8004812
- 8004638: e005 b.n 8004646
+ 8003c62: 6878 ldr r0, [r7, #4]
+ 8003c64: f000 f8ed bl 8003e42
+ 8003c68: e005 b.n 8003c76
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->OC_DelayElapsedCallback(htim);
htim->PWM_PulseFinishedCallback(htim);
#else
HAL_TIM_OC_DelayElapsedCallback(htim);
- 800463a: 6878 ldr r0, [r7, #4]
- 800463c: f000 f8e0 bl 8004800
+ 8003c6a: 6878 ldr r0, [r7, #4]
+ 8003c6c: f000 f8e0 bl 8003e30
HAL_TIM_PWM_PulseFinishedCallback(htim);
- 8004640: 6878 ldr r0, [r7, #4]
- 8004642: f000 f8ef bl 8004824
+ 8003c70: 6878 ldr r0, [r7, #4]
+ 8003c72: f000 f8ef bl 8003e54
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
- 8004646: 687b ldr r3, [r7, #4]
- 8004648: 2200 movs r2, #0
- 800464a: 771a strb r2, [r3, #28]
+ 8003c76: 687b ldr r3, [r7, #4]
+ 8003c78: 2200 movs r2, #0
+ 8003c7a: 771a strb r2, [r3, #28]
}
}
}
/* Capture compare 2 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET)
- 800464c: 687b ldr r3, [r7, #4]
- 800464e: 681b ldr r3, [r3, #0]
- 8004650: 691b ldr r3, [r3, #16]
- 8004652: f003 0304 and.w r3, r3, #4
- 8004656: 2b04 cmp r3, #4
- 8004658: d122 bne.n 80046a0