diff --git a/.cproject b/.cproject index 5ceca99..5f7e8ad 100644 --- a/.cproject +++ b/.cproject @@ -44,10 +44,10 @@ - - + + @@ -119,10 +119,10 @@ diff --git a/.mxproject b/.mxproject index d15992f..812ced6 100644 --- a/.mxproject +++ b/.mxproject @@ -1,25 +1,25 @@ [PreviousLibFiles] -LibFiles=Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_fsmc.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.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/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.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_exti.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_sram.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.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;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_fsmc.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.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/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.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_exti.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_sram.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.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;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_armv8mbl.h; +LibFiles=Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_fsmc.h;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.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\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.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_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_sram.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_i2c.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;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_fsmc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_sram.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_i2c.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_fsmc.h;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.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\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.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_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_sram.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_i2c.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;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xe.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; [PreviousUsedCubeIDEFiles] -SourceFiles=Core/Src/main.c;Core/Src/stm32f1xx_it.c;Core/Src/stm32f1xx_hal_msp.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Core/Src/system_stm32f1xx.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Core/Src/system_stm32f1xx.c;;; -HeaderPath=Drivers/STM32F1xx_HAL_Driver/Inc;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;Drivers/CMSIS/Device/ST/STM32F1xx/Include;Drivers/CMSIS/Include;Core/Inc; +SourceFiles=Core\Src\main.c;Core\Src\stm32f1xx_it.c;Core\Src\stm32f1xx_hal_msp.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_fsmc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_sram.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_i2c.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;Core\Src\system_stm32f1xx.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_fsmc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_sram.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_i2c.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;Core\Src\system_stm32f1xx.c;;; +HeaderPath=Drivers\STM32F1xx_HAL_Driver\Inc;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy;Drivers\CMSIS\Device\ST\STM32F1xx\Include;Drivers\CMSIS\Include;Core\Inc; CDefines=USE_HAL_DRIVER;STM32F103xE;USE_HAL_DRIVER;USE_HAL_DRIVER; [PreviousGenFiles] AdvancedFolderStructure=true HeaderFileListSize=3 -HeaderFiles#0=/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/Core/Inc/stm32f1xx_it.h -HeaderFiles#1=/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/Core/Inc/stm32f1xx_hal_conf.h -HeaderFiles#2=/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/Core/Inc/main.h +HeaderFiles#0=C:/Users/wuwen/Desktop/M3s_stm32/Core/Inc/stm32f1xx_it.h +HeaderFiles#1=C:/Users/wuwen/Desktop/M3s_stm32/Core/Inc/stm32f1xx_hal_conf.h +HeaderFiles#2=C:/Users/wuwen/Desktop/M3s_stm32/Core/Inc/main.h HeaderFolderListSize=1 -HeaderPath#0=/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/Core/Inc +HeaderPath#0=C:/Users/wuwen/Desktop/M3s_stm32/Core/Inc HeaderFiles=; SourceFileListSize=3 -SourceFiles#0=/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/Core/Src/stm32f1xx_it.c -SourceFiles#1=/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/Core/Src/stm32f1xx_hal_msp.c -SourceFiles#2=/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/Core/Src/main.c +SourceFiles#0=C:/Users/wuwen/Desktop/M3s_stm32/Core/Src/stm32f1xx_it.c +SourceFiles#1=C:/Users/wuwen/Desktop/M3s_stm32/Core/Src/stm32f1xx_hal_msp.c +SourceFiles#2=C:/Users/wuwen/Desktop/M3s_stm32/Core/Src/main.c SourceFolderListSize=1 -SourcePath#0=/Users/wuwenfeng/STM32CubeIDE/workspace_1.7.0/m3s/Core/Src +SourcePath#0=C:/Users/wuwen/Desktop/M3s_stm32/Core/Src SourceFiles=; diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs index 1d79db8..6f394f1 100644 --- a/.settings/stm32cubeide.project.prefs +++ b/.settings/stm32cubeide.project.prefs @@ -1,4 +1,4 @@ 66BE74F758C12D739921AEA421D593D3=3 8DF89ED150041C4CBC7CB9A9CAA90856=F46B32B5BAB702A632C55EDACF07DC3A -DC22A860405A8BF2F2C095E5B6529F12=F10B3BB9AE74C7F02862DDE67690A377 +DC22A860405A8BF2F2C095E5B6529F12=F46B32B5BAB702A632C55EDACF07DC3A eclipse.preferences.version=1 diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 4463375..30d45d6 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -50,6 +50,8 @@ extern "C" { /* USER CODE END EM */ +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + /* Exported functions prototypes ---------------------------------------------*/ void Error_Handler(void); diff --git a/Core/Inc/stm32f1xx_it.h b/Core/Inc/stm32f1xx_it.h index 8a2b013..8ad985c 100644 --- a/Core/Inc/stm32f1xx_it.h +++ b/Core/Inc/stm32f1xx_it.h @@ -56,6 +56,7 @@ void SVC_Handler(void); void DebugMon_Handler(void); void PendSV_Handler(void); void SysTick_Handler(void); +void TIM4_IRQHandler(void); void TIM6_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Core/Src/main.c b/Core/Src/main.c index 3f9dcca..63457c6 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -44,6 +44,7 @@ I2C_HandleTypeDef hi2c2; SPI_HandleTypeDef hspi1; +TIM_HandleTypeDef htim4; TIM_HandleTypeDef htim6; SRAM_HandleTypeDef hsram1; @@ -59,6 +60,7 @@ static void MX_FSMC_Init(void); static void MX_I2C2_Init(void); static void MX_TIM6_Init(void); static void MX_SPI1_Init(void); +static void MX_TIM4_Init(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ @@ -106,6 +108,7 @@ int main(void) MX_I2C2_Init(); MX_TIM6_Init(); MX_SPI1_Init(); + MX_TIM4_Init(); /* USER CODE BEGIN 2 */ main_app(); /* USER CODE END 2 */ @@ -231,6 +234,65 @@ static void MX_SPI1_Init(void) } +/** + * @brief TIM4 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM4_Init(void) +{ + + /* USER CODE BEGIN TIM4_Init 0 */ + + /* USER CODE END TIM4_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; + TIM_OC_InitTypeDef sConfigOC = {0}; + + /* USER CODE BEGIN TIM4_Init 1 */ + + /* USER CODE END TIM4_Init 1 */ + htim4.Instance = TIM4; + htim4.Init.Prescaler = 0; + htim4.Init.CounterMode = TIM_COUNTERMODE_UP; + htim4.Init.Period = 65535; + htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim4) != HAL_OK) + { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK) + { + Error_Handler(); + } + if (HAL_TIM_PWM_Init(&htim4) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + sConfigOC.OCMode = TIM_OCMODE_PWM1; + sConfigOC.Pulse = 0; + sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM4_Init 2 */ + + /* USER CODE END TIM4_Init 2 */ + HAL_TIM_MspPostInit(&htim4); + +} + /** * @brief TIM6 Initialization Function * @param None diff --git a/Core/Src/stm32f1xx_hal_msp.c b/Core/Src/stm32f1xx_hal_msp.c index f0560bc..2453318 100644 --- a/Core/Src/stm32f1xx_hal_msp.c +++ b/Core/Src/stm32f1xx_hal_msp.c @@ -58,7 +58,9 @@ /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ -/** + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + /** * Initializes the Global MSP. */ void HAL_MspInit(void) @@ -224,7 +226,21 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi) */ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) { - if(htim_base->Instance==TIM6) + if(htim_base->Instance==TIM4) + { + /* USER CODE BEGIN TIM4_MspInit 0 */ + + /* USER CODE END TIM4_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM4_CLK_ENABLE(); + /* TIM4 interrupt Init */ + HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(TIM4_IRQn); + /* USER CODE BEGIN TIM4_MspInit 1 */ + + /* USER CODE END TIM4_MspInit 1 */ + } + else if(htim_base->Instance==TIM6) { /* USER CODE BEGIN TIM6_MspInit 0 */ @@ -241,6 +257,30 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) } +void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(htim->Instance==TIM4) + { + /* USER CODE BEGIN TIM4_MspPostInit 0 */ + + /* USER CODE END TIM4_MspPostInit 0 */ + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**TIM4 GPIO Configuration + PB8 ------> TIM4_CH3 + */ + GPIO_InitStruct.Pin = GPIO_PIN_8; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* USER CODE BEGIN TIM4_MspPostInit 1 */ + + /* USER CODE END TIM4_MspPostInit 1 */ + } + +} /** * @brief TIM_Base MSP De-Initialization * This function freeze the hardware resources used in this example @@ -249,7 +289,21 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) */ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) { - if(htim_base->Instance==TIM6) + if(htim_base->Instance==TIM4) + { + /* USER CODE BEGIN TIM4_MspDeInit 0 */ + + /* USER CODE END TIM4_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM4_CLK_DISABLE(); + + /* TIM4 interrupt DeInit */ + HAL_NVIC_DisableIRQ(TIM4_IRQn); + /* USER CODE BEGIN TIM4_MspDeInit 1 */ + + /* USER CODE END TIM4_MspDeInit 1 */ + } + else if(htim_base->Instance==TIM6) { /* USER CODE BEGIN TIM6_MspDeInit 0 */ diff --git a/Core/Src/stm32f1xx_it.c b/Core/Src/stm32f1xx_it.c index 20ee0c9..79aed6d 100644 --- a/Core/Src/stm32f1xx_it.c +++ b/Core/Src/stm32f1xx_it.c @@ -56,6 +56,7 @@ /* USER CODE END 0 */ /* External variables --------------------------------------------------------*/ +extern TIM_HandleTypeDef htim4; extern TIM_HandleTypeDef htim6; /* USER CODE BEGIN EV */ @@ -199,6 +200,20 @@ void SysTick_Handler(void) /* please refer to the startup file (startup_stm32f1xx.s). */ /******************************************************************************/ +/** + * @brief This function handles TIM4 global interrupt. + */ +void TIM4_IRQHandler(void) +{ + /* USER CODE BEGIN TIM4_IRQn 0 */ + + /* USER CODE END TIM4_IRQn 0 */ + HAL_TIM_IRQHandler(&htim4); + /* USER CODE BEGIN TIM4_IRQn 1 */ + + /* USER CODE END TIM4_IRQn 1 */ +} + /** * @brief This function handles TIM6 global interrupt. */ diff --git a/Debug/Core/Src/main.su b/Debug/Core/Src/main.su index 99190a4..aa72ce4 100644 --- a/Debug/Core/Src/main.su +++ b/Debug/Core/Src/main.su @@ -1,10 +1,11 @@ core_cm3.h:1876:26:ITM_SendChar 16 static,ignoring_inline_asm -main.c:68:5:_write 32 static -main.c:81:5:main 8 static -main.c:128:6:SystemClock_Config 72 static -main.c:167:13:MX_I2C2_Init 8 static -main.c:201:13:MX_SPI1_Init 8 static -main.c:239:13:MX_TIM6_Init 16 static -main.c:277:13:MX_GPIO_Init 48 static -main.c:369:13:MX_FSMC_Init 40 static -main.c:433:6:Error_Handler 4 static,ignoring_inline_asm +main.c:70:5:_write 32 static +main.c:83:5:main 8 static +main.c:131:6:SystemClock_Config 72 static +main.c:170:13:MX_I2C2_Init 8 static +main.c:204:13:MX_SPI1_Init 8 static +main.c:242:13:MX_TIM4_Init 64 static +main.c:301:13:MX_TIM6_Init 16 static +main.c:339:13:MX_GPIO_Init 48 static +main.c:431:13:MX_FSMC_Init 40 static +main.c:495:6:Error_Handler 4 static,ignoring_inline_asm diff --git a/Debug/Core/Src/stm32f1xx_hal_msp.su b/Debug/Core/Src/stm32f1xx_hal_msp.su index 0eb5ac6..c7ee74f 100644 --- a/Debug/Core/Src/stm32f1xx_hal_msp.su +++ b/Debug/Core/Src/stm32f1xx_hal_msp.su @@ -1,11 +1,12 @@ -stm32f1xx_hal_msp.c:64:6:HAL_MspInit 24 static -stm32f1xx_hal_msp.c:90:6:HAL_I2C_MspInit 40 static -stm32f1xx_hal_msp.c:124:6:HAL_I2C_MspDeInit 16 static -stm32f1xx_hal_msp.c:155:6:HAL_SPI_MspInit 40 static -stm32f1xx_hal_msp.c:195:6:HAL_SPI_MspDeInit 16 static -stm32f1xx_hal_msp.c:225:6:HAL_TIM_Base_MspInit 24 static -stm32f1xx_hal_msp.c:250:6:HAL_TIM_Base_MspDeInit 16 static -stm32f1xx_hal_msp.c:271:13:HAL_FSMC_MspInit 32 static -stm32f1xx_hal_msp.c:330:6:HAL_SRAM_MspInit 16 static -stm32f1xx_hal_msp.c:342:13:HAL_FSMC_MspDeInit 8 static -stm32f1xx_hal_msp.c:390:6:HAL_SRAM_MspDeInit 16 static +stm32f1xx_hal_msp.c:66:6:HAL_MspInit 24 static +stm32f1xx_hal_msp.c:92:6:HAL_I2C_MspInit 40 static +stm32f1xx_hal_msp.c:126:6:HAL_I2C_MspDeInit 16 static +stm32f1xx_hal_msp.c:157:6:HAL_SPI_MspInit 40 static +stm32f1xx_hal_msp.c:197:6:HAL_SPI_MspDeInit 16 static +stm32f1xx_hal_msp.c:227:6:HAL_TIM_Base_MspInit 24 static +stm32f1xx_hal_msp.c:260:6:HAL_TIM_MspPostInit 40 static +stm32f1xx_hal_msp.c:290:6:HAL_TIM_Base_MspDeInit 16 static +stm32f1xx_hal_msp.c:325:13:HAL_FSMC_MspInit 32 static +stm32f1xx_hal_msp.c:384:6:HAL_SRAM_MspInit 16 static +stm32f1xx_hal_msp.c:396:13:HAL_FSMC_MspDeInit 8 static +stm32f1xx_hal_msp.c:444:6:HAL_SRAM_MspDeInit 16 static diff --git a/Debug/Core/Src/stm32f1xx_it.su b/Debug/Core/Src/stm32f1xx_it.su index af59de8..afe1c19 100644 --- a/Debug/Core/Src/stm32f1xx_it.su +++ b/Debug/Core/Src/stm32f1xx_it.su @@ -1,10 +1,11 @@ -stm32f1xx_it.c:70:6:NMI_Handler 4 static -stm32f1xx_it.c:85:6:HardFault_Handler 4 static -stm32f1xx_it.c:100:6:MemManage_Handler 4 static -stm32f1xx_it.c:115:6:BusFault_Handler 4 static -stm32f1xx_it.c:130:6:UsageFault_Handler 4 static -stm32f1xx_it.c:145:6:SVC_Handler 4 static -stm32f1xx_it.c:158:6:DebugMon_Handler 4 static -stm32f1xx_it.c:171:6:PendSV_Handler 4 static -stm32f1xx_it.c:184:6:SysTick_Handler 8 static -stm32f1xx_it.c:205:6:TIM6_IRQHandler 8 static +stm32f1xx_it.c:71:6:NMI_Handler 4 static +stm32f1xx_it.c:86:6:HardFault_Handler 4 static +stm32f1xx_it.c:101:6:MemManage_Handler 4 static +stm32f1xx_it.c:116:6:BusFault_Handler 4 static +stm32f1xx_it.c:131:6:UsageFault_Handler 4 static +stm32f1xx_it.c:146:6:SVC_Handler 4 static +stm32f1xx_it.c:159:6:DebugMon_Handler 4 static +stm32f1xx_it.c:172:6:PendSV_Handler 4 static +stm32f1xx_it.c:185:6:SysTick_Handler 8 static +stm32f1xx_it.c:206:6:TIM4_IRQHandler 8 static +stm32f1xx_it.c:220:6:TIM6_IRQHandler 8 static diff --git a/Debug/Core/Src/subdir.mk b/Debug/Core/Src/subdir.mk index d12825b..6022ed5 100644 --- a/Debug/Core/Src/subdir.mk +++ b/Debug/Core/Src/subdir.mk @@ -31,7 +31,7 @@ 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"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 "$@" + 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/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -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 diff --git a/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk b/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk index af7b13a..939b77b 100644 --- a/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk +++ b/Debug/Drivers/STM32F1xx_HAL_Driver/Src/subdir.mk @@ -64,7 +64,7 @@ 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"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 "$@" + 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/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -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 diff --git a/Debug/HW_Devices/buzzer.d b/Debug/HW_Devices/buzzer.d new file mode 100644 index 0000000..01e9e99 --- /dev/null +++ b/Debug/HW_Devices/buzzer.d @@ -0,0 +1,89 @@ +HW_Devices/buzzer.o: ../HW_Devices/buzzer.c ../HW_Devices/buzzer.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/buzzer.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/buzzer.su b/Debug/HW_Devices/buzzer.su new file mode 100644 index 0000000..bf7ee87 --- /dev/null +++ b/Debug/HW_Devices/buzzer.su @@ -0,0 +1,4 @@ +buzzer.c:13:6:play_ones 24 static +buzzer.c:21:6:add_a_note 24 static +buzzer.c:49:6:delhead 16 static +buzzer.c:74:6:buzzer_play_server 8 static diff --git a/Debug/HW_Devices/subdir.mk b/Debug/HW_Devices/subdir.mk index e377082..3c1ad56 100644 --- a/Debug/HW_Devices/subdir.mk +++ b/Debug/HW_Devices/subdir.mk @@ -6,6 +6,7 @@ # Add inputs and outputs from these tool invocations to the build variables C_SRCS += \ ../HW_Devices/LCD.c \ +../HW_Devices/buzzer.c \ ../HW_Devices/eeprom.c \ ../HW_Devices/iic.c \ ../HW_Devices/key.c \ @@ -14,6 +15,7 @@ C_SRCS += \ OBJS += \ ./HW_Devices/LCD.o \ +./HW_Devices/buzzer.o \ ./HW_Devices/eeprom.o \ ./HW_Devices/iic.o \ ./HW_Devices/key.o \ @@ -22,6 +24,7 @@ OBJS += \ C_DEPS += \ ./HW_Devices/LCD.d \ +./HW_Devices/buzzer.d \ ./HW_Devices/eeprom.d \ ./HW_Devices/iic.d \ ./HW_Devices/key.d \ @@ -31,12 +34,12 @@ C_DEPS += \ # 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"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 "$@" + 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/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -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 + -$(RM) ./HW_Devices/LCD.d ./HW_Devices/LCD.o ./HW_Devices/buzzer.d ./HW_Devices/buzzer.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_morsecode.su b/Debug/SW_APPs/APP_morsecode.su index 3cc6505..e6bda3d 100644 --- a/Debug/SW_APPs/APP_morsecode.su +++ b/Debug/SW_APPs/APP_morsecode.su @@ -1,3 +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 +APP_morsecode.c:153:6:getmorsecode 24 static +APP_morsecode.c:168:6:APP_morsecode_loop 56 static diff --git a/Debug/SW_APPs/Main_APP.d b/Debug/SW_APPs/Main_APP.d index e882a16..bde06bd 100644 --- a/Debug/SW_APPs/Main_APP.d +++ b/Debug/SW_APPs/Main_APP.d @@ -31,7 +31,8 @@ SW_APPs/Main_APP.o: ../SW_APPs/Main_APP.c ../SW_APPs/Main_APP.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 + C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/key.h \ + C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/buzzer.h ../SW_APPs/Main_APP.h: @@ -104,3 +105,5 @@ 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: + +C:/Users/wuwen/Desktop/M3s_stm32/HW_Devices/buzzer.h: diff --git a/Debug/SW_APPs/Main_APP.su b/Debug/SW_APPs/Main_APP.su index b07367f..f7680af 100644 --- a/Debug/SW_APPs/Main_APP.su +++ b/Debug/SW_APPs/Main_APP.su @@ -1 +1 @@ -Main_APP.c:21:6:main_app 96 static +Main_APP.c:23:6:main_app 96 static diff --git a/Debug/SW_APPs/subdir.mk b/Debug/SW_APPs/subdir.mk index d313fd1..aaf3b7c 100644 --- a/Debug/SW_APPs/subdir.mk +++ b/Debug/SW_APPs/subdir.mk @@ -28,7 +28,7 @@ C_DEPS += \ # 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"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 "$@" + 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/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -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 diff --git a/Debug/m3s.bin b/Debug/m3s.bin index 5c78341..4dcb6f0 100755 Binary files a/Debug/m3s.bin and b/Debug/m3s.bin differ diff --git a/Debug/m3s.list b/Debug/m3s.list index edbdb57..57e3aaa 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 000096b0 080001e8 080001e8 000101e8 2**3 + 1 .text 0000a598 080001e8 080001e8 000101e8 2**3 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 00000f9c 08009898 08009898 00019898 2**3 + 2 .rodata 00000fbc 0800a780 0800a780 0001a780 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000000 0800a834 0800a834 000201dc 2**0 + 3 .ARM.extab 00000000 0800b73c 0800b73c 000201dc 2**0 CONTENTS - 4 .ARM 00000000 0800a834 0800a834 000201dc 2**0 + 4 .ARM 00000000 0800b73c 0800b73c 000201dc 2**0 CONTENTS - 5 .preinit_array 00000000 0800a834 0800a834 000201dc 2**0 + 5 .preinit_array 00000000 0800b73c 0800b73c 000201dc 2**0 CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000004 0800a834 0800a834 0001a834 2**2 + 6 .init_array 00000004 0800b73c 0800b73c 0001b73c 2**2 CONTENTS, ALLOC, LOAD, DATA - 7 .fini_array 00000004 0800a838 0800a838 0001a838 2**2 + 7 .fini_array 00000004 0800b740 0800b740 0001b740 2**2 CONTENTS, ALLOC, LOAD, DATA - 8 .data 000001dc 20000000 0800a83c 00020000 2**2 + 8 .data 000001dc 20000000 0800b744 00020000 2**2 CONTENTS, ALLOC, LOAD, DATA - 9 .bss 000023b4 200001dc 0800aa18 000201dc 2**2 + 9 .bss 00002408 200001dc 0800b920 000201dc 2**2 ALLOC - 10 ._user_heap_stack 00000c00 20002590 0800aa18 00022590 2**0 + 10 ._user_heap_stack 00000c04 200025e4 0800b920 000225e4 2**0 ALLOC 11 .ARM.attributes 00000029 00000000 00000000 000201dc 2**0 CONTENTS, READONLY - 12 .debug_info 0001b34c 00000000 00000000 00020205 2**0 + 12 .debug_info 0001c88d 00000000 00000000 00020205 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 13 .debug_abbrev 00003d0f 00000000 00000000 0003b551 2**0 + 13 .debug_abbrev 00003fcd 00000000 00000000 0003ca92 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 14 .debug_aranges 00001320 00000000 00000000 0003f260 2**3 + 14 .debug_aranges 00001370 00000000 00000000 00040a60 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS - 15 .debug_ranges 000011f8 00000000 00000000 00040580 2**3 + 15 .debug_ranges 00001238 00000000 00000000 00041dd0 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS - 16 .debug_macro 0001e07b 00000000 00000000 00041778 2**0 + 16 .debug_macro 0001e3c4 00000000 00000000 00043008 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 17 .debug_line 00018c59 00000000 00000000 0005f7f3 2**0 + 17 .debug_line 000197a7 00000000 00000000 000613cc 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 18 .debug_str 000a0a1e 00000000 00000000 0007844c 2**0 + 18 .debug_str 000a0ae2 00000000 00000000 0007ab73 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 19 .comment 00000053 00000000 00000000 00118e6a 2**0 + 19 .comment 00000053 00000000 00000000 0011b655 2**0 CONTENTS, READONLY - 20 .debug_frame 000061c0 00000000 00000000 00118ec0 2**2 + 20 .debug_frame 000062e4 00000000 00000000 0011b6a8 2**2 CONTENTS, READONLY, DEBUGGING, OCTETS Disassembly of section .text: @@ -62,7 +62,7 @@ Disassembly of section .text: 80001fe: bd10 pop {r4, pc} 8000200: 200001dc .word 0x200001dc 8000204: 00000000 .word 0x00000000 - 8000208: 08009880 .word 0x08009880 + 8000208: 0800a768 .word 0x0800a768 0800020c : 800020c: b508 push {r3, lr} @@ -74,7 +74,7 @@ Disassembly of section .text: 800021a: bd08 pop {r3, pc} 800021c: 00000000 .word 0x00000000 8000220: 200001e0 .word 0x200001e0 - 8000224: 08009880 .word 0x08009880 + 8000224: 0800a768 .word 0x0800a768 08000228 : 8000228: 4603 mov r3, r0 @@ -1365,19969 +1365,22569 @@ Disassembly of section .text: 8001102: f04f 0000 mov.w r0, #0 8001106: 4770 bx lr -08001108 : +08001108 <__aeabi_f2uiz>: + 8001108: 0042 lsls r2, r0, #1 + 800110a: d20e bcs.n 800112a <__aeabi_f2uiz+0x22> + 800110c: f1b2 4ffe cmp.w r2, #2130706432 ; 0x7f000000 + 8001110: d30b bcc.n 800112a <__aeabi_f2uiz+0x22> + 8001112: f04f 039e mov.w r3, #158 ; 0x9e + 8001116: ebb3 6212 subs.w r2, r3, r2, lsr #24 + 800111a: d409 bmi.n 8001130 <__aeabi_f2uiz+0x28> + 800111c: ea4f 2300 mov.w r3, r0, lsl #8 + 8001120: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000 + 8001124: fa23 f002 lsr.w r0, r3, r2 + 8001128: 4770 bx lr + 800112a: f04f 0000 mov.w r0, #0 + 800112e: 4770 bx lr + 8001130: f112 0f61 cmn.w r2, #97 ; 0x61 + 8001134: d101 bne.n 800113a <__aeabi_f2uiz+0x32> + 8001136: 0242 lsls r2, r0, #9 + 8001138: d102 bne.n 8001140 <__aeabi_f2uiz+0x38> + 800113a: f04f 30ff mov.w r0, #4294967295 + 800113e: 4770 bx lr + 8001140: f04f 0000 mov.w r0, #0 + 8001144: 4770 bx lr + 8001146: bf00 nop + +08001148 : \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. \param [in] ch Character to transmit. \returns Character to transmit. */ __STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) { - 8001108: b480 push {r7} - 800110a: b083 sub sp, #12 - 800110c: af00 add r7, sp, #0 - 800110e: 6078 str r0, [r7, #4] + 8001148: b480 push {r7} + 800114a: b083 sub sp, #12 + 800114c: af00 add r7, sp, #0 + 800114e: 6078 str r0, [r7, #4] if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - 8001110: f04f 4360 mov.w r3, #3758096384 ; 0xe0000000 - 8001114: f8d3 3e80 ldr.w r3, [r3, #3712] ; 0xe80 - 8001118: f003 0301 and.w r3, r3, #1 - 800111c: 2b00 cmp r3, #0 - 800111e: d013 beq.n 8001148 + 8001150: f04f 4360 mov.w r3, #3758096384 ; 0xe0000000 + 8001154: f8d3 3e80 ldr.w r3, [r3, #3712] ; 0xe80 + 8001158: f003 0301 and.w r3, r3, #1 + 800115c: 2b00 cmp r3, #0 + 800115e: d013 beq.n 8001188 ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ - 8001120: f04f 4360 mov.w r3, #3758096384 ; 0xe0000000 - 8001124: f8d3 3e00 ldr.w r3, [r3, #3584] ; 0xe00 - 8001128: f003 0301 and.w r3, r3, #1 + 8001160: f04f 4360 mov.w r3, #3758096384 ; 0xe0000000 + 8001164: f8d3 3e00 ldr.w r3, [r3, #3584] ; 0xe00 + 8001168: f003 0301 and.w r3, r3, #1 if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ - 800112c: 2b00 cmp r3, #0 - 800112e: d00b beq.n 8001148 + 800116c: 2b00 cmp r3, #0 + 800116e: d00b beq.n 8001188 { while (ITM->PORT[0U].u32 == 0UL) - 8001130: e000 b.n 8001134 + 8001170: e000 b.n 8001174 { __NOP(); - 8001132: bf00 nop + 8001172: bf00 nop while (ITM->PORT[0U].u32 == 0UL) - 8001134: f04f 4360 mov.w r3, #3758096384 ; 0xe0000000 - 8001138: 681b ldr r3, [r3, #0] - 800113a: 2b00 cmp r3, #0 - 800113c: d0f9 beq.n 8001132 + 8001174: f04f 4360 mov.w r3, #3758096384 ; 0xe0000000 + 8001178: 681b ldr r3, [r3, #0] + 800117a: 2b00 cmp r3, #0 + 800117c: d0f9 beq.n 8001172 } ITM->PORT[0U].u8 = (uint8_t)ch; - 800113e: f04f 4360 mov.w r3, #3758096384 ; 0xe0000000 - 8001142: 687a ldr r2, [r7, #4] - 8001144: b2d2 uxtb r2, r2 - 8001146: 701a strb r2, [r3, #0] + 800117e: f04f 4360 mov.w r3, #3758096384 ; 0xe0000000 + 8001182: 687a ldr r2, [r7, #4] + 8001184: b2d2 uxtb r2, r2 + 8001186: 701a strb r2, [r3, #0] } return (ch); - 8001148: 687b ldr r3, [r7, #4] + 8001188: 687b ldr r3, [r7, #4] } - 800114a: 4618 mov r0, r3 - 800114c: 370c adds r7, #12 - 800114e: 46bd mov sp, r7 - 8001150: bc80 pop {r7} - 8001152: 4770 bx lr + 800118a: 4618 mov r0, r3 + 800118c: 370c adds r7, #12 + 800118e: 46bd mov sp, r7 + 8001190: bc80 pop {r7} + 8001192: 4770 bx lr -08001154 <_write>: +08001194 <_write>: /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ int _write(int file , char *ptr,int len) { - 8001154: b580 push {r7, lr} - 8001156: b086 sub sp, #24 - 8001158: af00 add r7, sp, #0 - 800115a: 60f8 str r0, [r7, #12] - 800115c: 60b9 str r1, [r7, #8] - 800115e: 607a str r2, [r7, #4] + 8001194: b580 push {r7, lr} + 8001196: b086 sub sp, #24 + 8001198: af00 add r7, sp, #0 + 800119a: 60f8 str r0, [r7, #12] + 800119c: 60b9 str r1, [r7, #8] + 800119e: 607a str r2, [r7, #4] int i = 0; - 8001160: 2300 movs r3, #0 - 8001162: 617b str r3, [r7, #20] + 80011a0: 2300 movs r3, #0 + 80011a2: 617b str r3, [r7, #20] for(i = 0;i + 80011a4: 2300 movs r3, #0 + 80011a6: 617b str r3, [r7, #20] + 80011a8: e009 b.n 80011be <_write+0x2a> ITM_SendChar((*ptr++)); - 800116a: 68bb ldr r3, [r7, #8] - 800116c: 1c5a adds r2, r3, #1 - 800116e: 60ba str r2, [r7, #8] - 8001170: 781b ldrb r3, [r3, #0] - 8001172: 4618 mov r0, r3 - 8001174: f7ff ffc8 bl 8001108 + 80011aa: 68bb ldr r3, [r7, #8] + 80011ac: 1c5a adds r2, r3, #1 + 80011ae: 60ba str r2, [r7, #8] + 80011b0: 781b ldrb r3, [r3, #0] + 80011b2: 4618 mov r0, r3 + 80011b4: f7ff ffc8 bl 8001148 for(i = 0;i + 80011b8: 697b ldr r3, [r7, #20] + 80011ba: 3301 adds r3, #1 + 80011bc: 617b str r3, [r7, #20] + 80011be: 697a ldr r2, [r7, #20] + 80011c0: 687b ldr r3, [r7, #4] + 80011c2: 429a cmp r2, r3 + 80011c4: dbf1 blt.n 80011aa <_write+0x16> return len; - 8001186: 687b ldr r3, [r7, #4] + 80011c6: 687b ldr r3, [r7, #4] } - 8001188: 4618 mov r0, r3 - 800118a: 3718 adds r7, #24 - 800118c: 46bd mov sp, r7 - 800118e: bd80 pop {r7, pc} + 80011c8: 4618 mov r0, r3 + 80011ca: 3718 adds r7, #24 + 80011cc: 46bd mov sp, r7 + 80011ce: bd80 pop {r7, pc} -08001190
: +080011d0
: /** * @brief The application entry point. * @retval int */ int main(void) { - 8001190: b580 push {r7, lr} - 8001192: af00 add r7, sp, #0 + 80011d0: b580 push {r7, lr} + 80011d2: af00 add r7, sp, #0 /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); - 8001194: f000 fc98 bl 8001ac8 + 80011d4: f000 fd6a bl 8001cac /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); - 8001198: f000 f80d bl 80011b6 + 80011d8: f000 f80f bl 80011fa /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); - 800119c: f000 f8ea bl 8001374 + 80011dc: f000 f962 bl 80014a4 MX_FSMC_Init(); - 80011a0: f000 f9e6 bl 8001570 + 80011e0: f000 fa5e bl 80016a0 MX_I2C2_Init(); - 80011a4: f000 f84c bl 8001240 + 80011e4: f000 f84e bl 8001284 MX_TIM6_Init(); - 80011a8: f000 f8ae bl 8001308 + 80011e8: f000 f926 bl 8001438 MX_SPI1_Init(); - 80011ac: f000 f876 bl 800129c + 80011ec: f000 f878 bl 80012e0 + MX_TIM4_Init(); + 80011f0: f000 f8ac bl 800134c /* USER CODE BEGIN 2 */ main_app(); - 80011b0: f005 f92c bl 800640c + 80011f4: f006 f878 bl 80072e8 /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) - 80011b4: e7fe b.n 80011b4 + 80011f8: e7fe b.n 80011f8 -080011b6 : +080011fa : /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { - 80011b6: b580 push {r7, lr} - 80011b8: b090 sub sp, #64 ; 0x40 - 80011ba: af00 add r7, sp, #0 + 80011fa: b580 push {r7, lr} + 80011fc: b090 sub sp, #64 ; 0x40 + 80011fe: af00 add r7, sp, #0 RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - 80011bc: f107 0318 add.w r3, r7, #24 - 80011c0: 2228 movs r2, #40 ; 0x28 - 80011c2: 2100 movs r1, #0 - 80011c4: 4618 mov r0, r3 - 80011c6: f005 fcc1 bl 8006b4c + 8001200: f107 0318 add.w r3, r7, #24 + 8001204: 2228 movs r2, #40 ; 0x28 + 8001206: 2100 movs r1, #0 + 8001208: 4618 mov r0, r3 + 800120a: f006 fc15 bl 8007a38 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - 80011ca: 1d3b adds r3, r7, #4 - 80011cc: 2200 movs r2, #0 - 80011ce: 601a str r2, [r3, #0] - 80011d0: 605a str r2, [r3, #4] - 80011d2: 609a str r2, [r3, #8] - 80011d4: 60da str r2, [r3, #12] - 80011d6: 611a str r2, [r3, #16] + 800120e: 1d3b adds r3, r7, #4 + 8001210: 2200 movs r2, #0 + 8001212: 601a str r2, [r3, #0] + 8001214: 605a str r2, [r3, #4] + 8001216: 609a str r2, [r3, #8] + 8001218: 60da str r2, [r3, #12] + 800121a: 611a str r2, [r3, #16] /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; - 80011d8: 2301 movs r3, #1 - 80011da: 61bb str r3, [r7, #24] + 800121c: 2301 movs r3, #1 + 800121e: 61bb str r3, [r7, #24] RCC_OscInitStruct.HSEState = RCC_HSE_ON; - 80011dc: f44f 3380 mov.w r3, #65536 ; 0x10000 - 80011e0: 61fb str r3, [r7, #28] + 8001220: f44f 3380 mov.w r3, #65536 ; 0x10000 + 8001224: 61fb str r3, [r7, #28] RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; - 80011e2: 2300 movs r3, #0 - 80011e4: 623b str r3, [r7, #32] + 8001226: 2300 movs r3, #0 + 8001228: 623b str r3, [r7, #32] RCC_OscInitStruct.HSIState = RCC_HSI_ON; - 80011e6: 2301 movs r3, #1 - 80011e8: 62bb str r3, [r7, #40] ; 0x28 + 800122a: 2301 movs r3, #1 + 800122c: 62bb str r3, [r7, #40] ; 0x28 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - 80011ea: 2302 movs r3, #2 - 80011ec: 637b str r3, [r7, #52] ; 0x34 + 800122e: 2302 movs r3, #2 + 8001230: 637b str r3, [r7, #52] ; 0x34 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; - 80011ee: f44f 3380 mov.w r3, #65536 ; 0x10000 - 80011f2: 63bb str r3, [r7, #56] ; 0x38 + 8001232: f44f 3380 mov.w r3, #65536 ; 0x10000 + 8001236: 63bb str r3, [r7, #56] ; 0x38 RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; - 80011f4: f44f 13e0 mov.w r3, #1835008 ; 0x1c0000 - 80011f8: 63fb str r3, [r7, #60] ; 0x3c + 8001238: f44f 13e0 mov.w r3, #1835008 ; 0x1c0000 + 800123c: 63fb str r3, [r7, #60] ; 0x3c if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - 80011fa: f107 0318 add.w r3, r7, #24 - 80011fe: 4618 mov r0, r3 - 8001200: f001 ffba bl 8003178 - 8001204: 4603 mov r3, r0 - 8001206: 2b00 cmp r3, #0 - 8001208: d001 beq.n 800120e + 800123e: f107 0318 add.w r3, r7, #24 + 8001242: 4618 mov r0, r3 + 8001244: f002 f88a bl 800335c + 8001248: 4603 mov r3, r0 + 800124a: 2b00 cmp r3, #0 + 800124c: d001 beq.n 8001252 { Error_Handler(); - 800120a: f000 fa15 bl 8001638 + 800124e: f000 fa8b bl 8001768 } /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - 800120e: 230f movs r3, #15 - 8001210: 607b str r3, [r7, #4] + 8001252: 230f movs r3, #15 + 8001254: 607b str r3, [r7, #4] |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; - 8001212: 2302 movs r3, #2 - 8001214: 60bb str r3, [r7, #8] + 8001256: 2302 movs r3, #2 + 8001258: 60bb str r3, [r7, #8] RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - 8001216: 2300 movs r3, #0 - 8001218: 60fb str r3, [r7, #12] + 800125a: 2300 movs r3, #0 + 800125c: 60fb str r3, [r7, #12] RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; - 800121a: f44f 6380 mov.w r3, #1024 ; 0x400 - 800121e: 613b str r3, [r7, #16] + 800125e: f44f 6380 mov.w r3, #1024 ; 0x400 + 8001262: 613b str r3, [r7, #16] RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - 8001220: 2300 movs r3, #0 - 8001222: 617b str r3, [r7, #20] + 8001264: 2300 movs r3, #0 + 8001266: 617b str r3, [r7, #20] if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) - 8001224: 1d3b adds r3, r7, #4 - 8001226: 2102 movs r1, #2 - 8001228: 4618 mov r0, r3 - 800122a: f002 fa25 bl 8003678 - 800122e: 4603 mov r3, r0 - 8001230: 2b00 cmp r3, #0 - 8001232: d001 beq.n 8001238 + 8001268: 1d3b adds r3, r7, #4 + 800126a: 2102 movs r1, #2 + 800126c: 4618 mov r0, r3 + 800126e: f002 faf5 bl 800385c + 8001272: 4603 mov r3, r0 + 8001274: 2b00 cmp r3, #0 + 8001276: d001 beq.n 800127c { Error_Handler(); - 8001234: f000 fa00 bl 8001638 + 8001278: f000 fa76 bl 8001768 } } - 8001238: bf00 nop - 800123a: 3740 adds r7, #64 ; 0x40 - 800123c: 46bd mov sp, r7 - 800123e: bd80 pop {r7, pc} + 800127c: bf00 nop + 800127e: 3740 adds r7, #64 ; 0x40 + 8001280: 46bd mov sp, r7 + 8001282: bd80 pop {r7, pc} -08001240 : +08001284 : * @brief I2C2 Initialization Function * @param None * @retval None */ static void MX_I2C2_Init(void) { - 8001240: b580 push {r7, lr} - 8001242: af00 add r7, sp, #0 + 8001284: b580 push {r7, lr} + 8001286: af00 add r7, sp, #0 /* USER CODE END I2C2_Init 0 */ /* USER CODE BEGIN I2C2_Init 1 */ /* USER CODE END I2C2_Init 1 */ hi2c2.Instance = I2C2; - 8001244: 4b12 ldr r3, [pc, #72] ; (8001290 ) - 8001246: 4a13 ldr r2, [pc, #76] ; (8001294 ) - 8001248: 601a str r2, [r3, #0] + 8001288: 4b12 ldr r3, [pc, #72] ; (80012d4 ) + 800128a: 4a13 ldr r2, [pc, #76] ; (80012d8 ) + 800128c: 601a str r2, [r3, #0] hi2c2.Init.ClockSpeed = 100000; - 800124a: 4b11 ldr r3, [pc, #68] ; (8001290 ) - 800124c: 4a12 ldr r2, [pc, #72] ; (8001298 ) - 800124e: 605a str r2, [r3, #4] + 800128e: 4b11 ldr r3, [pc, #68] ; (80012d4 ) + 8001290: 4a12 ldr r2, [pc, #72] ; (80012dc ) + 8001292: 605a str r2, [r3, #4] hi2c2.Init.DutyCycle = I2C_DUTYCYCLE_2; - 8001250: 4b0f ldr r3, [pc, #60] ; (8001290 ) - 8001252: 2200 movs r2, #0 - 8001254: 609a str r2, [r3, #8] + 8001294: 4b0f ldr r3, [pc, #60] ; (80012d4 ) + 8001296: 2200 movs r2, #0 + 8001298: 609a str r2, [r3, #8] hi2c2.Init.OwnAddress1 = 0; - 8001256: 4b0e ldr r3, [pc, #56] ; (8001290 ) - 8001258: 2200 movs r2, #0 - 800125a: 60da str r2, [r3, #12] + 800129a: 4b0e ldr r3, [pc, #56] ; (80012d4 ) + 800129c: 2200 movs r2, #0 + 800129e: 60da str r2, [r3, #12] hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - 800125c: 4b0c ldr r3, [pc, #48] ; (8001290 ) - 800125e: f44f 4280 mov.w r2, #16384 ; 0x4000 - 8001262: 611a str r2, [r3, #16] + 80012a0: 4b0c ldr r3, [pc, #48] ; (80012d4 ) + 80012a2: f44f 4280 mov.w r2, #16384 ; 0x4000 + 80012a6: 611a str r2, [r3, #16] hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - 8001264: 4b0a ldr r3, [pc, #40] ; (8001290 ) - 8001266: 2200 movs r2, #0 - 8001268: 615a str r2, [r3, #20] + 80012a8: 4b0a ldr r3, [pc, #40] ; (80012d4 ) + 80012aa: 2200 movs r2, #0 + 80012ac: 615a str r2, [r3, #20] hi2c2.Init.OwnAddress2 = 0; - 800126a: 4b09 ldr r3, [pc, #36] ; (8001290 ) - 800126c: 2200 movs r2, #0 - 800126e: 619a str r2, [r3, #24] + 80012ae: 4b09 ldr r3, [pc, #36] ; (80012d4 ) + 80012b0: 2200 movs r2, #0 + 80012b2: 619a str r2, [r3, #24] hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - 8001270: 4b07 ldr r3, [pc, #28] ; (8001290 ) - 8001272: 2200 movs r2, #0 - 8001274: 61da str r2, [r3, #28] + 80012b4: 4b07 ldr r3, [pc, #28] ; (80012d4 ) + 80012b6: 2200 movs r2, #0 + 80012b8: 61da str r2, [r3, #28] hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - 8001276: 4b06 ldr r3, [pc, #24] ; (8001290 ) - 8001278: 2200 movs r2, #0 - 800127a: 621a str r2, [r3, #32] + 80012ba: 4b06 ldr r3, [pc, #24] ; (80012d4 ) + 80012bc: 2200 movs r2, #0 + 80012be: 621a str r2, [r3, #32] if (HAL_I2C_Init(&hi2c2) != HAL_OK) - 800127c: 4804 ldr r0, [pc, #16] ; (8001290 ) - 800127e: f000 ff7b bl 8002178 - 8001282: 4603 mov r3, r0 - 8001284: 2b00 cmp r3, #0 - 8001286: d001 beq.n 800128c + 80012c0: 4804 ldr r0, [pc, #16] ; (80012d4 ) + 80012c2: f001 f84b bl 800235c + 80012c6: 4603 mov r3, r0 + 80012c8: 2b00 cmp r3, #0 + 80012ca: d001 beq.n 80012d0 { Error_Handler(); - 8001288: f000 f9d6 bl 8001638 + 80012cc: f000 fa4c bl 8001768 } /* USER CODE BEGIN I2C2_Init 2 */ /* USER CODE END I2C2_Init 2 */ } - 800128c: bf00 nop - 800128e: bd80 pop {r7, pc} - 8001290: 20000268 .word 0x20000268 - 8001294: 40005800 .word 0x40005800 - 8001298: 000186a0 .word 0x000186a0 + 80012d0: bf00 nop + 80012d2: bd80 pop {r7, pc} + 80012d4: 20000274 .word 0x20000274 + 80012d8: 40005800 .word 0x40005800 + 80012dc: 000186a0 .word 0x000186a0 -0800129c : +080012e0 : * @brief SPI1 Initialization Function * @param None * @retval None */ static void MX_SPI1_Init(void) { - 800129c: b580 push {r7, lr} - 800129e: af00 add r7, sp, #0 + 80012e0: b580 push {r7, lr} + 80012e2: af00 add r7, sp, #0 /* USER CODE BEGIN SPI1_Init 1 */ /* USER CODE END SPI1_Init 1 */ /* SPI1 parameter configuration*/ hspi1.Instance = SPI1; - 80012a0: 4b17 ldr r3, [pc, #92] ; (8001300 ) - 80012a2: 4a18 ldr r2, [pc, #96] ; (8001304 ) - 80012a4: 601a str r2, [r3, #0] + 80012e4: 4b17 ldr r3, [pc, #92] ; (8001344 ) + 80012e6: 4a18 ldr r2, [pc, #96] ; (8001348 ) + 80012e8: 601a str r2, [r3, #0] hspi1.Init.Mode = SPI_MODE_MASTER; - 80012a6: 4b16 ldr r3, [pc, #88] ; (8001300 ) - 80012a8: f44f 7282 mov.w r2, #260 ; 0x104 - 80012ac: 605a str r2, [r3, #4] + 80012ea: 4b16 ldr r3, [pc, #88] ; (8001344 ) + 80012ec: f44f 7282 mov.w r2, #260 ; 0x104 + 80012f0: 605a str r2, [r3, #4] hspi1.Init.Direction = SPI_DIRECTION_2LINES; - 80012ae: 4b14 ldr r3, [pc, #80] ; (8001300 ) - 80012b0: 2200 movs r2, #0 - 80012b2: 609a str r2, [r3, #8] + 80012f2: 4b14 ldr r3, [pc, #80] ; (8001344 ) + 80012f4: 2200 movs r2, #0 + 80012f6: 609a str r2, [r3, #8] hspi1.Init.DataSize = SPI_DATASIZE_8BIT; - 80012b4: 4b12 ldr r3, [pc, #72] ; (8001300 ) - 80012b6: 2200 movs r2, #0 - 80012b8: 60da str r2, [r3, #12] + 80012f8: 4b12 ldr r3, [pc, #72] ; (8001344 ) + 80012fa: 2200 movs r2, #0 + 80012fc: 60da str r2, [r3, #12] hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; - 80012ba: 4b11 ldr r3, [pc, #68] ; (8001300 ) - 80012bc: 2200 movs r2, #0 - 80012be: 611a str r2, [r3, #16] + 80012fe: 4b11 ldr r3, [pc, #68] ; (8001344 ) + 8001300: 2200 movs r2, #0 + 8001302: 611a str r2, [r3, #16] hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; - 80012c0: 4b0f ldr r3, [pc, #60] ; (8001300 ) - 80012c2: 2200 movs r2, #0 - 80012c4: 615a str r2, [r3, #20] + 8001304: 4b0f ldr r3, [pc, #60] ; (8001344 ) + 8001306: 2200 movs r2, #0 + 8001308: 615a str r2, [r3, #20] hspi1.Init.NSS = SPI_NSS_SOFT; - 80012c6: 4b0e ldr r3, [pc, #56] ; (8001300 ) - 80012c8: f44f 7200 mov.w r2, #512 ; 0x200 - 80012cc: 619a str r2, [r3, #24] + 800130a: 4b0e ldr r3, [pc, #56] ; (8001344 ) + 800130c: f44f 7200 mov.w r2, #512 ; 0x200 + 8001310: 619a str r2, [r3, #24] hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; - 80012ce: 4b0c ldr r3, [pc, #48] ; (8001300 ) - 80012d0: 2208 movs r2, #8 - 80012d2: 61da str r2, [r3, #28] + 8001312: 4b0c ldr r3, [pc, #48] ; (8001344 ) + 8001314: 2208 movs r2, #8 + 8001316: 61da str r2, [r3, #28] hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; - 80012d4: 4b0a ldr r3, [pc, #40] ; (8001300 ) - 80012d6: 2200 movs r2, #0 - 80012d8: 621a str r2, [r3, #32] + 8001318: 4b0a ldr r3, [pc, #40] ; (8001344 ) + 800131a: 2200 movs r2, #0 + 800131c: 621a str r2, [r3, #32] hspi1.Init.TIMode = SPI_TIMODE_DISABLE; - 80012da: 4b09 ldr r3, [pc, #36] ; (8001300 ) - 80012dc: 2200 movs r2, #0 - 80012de: 625a str r2, [r3, #36] ; 0x24 + 800131e: 4b09 ldr r3, [pc, #36] ; (8001344 ) + 8001320: 2200 movs r2, #0 + 8001322: 625a str r2, [r3, #36] ; 0x24 hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; - 80012e0: 4b07 ldr r3, [pc, #28] ; (8001300 ) - 80012e2: 2200 movs r2, #0 - 80012e4: 629a str r2, [r3, #40] ; 0x28 + 8001324: 4b07 ldr r3, [pc, #28] ; (8001344 ) + 8001326: 2200 movs r2, #0 + 8001328: 629a str r2, [r3, #40] ; 0x28 hspi1.Init.CRCPolynomial = 10; - 80012e6: 4b06 ldr r3, [pc, #24] ; (8001300 ) - 80012e8: 220a movs r2, #10 - 80012ea: 62da str r2, [r3, #44] ; 0x2c + 800132a: 4b06 ldr r3, [pc, #24] ; (8001344 ) + 800132c: 220a movs r2, #10 + 800132e: 62da str r2, [r3, #44] ; 0x2c if (HAL_SPI_Init(&hspi1) != HAL_OK) - 80012ec: 4804 ldr r0, [pc, #16] ; (8001300 ) - 80012ee: f002 fb49 bl 8003984 - 80012f2: 4603 mov r3, r0 - 80012f4: 2b00 cmp r3, #0 - 80012f6: d001 beq.n 80012fc + 8001330: 4804 ldr r0, [pc, #16] ; (8001344 ) + 8001332: f002 fc19 bl 8003b68 + 8001336: 4603 mov r3, r0 + 8001338: 2b00 cmp r3, #0 + 800133a: d001 beq.n 8001340 { Error_Handler(); - 80012f8: f000 f99e bl 8001638 + 800133c: f000 fa14 bl 8001768 } /* USER CODE BEGIN SPI1_Init 2 */ /* USER CODE END SPI1_Init 2 */ } - 80012fc: bf00 nop - 80012fe: bd80 pop {r7, pc} - 8001300: 2000034c .word 0x2000034c - 8001304: 40013000 .word 0x40013000 + 8001340: bf00 nop + 8001342: bd80 pop {r7, pc} + 8001344: 20000358 .word 0x20000358 + 8001348: 40013000 .word 0x40013000 -08001308 : +0800134c : + * @brief TIM4 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM4_Init(void) +{ + 800134c: b580 push {r7, lr} + 800134e: b08e sub sp, #56 ; 0x38 + 8001350: af00 add r7, sp, #0 + + /* USER CODE BEGIN TIM4_Init 0 */ + + /* USER CODE END TIM4_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + 8001352: f107 0328 add.w r3, r7, #40 ; 0x28 + 8001356: 2200 movs r2, #0 + 8001358: 601a str r2, [r3, #0] + 800135a: 605a str r2, [r3, #4] + 800135c: 609a str r2, [r3, #8] + 800135e: 60da str r2, [r3, #12] + TIM_MasterConfigTypeDef sMasterConfig = {0}; + 8001360: f107 0320 add.w r3, r7, #32 + 8001364: 2200 movs r2, #0 + 8001366: 601a str r2, [r3, #0] + 8001368: 605a str r2, [r3, #4] + TIM_OC_InitTypeDef sConfigOC = {0}; + 800136a: 1d3b adds r3, r7, #4 + 800136c: 2200 movs r2, #0 + 800136e: 601a str r2, [r3, #0] + 8001370: 605a str r2, [r3, #4] + 8001372: 609a str r2, [r3, #8] + 8001374: 60da str r2, [r3, #12] + 8001376: 611a str r2, [r3, #16] + 8001378: 615a str r2, [r3, #20] + 800137a: 619a str r2, [r3, #24] + + /* USER CODE BEGIN TIM4_Init 1 */ + + /* USER CODE END TIM4_Init 1 */ + htim4.Instance = TIM4; + 800137c: 4b2c ldr r3, [pc, #176] ; (8001430 ) + 800137e: 4a2d ldr r2, [pc, #180] ; (8001434 ) + 8001380: 601a str r2, [r3, #0] + htim4.Init.Prescaler = 0; + 8001382: 4b2b ldr r3, [pc, #172] ; (8001430 ) + 8001384: 2200 movs r2, #0 + 8001386: 605a str r2, [r3, #4] + htim4.Init.CounterMode = TIM_COUNTERMODE_UP; + 8001388: 4b29 ldr r3, [pc, #164] ; (8001430 ) + 800138a: 2200 movs r2, #0 + 800138c: 609a str r2, [r3, #8] + htim4.Init.Period = 65535; + 800138e: 4b28 ldr r3, [pc, #160] ; (8001430 ) + 8001390: f64f 72ff movw r2, #65535 ; 0xffff + 8001394: 60da str r2, [r3, #12] + htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 8001396: 4b26 ldr r3, [pc, #152] ; (8001430 ) + 8001398: 2200 movs r2, #0 + 800139a: 611a str r2, [r3, #16] + htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 800139c: 4b24 ldr r3, [pc, #144] ; (8001430 ) + 800139e: 2200 movs r2, #0 + 80013a0: 619a str r2, [r3, #24] + if (HAL_TIM_Base_Init(&htim4) != HAL_OK) + 80013a2: 4823 ldr r0, [pc, #140] ; (8001430 ) + 80013a4: f002 fcb1 bl 8003d0a + 80013a8: 4603 mov r3, r0 + 80013aa: 2b00 cmp r3, #0 + 80013ac: d001 beq.n 80013b2 + { + Error_Handler(); + 80013ae: f000 f9db bl 8001768 + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + 80013b2: f44f 5380 mov.w r3, #4096 ; 0x1000 + 80013b6: 62bb str r3, [r7, #40] ; 0x28 + if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK) + 80013b8: f107 0328 add.w r3, r7, #40 ; 0x28 + 80013bc: 4619 mov r1, r3 + 80013be: 481c ldr r0, [pc, #112] ; (8001430 ) + 80013c0: f002 fff8 bl 80043b4 + 80013c4: 4603 mov r3, r0 + 80013c6: 2b00 cmp r3, #0 + 80013c8: d001 beq.n 80013ce + { + Error_Handler(); + 80013ca: f000 f9cd bl 8001768 + } + if (HAL_TIM_PWM_Init(&htim4) != HAL_OK) + 80013ce: 4818 ldr r0, [pc, #96] ; (8001430 ) + 80013d0: f002 fd18 bl 8003e04 + 80013d4: 4603 mov r3, r0 + 80013d6: 2b00 cmp r3, #0 + 80013d8: d001 beq.n 80013de + { + Error_Handler(); + 80013da: f000 f9c5 bl 8001768 + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + 80013de: 2300 movs r3, #0 + 80013e0: 623b str r3, [r7, #32] + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 80013e2: 2300 movs r3, #0 + 80013e4: 627b str r3, [r7, #36] ; 0x24 + if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK) + 80013e6: f107 0320 add.w r3, r7, #32 + 80013ea: 4619 mov r1, r3 + 80013ec: 4810 ldr r0, [pc, #64] ; (8001430 ) + 80013ee: f003 fba9 bl 8004b44 + 80013f2: 4603 mov r3, r0 + 80013f4: 2b00 cmp r3, #0 + 80013f6: d001 beq.n 80013fc + { + Error_Handler(); + 80013f8: f000 f9b6 bl 8001768 + } + sConfigOC.OCMode = TIM_OCMODE_PWM1; + 80013fc: 2360 movs r3, #96 ; 0x60 + 80013fe: 607b str r3, [r7, #4] + sConfigOC.Pulse = 0; + 8001400: 2300 movs r3, #0 + 8001402: 60bb str r3, [r7, #8] + sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + 8001404: 2300 movs r3, #0 + 8001406: 60fb str r3, [r7, #12] + sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + 8001408: 2300 movs r3, #0 + 800140a: 617b str r3, [r7, #20] + if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3) != HAL_OK) + 800140c: 1d3b adds r3, r7, #4 + 800140e: 2208 movs r2, #8 + 8001410: 4619 mov r1, r3 + 8001412: 4807 ldr r0, [pc, #28] ; (8001430 ) + 8001414: f002 ff10 bl 8004238 + 8001418: 4603 mov r3, r0 + 800141a: 2b00 cmp r3, #0 + 800141c: d001 beq.n 8001422 + { + Error_Handler(); + 800141e: f000 f9a3 bl 8001768 + } + /* USER CODE BEGIN TIM4_Init 2 */ + + /* USER CODE END TIM4_Init 2 */ + HAL_TIM_MspPostInit(&htim4); + 8001422: 4803 ldr r0, [pc, #12] ; (8001430 ) + 8001424: f000 faa4 bl 8001970 + +} + 8001428: bf00 nop + 800142a: 3738 adds r7, #56 ; 0x38 + 800142c: 46bd mov sp, r7 + 800142e: bd80 pop {r7, pc} + 8001430: 2000022c .word 0x2000022c + 8001434: 40000800 .word 0x40000800 + +08001438 : * @brief TIM6 Initialization Function * @param None * @retval None */ static void MX_TIM6_Init(void) { - 8001308: b580 push {r7, lr} - 800130a: b082 sub sp, #8 - 800130c: af00 add r7, sp, #0 + 8001438: b580 push {r7, lr} + 800143a: b082 sub sp, #8 + 800143c: af00 add r7, sp, #0 /* USER CODE BEGIN TIM6_Init 0 */ /* USER CODE END TIM6_Init 0 */ TIM_MasterConfigTypeDef sMasterConfig = {0}; - 800130e: 463b mov r3, r7 - 8001310: 2200 movs r2, #0 - 8001312: 601a str r2, [r3, #0] - 8001314: 605a str r2, [r3, #4] + 800143e: 463b mov r3, r7 + 8001440: 2200 movs r2, #0 + 8001442: 601a str r2, [r3, #0] + 8001444: 605a str r2, [r3, #4] /* USER CODE BEGIN TIM6_Init 1 */ /* USER CODE END TIM6_Init 1 */ htim6.Instance = TIM6; - 8001316: 4b15 ldr r3, [pc, #84] ; (800136c ) - 8001318: 4a15 ldr r2, [pc, #84] ; (8001370 ) - 800131a: 601a str r2, [r3, #0] + 8001446: 4b15 ldr r3, [pc, #84] ; (800149c ) + 8001448: 4a15 ldr r2, [pc, #84] ; (80014a0 ) + 800144a: 601a str r2, [r3, #0] htim6.Init.Prescaler = 72-1; - 800131c: 4b13 ldr r3, [pc, #76] ; (800136c ) - 800131e: 2247 movs r2, #71 ; 0x47 - 8001320: 605a str r2, [r3, #4] + 800144c: 4b13 ldr r3, [pc, #76] ; (800149c ) + 800144e: 2247 movs r2, #71 ; 0x47 + 8001450: 605a str r2, [r3, #4] htim6.Init.CounterMode = TIM_COUNTERMODE_UP; - 8001322: 4b12 ldr r3, [pc, #72] ; (800136c ) - 8001324: 2200 movs r2, #0 - 8001326: 609a str r2, [r3, #8] + 8001452: 4b12 ldr r3, [pc, #72] ; (800149c ) + 8001454: 2200 movs r2, #0 + 8001456: 609a str r2, [r3, #8] htim6.Init.Period = 10000-1; - 8001328: 4b10 ldr r3, [pc, #64] ; (800136c ) - 800132a: f242 720f movw r2, #9999 ; 0x270f - 800132e: 60da str r2, [r3, #12] + 8001458: 4b10 ldr r3, [pc, #64] ; (800149c ) + 800145a: f242 720f movw r2, #9999 ; 0x270f + 800145e: 60da str r2, [r3, #12] htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - 8001330: 4b0e ldr r3, [pc, #56] ; (800136c ) - 8001332: 2200 movs r2, #0 - 8001334: 619a str r2, [r3, #24] + 8001460: 4b0e ldr r3, [pc, #56] ; (800149c ) + 8001462: 2200 movs r2, #0 + 8001464: 619a str r2, [r3, #24] if (HAL_TIM_Base_Init(&htim6) != HAL_OK) - 8001336: 480d ldr r0, [pc, #52] ; (800136c ) - 8001338: f002 fbf5 bl 8003b26 - 800133c: 4603 mov r3, r0 - 800133e: 2b00 cmp r3, #0 - 8001340: d001 beq.n 8001346 + 8001466: 480d ldr r0, [pc, #52] ; (800149c ) + 8001468: f002 fc4f bl 8003d0a + 800146c: 4603 mov r3, r0 + 800146e: 2b00 cmp r3, #0 + 8001470: d001 beq.n 8001476 { Error_Handler(); - 8001342: f000 f979 bl 8001638 + 8001472: f000 f979 bl 8001768 } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; - 8001346: 2300 movs r3, #0 - 8001348: 603b str r3, [r7, #0] + 8001476: 2300 movs r3, #0 + 8001478: 603b str r3, [r7, #0] sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; - 800134a: 2300 movs r3, #0 - 800134c: 607b str r3, [r7, #4] + 800147a: 2300 movs r3, #0 + 800147c: 607b str r3, [r7, #4] if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK) - 800134e: 463b mov r3, r7 - 8001350: 4619 mov r1, r3 - 8001352: 4806 ldr r0, [pc, #24] ; (800136c ) - 8001354: f002 fe0a bl 8003f6c - 8001358: 4603 mov r3, r0 - 800135a: 2b00 cmp r3, #0 - 800135c: d001 beq.n 8001362 + 800147e: 463b mov r3, r7 + 8001480: 4619 mov r1, r3 + 8001482: 4806 ldr r0, [pc, #24] ; (800149c ) + 8001484: f003 fb5e bl 8004b44 + 8001488: 4603 mov r3, r0 + 800148a: 2b00 cmp r3, #0 + 800148c: d001 beq.n 8001492 { Error_Handler(); - 800135e: f000 f96b bl 8001638 + 800148e: f000 f96b bl 8001768 } /* USER CODE BEGIN TIM6_Init 2 */ /* USER CODE END TIM6_Init 2 */ } - 8001362: bf00 nop - 8001364: 3708 adds r7, #8 - 8001366: 46bd mov sp, r7 - 8001368: bd80 pop {r7, pc} - 800136a: bf00 nop - 800136c: 20000304 .word 0x20000304 - 8001370: 40001000 .word 0x40001000 + 8001492: bf00 nop + 8001494: 3708 adds r7, #8 + 8001496: 46bd mov sp, r7 + 8001498: bd80 pop {r7, pc} + 800149a: bf00 nop + 800149c: 20000310 .word 0x20000310 + 80014a0: 40001000 .word 0x40001000 -08001374 : +080014a4 : * @brief GPIO Initialization Function * @param None * @retval None */ static void MX_GPIO_Init(void) { - 8001374: b580 push {r7, lr} - 8001376: b08a sub sp, #40 ; 0x28 - 8001378: af00 add r7, sp, #0 + 80014a4: b580 push {r7, lr} + 80014a6: b08a sub sp, #40 ; 0x28 + 80014a8: af00 add r7, sp, #0 GPIO_InitTypeDef GPIO_InitStruct = {0}; - 800137a: f107 0318 add.w r3, r7, #24 - 800137e: 2200 movs r2, #0 - 8001380: 601a str r2, [r3, #0] - 8001382: 605a str r2, [r3, #4] - 8001384: 609a str r2, [r3, #8] - 8001386: 60da str r2, [r3, #12] + 80014aa: f107 0318 add.w r3, r7, #24 + 80014ae: 2200 movs r2, #0 + 80014b0: 601a str r2, [r3, #0] + 80014b2: 605a str r2, [r3, #4] + 80014b4: 609a str r2, [r3, #8] + 80014b6: 60da str r2, [r3, #12] /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOE_CLK_ENABLE(); - 8001388: 4b74 ldr r3, [pc, #464] ; (800155c ) - 800138a: 699b ldr r3, [r3, #24] - 800138c: 4a73 ldr r2, [pc, #460] ; (800155c ) - 800138e: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8001392: 6193 str r3, [r2, #24] - 8001394: 4b71 ldr r3, [pc, #452] ; (800155c ) - 8001396: 699b ldr r3, [r3, #24] - 8001398: f003 0340 and.w r3, r3, #64 ; 0x40 - 800139c: 617b str r3, [r7, #20] - 800139e: 697b ldr r3, [r7, #20] + 80014b8: 4b74 ldr r3, [pc, #464] ; (800168c ) + 80014ba: 699b ldr r3, [r3, #24] + 80014bc: 4a73 ldr r2, [pc, #460] ; (800168c ) + 80014be: f043 0340 orr.w r3, r3, #64 ; 0x40 + 80014c2: 6193 str r3, [r2, #24] + 80014c4: 4b71 ldr r3, [pc, #452] ; (800168c ) + 80014c6: 699b ldr r3, [r3, #24] + 80014c8: f003 0340 and.w r3, r3, #64 ; 0x40 + 80014cc: 617b str r3, [r7, #20] + 80014ce: 697b ldr r3, [r7, #20] __HAL_RCC_GPIOF_CLK_ENABLE(); - 80013a0: 4b6e ldr r3, [pc, #440] ; (800155c ) - 80013a2: 699b ldr r3, [r3, #24] - 80013a4: 4a6d ldr r2, [pc, #436] ; (800155c ) - 80013a6: f043 0380 orr.w r3, r3, #128 ; 0x80 - 80013aa: 6193 str r3, [r2, #24] - 80013ac: 4b6b ldr r3, [pc, #428] ; (800155c ) - 80013ae: 699b ldr r3, [r3, #24] - 80013b0: f003 0380 and.w r3, r3, #128 ; 0x80 - 80013b4: 613b str r3, [r7, #16] - 80013b6: 693b ldr r3, [r7, #16] + 80014d0: 4b6e ldr r3, [pc, #440] ; (800168c ) + 80014d2: 699b ldr r3, [r3, #24] + 80014d4: 4a6d ldr r2, [pc, #436] ; (800168c ) + 80014d6: f043 0380 orr.w r3, r3, #128 ; 0x80 + 80014da: 6193 str r3, [r2, #24] + 80014dc: 4b6b ldr r3, [pc, #428] ; (800168c ) + 80014de: 699b ldr r3, [r3, #24] + 80014e0: f003 0380 and.w r3, r3, #128 ; 0x80 + 80014e4: 613b str r3, [r7, #16] + 80014e6: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOA_CLK_ENABLE(); - 80013b8: 4b68 ldr r3, [pc, #416] ; (800155c ) - 80013ba: 699b ldr r3, [r3, #24] - 80013bc: 4a67 ldr r2, [pc, #412] ; (800155c ) - 80013be: f043 0304 orr.w r3, r3, #4 - 80013c2: 6193 str r3, [r2, #24] - 80013c4: 4b65 ldr r3, [pc, #404] ; (800155c ) - 80013c6: 699b ldr r3, [r3, #24] - 80013c8: f003 0304 and.w r3, r3, #4 - 80013cc: 60fb str r3, [r7, #12] - 80013ce: 68fb ldr r3, [r7, #12] + 80014e8: 4b68 ldr r3, [pc, #416] ; (800168c ) + 80014ea: 699b ldr r3, [r3, #24] + 80014ec: 4a67 ldr r2, [pc, #412] ; (800168c ) + 80014ee: f043 0304 orr.w r3, r3, #4 + 80014f2: 6193 str r3, [r2, #24] + 80014f4: 4b65 ldr r3, [pc, #404] ; (800168c ) + 80014f6: 699b ldr r3, [r3, #24] + 80014f8: f003 0304 and.w r3, r3, #4 + 80014fc: 60fb str r3, [r7, #12] + 80014fe: 68fb ldr r3, [r7, #12] __HAL_RCC_GPIOB_CLK_ENABLE(); - 80013d0: 4b62 ldr r3, [pc, #392] ; (800155c ) - 80013d2: 699b ldr r3, [r3, #24] - 80013d4: 4a61 ldr r2, [pc, #388] ; (800155c ) - 80013d6: f043 0308 orr.w r3, r3, #8 - 80013da: 6193 str r3, [r2, #24] - 80013dc: 4b5f ldr r3, [pc, #380] ; (800155c ) - 80013de: 699b ldr r3, [r3, #24] - 80013e0: f003 0308 and.w r3, r3, #8 - 80013e4: 60bb str r3, [r7, #8] - 80013e6: 68bb ldr r3, [r7, #8] + 8001500: 4b62 ldr r3, [pc, #392] ; (800168c ) + 8001502: 699b ldr r3, [r3, #24] + 8001504: 4a61 ldr r2, [pc, #388] ; (800168c ) + 8001506: f043 0308 orr.w r3, r3, #8 + 800150a: 6193 str r3, [r2, #24] + 800150c: 4b5f ldr r3, [pc, #380] ; (800168c ) + 800150e: 699b ldr r3, [r3, #24] + 8001510: f003 0308 and.w r3, r3, #8 + 8001514: 60bb str r3, [r7, #8] + 8001516: 68bb ldr r3, [r7, #8] __HAL_RCC_GPIOG_CLK_ENABLE(); - 80013e8: 4b5c ldr r3, [pc, #368] ; (800155c ) - 80013ea: 699b ldr r3, [r3, #24] - 80013ec: 4a5b ldr r2, [pc, #364] ; (800155c ) - 80013ee: f443 7380 orr.w r3, r3, #256 ; 0x100 - 80013f2: 6193 str r3, [r2, #24] - 80013f4: 4b59 ldr r3, [pc, #356] ; (800155c ) - 80013f6: 699b ldr r3, [r3, #24] - 80013f8: f403 7380 and.w r3, r3, #256 ; 0x100 - 80013fc: 607b str r3, [r7, #4] - 80013fe: 687b ldr r3, [r7, #4] + 8001518: 4b5c ldr r3, [pc, #368] ; (800168c ) + 800151a: 699b ldr r3, [r3, #24] + 800151c: 4a5b ldr r2, [pc, #364] ; (800168c ) + 800151e: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8001522: 6193 str r3, [r2, #24] + 8001524: 4b59 ldr r3, [pc, #356] ; (800168c ) + 8001526: 699b ldr r3, [r3, #24] + 8001528: f403 7380 and.w r3, r3, #256 ; 0x100 + 800152c: 607b str r3, [r7, #4] + 800152e: 687b ldr r3, [r7, #4] __HAL_RCC_GPIOD_CLK_ENABLE(); - 8001400: 4b56 ldr r3, [pc, #344] ; (800155c ) - 8001402: 699b ldr r3, [r3, #24] - 8001404: 4a55 ldr r2, [pc, #340] ; (800155c ) - 8001406: f043 0320 orr.w r3, r3, #32 - 800140a: 6193 str r3, [r2, #24] - 800140c: 4b53 ldr r3, [pc, #332] ; (800155c ) - 800140e: 699b ldr r3, [r3, #24] - 8001410: f003 0320 and.w r3, r3, #32 - 8001414: 603b str r3, [r7, #0] - 8001416: 683b ldr r3, [r7, #0] + 8001530: 4b56 ldr r3, [pc, #344] ; (800168c ) + 8001532: 699b ldr r3, [r3, #24] + 8001534: 4a55 ldr r2, [pc, #340] ; (800168c ) + 8001536: f043 0320 orr.w r3, r3, #32 + 800153a: 6193 str r3, [r2, #24] + 800153c: 4b53 ldr r3, [pc, #332] ; (800168c ) + 800153e: 699b ldr r3, [r3, #24] + 8001540: f003 0320 and.w r3, r3, #32 + 8001544: 603b str r3, [r7, #0] + 8001546: 683b ldr r3, [r7, #0] /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(TDIN_GPIO_Port, TDIN_Pin, GPIO_PIN_SET); - 8001418: 2201 movs r2, #1 - 800141a: f44f 7100 mov.w r1, #512 ; 0x200 - 800141e: 4850 ldr r0, [pc, #320] ; (8001560 ) - 8001420: f000 fe91 bl 8002146 + 8001548: 2201 movs r2, #1 + 800154a: f44f 7100 mov.w r1, #512 ; 0x200 + 800154e: 4850 ldr r0, [pc, #320] ; (8001690 ) + 8001550: f000 feeb bl 800232a /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(RC522_CS_GPIO_Port, RC522_CS_Pin, GPIO_PIN_RESET); - 8001424: 2200 movs r2, #0 - 8001426: 2110 movs r1, #16 - 8001428: 484e ldr r0, [pc, #312] ; (8001564 ) - 800142a: f000 fe8c bl 8002146 + 8001554: 2200 movs r2, #0 + 8001556: 2110 movs r1, #16 + 8001558: 484e ldr r0, [pc, #312] ; (8001694 ) + 800155a: f000 fee6 bl 800232a /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_RESET); - 800142e: 2200 movs r2, #0 - 8001430: 2101 movs r1, #1 - 8001432: 484d ldr r0, [pc, #308] ; (8001568 ) - 8001434: f000 fe87 bl 8002146 + 800155e: 2200 movs r2, #0 + 8001560: 2101 movs r1, #1 + 8001562: 484d ldr r0, [pc, #308] ; (8001698 ) + 8001564: f000 fee1 bl 800232a /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, TCLK_Pin|TCS_Pin|MAX_IRD_Pin|MAX_RD_Pin, GPIO_PIN_SET); - 8001438: 2201 movs r2, #1 - 800143a: f245 0106 movw r1, #20486 ; 0x5006 - 800143e: 484a ldr r0, [pc, #296] ; (8001568 ) - 8001440: f000 fe81 bl 8002146 + 8001568: 2201 movs r2, #1 + 800156a: f245 0106 movw r1, #20486 ; 0x5006 + 800156e: 484a ldr r0, [pc, #296] ; (8001698 ) + 8001570: f000 fedb bl 800232a /*Configure GPIO pins : KEY3_Pin KEY2_Pin KEY1_Pin */ GPIO_InitStruct.Pin = KEY3_Pin|KEY2_Pin|KEY1_Pin; - 8001444: 231c movs r3, #28 - 8001446: 61bb str r3, [r7, #24] + 8001574: 231c movs r3, #28 + 8001576: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8001448: 2300 movs r3, #0 - 800144a: 61fb str r3, [r7, #28] + 8001578: 2300 movs r3, #0 + 800157a: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_PULLUP; - 800144c: 2301 movs r3, #1 - 800144e: 623b str r3, [r7, #32] + 800157c: 2301 movs r3, #1 + 800157e: 623b str r3, [r7, #32] HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - 8001450: f107 0318 add.w r3, r7, #24 - 8001454: 4619 mov r1, r3 - 8001456: 4845 ldr r0, [pc, #276] ; (800156c ) - 8001458: f000 fcca bl 8001df0 + 8001580: f107 0318 add.w r3, r7, #24 + 8001584: 4619 mov r1, r3 + 8001586: 4845 ldr r0, [pc, #276] ; (800169c ) + 8001588: f000 fd24 bl 8001fd4 /*Configure GPIO pin : TDOUT_Pin */ GPIO_InitStruct.Pin = TDOUT_Pin; - 800145c: f44f 7380 mov.w r3, #256 ; 0x100 - 8001460: 61bb str r3, [r7, #24] + 800158c: f44f 7380 mov.w r3, #256 ; 0x100 + 8001590: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8001462: 2300 movs r3, #0 - 8001464: 61fb str r3, [r7, #28] + 8001592: 2300 movs r3, #0 + 8001594: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001466: 2300 movs r3, #0 - 8001468: 623b str r3, [r7, #32] + 8001596: 2300 movs r3, #0 + 8001598: 623b str r3, [r7, #32] HAL_GPIO_Init(TDOUT_GPIO_Port, &GPIO_InitStruct); - 800146a: f107 0318 add.w r3, r7, #24 - 800146e: 4619 mov r1, r3 - 8001470: 483b ldr r0, [pc, #236] ; (8001560 ) - 8001472: f000 fcbd bl 8001df0 + 800159a: f107 0318 add.w r3, r7, #24 + 800159e: 4619 mov r1, r3 + 80015a0: 483b ldr r0, [pc, #236] ; (8001690 ) + 80015a2: f000 fd17 bl 8001fd4 /*Configure GPIO pin : TDIN_Pin */ GPIO_InitStruct.Pin = TDIN_Pin; - 8001476: f44f 7300 mov.w r3, #512 ; 0x200 - 800147a: 61bb str r3, [r7, #24] + 80015a6: f44f 7300 mov.w r3, #512 ; 0x200 + 80015aa: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 800147c: 2301 movs r3, #1 - 800147e: 61fb str r3, [r7, #28] + 80015ac: 2301 movs r3, #1 + 80015ae: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001480: 2300 movs r3, #0 - 8001482: 623b str r3, [r7, #32] + 80015b0: 2300 movs r3, #0 + 80015b2: 623b str r3, [r7, #32] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8001484: 2303 movs r3, #3 - 8001486: 627b str r3, [r7, #36] ; 0x24 + 80015b4: 2303 movs r3, #3 + 80015b6: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(TDIN_GPIO_Port, &GPIO_InitStruct); - 8001488: f107 0318 add.w r3, r7, #24 - 800148c: 4619 mov r1, r3 - 800148e: 4834 ldr r0, [pc, #208] ; (8001560 ) - 8001490: f000 fcae bl 8001df0 + 80015b8: f107 0318 add.w r3, r7, #24 + 80015bc: 4619 mov r1, r3 + 80015be: 4834 ldr r0, [pc, #208] ; (8001690 ) + 80015c0: f000 fd08 bl 8001fd4 /*Configure GPIO pin : TPEN_Pin */ GPIO_InitStruct.Pin = TPEN_Pin; - 8001494: f44f 6380 mov.w r3, #1024 ; 0x400 - 8001498: 61bb str r3, [r7, #24] + 80015c4: f44f 6380 mov.w r3, #1024 ; 0x400 + 80015c8: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 800149a: 2300 movs r3, #0 - 800149c: 61fb str r3, [r7, #28] + 80015ca: 2300 movs r3, #0 + 80015cc: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_PULLUP; - 800149e: 2301 movs r3, #1 - 80014a0: 623b str r3, [r7, #32] + 80015ce: 2301 movs r3, #1 + 80015d0: 623b str r3, [r7, #32] HAL_GPIO_Init(TPEN_GPIO_Port, &GPIO_InitStruct); - 80014a2: f107 0318 add.w r3, r7, #24 - 80014a6: 4619 mov r1, r3 - 80014a8: 482d ldr r0, [pc, #180] ; (8001560 ) - 80014aa: f000 fca1 bl 8001df0 + 80015d2: f107 0318 add.w r3, r7, #24 + 80015d6: 4619 mov r1, r3 + 80015d8: 482d ldr r0, [pc, #180] ; (8001690 ) + 80015da: f000 fcfb bl 8001fd4 /*Configure GPIO pin : KEY0_Pin */ GPIO_InitStruct.Pin = KEY0_Pin; - 80014ae: 2301 movs r3, #1 - 80014b0: 61bb str r3, [r7, #24] + 80015de: 2301 movs r3, #1 + 80015e0: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 80014b2: 2300 movs r3, #0 - 80014b4: 61fb str r3, [r7, #28] + 80015e2: 2300 movs r3, #0 + 80015e4: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_NOPULL; - 80014b6: 2300 movs r3, #0 - 80014b8: 623b str r3, [r7, #32] + 80015e6: 2300 movs r3, #0 + 80015e8: 623b str r3, [r7, #32] HAL_GPIO_Init(KEY0_GPIO_Port, &GPIO_InitStruct); - 80014ba: f107 0318 add.w r3, r7, #24 - 80014be: 4619 mov r1, r3 - 80014c0: 4828 ldr r0, [pc, #160] ; (8001564 ) - 80014c2: f000 fc95 bl 8001df0 + 80015ea: f107 0318 add.w r3, r7, #24 + 80015ee: 4619 mov r1, r3 + 80015f0: 4828 ldr r0, [pc, #160] ; (8001694 ) + 80015f2: f000 fcef bl 8001fd4 /*Configure GPIO pin : RC522_CS_Pin */ GPIO_InitStruct.Pin = RC522_CS_Pin; - 80014c6: 2310 movs r3, #16 - 80014c8: 61bb str r3, [r7, #24] + 80015f6: 2310 movs r3, #16 + 80015f8: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 80014ca: 2301 movs r3, #1 - 80014cc: 61fb str r3, [r7, #28] + 80015fa: 2301 movs r3, #1 + 80015fc: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_NOPULL; - 80014ce: 2300 movs r3, #0 - 80014d0: 623b str r3, [r7, #32] + 80015fe: 2300 movs r3, #0 + 8001600: 623b str r3, [r7, #32] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 80014d2: 2302 movs r3, #2 - 80014d4: 627b str r3, [r7, #36] ; 0x24 + 8001602: 2302 movs r3, #2 + 8001604: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(RC522_CS_GPIO_Port, &GPIO_InitStruct); - 80014d6: f107 0318 add.w r3, r7, #24 - 80014da: 4619 mov r1, r3 - 80014dc: 4821 ldr r0, [pc, #132] ; (8001564 ) - 80014de: f000 fc87 bl 8001df0 + 8001606: f107 0318 add.w r3, r7, #24 + 800160a: 4619 mov r1, r3 + 800160c: 4821 ldr r0, [pc, #132] ; (8001694 ) + 800160e: f000 fce1 bl 8001fd4 /*Configure GPIO pin : LCD_BL_Pin */ GPIO_InitStruct.Pin = LCD_BL_Pin; - 80014e2: 2301 movs r3, #1 - 80014e4: 61bb str r3, [r7, #24] + 8001612: 2301 movs r3, #1 + 8001614: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 80014e6: 2301 movs r3, #1 - 80014e8: 61fb str r3, [r7, #28] + 8001616: 2301 movs r3, #1 + 8001618: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_NOPULL; - 80014ea: 2300 movs r3, #0 - 80014ec: 623b str r3, [r7, #32] + 800161a: 2300 movs r3, #0 + 800161c: 623b str r3, [r7, #32] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 80014ee: 2302 movs r3, #2 - 80014f0: 627b str r3, [r7, #36] ; 0x24 + 800161e: 2302 movs r3, #2 + 8001620: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(LCD_BL_GPIO_Port, &GPIO_InitStruct); - 80014f2: f107 0318 add.w r3, r7, #24 - 80014f6: 4619 mov r1, r3 - 80014f8: 481b ldr r0, [pc, #108] ; (8001568 ) - 80014fa: f000 fc79 bl 8001df0 + 8001622: f107 0318 add.w r3, r7, #24 + 8001626: 4619 mov r1, r3 + 8001628: 481b ldr r0, [pc, #108] ; (8001698 ) + 800162a: f000 fcd3 bl 8001fd4 /*Configure GPIO pins : TCLK_Pin TCS_Pin */ GPIO_InitStruct.Pin = TCLK_Pin|TCS_Pin; - 80014fe: 2306 movs r3, #6 - 8001500: 61bb str r3, [r7, #24] + 800162e: 2306 movs r3, #6 + 8001630: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8001502: 2301 movs r3, #1 - 8001504: 61fb str r3, [r7, #28] + 8001632: 2301 movs r3, #1 + 8001634: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001506: 2300 movs r3, #0 - 8001508: 623b str r3, [r7, #32] + 8001636: 2300 movs r3, #0 + 8001638: 623b str r3, [r7, #32] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 800150a: 2303 movs r3, #3 - 800150c: 627b str r3, [r7, #36] ; 0x24 + 800163a: 2303 movs r3, #3 + 800163c: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 800150e: f107 0318 add.w r3, r7, #24 - 8001512: 4619 mov r1, r3 - 8001514: 4814 ldr r0, [pc, #80] ; (8001568 ) - 8001516: f000 fc6b bl 8001df0 + 800163e: f107 0318 add.w r3, r7, #24 + 8001642: 4619 mov r1, r3 + 8001644: 4814 ldr r0, [pc, #80] ; (8001698 ) + 8001646: f000 fcc5 bl 8001fd4 /*Configure GPIO pins : MAX_IRD_Pin MAX_RD_Pin */ GPIO_InitStruct.Pin = MAX_IRD_Pin|MAX_RD_Pin; - 800151a: f44f 43a0 mov.w r3, #20480 ; 0x5000 - 800151e: 61bb str r3, [r7, #24] + 800164a: f44f 43a0 mov.w r3, #20480 ; 0x5000 + 800164e: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8001520: 2301 movs r3, #1 - 8001522: 61fb str r3, [r7, #28] + 8001650: 2301 movs r3, #1 + 8001652: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_PULLUP; - 8001524: 2301 movs r3, #1 - 8001526: 623b str r3, [r7, #32] + 8001654: 2301 movs r3, #1 + 8001656: 623b str r3, [r7, #32] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8001528: 2303 movs r3, #3 - 800152a: 627b str r3, [r7, #36] ; 0x24 + 8001658: 2303 movs r3, #3 + 800165a: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 800152c: f107 0318 add.w r3, r7, #24 - 8001530: 4619 mov r1, r3 - 8001532: 480d ldr r0, [pc, #52] ; (8001568 ) - 8001534: f000 fc5c bl 8001df0 + 800165c: f107 0318 add.w r3, r7, #24 + 8001660: 4619 mov r1, r3 + 8001662: 480d ldr r0, [pc, #52] ; (8001698 ) + 8001664: f000 fcb6 bl 8001fd4 /*Configure GPIO pin : MAX_INT_Pin */ GPIO_InitStruct.Pin = MAX_INT_Pin; - 8001538: f44f 5300 mov.w r3, #8192 ; 0x2000 - 800153c: 61bb str r3, [r7, #24] + 8001668: f44f 5300 mov.w r3, #8192 ; 0x2000 + 800166c: 61bb str r3, [r7, #24] GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 800153e: 2300 movs r3, #0 - 8001540: 61fb str r3, [r7, #28] + 800166e: 2300 movs r3, #0 + 8001670: 61fb str r3, [r7, #28] GPIO_InitStruct.Pull = GPIO_PULLUP; - 8001542: 2301 movs r3, #1 - 8001544: 623b str r3, [r7, #32] + 8001672: 2301 movs r3, #1 + 8001674: 623b str r3, [r7, #32] HAL_GPIO_Init(MAX_INT_GPIO_Port, &GPIO_InitStruct); - 8001546: f107 0318 add.w r3, r7, #24 - 800154a: 4619 mov r1, r3 - 800154c: 4806 ldr r0, [pc, #24] ; (8001568 ) - 800154e: f000 fc4f bl 8001df0 + 8001676: f107 0318 add.w r3, r7, #24 + 800167a: 4619 mov r1, r3 + 800167c: 4806 ldr r0, [pc, #24] ; (8001698 ) + 800167e: f000 fca9 bl 8001fd4 } - 8001552: bf00 nop - 8001554: 3728 adds r7, #40 ; 0x28 - 8001556: 46bd mov sp, r7 - 8001558: bd80 pop {r7, pc} - 800155a: bf00 nop - 800155c: 40021000 .word 0x40021000 - 8001560: 40011c00 .word 0x40011c00 - 8001564: 40010800 .word 0x40010800 - 8001568: 40010c00 .word 0x40010c00 - 800156c: 40011800 .word 0x40011800 + 8001682: bf00 nop + 8001684: 3728 adds r7, #40 ; 0x28 + 8001686: 46bd mov sp, r7 + 8001688: bd80 pop {r7, pc} + 800168a: bf00 nop + 800168c: 40021000 .word 0x40021000 + 8001690: 40011c00 .word 0x40011c00 + 8001694: 40010800 .word 0x40010800 + 8001698: 40010c00 .word 0x40010c00 + 800169c: 40011800 .word 0x40011800 -08001570 : +080016a0 : /* FSMC initialization function */ static void MX_FSMC_Init(void) { - 8001570: b580 push {r7, lr} - 8001572: b088 sub sp, #32 - 8001574: af00 add r7, sp, #0 + 80016a0: b580 push {r7, lr} + 80016a2: b088 sub sp, #32 + 80016a4: af00 add r7, sp, #0 /* USER CODE BEGIN FSMC_Init 0 */ /* USER CODE END FSMC_Init 0 */ FSMC_NORSRAM_TimingTypeDef Timing = {0}; - 8001576: 1d3b adds r3, r7, #4 - 8001578: 2200 movs r2, #0 - 800157a: 601a str r2, [r3, #0] - 800157c: 605a str r2, [r3, #4] - 800157e: 609a str r2, [r3, #8] - 8001580: 60da str r2, [r3, #12] - 8001582: 611a str r2, [r3, #16] - 8001584: 615a str r2, [r3, #20] - 8001586: 619a str r2, [r3, #24] + 80016a6: 1d3b adds r3, r7, #4 + 80016a8: 2200 movs r2, #0 + 80016aa: 601a str r2, [r3, #0] + 80016ac: 605a str r2, [r3, #4] + 80016ae: 609a str r2, [r3, #8] + 80016b0: 60da str r2, [r3, #12] + 80016b2: 611a str r2, [r3, #16] + 80016b4: 615a str r2, [r3, #20] + 80016b6: 619a str r2, [r3, #24] /* USER CODE END FSMC_Init 1 */ /** Perform the SRAM1 memory initialization sequence */ hsram1.Instance = FSMC_NORSRAM_DEVICE; - 8001588: 4b28 ldr r3, [pc, #160] ; (800162c ) - 800158a: f04f 4220 mov.w r2, #2684354560 ; 0xa0000000 - 800158e: 601a str r2, [r3, #0] + 80016b8: 4b28 ldr r3, [pc, #160] ; (800175c ) + 80016ba: f04f 4220 mov.w r2, #2684354560 ; 0xa0000000 + 80016be: 601a str r2, [r3, #0] hsram1.Extended = FSMC_NORSRAM_EXTENDED_DEVICE; - 8001590: 4b26 ldr r3, [pc, #152] ; (800162c ) - 8001592: 4a27 ldr r2, [pc, #156] ; (8001630 ) - 8001594: 605a str r2, [r3, #4] + 80016c0: 4b26 ldr r3, [pc, #152] ; (800175c ) + 80016c2: 4a27 ldr r2, [pc, #156] ; (8001760 ) + 80016c4: 605a str r2, [r3, #4] /* hsram1.Init */ hsram1.Init.NSBank = FSMC_NORSRAM_BANK4; - 8001596: 4b25 ldr r3, [pc, #148] ; (800162c ) - 8001598: 2206 movs r2, #6 - 800159a: 609a str r2, [r3, #8] + 80016c6: 4b25 ldr r3, [pc, #148] ; (800175c ) + 80016c8: 2206 movs r2, #6 + 80016ca: 609a str r2, [r3, #8] hsram1.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE; - 800159c: 4b23 ldr r3, [pc, #140] ; (800162c ) - 800159e: 2200 movs r2, #0 - 80015a0: 60da str r2, [r3, #12] + 80016cc: 4b23 ldr r3, [pc, #140] ; (800175c ) + 80016ce: 2200 movs r2, #0 + 80016d0: 60da str r2, [r3, #12] hsram1.Init.MemoryType = FSMC_MEMORY_TYPE_SRAM; - 80015a2: 4b22 ldr r3, [pc, #136] ; (800162c ) - 80015a4: 2200 movs r2, #0 - 80015a6: 611a str r2, [r3, #16] + 80016d2: 4b22 ldr r3, [pc, #136] ; (800175c ) + 80016d4: 2200 movs r2, #0 + 80016d6: 611a str r2, [r3, #16] hsram1.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16; - 80015a8: 4b20 ldr r3, [pc, #128] ; (800162c ) - 80015aa: 2210 movs r2, #16 - 80015ac: 615a str r2, [r3, #20] + 80016d8: 4b20 ldr r3, [pc, #128] ; (800175c ) + 80016da: 2210 movs r2, #16 + 80016dc: 615a str r2, [r3, #20] hsram1.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_DISABLE; - 80015ae: 4b1f ldr r3, [pc, #124] ; (800162c ) - 80015b0: 2200 movs r2, #0 - 80015b2: 619a str r2, [r3, #24] + 80016de: 4b1f ldr r3, [pc, #124] ; (800175c ) + 80016e0: 2200 movs r2, #0 + 80016e2: 619a str r2, [r3, #24] hsram1.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW; - 80015b4: 4b1d ldr r3, [pc, #116] ; (800162c ) - 80015b6: 2200 movs r2, #0 - 80015b8: 61da str r2, [r3, #28] + 80016e4: 4b1d ldr r3, [pc, #116] ; (800175c ) + 80016e6: 2200 movs r2, #0 + 80016e8: 61da str r2, [r3, #28] hsram1.Init.WrapMode = FSMC_WRAP_MODE_DISABLE; - 80015ba: 4b1c ldr r3, [pc, #112] ; (800162c ) - 80015bc: 2200 movs r2, #0 - 80015be: 621a str r2, [r3, #32] + 80016ea: 4b1c ldr r3, [pc, #112] ; (800175c ) + 80016ec: 2200 movs r2, #0 + 80016ee: 621a str r2, [r3, #32] hsram1.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS; - 80015c0: 4b1a ldr r3, [pc, #104] ; (800162c ) - 80015c2: 2200 movs r2, #0 - 80015c4: 625a str r2, [r3, #36] ; 0x24 + 80016f0: 4b1a ldr r3, [pc, #104] ; (800175c ) + 80016f2: 2200 movs r2, #0 + 80016f4: 625a str r2, [r3, #36] ; 0x24 hsram1.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE; - 80015c6: 4b19 ldr r3, [pc, #100] ; (800162c ) - 80015c8: f44f 5280 mov.w r2, #4096 ; 0x1000 - 80015cc: 629a str r2, [r3, #40] ; 0x28 + 80016f6: 4b19 ldr r3, [pc, #100] ; (800175c ) + 80016f8: f44f 5280 mov.w r2, #4096 ; 0x1000 + 80016fc: 629a str r2, [r3, #40] ; 0x28 hsram1.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE; - 80015ce: 4b17 ldr r3, [pc, #92] ; (800162c ) - 80015d0: 2200 movs r2, #0 - 80015d2: 62da str r2, [r3, #44] ; 0x2c + 80016fe: 4b17 ldr r3, [pc, #92] ; (800175c ) + 8001700: 2200 movs r2, #0 + 8001702: 62da str r2, [r3, #44] ; 0x2c hsram1.Init.ExtendedMode = FSMC_EXTENDED_MODE_DISABLE; - 80015d4: 4b15 ldr r3, [pc, #84] ; (800162c ) - 80015d6: 2200 movs r2, #0 - 80015d8: 631a str r2, [r3, #48] ; 0x30 + 8001704: 4b15 ldr r3, [pc, #84] ; (800175c ) + 8001706: 2200 movs r2, #0 + 8001708: 631a str r2, [r3, #48] ; 0x30 hsram1.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE; - 80015da: 4b14 ldr r3, [pc, #80] ; (800162c ) - 80015dc: 2200 movs r2, #0 - 80015de: 635a str r2, [r3, #52] ; 0x34 + 800170a: 4b14 ldr r3, [pc, #80] ; (800175c ) + 800170c: 2200 movs r2, #0 + 800170e: 635a str r2, [r3, #52] ; 0x34 hsram1.Init.WriteBurst = FSMC_WRITE_BURST_DISABLE; - 80015e0: 4b12 ldr r3, [pc, #72] ; (800162c ) - 80015e2: 2200 movs r2, #0 - 80015e4: 639a str r2, [r3, #56] ; 0x38 + 8001710: 4b12 ldr r3, [pc, #72] ; (800175c ) + 8001712: 2200 movs r2, #0 + 8001714: 639a str r2, [r3, #56] ; 0x38 /* Timing */ Timing.AddressSetupTime = 0; - 80015e6: 2300 movs r3, #0 - 80015e8: 607b str r3, [r7, #4] + 8001716: 2300 movs r3, #0 + 8001718: 607b str r3, [r7, #4] Timing.AddressHoldTime = 15; - 80015ea: 230f movs r3, #15 - 80015ec: 60bb str r3, [r7, #8] + 800171a: 230f movs r3, #15 + 800171c: 60bb str r3, [r7, #8] Timing.DataSetupTime = 1; - 80015ee: 2301 movs r3, #1 - 80015f0: 60fb str r3, [r7, #12] + 800171e: 2301 movs r3, #1 + 8001720: 60fb str r3, [r7, #12] Timing.BusTurnAroundDuration = 0; - 80015f2: 2300 movs r3, #0 - 80015f4: 613b str r3, [r7, #16] + 8001722: 2300 movs r3, #0 + 8001724: 613b str r3, [r7, #16] Timing.CLKDivision = 16; - 80015f6: 2310 movs r3, #16 - 80015f8: 617b str r3, [r7, #20] + 8001726: 2310 movs r3, #16 + 8001728: 617b str r3, [r7, #20] Timing.DataLatency = 17; - 80015fa: 2311 movs r3, #17 - 80015fc: 61bb str r3, [r7, #24] + 800172a: 2311 movs r3, #17 + 800172c: 61bb str r3, [r7, #24] Timing.AccessMode = FSMC_ACCESS_MODE_A; - 80015fe: 2300 movs r3, #0 - 8001600: 61fb str r3, [r7, #28] + 800172e: 2300 movs r3, #0 + 8001730: 61fb str r3, [r7, #28] /* ExtTiming */ if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK) - 8001602: 1d3b adds r3, r7, #4 - 8001604: 2200 movs r2, #0 - 8001606: 4619 mov r1, r3 - 8001608: 4808 ldr r0, [pc, #32] ; (800162c ) - 800160a: f002 fa3f bl 8003a8c - 800160e: 4603 mov r3, r0 - 8001610: 2b00 cmp r3, #0 - 8001612: d001 beq.n 8001618 + 8001732: 1d3b adds r3, r7, #4 + 8001734: 2200 movs r2, #0 + 8001736: 4619 mov r1, r3 + 8001738: 4808 ldr r0, [pc, #32] ; (800175c ) + 800173a: f002 fa99 bl 8003c70 + 800173e: 4603 mov r3, r0 + 8001740: 2b00 cmp r3, #0 + 8001742: d001 beq.n 8001748 { Error_Handler( ); - 8001614: f000 f810 bl 8001638 + 8001744: f000 f810 bl 8001768 } /** Disconnect NADV */ __HAL_AFIO_FSMCNADV_DISCONNECTED(); - 8001618: 4b06 ldr r3, [pc, #24] ; (8001634 ) - 800161a: 69db ldr r3, [r3, #28] - 800161c: 4a05 ldr r2, [pc, #20] ; (8001634 ) - 800161e: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 8001622: 61d3 str r3, [r2, #28] + 8001748: 4b06 ldr r3, [pc, #24] ; (8001764 ) + 800174a: 69db ldr r3, [r3, #28] + 800174c: 4a05 ldr r2, [pc, #20] ; (8001764 ) + 800174e: f443 6380 orr.w r3, r3, #1024 ; 0x400 + 8001752: 61d3 str r3, [r2, #28] /* USER CODE BEGIN FSMC_Init 2 */ /* USER CODE END FSMC_Init 2 */ } - 8001624: bf00 nop - 8001626: 3720 adds r7, #32 - 8001628: 46bd mov sp, r7 - 800162a: bd80 pop {r7, pc} - 800162c: 200002bc .word 0x200002bc - 8001630: a0000104 .word 0xa0000104 - 8001634: 40010000 .word 0x40010000 + 8001754: bf00 nop + 8001756: 3720 adds r7, #32 + 8001758: 46bd mov sp, r7 + 800175a: bd80 pop {r7, pc} + 800175c: 200002c8 .word 0x200002c8 + 8001760: a0000104 .word 0xa0000104 + 8001764: 40010000 .word 0x40010000 -08001638 : +08001768 : /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { - 8001638: b480 push {r7} - 800163a: af00 add r7, sp, #0 + 8001768: b480 push {r7} + 800176a: af00 add r7, sp, #0 \details Disables IRQ interrupts by setting the I-bit in the CPSR. Can only be executed in Privileged modes. */ __STATIC_FORCEINLINE void __disable_irq(void) { __ASM volatile ("cpsid i" : : : "memory"); - 800163c: b672 cpsid i + 800176c: b672 cpsid i } - 800163e: bf00 nop + 800176e: bf00 nop /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ __disable_irq(); while (1) - 8001640: e7fe b.n 8001640 + 8001770: e7fe b.n 8001770 ... -08001644 : -/* USER CODE END 0 */ -/** +08001774 : +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + /** * Initializes the Global MSP. */ void HAL_MspInit(void) { - 8001644: b480 push {r7} - 8001646: b085 sub sp, #20 - 8001648: af00 add r7, sp, #0 + 8001774: b480 push {r7} + 8001776: b085 sub sp, #20 + 8001778: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_AFIO_CLK_ENABLE(); - 800164a: 4b15 ldr r3, [pc, #84] ; (80016a0 ) - 800164c: 699b ldr r3, [r3, #24] - 800164e: 4a14 ldr r2, [pc, #80] ; (80016a0 ) - 8001650: f043 0301 orr.w r3, r3, #1 - 8001654: 6193 str r3, [r2, #24] - 8001656: 4b12 ldr r3, [pc, #72] ; (80016a0 ) - 8001658: 699b ldr r3, [r3, #24] - 800165a: f003 0301 and.w r3, r3, #1 - 800165e: 60bb str r3, [r7, #8] - 8001660: 68bb ldr r3, [r7, #8] + 800177a: 4b15 ldr r3, [pc, #84] ; (80017d0 ) + 800177c: 699b ldr r3, [r3, #24] + 800177e: 4a14 ldr r2, [pc, #80] ; (80017d0 ) + 8001780: f043 0301 orr.w r3, r3, #1 + 8001784: 6193 str r3, [r2, #24] + 8001786: 4b12 ldr r3, [pc, #72] ; (80017d0 ) + 8001788: 699b ldr r3, [r3, #24] + 800178a: f003 0301 and.w r3, r3, #1 + 800178e: 60bb str r3, [r7, #8] + 8001790: 68bb ldr r3, [r7, #8] __HAL_RCC_PWR_CLK_ENABLE(); - 8001662: 4b0f ldr r3, [pc, #60] ; (80016a0 ) - 8001664: 69db ldr r3, [r3, #28] - 8001666: 4a0e ldr r2, [pc, #56] ; (80016a0 ) - 8001668: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 800166c: 61d3 str r3, [r2, #28] - 800166e: 4b0c ldr r3, [pc, #48] ; (80016a0 ) - 8001670: 69db ldr r3, [r3, #28] - 8001672: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8001676: 607b str r3, [r7, #4] - 8001678: 687b ldr r3, [r7, #4] + 8001792: 4b0f ldr r3, [pc, #60] ; (80017d0 ) + 8001794: 69db ldr r3, [r3, #28] + 8001796: 4a0e ldr r2, [pc, #56] ; (80017d0 ) + 8001798: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 800179c: 61d3 str r3, [r2, #28] + 800179e: 4b0c ldr r3, [pc, #48] ; (80017d0 ) + 80017a0: 69db ldr r3, [r3, #28] + 80017a2: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 80017a6: 607b str r3, [r7, #4] + 80017a8: 687b ldr r3, [r7, #4] /* System interrupt init*/ /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled */ __HAL_AFIO_REMAP_SWJ_NOJTAG(); - 800167a: 4b0a ldr r3, [pc, #40] ; (80016a4 ) - 800167c: 685b ldr r3, [r3, #4] - 800167e: 60fb str r3, [r7, #12] - 8001680: 68fb ldr r3, [r7, #12] - 8001682: f023 63e0 bic.w r3, r3, #117440512 ; 0x7000000 - 8001686: 60fb str r3, [r7, #12] - 8001688: 68fb ldr r3, [r7, #12] - 800168a: f043 7300 orr.w r3, r3, #33554432 ; 0x2000000 - 800168e: 60fb str r3, [r7, #12] - 8001690: 4a04 ldr r2, [pc, #16] ; (80016a4 ) - 8001692: 68fb ldr r3, [r7, #12] - 8001694: 6053 str r3, [r2, #4] + 80017aa: 4b0a ldr r3, [pc, #40] ; (80017d4 ) + 80017ac: 685b ldr r3, [r3, #4] + 80017ae: 60fb str r3, [r7, #12] + 80017b0: 68fb ldr r3, [r7, #12] + 80017b2: f023 63e0 bic.w r3, r3, #117440512 ; 0x7000000 + 80017b6: 60fb str r3, [r7, #12] + 80017b8: 68fb ldr r3, [r7, #12] + 80017ba: f043 7300 orr.w r3, r3, #33554432 ; 0x2000000 + 80017be: 60fb str r3, [r7, #12] + 80017c0: 4a04 ldr r2, [pc, #16] ; (80017d4 ) + 80017c2: 68fb ldr r3, [r7, #12] + 80017c4: 6053 str r3, [r2, #4] /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } - 8001696: bf00 nop - 8001698: 3714 adds r7, #20 - 800169a: 46bd mov sp, r7 - 800169c: bc80 pop {r7} - 800169e: 4770 bx lr - 80016a0: 40021000 .word 0x40021000 - 80016a4: 40010000 .word 0x40010000 + 80017c6: bf00 nop + 80017c8: 3714 adds r7, #20 + 80017ca: 46bd mov sp, r7 + 80017cc: bc80 pop {r7} + 80017ce: 4770 bx lr + 80017d0: 40021000 .word 0x40021000 + 80017d4: 40010000 .word 0x40010000 -080016a8 : +080017d8 : * This function configures the hardware resources used in this example * @param hi2c: I2C handle pointer * @retval None */ void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) { - 80016a8: b580 push {r7, lr} - 80016aa: b088 sub sp, #32 - 80016ac: af00 add r7, sp, #0 - 80016ae: 6078 str r0, [r7, #4] + 80017d8: b580 push {r7, lr} + 80017da: b088 sub sp, #32 + 80017dc: af00 add r7, sp, #0 + 80017de: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 80016b0: f107 0310 add.w r3, r7, #16 - 80016b4: 2200 movs r2, #0 - 80016b6: 601a str r2, [r3, #0] - 80016b8: 605a str r2, [r3, #4] - 80016ba: 609a str r2, [r3, #8] - 80016bc: 60da str r2, [r3, #12] + 80017e0: f107 0310 add.w r3, r7, #16 + 80017e4: 2200 movs r2, #0 + 80017e6: 601a str r2, [r3, #0] + 80017e8: 605a str r2, [r3, #4] + 80017ea: 609a str r2, [r3, #8] + 80017ec: 60da str r2, [r3, #12] if(hi2c->Instance==I2C2) - 80016be: 687b ldr r3, [r7, #4] - 80016c0: 681b ldr r3, [r3, #0] - 80016c2: 4a16 ldr r2, [pc, #88] ; (800171c ) - 80016c4: 4293 cmp r3, r2 - 80016c6: d124 bne.n 8001712 + 80017ee: 687b ldr r3, [r7, #4] + 80017f0: 681b ldr r3, [r3, #0] + 80017f2: 4a16 ldr r2, [pc, #88] ; (800184c ) + 80017f4: 4293 cmp r3, r2 + 80017f6: d124 bne.n 8001842 { /* USER CODE BEGIN I2C2_MspInit 0 */ /* USER CODE END I2C2_MspInit 0 */ __HAL_RCC_GPIOB_CLK_ENABLE(); - 80016c8: 4b15 ldr r3, [pc, #84] ; (8001720 ) - 80016ca: 699b ldr r3, [r3, #24] - 80016cc: 4a14 ldr r2, [pc, #80] ; (8001720 ) - 80016ce: f043 0308 orr.w r3, r3, #8 - 80016d2: 6193 str r3, [r2, #24] - 80016d4: 4b12 ldr r3, [pc, #72] ; (8001720 ) - 80016d6: 699b ldr r3, [r3, #24] - 80016d8: f003 0308 and.w r3, r3, #8 - 80016dc: 60fb str r3, [r7, #12] - 80016de: 68fb ldr r3, [r7, #12] + 80017f8: 4b15 ldr r3, [pc, #84] ; (8001850 ) + 80017fa: 699b ldr r3, [r3, #24] + 80017fc: 4a14 ldr r2, [pc, #80] ; (8001850 ) + 80017fe: f043 0308 orr.w r3, r3, #8 + 8001802: 6193 str r3, [r2, #24] + 8001804: 4b12 ldr r3, [pc, #72] ; (8001850 ) + 8001806: 699b ldr r3, [r3, #24] + 8001808: f003 0308 and.w r3, r3, #8 + 800180c: 60fb str r3, [r7, #12] + 800180e: 68fb ldr r3, [r7, #12] /**I2C2 GPIO Configuration PB10 ------> I2C2_SCL PB11 ------> I2C2_SDA */ GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; - 80016e0: f44f 6340 mov.w r3, #3072 ; 0xc00 - 80016e4: 613b str r3, [r7, #16] + 8001810: f44f 6340 mov.w r3, #3072 ; 0xc00 + 8001814: 613b str r3, [r7, #16] GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - 80016e6: 2312 movs r3, #18 - 80016e8: 617b str r3, [r7, #20] + 8001816: 2312 movs r3, #18 + 8001818: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 80016ea: 2303 movs r3, #3 - 80016ec: 61fb str r3, [r7, #28] + 800181a: 2303 movs r3, #3 + 800181c: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 80016ee: f107 0310 add.w r3, r7, #16 - 80016f2: 4619 mov r1, r3 - 80016f4: 480b ldr r0, [pc, #44] ; (8001724 ) - 80016f6: f000 fb7b bl 8001df0 + 800181e: f107 0310 add.w r3, r7, #16 + 8001822: 4619 mov r1, r3 + 8001824: 480b ldr r0, [pc, #44] ; (8001854 ) + 8001826: f000 fbd5 bl 8001fd4 /* Peripheral clock enable */ __HAL_RCC_I2C2_CLK_ENABLE(); - 80016fa: 4b09 ldr r3, [pc, #36] ; (8001720 ) - 80016fc: 69db ldr r3, [r3, #28] - 80016fe: 4a08 ldr r2, [pc, #32] ; (8001720 ) - 8001700: f443 0380 orr.w r3, r3, #4194304 ; 0x400000 - 8001704: 61d3 str r3, [r2, #28] - 8001706: 4b06 ldr r3, [pc, #24] ; (8001720 ) - 8001708: 69db ldr r3, [r3, #28] - 800170a: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 800170e: 60bb str r3, [r7, #8] - 8001710: 68bb ldr r3, [r7, #8] + 800182a: 4b09 ldr r3, [pc, #36] ; (8001850 ) + 800182c: 69db ldr r3, [r3, #28] + 800182e: 4a08 ldr r2, [pc, #32] ; (8001850 ) + 8001830: f443 0380 orr.w r3, r3, #4194304 ; 0x400000 + 8001834: 61d3 str r3, [r2, #28] + 8001836: 4b06 ldr r3, [pc, #24] ; (8001850 ) + 8001838: 69db ldr r3, [r3, #28] + 800183a: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 800183e: 60bb str r3, [r7, #8] + 8001840: 68bb ldr r3, [r7, #8] /* USER CODE BEGIN I2C2_MspInit 1 */ /* USER CODE END I2C2_MspInit 1 */ } } - 8001712: bf00 nop - 8001714: 3720 adds r7, #32 - 8001716: 46bd mov sp, r7 - 8001718: bd80 pop {r7, pc} - 800171a: bf00 nop - 800171c: 40005800 .word 0x40005800 - 8001720: 40021000 .word 0x40021000 - 8001724: 40010c00 .word 0x40010c00 + 8001842: bf00 nop + 8001844: 3720 adds r7, #32 + 8001846: 46bd mov sp, r7 + 8001848: bd80 pop {r7, pc} + 800184a: bf00 nop + 800184c: 40005800 .word 0x40005800 + 8001850: 40021000 .word 0x40021000 + 8001854: 40010c00 .word 0x40010c00 -08001728 : +08001858 : * This function configures the hardware resources used in this example * @param hspi: SPI handle pointer * @retval None */ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) { - 8001728: b580 push {r7, lr} - 800172a: b088 sub sp, #32 - 800172c: af00 add r7, sp, #0 - 800172e: 6078 str r0, [r7, #4] + 8001858: b580 push {r7, lr} + 800185a: b088 sub sp, #32 + 800185c: af00 add r7, sp, #0 + 800185e: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8001730: f107 0310 add.w r3, r7, #16 - 8001734: 2200 movs r2, #0 - 8001736: 601a str r2, [r3, #0] - 8001738: 605a str r2, [r3, #4] - 800173a: 609a str r2, [r3, #8] - 800173c: 60da str r2, [r3, #12] + 8001860: f107 0310 add.w r3, r7, #16 + 8001864: 2200 movs r2, #0 + 8001866: 601a str r2, [r3, #0] + 8001868: 605a str r2, [r3, #4] + 800186a: 609a str r2, [r3, #8] + 800186c: 60da str r2, [r3, #12] if(hspi->Instance==SPI1) - 800173e: 687b ldr r3, [r7, #4] - 8001740: 681b ldr r3, [r3, #0] - 8001742: 4a1b ldr r2, [pc, #108] ; (80017b0 ) - 8001744: 4293 cmp r3, r2 - 8001746: d12f bne.n 80017a8 + 800186e: 687b ldr r3, [r7, #4] + 8001870: 681b ldr r3, [r3, #0] + 8001872: 4a1b ldr r2, [pc, #108] ; (80018e0 ) + 8001874: 4293 cmp r3, r2 + 8001876: d12f bne.n 80018d8 { /* USER CODE BEGIN SPI1_MspInit 0 */ /* USER CODE END SPI1_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_SPI1_CLK_ENABLE(); - 8001748: 4b1a ldr r3, [pc, #104] ; (80017b4 ) - 800174a: 699b ldr r3, [r3, #24] - 800174c: 4a19 ldr r2, [pc, #100] ; (80017b4 ) - 800174e: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8001752: 6193 str r3, [r2, #24] - 8001754: 4b17 ldr r3, [pc, #92] ; (80017b4 ) - 8001756: 699b ldr r3, [r3, #24] - 8001758: f403 5380 and.w r3, r3, #4096 ; 0x1000 - 800175c: 60fb str r3, [r7, #12] - 800175e: 68fb ldr r3, [r7, #12] + 8001878: 4b1a ldr r3, [pc, #104] ; (80018e4 ) + 800187a: 699b ldr r3, [r3, #24] + 800187c: 4a19 ldr r2, [pc, #100] ; (80018e4 ) + 800187e: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 8001882: 6193 str r3, [r2, #24] + 8001884: 4b17 ldr r3, [pc, #92] ; (80018e4 ) + 8001886: 699b ldr r3, [r3, #24] + 8001888: f403 5380 and.w r3, r3, #4096 ; 0x1000 + 800188c: 60fb str r3, [r7, #12] + 800188e: 68fb ldr r3, [r7, #12] __HAL_RCC_GPIOA_CLK_ENABLE(); - 8001760: 4b14 ldr r3, [pc, #80] ; (80017b4 ) - 8001762: 699b ldr r3, [r3, #24] - 8001764: 4a13 ldr r2, [pc, #76] ; (80017b4 ) - 8001766: f043 0304 orr.w r3, r3, #4 - 800176a: 6193 str r3, [r2, #24] - 800176c: 4b11 ldr r3, [pc, #68] ; (80017b4 ) - 800176e: 699b ldr r3, [r3, #24] - 8001770: f003 0304 and.w r3, r3, #4 - 8001774: 60bb str r3, [r7, #8] - 8001776: 68bb ldr r3, [r7, #8] + 8001890: 4b14 ldr r3, [pc, #80] ; (80018e4 ) + 8001892: 699b ldr r3, [r3, #24] + 8001894: 4a13 ldr r2, [pc, #76] ; (80018e4 ) + 8001896: f043 0304 orr.w r3, r3, #4 + 800189a: 6193 str r3, [r2, #24] + 800189c: 4b11 ldr r3, [pc, #68] ; (80018e4 ) + 800189e: 699b ldr r3, [r3, #24] + 80018a0: f003 0304 and.w r3, r3, #4 + 80018a4: 60bb str r3, [r7, #8] + 80018a6: 68bb ldr r3, [r7, #8] /**SPI1 GPIO Configuration PA5 ------> SPI1_SCK PA6 ------> SPI1_MISO PA7 ------> SPI1_MOSI */ GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7; - 8001778: 23a0 movs r3, #160 ; 0xa0 - 800177a: 613b str r3, [r7, #16] + 80018a8: 23a0 movs r3, #160 ; 0xa0 + 80018aa: 613b str r3, [r7, #16] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 800177c: 2302 movs r3, #2 - 800177e: 617b str r3, [r7, #20] + 80018ac: 2302 movs r3, #2 + 80018ae: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8001780: 2303 movs r3, #3 - 8001782: 61fb str r3, [r7, #28] + 80018b0: 2303 movs r3, #3 + 80018b2: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8001784: f107 0310 add.w r3, r7, #16 - 8001788: 4619 mov r1, r3 - 800178a: 480b ldr r0, [pc, #44] ; (80017b8 ) - 800178c: f000 fb30 bl 8001df0 + 80018b4: f107 0310 add.w r3, r7, #16 + 80018b8: 4619 mov r1, r3 + 80018ba: 480b ldr r0, [pc, #44] ; (80018e8 ) + 80018bc: f000 fb8a bl 8001fd4 GPIO_InitStruct.Pin = GPIO_PIN_6; - 8001790: 2340 movs r3, #64 ; 0x40 - 8001792: 613b str r3, [r7, #16] + 80018c0: 2340 movs r3, #64 ; 0x40 + 80018c2: 613b str r3, [r7, #16] GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8001794: 2300 movs r3, #0 - 8001796: 617b str r3, [r7, #20] + 80018c4: 2300 movs r3, #0 + 80018c6: 617b str r3, [r7, #20] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001798: 2300 movs r3, #0 - 800179a: 61bb str r3, [r7, #24] + 80018c8: 2300 movs r3, #0 + 80018ca: 61bb str r3, [r7, #24] HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 800179c: f107 0310 add.w r3, r7, #16 - 80017a0: 4619 mov r1, r3 - 80017a2: 4805 ldr r0, [pc, #20] ; (80017b8 ) - 80017a4: f000 fb24 bl 8001df0 + 80018cc: f107 0310 add.w r3, r7, #16 + 80018d0: 4619 mov r1, r3 + 80018d2: 4805 ldr r0, [pc, #20] ; (80018e8 ) + 80018d4: f000 fb7e bl 8001fd4 /* USER CODE BEGIN SPI1_MspInit 1 */ /* USER CODE END SPI1_MspInit 1 */ } } - 80017a8: bf00 nop - 80017aa: 3720 adds r7, #32 - 80017ac: 46bd mov sp, r7 - 80017ae: bd80 pop {r7, pc} - 80017b0: 40013000 .word 0x40013000 - 80017b4: 40021000 .word 0x40021000 - 80017b8: 40010800 .word 0x40010800 + 80018d8: bf00 nop + 80018da: 3720 adds r7, #32 + 80018dc: 46bd mov sp, r7 + 80018de: bd80 pop {r7, pc} + 80018e0: 40013000 .word 0x40013000 + 80018e4: 40021000 .word 0x40021000 + 80018e8: 40010800 .word 0x40010800 -080017bc : +080018ec : * This function configures the hardware resources used in this example * @param htim_base: TIM_Base handle pointer * @retval None */ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) { - 80017bc: b580 push {r7, lr} - 80017be: b084 sub sp, #16 - 80017c0: af00 add r7, sp, #0 - 80017c2: 6078 str r0, [r7, #4] - if(htim_base->Instance==TIM6) - 80017c4: 687b ldr r3, [r7, #4] - 80017c6: 681b ldr r3, [r3, #0] - 80017c8: 4a0d ldr r2, [pc, #52] ; (8001800 ) - 80017ca: 4293 cmp r3, r2 - 80017cc: d113 bne.n 80017f6 + 80018ec: b580 push {r7, lr} + 80018ee: b084 sub sp, #16 + 80018f0: af00 add r7, sp, #0 + 80018f2: 6078 str r0, [r7, #4] + if(htim_base->Instance==TIM4) + 80018f4: 687b ldr r3, [r7, #4] + 80018f6: 681b ldr r3, [r3, #0] + 80018f8: 4a1a ldr r2, [pc, #104] ; (8001964 ) + 80018fa: 4293 cmp r3, r2 + 80018fc: d114 bne.n 8001928 { - /* USER CODE BEGIN TIM6_MspInit 0 */ + /* USER CODE BEGIN TIM4_MspInit 0 */ - /* USER CODE END TIM6_MspInit 0 */ + /* USER CODE END TIM4_MspInit 0 */ /* Peripheral clock enable */ - __HAL_RCC_TIM6_CLK_ENABLE(); - 80017ce: 4b0d ldr r3, [pc, #52] ; (8001804 ) - 80017d0: 69db ldr r3, [r3, #28] - 80017d2: 4a0c ldr r2, [pc, #48] ; (8001804 ) - 80017d4: f043 0310 orr.w r3, r3, #16 - 80017d8: 61d3 str r3, [r2, #28] - 80017da: 4b0a ldr r3, [pc, #40] ; (8001804 ) - 80017dc: 69db ldr r3, [r3, #28] - 80017de: f003 0310 and.w r3, r3, #16 - 80017e2: 60fb str r3, [r7, #12] - 80017e4: 68fb ldr r3, [r7, #12] - /* TIM6 interrupt Init */ - HAL_NVIC_SetPriority(TIM6_IRQn, 0, 0); - 80017e6: 2200 movs r2, #0 - 80017e8: 2100 movs r1, #0 - 80017ea: 2036 movs r0, #54 ; 0x36 - 80017ec: f000 fac9 bl 8001d82 - HAL_NVIC_EnableIRQ(TIM6_IRQn); - 80017f0: 2036 movs r0, #54 ; 0x36 - 80017f2: f000 fae2 bl 8001dba + __HAL_RCC_TIM4_CLK_ENABLE(); + 80018fe: 4b1a ldr r3, [pc, #104] ; (8001968 ) + 8001900: 69db ldr r3, [r3, #28] + 8001902: 4a19 ldr r2, [pc, #100] ; (8001968 ) + 8001904: f043 0304 orr.w r3, r3, #4 + 8001908: 61d3 str r3, [r2, #28] + 800190a: 4b17 ldr r3, [pc, #92] ; (8001968 ) + 800190c: 69db ldr r3, [r3, #28] + 800190e: f003 0304 and.w r3, r3, #4 + 8001912: 60fb str r3, [r7, #12] + 8001914: 68fb ldr r3, [r7, #12] + /* TIM4 interrupt Init */ + HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0); + 8001916: 2200 movs r2, #0 + 8001918: 2100 movs r1, #0 + 800191a: 201e movs r0, #30 + 800191c: f000 fb23 bl 8001f66 + HAL_NVIC_EnableIRQ(TIM4_IRQn); + 8001920: 201e movs r0, #30 + 8001922: f000 fb3c bl 8001f9e /* USER CODE BEGIN TIM6_MspInit 1 */ /* USER CODE END TIM6_MspInit 1 */ } } - 80017f6: bf00 nop - 80017f8: 3710 adds r7, #16 - 80017fa: 46bd mov sp, r7 - 80017fc: bd80 pop {r7, pc} - 80017fe: bf00 nop - 8001800: 40001000 .word 0x40001000 - 8001804: 40021000 .word 0x40021000 + 8001926: e018 b.n 800195a + else if(htim_base->Instance==TIM6) + 8001928: 687b ldr r3, [r7, #4] + 800192a: 681b ldr r3, [r3, #0] + 800192c: 4a0f ldr r2, [pc, #60] ; (800196c ) + 800192e: 4293 cmp r3, r2 + 8001930: d113 bne.n 800195a + __HAL_RCC_TIM6_CLK_ENABLE(); + 8001932: 4b0d ldr r3, [pc, #52] ; (8001968 ) + 8001934: 69db ldr r3, [r3, #28] + 8001936: 4a0c ldr r2, [pc, #48] ; (8001968 ) + 8001938: f043 0310 orr.w r3, r3, #16 + 800193c: 61d3 str r3, [r2, #28] + 800193e: 4b0a ldr r3, [pc, #40] ; (8001968 ) + 8001940: 69db ldr r3, [r3, #28] + 8001942: f003 0310 and.w r3, r3, #16 + 8001946: 60bb str r3, [r7, #8] + 8001948: 68bb ldr r3, [r7, #8] + HAL_NVIC_SetPriority(TIM6_IRQn, 0, 0); + 800194a: 2200 movs r2, #0 + 800194c: 2100 movs r1, #0 + 800194e: 2036 movs r0, #54 ; 0x36 + 8001950: f000 fb09 bl 8001f66 + HAL_NVIC_EnableIRQ(TIM6_IRQn); + 8001954: 2036 movs r0, #54 ; 0x36 + 8001956: f000 fb22 bl 8001f9e +} + 800195a: bf00 nop + 800195c: 3710 adds r7, #16 + 800195e: 46bd mov sp, r7 + 8001960: bd80 pop {r7, pc} + 8001962: bf00 nop + 8001964: 40000800 .word 0x40000800 + 8001968: 40021000 .word 0x40021000 + 800196c: 40001000 .word 0x40001000 -08001808 : +08001970 : + +void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) +{ + 8001970: b580 push {r7, lr} + 8001972: b088 sub sp, #32 + 8001974: af00 add r7, sp, #0 + 8001976: 6078 str r0, [r7, #4] + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8001978: f107 0310 add.w r3, r7, #16 + 800197c: 2200 movs r2, #0 + 800197e: 601a str r2, [r3, #0] + 8001980: 605a str r2, [r3, #4] + 8001982: 609a str r2, [r3, #8] + 8001984: 60da str r2, [r3, #12] + if(htim->Instance==TIM4) + 8001986: 687b ldr r3, [r7, #4] + 8001988: 681b ldr r3, [r3, #0] + 800198a: 4a10 ldr r2, [pc, #64] ; (80019cc ) + 800198c: 4293 cmp r3, r2 + 800198e: d118 bne.n 80019c2 + { + /* USER CODE BEGIN TIM4_MspPostInit 0 */ + + /* USER CODE END TIM4_MspPostInit 0 */ + + __HAL_RCC_GPIOB_CLK_ENABLE(); + 8001990: 4b0f ldr r3, [pc, #60] ; (80019d0 ) + 8001992: 699b ldr r3, [r3, #24] + 8001994: 4a0e ldr r2, [pc, #56] ; (80019d0 ) + 8001996: f043 0308 orr.w r3, r3, #8 + 800199a: 6193 str r3, [r2, #24] + 800199c: 4b0c ldr r3, [pc, #48] ; (80019d0 ) + 800199e: 699b ldr r3, [r3, #24] + 80019a0: f003 0308 and.w r3, r3, #8 + 80019a4: 60fb str r3, [r7, #12] + 80019a6: 68fb ldr r3, [r7, #12] + /**TIM4 GPIO Configuration + PB8 ------> TIM4_CH3 + */ + GPIO_InitStruct.Pin = GPIO_PIN_8; + 80019a8: f44f 7380 mov.w r3, #256 ; 0x100 + 80019ac: 613b str r3, [r7, #16] + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 80019ae: 2302 movs r3, #2 + 80019b0: 617b str r3, [r7, #20] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 80019b2: 2302 movs r3, #2 + 80019b4: 61fb str r3, [r7, #28] + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + 80019b6: f107 0310 add.w r3, r7, #16 + 80019ba: 4619 mov r1, r3 + 80019bc: 4805 ldr r0, [pc, #20] ; (80019d4 ) + 80019be: f000 fb09 bl 8001fd4 + /* USER CODE BEGIN TIM4_MspPostInit 1 */ + + /* USER CODE END TIM4_MspPostInit 1 */ + } + +} + 80019c2: bf00 nop + 80019c4: 3720 adds r7, #32 + 80019c6: 46bd mov sp, r7 + 80019c8: bd80 pop {r7, pc} + 80019ca: bf00 nop + 80019cc: 40000800 .word 0x40000800 + 80019d0: 40021000 .word 0x40021000 + 80019d4: 40010c00 .word 0x40010c00 + +080019d8 : } static uint32_t FSMC_Initialized = 0; static void HAL_FSMC_MspInit(void){ - 8001808: b580 push {r7, lr} - 800180a: b086 sub sp, #24 - 800180c: af00 add r7, sp, #0 + 80019d8: b580 push {r7, lr} + 80019da: b086 sub sp, #24 + 80019dc: af00 add r7, sp, #0 /* USER CODE BEGIN FSMC_MspInit 0 */ /* USER CODE END FSMC_MspInit 0 */ GPIO_InitTypeDef GPIO_InitStruct ={0}; - 800180e: f107 0308 add.w r3, r7, #8 - 8001812: 2200 movs r2, #0 - 8001814: 601a str r2, [r3, #0] - 8001816: 605a str r2, [r3, #4] - 8001818: 609a str r2, [r3, #8] - 800181a: 60da str r2, [r3, #12] + 80019de: f107 0308 add.w r3, r7, #8 + 80019e2: 2200 movs r2, #0 + 80019e4: 601a str r2, [r3, #0] + 80019e6: 605a str r2, [r3, #4] + 80019e8: 609a str r2, [r3, #8] + 80019ea: 60da str r2, [r3, #12] if (FSMC_Initialized) { - 800181c: 4b1f ldr r3, [pc, #124] ; (800189c ) - 800181e: 681b ldr r3, [r3, #0] - 8001820: 2b00 cmp r3, #0 - 8001822: d136 bne.n 8001892 + 80019ec: 4b1f ldr r3, [pc, #124] ; (8001a6c ) + 80019ee: 681b ldr r3, [r3, #0] + 80019f0: 2b00 cmp r3, #0 + 80019f2: d136 bne.n 8001a62 return; } FSMC_Initialized = 1; - 8001824: 4b1d ldr r3, [pc, #116] ; (800189c ) - 8001826: 2201 movs r2, #1 - 8001828: 601a str r2, [r3, #0] + 80019f4: 4b1d ldr r3, [pc, #116] ; (8001a6c ) + 80019f6: 2201 movs r2, #1 + 80019f8: 601a str r2, [r3, #0] /* Peripheral clock enable */ __HAL_RCC_FSMC_CLK_ENABLE(); - 800182a: 4b1d ldr r3, [pc, #116] ; (80018a0 ) - 800182c: 695b ldr r3, [r3, #20] - 800182e: 4a1c ldr r2, [pc, #112] ; (80018a0 ) - 8001830: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8001834: 6153 str r3, [r2, #20] - 8001836: 4b1a ldr r3, [pc, #104] ; (80018a0 ) - 8001838: 695b ldr r3, [r3, #20] - 800183a: f403 7380 and.w r3, r3, #256 ; 0x100 - 800183e: 607b str r3, [r7, #4] - 8001840: 687b ldr r3, [r7, #4] + 80019fa: 4b1d ldr r3, [pc, #116] ; (8001a70 ) + 80019fc: 695b ldr r3, [r3, #20] + 80019fe: 4a1c ldr r2, [pc, #112] ; (8001a70 ) + 8001a00: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8001a04: 6153 str r3, [r2, #20] + 8001a06: 4b1a ldr r3, [pc, #104] ; (8001a70 ) + 8001a08: 695b ldr r3, [r3, #20] + 8001a0a: f403 7380 and.w r3, r3, #256 ; 0x100 + 8001a0e: 607b str r3, [r7, #4] + 8001a10: 687b ldr r3, [r7, #4] PD1 ------> FSMC_D3 PD4 ------> FSMC_NOE PD5 ------> FSMC_NWE PG12 ------> FSMC_NE4 */ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_12; - 8001842: f241 0301 movw r3, #4097 ; 0x1001 - 8001846: 60bb str r3, [r7, #8] + 8001a12: f241 0301 movw r3, #4097 ; 0x1001 + 8001a16: 60bb str r3, [r7, #8] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001848: 2302 movs r3, #2 - 800184a: 60fb str r3, [r7, #12] + 8001a18: 2302 movs r3, #2 + 8001a1a: 60fb str r3, [r7, #12] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 800184c: 2303 movs r3, #3 - 800184e: 617b str r3, [r7, #20] + 8001a1c: 2303 movs r3, #3 + 8001a1e: 617b str r3, [r7, #20] HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - 8001850: f107 0308 add.w r3, r7, #8 - 8001854: 4619 mov r1, r3 - 8001856: 4813 ldr r0, [pc, #76] ; (80018a4 ) - 8001858: f000 faca bl 8001df0 + 8001a20: f107 0308 add.w r3, r7, #8 + 8001a24: 4619 mov r1, r3 + 8001a26: 4813 ldr r0, [pc, #76] ; (8001a74 ) + 8001a28: f000 fad4 bl 8001fd4 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 - 800185c: f64f 7380 movw r3, #65408 ; 0xff80 - 8001860: 60bb str r3, [r7, #8] + 8001a2c: f64f 7380 movw r3, #65408 ; 0xff80 + 8001a30: 60bb str r3, [r7, #8] |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 |GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001862: 2302 movs r3, #2 - 8001864: 60fb str r3, [r7, #12] + 8001a32: 2302 movs r3, #2 + 8001a34: 60fb str r3, [r7, #12] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8001866: 2303 movs r3, #3 - 8001868: 617b str r3, [r7, #20] + 8001a36: 2303 movs r3, #3 + 8001a38: 617b str r3, [r7, #20] HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - 800186a: f107 0308 add.w r3, r7, #8 - 800186e: 4619 mov r1, r3 - 8001870: 480d ldr r0, [pc, #52] ; (80018a8 ) - 8001872: f000 fabd bl 8001df0 + 8001a3a: f107 0308 add.w r3, r7, #8 + 8001a3e: 4619 mov r1, r3 + 8001a40: 480d ldr r0, [pc, #52] ; (8001a78 ) + 8001a42: f000 fac7 bl 8001fd4 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14 - 8001876: f24c 7333 movw r3, #50995 ; 0xc733 - 800187a: 60bb str r3, [r7, #8] + 8001a46: f24c 7333 movw r3, #50995 ; 0xc733 + 8001a4a: 60bb str r3, [r7, #8] |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4 |GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 800187c: 2302 movs r3, #2 - 800187e: 60fb str r3, [r7, #12] + 8001a4c: 2302 movs r3, #2 + 8001a4e: 60fb str r3, [r7, #12] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8001880: 2303 movs r3, #3 - 8001882: 617b str r3, [r7, #20] + 8001a50: 2303 movs r3, #3 + 8001a52: 617b str r3, [r7, #20] HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - 8001884: f107 0308 add.w r3, r7, #8 - 8001888: 4619 mov r1, r3 - 800188a: 4808 ldr r0, [pc, #32] ; (80018ac ) - 800188c: f000 fab0 bl 8001df0 - 8001890: e000 b.n 8001894 + 8001a54: f107 0308 add.w r3, r7, #8 + 8001a58: 4619 mov r1, r3 + 8001a5a: 4808 ldr r0, [pc, #32] ; (8001a7c ) + 8001a5c: f000 faba bl 8001fd4 + 8001a60: e000 b.n 8001a64 return; - 8001892: bf00 nop + 8001a62: bf00 nop /* USER CODE BEGIN FSMC_MspInit 1 */ /* USER CODE END FSMC_MspInit 1 */ } - 8001894: 3718 adds r7, #24 - 8001896: 46bd mov sp, r7 - 8001898: bd80 pop {r7, pc} - 800189a: bf00 nop - 800189c: 200001f8 .word 0x200001f8 - 80018a0: 40021000 .word 0x40021000 - 80018a4: 40012000 .word 0x40012000 - 80018a8: 40011800 .word 0x40011800 - 80018ac: 40011400 .word 0x40011400 + 8001a64: 3718 adds r7, #24 + 8001a66: 46bd mov sp, r7 + 8001a68: bd80 pop {r7, pc} + 8001a6a: bf00 nop + 8001a6c: 200001f8 .word 0x200001f8 + 8001a70: 40021000 .word 0x40021000 + 8001a74: 40012000 .word 0x40012000 + 8001a78: 40011800 .word 0x40011800 + 8001a7c: 40011400 .word 0x40011400 -080018b0 : +08001a80 : void HAL_SRAM_MspInit(SRAM_HandleTypeDef* hsram){ - 80018b0: b580 push {r7, lr} - 80018b2: b082 sub sp, #8 - 80018b4: af00 add r7, sp, #0 - 80018b6: 6078 str r0, [r7, #4] + 8001a80: b580 push {r7, lr} + 8001a82: b082 sub sp, #8 + 8001a84: af00 add r7, sp, #0 + 8001a86: 6078 str r0, [r7, #4] /* USER CODE BEGIN SRAM_MspInit 0 */ /* USER CODE END SRAM_MspInit 0 */ HAL_FSMC_MspInit(); - 80018b8: f7ff ffa6 bl 8001808 + 8001a88: f7ff ffa6 bl 80019d8 /* USER CODE BEGIN SRAM_MspInit 1 */ /* USER CODE END SRAM_MspInit 1 */ } - 80018bc: bf00 nop - 80018be: 3708 adds r7, #8 - 80018c0: 46bd mov sp, r7 - 80018c2: bd80 pop {r7, pc} + 8001a8c: bf00 nop + 8001a8e: 3708 adds r7, #8 + 8001a90: 46bd mov sp, r7 + 8001a92: bd80 pop {r7, pc} -080018c4 : +08001a94 : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { - 80018c4: b480 push {r7} - 80018c6: af00 add r7, sp, #0 + 8001a94: b480 push {r7} + 8001a96: af00 add r7, sp, #0 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ while (1) - 80018c8: e7fe b.n 80018c8 + 8001a98: e7fe b.n 8001a98 -080018ca : +08001a9a : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { - 80018ca: b480 push {r7} - 80018cc: af00 add r7, sp, #0 + 8001a9a: b480 push {r7} + 8001a9c: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) - 80018ce: e7fe b.n 80018ce + 8001a9e: e7fe b.n 8001a9e -080018d0 : +08001aa0 : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { - 80018d0: b480 push {r7} - 80018d2: af00 add r7, sp, #0 + 8001aa0: b480 push {r7} + 8001aa2: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) - 80018d4: e7fe b.n 80018d4 + 8001aa4: e7fe b.n 8001aa4 -080018d6 : +08001aa6 : /** * @brief This function handles Prefetch fault, memory access fault. */ void BusFault_Handler(void) { - 80018d6: b480 push {r7} - 80018d8: af00 add r7, sp, #0 + 8001aa6: b480 push {r7} + 8001aa8: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) - 80018da: e7fe b.n 80018da + 8001aaa: e7fe b.n 8001aaa -080018dc : +08001aac : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { - 80018dc: b480 push {r7} - 80018de: af00 add r7, sp, #0 + 8001aac: b480 push {r7} + 8001aae: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) - 80018e0: e7fe b.n 80018e0 + 8001ab0: e7fe b.n 8001ab0 -080018e2 : +08001ab2 : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { - 80018e2: b480 push {r7} - 80018e4: af00 add r7, sp, #0 + 8001ab2: b480 push {r7} + 8001ab4: af00 add r7, sp, #0 /* USER CODE END SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 1 */ /* USER CODE END SVCall_IRQn 1 */ } - 80018e6: bf00 nop - 80018e8: 46bd mov sp, r7 - 80018ea: bc80 pop {r7} - 80018ec: 4770 bx lr + 8001ab6: bf00 nop + 8001ab8: 46bd mov sp, r7 + 8001aba: bc80 pop {r7} + 8001abc: 4770 bx lr -080018ee : +08001abe : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { - 80018ee: b480 push {r7} - 80018f0: af00 add r7, sp, #0 + 8001abe: b480 push {r7} + 8001ac0: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } - 80018f2: bf00 nop - 80018f4: 46bd mov sp, r7 - 80018f6: bc80 pop {r7} - 80018f8: 4770 bx lr + 8001ac2: bf00 nop + 8001ac4: 46bd mov sp, r7 + 8001ac6: bc80 pop {r7} + 8001ac8: 4770 bx lr -080018fa : +08001aca : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { - 80018fa: b480 push {r7} - 80018fc: af00 add r7, sp, #0 + 8001aca: b480 push {r7} + 8001acc: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } - 80018fe: bf00 nop - 8001900: 46bd mov sp, r7 - 8001902: bc80 pop {r7} - 8001904: 4770 bx lr + 8001ace: bf00 nop + 8001ad0: 46bd mov sp, r7 + 8001ad2: bc80 pop {r7} + 8001ad4: 4770 bx lr -08001906 : +08001ad6 : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { - 8001906: b580 push {r7, lr} - 8001908: af00 add r7, sp, #0 + 8001ad6: b580 push {r7, lr} + 8001ad8: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); - 800190a: f000 f923 bl 8001b54 + 8001ada: f000 f92d bl 8001d38 /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } - 800190e: bf00 nop - 8001910: bd80 pop {r7, pc} + 8001ade: bf00 nop + 8001ae0: bd80 pop {r7, pc} ... -08001914 : +08001ae4 : + +/** + * @brief This function handles TIM4 global interrupt. + */ +void TIM4_IRQHandler(void) +{ + 8001ae4: b580 push {r7, lr} + 8001ae6: af00 add r7, sp, #0 + /* USER CODE BEGIN TIM4_IRQn 0 */ + + /* USER CODE END TIM4_IRQn 0 */ + HAL_TIM_IRQHandler(&htim4); + 8001ae8: 4802 ldr r0, [pc, #8] ; (8001af4 ) + 8001aea: f002 fa9d bl 8004028 + /* USER CODE BEGIN TIM4_IRQn 1 */ + + /* USER CODE END TIM4_IRQn 1 */ +} + 8001aee: bf00 nop + 8001af0: bd80 pop {r7, pc} + 8001af2: bf00 nop + 8001af4: 2000022c .word 0x2000022c + +08001af8 : /** * @brief This function handles TIM6 global interrupt. */ void TIM6_IRQHandler(void) { - 8001914: b580 push {r7, lr} - 8001916: af00 add r7, sp, #0 + 8001af8: b580 push {r7, lr} + 8001afa: af00 add r7, sp, #0 /* USER CODE BEGIN TIM6_IRQn 0 */ /* USER CODE END TIM6_IRQn 0 */ HAL_TIM_IRQHandler(&htim6); - 8001918: 4802 ldr r0, [pc, #8] ; (8001924 ) - 800191a: f002 f981 bl 8003c20 + 8001afc: 4802 ldr r0, [pc, #8] ; (8001b08 ) + 8001afe: f002 fa93 bl 8004028 /* USER CODE BEGIN TIM6_IRQn 1 */ /* USER CODE END TIM6_IRQn 1 */ } - 800191e: bf00 nop - 8001920: bd80 pop {r7, pc} - 8001922: bf00 nop - 8001924: 20000304 .word 0x20000304 + 8001b02: bf00 nop + 8001b04: bd80 pop {r7, pc} + 8001b06: bf00 nop + 8001b08: 20000310 .word 0x20000310 -08001928 <_getpid>: +08001b0c <_getpid>: void initialise_monitor_handles() { } int _getpid(void) { - 8001928: b480 push {r7} - 800192a: af00 add r7, sp, #0 + 8001b0c: b480 push {r7} + 8001b0e: af00 add r7, sp, #0 return 1; - 800192c: 2301 movs r3, #1 + 8001b10: 2301 movs r3, #1 } - 800192e: 4618 mov r0, r3 - 8001930: 46bd mov sp, r7 - 8001932: bc80 pop {r7} - 8001934: 4770 bx lr + 8001b12: 4618 mov r0, r3 + 8001b14: 46bd mov sp, r7 + 8001b16: bc80 pop {r7} + 8001b18: 4770 bx lr -08001936 <_kill>: +08001b1a <_kill>: int _kill(int pid, int sig) { - 8001936: b580 push {r7, lr} - 8001938: b082 sub sp, #8 - 800193a: af00 add r7, sp, #0 - 800193c: 6078 str r0, [r7, #4] - 800193e: 6039 str r1, [r7, #0] + 8001b1a: b580 push {r7, lr} + 8001b1c: b082 sub sp, #8 + 8001b1e: af00 add r7, sp, #0 + 8001b20: 6078 str r0, [r7, #4] + 8001b22: 6039 str r1, [r7, #0] errno = EINVAL; - 8001940: f005 f8ca bl 8006ad8 <__errno> - 8001944: 4603 mov r3, r0 - 8001946: 2216 movs r2, #22 - 8001948: 601a str r2, [r3, #0] + 8001b24: f005 ff4e bl 80079c4 <__errno> + 8001b28: 4603 mov r3, r0 + 8001b2a: 2216 movs r2, #22 + 8001b2c: 601a str r2, [r3, #0] return -1; - 800194a: f04f 33ff mov.w r3, #4294967295 + 8001b2e: f04f 33ff mov.w r3, #4294967295 } - 800194e: 4618 mov r0, r3 - 8001950: 3708 adds r7, #8 - 8001952: 46bd mov sp, r7 - 8001954: bd80 pop {r7, pc} + 8001b32: 4618 mov r0, r3 + 8001b34: 3708 adds r7, #8 + 8001b36: 46bd mov sp, r7 + 8001b38: bd80 pop {r7, pc} -08001956 <_exit>: +08001b3a <_exit>: void _exit (int status) { - 8001956: b580 push {r7, lr} - 8001958: b082 sub sp, #8 - 800195a: af00 add r7, sp, #0 - 800195c: 6078 str r0, [r7, #4] + 8001b3a: b580 push {r7, lr} + 8001b3c: b082 sub sp, #8 + 8001b3e: af00 add r7, sp, #0 + 8001b40: 6078 str r0, [r7, #4] _kill(status, -1); - 800195e: f04f 31ff mov.w r1, #4294967295 - 8001962: 6878 ldr r0, [r7, #4] - 8001964: f7ff ffe7 bl 8001936 <_kill> + 8001b42: f04f 31ff mov.w r1, #4294967295 + 8001b46: 6878 ldr r0, [r7, #4] + 8001b48: f7ff ffe7 bl 8001b1a <_kill> while (1) {} /* Make sure we hang here */ - 8001968: e7fe b.n 8001968 <_exit+0x12> + 8001b4c: e7fe b.n 8001b4c <_exit+0x12> -0800196a <_read>: +08001b4e <_read>: } __attribute__((weak)) int _read(int file, char *ptr, int len) { - 800196a: b580 push {r7, lr} - 800196c: b086 sub sp, #24 - 800196e: af00 add r7, sp, #0 - 8001970: 60f8 str r0, [r7, #12] - 8001972: 60b9 str r1, [r7, #8] - 8001974: 607a str r2, [r7, #4] + 8001b4e: b580 push {r7, lr} + 8001b50: b086 sub sp, #24 + 8001b52: af00 add r7, sp, #0 + 8001b54: 60f8 str r0, [r7, #12] + 8001b56: 60b9 str r1, [r7, #8] + 8001b58: 607a str r2, [r7, #4] int DataIdx; for (DataIdx = 0; DataIdx < len; DataIdx++) - 8001976: 2300 movs r3, #0 - 8001978: 617b str r3, [r7, #20] - 800197a: e00a b.n 8001992 <_read+0x28> + 8001b5a: 2300 movs r3, #0 + 8001b5c: 617b str r3, [r7, #20] + 8001b5e: e00a b.n 8001b76 <_read+0x28> { *ptr++ = __io_getchar(); - 800197c: f3af 8000 nop.w - 8001980: 4601 mov r1, r0 - 8001982: 68bb ldr r3, [r7, #8] - 8001984: 1c5a adds r2, r3, #1 - 8001986: 60ba str r2, [r7, #8] - 8001988: b2ca uxtb r2, r1 - 800198a: 701a strb r2, [r3, #0] + 8001b60: f3af 8000 nop.w + 8001b64: 4601 mov r1, r0 + 8001b66: 68bb ldr r3, [r7, #8] + 8001b68: 1c5a adds r2, r3, #1 + 8001b6a: 60ba str r2, [r7, #8] + 8001b6c: b2ca uxtb r2, r1 + 8001b6e: 701a strb r2, [r3, #0] for (DataIdx = 0; DataIdx < len; DataIdx++) - 800198c: 697b ldr r3, [r7, #20] - 800198e: 3301 adds r3, #1 - 8001990: 617b str r3, [r7, #20] - 8001992: 697a ldr r2, [r7, #20] - 8001994: 687b ldr r3, [r7, #4] - 8001996: 429a cmp r2, r3 - 8001998: dbf0 blt.n 800197c <_read+0x12> + 8001b70: 697b ldr r3, [r7, #20] + 8001b72: 3301 adds r3, #1 + 8001b74: 617b str r3, [r7, #20] + 8001b76: 697a ldr r2, [r7, #20] + 8001b78: 687b ldr r3, [r7, #4] + 8001b7a: 429a cmp r2, r3 + 8001b7c: dbf0 blt.n 8001b60 <_read+0x12> } return len; - 800199a: 687b ldr r3, [r7, #4] + 8001b7e: 687b ldr r3, [r7, #4] } - 800199c: 4618 mov r0, r3 - 800199e: 3718 adds r7, #24 - 80019a0: 46bd mov sp, r7 - 80019a2: bd80 pop {r7, pc} + 8001b80: 4618 mov r0, r3 + 8001b82: 3718 adds r7, #24 + 8001b84: 46bd mov sp, r7 + 8001b86: bd80 pop {r7, pc} -080019a4 <_close>: +08001b88 <_close>: } return len; } int _close(int file) { - 80019a4: b480 push {r7} - 80019a6: b083 sub sp, #12 - 80019a8: af00 add r7, sp, #0 - 80019aa: 6078 str r0, [r7, #4] + 8001b88: b480 push {r7} + 8001b8a: b083 sub sp, #12 + 8001b8c: af00 add r7, sp, #0 + 8001b8e: 6078 str r0, [r7, #4] return -1; - 80019ac: f04f 33ff mov.w r3, #4294967295 + 8001b90: f04f 33ff mov.w r3, #4294967295 } - 80019b0: 4618 mov r0, r3 - 80019b2: 370c adds r7, #12 - 80019b4: 46bd mov sp, r7 - 80019b6: bc80 pop {r7} - 80019b8: 4770 bx lr + 8001b94: 4618 mov r0, r3 + 8001b96: 370c adds r7, #12 + 8001b98: 46bd mov sp, r7 + 8001b9a: bc80 pop {r7} + 8001b9c: 4770 bx lr -080019ba <_fstat>: +08001b9e <_fstat>: int _fstat(int file, struct stat *st) { - 80019ba: b480 push {r7} - 80019bc: b083 sub sp, #12 - 80019be: af00 add r7, sp, #0 - 80019c0: 6078 str r0, [r7, #4] - 80019c2: 6039 str r1, [r7, #0] + 8001b9e: b480 push {r7} + 8001ba0: b083 sub sp, #12 + 8001ba2: af00 add r7, sp, #0 + 8001ba4: 6078 str r0, [r7, #4] + 8001ba6: 6039 str r1, [r7, #0] st->st_mode = S_IFCHR; - 80019c4: 683b ldr r3, [r7, #0] - 80019c6: f44f 5200 mov.w r2, #8192 ; 0x2000 - 80019ca: 605a str r2, [r3, #4] + 8001ba8: 683b ldr r3, [r7, #0] + 8001baa: f44f 5200 mov.w r2, #8192 ; 0x2000 + 8001bae: 605a str r2, [r3, #4] return 0; - 80019cc: 2300 movs r3, #0 + 8001bb0: 2300 movs r3, #0 } - 80019ce: 4618 mov r0, r3 - 80019d0: 370c adds r7, #12 - 80019d2: 46bd mov sp, r7 - 80019d4: bc80 pop {r7} - 80019d6: 4770 bx lr + 8001bb2: 4618 mov r0, r3 + 8001bb4: 370c adds r7, #12 + 8001bb6: 46bd mov sp, r7 + 8001bb8: bc80 pop {r7} + 8001bba: 4770 bx lr -080019d8 <_isatty>: +08001bbc <_isatty>: int _isatty(int file) { - 80019d8: b480 push {r7} - 80019da: b083 sub sp, #12 - 80019dc: af00 add r7, sp, #0 - 80019de: 6078 str r0, [r7, #4] + 8001bbc: b480 push {r7} + 8001bbe: b083 sub sp, #12 + 8001bc0: af00 add r7, sp, #0 + 8001bc2: 6078 str r0, [r7, #4] return 1; - 80019e0: 2301 movs r3, #1 + 8001bc4: 2301 movs r3, #1 } - 80019e2: 4618 mov r0, r3 - 80019e4: 370c adds r7, #12 - 80019e6: 46bd mov sp, r7 - 80019e8: bc80 pop {r7} - 80019ea: 4770 bx lr + 8001bc6: 4618 mov r0, r3 + 8001bc8: 370c adds r7, #12 + 8001bca: 46bd mov sp, r7 + 8001bcc: bc80 pop {r7} + 8001bce: 4770 bx lr -080019ec <_lseek>: +08001bd0 <_lseek>: int _lseek(int file, int ptr, int dir) { - 80019ec: b480 push {r7} - 80019ee: b085 sub sp, #20 - 80019f0: af00 add r7, sp, #0 - 80019f2: 60f8 str r0, [r7, #12] - 80019f4: 60b9 str r1, [r7, #8] - 80019f6: 607a str r2, [r7, #4] + 8001bd0: b480 push {r7} + 8001bd2: b085 sub sp, #20 + 8001bd4: af00 add r7, sp, #0 + 8001bd6: 60f8 str r0, [r7, #12] + 8001bd8: 60b9 str r1, [r7, #8] + 8001bda: 607a str r2, [r7, #4] return 0; - 80019f8: 2300 movs r3, #0 + 8001bdc: 2300 movs r3, #0 } - 80019fa: 4618 mov r0, r3 - 80019fc: 3714 adds r7, #20 - 80019fe: 46bd mov sp, r7 - 8001a00: bc80 pop {r7} - 8001a02: 4770 bx lr + 8001bde: 4618 mov r0, r3 + 8001be0: 3714 adds r7, #20 + 8001be2: 46bd mov sp, r7 + 8001be4: bc80 pop {r7} + 8001be6: 4770 bx lr -08001a04 <_sbrk>: +08001be8 <_sbrk>: * * @param incr Memory size * @return Pointer to allocated memory */ void *_sbrk(ptrdiff_t incr) { - 8001a04: b580 push {r7, lr} - 8001a06: b086 sub sp, #24 - 8001a08: af00 add r7, sp, #0 - 8001a0a: 6078 str r0, [r7, #4] + 8001be8: b580 push {r7, lr} + 8001bea: b086 sub sp, #24 + 8001bec: af00 add r7, sp, #0 + 8001bee: 6078 str r0, [r7, #4] extern uint8_t _end; /* Symbol defined in the linker script */ extern uint8_t _estack; /* Symbol defined in the linker script */ extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */ const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; - 8001a0c: 4a14 ldr r2, [pc, #80] ; (8001a60 <_sbrk+0x5c>) - 8001a0e: 4b15 ldr r3, [pc, #84] ; (8001a64 <_sbrk+0x60>) - 8001a10: 1ad3 subs r3, r2, r3 - 8001a12: 617b str r3, [r7, #20] + 8001bf0: 4a14 ldr r2, [pc, #80] ; (8001c44 <_sbrk+0x5c>) + 8001bf2: 4b15 ldr r3, [pc, #84] ; (8001c48 <_sbrk+0x60>) + 8001bf4: 1ad3 subs r3, r2, r3 + 8001bf6: 617b str r3, [r7, #20] const uint8_t *max_heap = (uint8_t *)stack_limit; - 8001a14: 697b ldr r3, [r7, #20] - 8001a16: 613b str r3, [r7, #16] + 8001bf8: 697b ldr r3, [r7, #20] + 8001bfa: 613b str r3, [r7, #16] uint8_t *prev_heap_end; /* Initialize heap end at first call */ if (NULL == __sbrk_heap_end) - 8001a18: 4b13 ldr r3, [pc, #76] ; (8001a68 <_sbrk+0x64>) - 8001a1a: 681b ldr r3, [r3, #0] - 8001a1c: 2b00 cmp r3, #0 - 8001a1e: d102 bne.n 8001a26 <_sbrk+0x22> + 8001bfc: 4b13 ldr r3, [pc, #76] ; (8001c4c <_sbrk+0x64>) + 8001bfe: 681b ldr r3, [r3, #0] + 8001c00: 2b00 cmp r3, #0 + 8001c02: d102 bne.n 8001c0a <_sbrk+0x22> { __sbrk_heap_end = &_end; - 8001a20: 4b11 ldr r3, [pc, #68] ; (8001a68 <_sbrk+0x64>) - 8001a22: 4a12 ldr r2, [pc, #72] ; (8001a6c <_sbrk+0x68>) - 8001a24: 601a str r2, [r3, #0] + 8001c04: 4b11 ldr r3, [pc, #68] ; (8001c4c <_sbrk+0x64>) + 8001c06: 4a12 ldr r2, [pc, #72] ; (8001c50 <_sbrk+0x68>) + 8001c08: 601a str r2, [r3, #0] } /* Protect heap from growing into the reserved MSP stack */ if (__sbrk_heap_end + incr > max_heap) - 8001a26: 4b10 ldr r3, [pc, #64] ; (8001a68 <_sbrk+0x64>) - 8001a28: 681a ldr r2, [r3, #0] - 8001a2a: 687b ldr r3, [r7, #4] - 8001a2c: 4413 add r3, r2 - 8001a2e: 693a ldr r2, [r7, #16] - 8001a30: 429a cmp r2, r3 - 8001a32: d207 bcs.n 8001a44 <_sbrk+0x40> + 8001c0a: 4b10 ldr r3, [pc, #64] ; (8001c4c <_sbrk+0x64>) + 8001c0c: 681a ldr r2, [r3, #0] + 8001c0e: 687b ldr r3, [r7, #4] + 8001c10: 4413 add r3, r2 + 8001c12: 693a ldr r2, [r7, #16] + 8001c14: 429a cmp r2, r3 + 8001c16: d207 bcs.n 8001c28 <_sbrk+0x40> { errno = ENOMEM; - 8001a34: f005 f850 bl 8006ad8 <__errno> - 8001a38: 4603 mov r3, r0 - 8001a3a: 220c movs r2, #12 - 8001a3c: 601a str r2, [r3, #0] + 8001c18: f005 fed4 bl 80079c4 <__errno> + 8001c1c: 4603 mov r3, r0 + 8001c1e: 220c movs r2, #12 + 8001c20: 601a str r2, [r3, #0] return (void *)-1; - 8001a3e: f04f 33ff mov.w r3, #4294967295 - 8001a42: e009 b.n 8001a58 <_sbrk+0x54> + 8001c22: f04f 33ff mov.w r3, #4294967295 + 8001c26: e009 b.n 8001c3c <_sbrk+0x54> } prev_heap_end = __sbrk_heap_end; - 8001a44: 4b08 ldr r3, [pc, #32] ; (8001a68 <_sbrk+0x64>) - 8001a46: 681b ldr r3, [r3, #0] - 8001a48: 60fb str r3, [r7, #12] + 8001c28: 4b08 ldr r3, [pc, #32] ; (8001c4c <_sbrk+0x64>) + 8001c2a: 681b ldr r3, [r3, #0] + 8001c2c: 60fb str r3, [r7, #12] __sbrk_heap_end += incr; - 8001a4a: 4b07 ldr r3, [pc, #28] ; (8001a68 <_sbrk+0x64>) - 8001a4c: 681a ldr r2, [r3, #0] - 8001a4e: 687b ldr r3, [r7, #4] - 8001a50: 4413 add r3, r2 - 8001a52: 4a05 ldr r2, [pc, #20] ; (8001a68 <_sbrk+0x64>) - 8001a54: 6013 str r3, [r2, #0] + 8001c2e: 4b07 ldr r3, [pc, #28] ; (8001c4c <_sbrk+0x64>) + 8001c30: 681a ldr r2, [r3, #0] + 8001c32: 687b ldr r3, [r7, #4] + 8001c34: 4413 add r3, r2 + 8001c36: 4a05 ldr r2, [pc, #20] ; (8001c4c <_sbrk+0x64>) + 8001c38: 6013 str r3, [r2, #0] return (void *)prev_heap_end; - 8001a56: 68fb ldr r3, [r7, #12] + 8001c3a: 68fb ldr r3, [r7, #12] } - 8001a58: 4618 mov r0, r3 - 8001a5a: 3718 adds r7, #24 - 8001a5c: 46bd mov sp, r7 - 8001a5e: bd80 pop {r7, pc} - 8001a60: 20010000 .word 0x20010000 - 8001a64: 00000800 .word 0x00000800 - 8001a68: 200001fc .word 0x200001fc - 8001a6c: 20002590 .word 0x20002590 + 8001c3c: 4618 mov r0, r3 + 8001c3e: 3718 adds r7, #24 + 8001c40: 46bd mov sp, r7 + 8001c42: bd80 pop {r7, pc} + 8001c44: 20010000 .word 0x20010000 + 8001c48: 00000800 .word 0x00000800 + 8001c4c: 200001fc .word 0x200001fc + 8001c50: 200025e8 .word 0x200025e8 -08001a70 : +08001c54 : * @note This function should be used only after reset. * @param None * @retval None */ void SystemInit (void) { - 8001a70: b480 push {r7} - 8001a72: af00 add r7, sp, #0 + 8001c54: b480 push {r7} + 8001c56: af00 add r7, sp, #0 /* Configure the Vector Table location -------------------------------------*/ #if defined(USER_VECT_TAB_ADDRESS) SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ #endif /* USER_VECT_TAB_ADDRESS */ } - 8001a74: bf00 nop - 8001a76: 46bd mov sp, r7 - 8001a78: bc80 pop {r7} - 8001a7a: 4770 bx lr + 8001c58: bf00 nop + 8001c5a: 46bd mov sp, r7 + 8001c5c: bc80 pop {r7} + 8001c5e: 4770 bx lr -08001a7c : +08001c60 : .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: /* Copy the data segment initializers from flash to SRAM */ ldr r0, =_sdata - 8001a7c: 480c ldr r0, [pc, #48] ; (8001ab0 ) + 8001c60: 480c ldr r0, [pc, #48] ; (8001c94 ) ldr r1, =_edata - 8001a7e: 490d ldr r1, [pc, #52] ; (8001ab4 ) + 8001c62: 490d ldr r1, [pc, #52] ; (8001c98 ) ldr r2, =_sidata - 8001a80: 4a0d ldr r2, [pc, #52] ; (8001ab8 ) + 8001c64: 4a0d ldr r2, [pc, #52] ; (8001c9c ) movs r3, #0 - 8001a82: 2300 movs r3, #0 + 8001c66: 2300 movs r3, #0 b LoopCopyDataInit - 8001a84: e002 b.n 8001a8c + 8001c68: e002 b.n 8001c70 -08001a86 : +08001c6a : CopyDataInit: ldr r4, [r2, r3] - 8001a86: 58d4 ldr r4, [r2, r3] + 8001c6a: 58d4 ldr r4, [r2, r3] str r4, [r0, r3] - 8001a88: 50c4 str r4, [r0, r3] + 8001c6c: 50c4 str r4, [r0, r3] adds r3, r3, #4 - 8001a8a: 3304 adds r3, #4 + 8001c6e: 3304 adds r3, #4 -08001a8c : +08001c70 : LoopCopyDataInit: adds r4, r0, r3 - 8001a8c: 18c4 adds r4, r0, r3 + 8001c70: 18c4 adds r4, r0, r3 cmp r4, r1 - 8001a8e: 428c cmp r4, r1 + 8001c72: 428c cmp r4, r1 bcc CopyDataInit - 8001a90: d3f9 bcc.n 8001a86 + 8001c74: d3f9 bcc.n 8001c6a /* Zero fill the bss segment. */ ldr r2, =_sbss - 8001a92: 4a0a ldr r2, [pc, #40] ; (8001abc ) + 8001c76: 4a0a ldr r2, [pc, #40] ; (8001ca0 ) ldr r4, =_ebss - 8001a94: 4c0a ldr r4, [pc, #40] ; (8001ac0 ) + 8001c78: 4c0a ldr r4, [pc, #40] ; (8001ca4 ) movs r3, #0 - 8001a96: 2300 movs r3, #0 + 8001c7a: 2300 movs r3, #0 b LoopFillZerobss - 8001a98: e001 b.n 8001a9e + 8001c7c: e001 b.n 8001c82 -08001a9a : +08001c7e : FillZerobss: str r3, [r2] - 8001a9a: 6013 str r3, [r2, #0] + 8001c7e: 6013 str r3, [r2, #0] adds r2, r2, #4 - 8001a9c: 3204 adds r2, #4 + 8001c80: 3204 adds r2, #4 -08001a9e : +08001c82 : LoopFillZerobss: cmp r2, r4 - 8001a9e: 42a2 cmp r2, r4 + 8001c82: 42a2 cmp r2, r4 bcc FillZerobss - 8001aa0: d3fb bcc.n 8001a9a + 8001c84: d3fb bcc.n 8001c7e /* Call the clock system intitialization function.*/ bl SystemInit - 8001aa2: f7ff ffe5 bl 8001a70 + 8001c86: f7ff ffe5 bl 8001c54 /* Call static constructors */ bl __libc_init_array - 8001aa6: f005 f81d bl 8006ae4 <__libc_init_array> + 8001c8a: f005 fea1 bl 80079d0 <__libc_init_array> /* Call the application's entry point.*/ bl main - 8001aaa: f7ff fb71 bl 8001190
+ 8001c8e: f7ff fa9f bl 80011d0
bx lr - 8001aae: 4770 bx lr + 8001c92: 4770 bx lr ldr r0, =_sdata - 8001ab0: 20000000 .word 0x20000000 + 8001c94: 20000000 .word 0x20000000 ldr r1, =_edata - 8001ab4: 200001dc .word 0x200001dc + 8001c98: 200001dc .word 0x200001dc ldr r2, =_sidata - 8001ab8: 0800a83c .word 0x0800a83c + 8001c9c: 0800b744 .word 0x0800b744 ldr r2, =_sbss - 8001abc: 200001dc .word 0x200001dc + 8001ca0: 200001dc .word 0x200001dc ldr r4, =_ebss - 8001ac0: 20002590 .word 0x20002590 + 8001ca4: 200025e4 .word 0x200025e4 -08001ac4 : +08001ca8 : * @retval : None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop - 8001ac4: e7fe b.n 8001ac4 + 8001ca8: e7fe b.n 8001ca8 ... -08001ac8 : +08001cac : * need to ensure that the SysTick time base is always set to 1 millisecond * to have correct HAL operation. * @retval HAL status */ HAL_StatusTypeDef HAL_Init(void) { - 8001ac8: b580 push {r7, lr} - 8001aca: af00 add r7, sp, #0 + 8001cac: b580 push {r7, lr} + 8001cae: af00 add r7, sp, #0 defined(STM32F102x6) || defined(STM32F102xB) || \ defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) || \ defined(STM32F105xC) || defined(STM32F107xC) /* Prefetch buffer is not available on value line devices */ __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); - 8001acc: 4b08 ldr r3, [pc, #32] ; (8001af0 ) - 8001ace: 681b ldr r3, [r3, #0] - 8001ad0: 4a07 ldr r2, [pc, #28] ; (8001af0 ) - 8001ad2: f043 0310 orr.w r3, r3, #16 - 8001ad6: 6013 str r3, [r2, #0] + 8001cb0: 4b08 ldr r3, [pc, #32] ; (8001cd4 ) + 8001cb2: 681b ldr r3, [r3, #0] + 8001cb4: 4a07 ldr r2, [pc, #28] ; (8001cd4 ) + 8001cb6: f043 0310 orr.w r3, r3, #16 + 8001cba: 6013 str r3, [r2, #0] #endif #endif /* PREFETCH_ENABLE */ /* Set Interrupt Group Priority */ HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); - 8001ad8: 2003 movs r0, #3 - 8001ada: f000 f947 bl 8001d6c + 8001cbc: 2003 movs r0, #3 + 8001cbe: f000 f947 bl 8001f50 /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ HAL_InitTick(TICK_INT_PRIORITY); - 8001ade: 200f movs r0, #15 - 8001ae0: f000 f808 bl 8001af4 + 8001cc2: 200f movs r0, #15 + 8001cc4: f000 f808 bl 8001cd8 /* Init the low level hardware */ HAL_MspInit(); - 8001ae4: f7ff fdae bl 8001644 + 8001cc8: f7ff fd54 bl 8001774 /* Return function status */ return HAL_OK; - 8001ae8: 2300 movs r3, #0 + 8001ccc: 2300 movs r3, #0 } - 8001aea: 4618 mov r0, r3 - 8001aec: bd80 pop {r7, pc} - 8001aee: bf00 nop - 8001af0: 40022000 .word 0x40022000 + 8001cce: 4618 mov r0, r3 + 8001cd0: bd80 pop {r7, pc} + 8001cd2: bf00 nop + 8001cd4: 40022000 .word 0x40022000 -08001af4 : +08001cd8 : * implementation in user file. * @param TickPriority Tick interrupt priority. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { - 8001af4: b580 push {r7, lr} - 8001af6: b082 sub sp, #8 - 8001af8: af00 add r7, sp, #0 - 8001afa: 6078 str r0, [r7, #4] + 8001cd8: b580 push {r7, lr} + 8001cda: b082 sub sp, #8 + 8001cdc: af00 add r7, sp, #0 + 8001cde: 6078 str r0, [r7, #4] /* Configure the SysTick to have interrupt in 1ms time basis*/ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) - 8001afc: 4b12 ldr r3, [pc, #72] ; (8001b48 ) - 8001afe: 681a ldr r2, [r3, #0] - 8001b00: 4b12 ldr r3, [pc, #72] ; (8001b4c ) - 8001b02: 781b ldrb r3, [r3, #0] - 8001b04: 4619 mov r1, r3 - 8001b06: f44f 737a mov.w r3, #1000 ; 0x3e8 - 8001b0a: fbb3 f3f1 udiv r3, r3, r1 - 8001b0e: fbb2 f3f3 udiv r3, r2, r3 - 8001b12: 4618 mov r0, r3 - 8001b14: f000 f95f bl 8001dd6 - 8001b18: 4603 mov r3, r0 - 8001b1a: 2b00 cmp r3, #0 - 8001b1c: d001 beq.n 8001b22 + 8001ce0: 4b12 ldr r3, [pc, #72] ; (8001d2c ) + 8001ce2: 681a ldr r2, [r3, #0] + 8001ce4: 4b12 ldr r3, [pc, #72] ; (8001d30 ) + 8001ce6: 781b ldrb r3, [r3, #0] + 8001ce8: 4619 mov r1, r3 + 8001cea: f44f 737a mov.w r3, #1000 ; 0x3e8 + 8001cee: fbb3 f3f1 udiv r3, r3, r1 + 8001cf2: fbb2 f3f3 udiv r3, r2, r3 + 8001cf6: 4618 mov r0, r3 + 8001cf8: f000 f95f bl 8001fba + 8001cfc: 4603 mov r3, r0 + 8001cfe: 2b00 cmp r3, #0 + 8001d00: d001 beq.n 8001d06 { return HAL_ERROR; - 8001b1e: 2301 movs r3, #1 - 8001b20: e00e b.n 8001b40 + 8001d02: 2301 movs r3, #1 + 8001d04: e00e b.n 8001d24 } /* Configure the SysTick IRQ priority */ if (TickPriority < (1UL << __NVIC_PRIO_BITS)) - 8001b22: 687b ldr r3, [r7, #4] - 8001b24: 2b0f cmp r3, #15 - 8001b26: d80a bhi.n 8001b3e + 8001d06: 687b ldr r3, [r7, #4] + 8001d08: 2b0f cmp r3, #15 + 8001d0a: d80a bhi.n 8001d22 { 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 - 8001b30: f000 f927 bl 8001d82 + 8001d0c: 2200 movs r2, #0 + 8001d0e: 6879 ldr r1, [r7, #4] + 8001d10: f04f 30ff mov.w r0, #4294967295 + 8001d14: f000 f927 bl 8001f66 uwTickPrio = TickPriority; - 8001b34: 4a06 ldr r2, [pc, #24] ; (8001b50 ) - 8001b36: 687b ldr r3, [r7, #4] - 8001b38: 6013 str r3, [r2, #0] + 8001d18: 4a06 ldr r2, [pc, #24] ; (8001d34 ) + 8001d1a: 687b ldr r3, [r7, #4] + 8001d1c: 6013 str r3, [r2, #0] { return HAL_ERROR; } /* Return function status */ return HAL_OK; - 8001b3a: 2300 movs r3, #0 - 8001b3c: e000 b.n 8001b40 + 8001d1e: 2300 movs r3, #0 + 8001d20: e000 b.n 8001d24 return HAL_ERROR; - 8001b3e: 2301 movs r3, #1 + 8001d22: 2301 movs r3, #1 } - 8001b40: 4618 mov r0, r3 - 8001b42: 3708 adds r7, #8 - 8001b44: 46bd mov sp, r7 - 8001b46: bd80 pop {r7, pc} - 8001b48: 20000000 .word 0x20000000 - 8001b4c: 20000008 .word 0x20000008 - 8001b50: 20000004 .word 0x20000004 + 8001d24: 4618 mov r0, r3 + 8001d26: 3708 adds r7, #8 + 8001d28: 46bd mov sp, r7 + 8001d2a: bd80 pop {r7, pc} + 8001d2c: 20000000 .word 0x20000000 + 8001d30: 20000008 .word 0x20000008 + 8001d34: 20000004 .word 0x20000004 -08001b54 : +08001d38 : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval None */ __weak void HAL_IncTick(void) { - 8001b54: b480 push {r7} - 8001b56: af00 add r7, sp, #0 + 8001d38: b480 push {r7} + 8001d3a: af00 add r7, sp, #0 uwTick += uwTickFreq; - 8001b58: 4b05 ldr r3, [pc, #20] ; (8001b70 ) - 8001b5a: 781b ldrb r3, [r3, #0] - 8001b5c: 461a mov r2, r3 - 8001b5e: 4b05 ldr r3, [pc, #20] ; (8001b74 ) - 8001b60: 681b ldr r3, [r3, #0] - 8001b62: 4413 add r3, r2 - 8001b64: 4a03 ldr r2, [pc, #12] ; (8001b74 ) - 8001b66: 6013 str r3, [r2, #0] + 8001d3c: 4b05 ldr r3, [pc, #20] ; (8001d54 ) + 8001d3e: 781b ldrb r3, [r3, #0] + 8001d40: 461a mov r2, r3 + 8001d42: 4b05 ldr r3, [pc, #20] ; (8001d58 ) + 8001d44: 681b ldr r3, [r3, #0] + 8001d46: 4413 add r3, r2 + 8001d48: 4a03 ldr r2, [pc, #12] ; (8001d58 ) + 8001d4a: 6013 str r3, [r2, #0] } - 8001b68: bf00 nop - 8001b6a: 46bd mov sp, r7 - 8001b6c: bc80 pop {r7} - 8001b6e: 4770 bx lr - 8001b70: 20000008 .word 0x20000008 - 8001b74: 200003a4 .word 0x200003a4 + 8001d4c: bf00 nop + 8001d4e: 46bd mov sp, r7 + 8001d50: bc80 pop {r7} + 8001d52: 4770 bx lr + 8001d54: 20000008 .word 0x20000008 + 8001d58: 200003b0 .word 0x200003b0 -08001b78 : +08001d5c : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval tick value */ __weak uint32_t HAL_GetTick(void) { - 8001b78: b480 push {r7} - 8001b7a: af00 add r7, sp, #0 + 8001d5c: b480 push {r7} + 8001d5e: af00 add r7, sp, #0 return uwTick; - 8001b7c: 4b02 ldr r3, [pc, #8] ; (8001b88 ) - 8001b7e: 681b ldr r3, [r3, #0] + 8001d60: 4b02 ldr r3, [pc, #8] ; (8001d6c ) + 8001d62: 681b ldr r3, [r3, #0] } - 8001b80: 4618 mov r0, r3 - 8001b82: 46bd mov sp, r7 - 8001b84: bc80 pop {r7} - 8001b86: 4770 bx lr - 8001b88: 200003a4 .word 0x200003a4 + 8001d64: 4618 mov r0, r3 + 8001d66: 46bd mov sp, r7 + 8001d68: bc80 pop {r7} + 8001d6a: 4770 bx lr + 8001d6c: 200003b0 .word 0x200003b0 -08001b8c : +08001d70 : * implementations in user file. * @param Delay specifies the delay time length, in milliseconds. * @retval None */ __weak void HAL_Delay(uint32_t Delay) { - 8001b8c: b580 push {r7, lr} - 8001b8e: b084 sub sp, #16 - 8001b90: af00 add r7, sp, #0 - 8001b92: 6078 str r0, [r7, #4] + 8001d70: b580 push {r7, lr} + 8001d72: b084 sub sp, #16 + 8001d74: af00 add r7, sp, #0 + 8001d76: 6078 str r0, [r7, #4] uint32_t tickstart = HAL_GetTick(); - 8001b94: f7ff fff0 bl 8001b78 - 8001b98: 60b8 str r0, [r7, #8] + 8001d78: f7ff fff0 bl 8001d5c + 8001d7c: 60b8 str r0, [r7, #8] uint32_t wait = Delay; - 8001b9a: 687b ldr r3, [r7, #4] - 8001b9c: 60fb str r3, [r7, #12] + 8001d7e: 687b ldr r3, [r7, #4] + 8001d80: 60fb str r3, [r7, #12] /* 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 - 8001ba4: d005 beq.n 8001bb2 + 8001d82: 68fb ldr r3, [r7, #12] + 8001d84: f1b3 3fff cmp.w r3, #4294967295 + 8001d88: d005 beq.n 8001d96 { wait += (uint32_t)(uwTickFreq); - 8001ba6: 4b0a ldr r3, [pc, #40] ; (8001bd0 ) - 8001ba8: 781b ldrb r3, [r3, #0] - 8001baa: 461a mov r2, r3 - 8001bac: 68fb ldr r3, [r7, #12] - 8001bae: 4413 add r3, r2 - 8001bb0: 60fb str r3, [r7, #12] + 8001d8a: 4b0a ldr r3, [pc, #40] ; (8001db4 ) + 8001d8c: 781b ldrb r3, [r3, #0] + 8001d8e: 461a mov r2, r3 + 8001d90: 68fb ldr r3, [r7, #12] + 8001d92: 4413 add r3, r2 + 8001d94: 60fb str r3, [r7, #12] } while ((HAL_GetTick() - tickstart) < wait) - 8001bb2: bf00 nop - 8001bb4: f7ff ffe0 bl 8001b78 - 8001bb8: 4602 mov r2, r0 - 8001bba: 68bb ldr r3, [r7, #8] - 8001bbc: 1ad3 subs r3, r2, r3 - 8001bbe: 68fa ldr r2, [r7, #12] - 8001bc0: 429a cmp r2, r3 - 8001bc2: d8f7 bhi.n 8001bb4 + 8001d96: bf00 nop + 8001d98: f7ff ffe0 bl 8001d5c + 8001d9c: 4602 mov r2, r0 + 8001d9e: 68bb ldr r3, [r7, #8] + 8001da0: 1ad3 subs r3, r2, r3 + 8001da2: 68fa ldr r2, [r7, #12] + 8001da4: 429a cmp r2, r3 + 8001da6: d8f7 bhi.n 8001d98 { } } - 8001bc4: bf00 nop - 8001bc6: bf00 nop - 8001bc8: 3710 adds r7, #16 - 8001bca: 46bd mov sp, r7 - 8001bcc: bd80 pop {r7, pc} - 8001bce: bf00 nop - 8001bd0: 20000008 .word 0x20000008 + 8001da8: bf00 nop + 8001daa: bf00 nop + 8001dac: 3710 adds r7, #16 + 8001dae: 46bd mov sp, r7 + 8001db0: bd80 pop {r7, pc} + 8001db2: bf00 nop + 8001db4: 20000008 .word 0x20000008 -08001bd4 <__NVIC_SetPriorityGrouping>: +08001db8 <__NVIC_SetPriorityGrouping>: { - 8001bd4: b480 push {r7} - 8001bd6: b085 sub sp, #20 - 8001bd8: af00 add r7, sp, #0 - 8001bda: 6078 str r0, [r7, #4] + 8001db8: b480 push {r7} + 8001dba: b085 sub sp, #20 + 8001dbc: af00 add r7, sp, #0 + 8001dbe: 6078 str r0, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8001bdc: 687b ldr r3, [r7, #4] - 8001bde: f003 0307 and.w r3, r3, #7 - 8001be2: 60fb str r3, [r7, #12] + 8001dc0: 687b ldr r3, [r7, #4] + 8001dc2: f003 0307 and.w r3, r3, #7 + 8001dc6: 60fb str r3, [r7, #12] reg_value = SCB->AIRCR; /* read old register configuration */ - 8001be4: 4b0c ldr r3, [pc, #48] ; (8001c18 <__NVIC_SetPriorityGrouping+0x44>) - 8001be6: 68db ldr r3, [r3, #12] - 8001be8: 60bb str r3, [r7, #8] + 8001dc8: 4b0c ldr r3, [pc, #48] ; (8001dfc <__NVIC_SetPriorityGrouping+0x44>) + 8001dca: 68db ldr r3, [r3, #12] + 8001dcc: 60bb str r3, [r7, #8] reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - 8001bea: 68ba ldr r2, [r7, #8] - 8001bec: f64f 03ff movw r3, #63743 ; 0xf8ff - 8001bf0: 4013 ands r3, r2 - 8001bf2: 60bb str r3, [r7, #8] + 8001dce: 68ba ldr r2, [r7, #8] + 8001dd0: f64f 03ff movw r3, #63743 ; 0xf8ff + 8001dd4: 4013 ands r3, r2 + 8001dd6: 60bb str r3, [r7, #8] (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - 8001bf4: 68fb ldr r3, [r7, #12] - 8001bf6: 021a lsls r2, r3, #8 + 8001dd8: 68fb ldr r3, [r7, #12] + 8001dda: 021a lsls r2, r3, #8 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - 8001bf8: 68bb ldr r3, [r7, #8] - 8001bfa: 4313 orrs r3, r2 + 8001ddc: 68bb ldr r3, [r7, #8] + 8001dde: 4313 orrs r3, r2 reg_value = (reg_value | - 8001bfc: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 - 8001c00: f443 3300 orr.w r3, r3, #131072 ; 0x20000 - 8001c04: 60bb str r3, [r7, #8] + 8001de0: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 + 8001de4: f443 3300 orr.w r3, r3, #131072 ; 0x20000 + 8001de8: 60bb str r3, [r7, #8] SCB->AIRCR = reg_value; - 8001c06: 4a04 ldr r2, [pc, #16] ; (8001c18 <__NVIC_SetPriorityGrouping+0x44>) - 8001c08: 68bb ldr r3, [r7, #8] - 8001c0a: 60d3 str r3, [r2, #12] + 8001dea: 4a04 ldr r2, [pc, #16] ; (8001dfc <__NVIC_SetPriorityGrouping+0x44>) + 8001dec: 68bb ldr r3, [r7, #8] + 8001dee: 60d3 str r3, [r2, #12] } - 8001c0c: bf00 nop - 8001c0e: 3714 adds r7, #20 - 8001c10: 46bd mov sp, r7 - 8001c12: bc80 pop {r7} - 8001c14: 4770 bx lr - 8001c16: bf00 nop - 8001c18: e000ed00 .word 0xe000ed00 + 8001df0: bf00 nop + 8001df2: 3714 adds r7, #20 + 8001df4: 46bd mov sp, r7 + 8001df6: bc80 pop {r7} + 8001df8: 4770 bx lr + 8001dfa: bf00 nop + 8001dfc: e000ed00 .word 0xe000ed00 -08001c1c <__NVIC_GetPriorityGrouping>: +08001e00 <__NVIC_GetPriorityGrouping>: { - 8001c1c: b480 push {r7} - 8001c1e: af00 add r7, sp, #0 + 8001e00: b480 push {r7} + 8001e02: af00 add r7, sp, #0 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); - 8001c20: 4b04 ldr r3, [pc, #16] ; (8001c34 <__NVIC_GetPriorityGrouping+0x18>) - 8001c22: 68db ldr r3, [r3, #12] - 8001c24: 0a1b lsrs r3, r3, #8 - 8001c26: f003 0307 and.w r3, r3, #7 + 8001e04: 4b04 ldr r3, [pc, #16] ; (8001e18 <__NVIC_GetPriorityGrouping+0x18>) + 8001e06: 68db ldr r3, [r3, #12] + 8001e08: 0a1b lsrs r3, r3, #8 + 8001e0a: f003 0307 and.w r3, r3, #7 } - 8001c2a: 4618 mov r0, r3 - 8001c2c: 46bd mov sp, r7 - 8001c2e: bc80 pop {r7} - 8001c30: 4770 bx lr - 8001c32: bf00 nop - 8001c34: e000ed00 .word 0xe000ed00 + 8001e0e: 4618 mov r0, r3 + 8001e10: 46bd mov sp, r7 + 8001e12: bc80 pop {r7} + 8001e14: 4770 bx lr + 8001e16: bf00 nop + 8001e18: e000ed00 .word 0xe000ed00 -08001c38 <__NVIC_EnableIRQ>: +08001e1c <__NVIC_EnableIRQ>: { - 8001c38: b480 push {r7} - 8001c3a: b083 sub sp, #12 - 8001c3c: af00 add r7, sp, #0 - 8001c3e: 4603 mov r3, r0 - 8001c40: 71fb strb r3, [r7, #7] + 8001e1c: b480 push {r7} + 8001e1e: b083 sub sp, #12 + 8001e20: af00 add r7, sp, #0 + 8001e22: 4603 mov r3, r0 + 8001e24: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 8001c42: f997 3007 ldrsb.w r3, [r7, #7] - 8001c46: 2b00 cmp r3, #0 - 8001c48: db0b blt.n 8001c62 <__NVIC_EnableIRQ+0x2a> + 8001e26: f997 3007 ldrsb.w r3, [r7, #7] + 8001e2a: 2b00 cmp r3, #0 + 8001e2c: db0b blt.n 8001e46 <__NVIC_EnableIRQ+0x2a> NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - 8001c4a: 79fb ldrb r3, [r7, #7] - 8001c4c: f003 021f and.w r2, r3, #31 - 8001c50: 4906 ldr r1, [pc, #24] ; (8001c6c <__NVIC_EnableIRQ+0x34>) - 8001c52: f997 3007 ldrsb.w r3, [r7, #7] - 8001c56: 095b lsrs r3, r3, #5 - 8001c58: 2001 movs r0, #1 - 8001c5a: fa00 f202 lsl.w r2, r0, r2 - 8001c5e: f841 2023 str.w r2, [r1, r3, lsl #2] + 8001e2e: 79fb ldrb r3, [r7, #7] + 8001e30: f003 021f and.w r2, r3, #31 + 8001e34: 4906 ldr r1, [pc, #24] ; (8001e50 <__NVIC_EnableIRQ+0x34>) + 8001e36: f997 3007 ldrsb.w r3, [r7, #7] + 8001e3a: 095b lsrs r3, r3, #5 + 8001e3c: 2001 movs r0, #1 + 8001e3e: fa00 f202 lsl.w r2, r0, r2 + 8001e42: f841 2023 str.w r2, [r1, r3, lsl #2] } - 8001c62: bf00 nop - 8001c64: 370c adds r7, #12 - 8001c66: 46bd mov sp, r7 - 8001c68: bc80 pop {r7} - 8001c6a: 4770 bx lr - 8001c6c: e000e100 .word 0xe000e100 + 8001e46: bf00 nop + 8001e48: 370c adds r7, #12 + 8001e4a: 46bd mov sp, r7 + 8001e4c: bc80 pop {r7} + 8001e4e: 4770 bx lr + 8001e50: e000e100 .word 0xe000e100 -08001c70 <__NVIC_SetPriority>: +08001e54 <__NVIC_SetPriority>: { - 8001c70: b480 push {r7} - 8001c72: b083 sub sp, #12 - 8001c74: af00 add r7, sp, #0 - 8001c76: 4603 mov r3, r0 - 8001c78: 6039 str r1, [r7, #0] - 8001c7a: 71fb strb r3, [r7, #7] + 8001e54: b480 push {r7} + 8001e56: b083 sub sp, #12 + 8001e58: af00 add r7, sp, #0 + 8001e5a: 4603 mov r3, r0 + 8001e5c: 6039 str r1, [r7, #0] + 8001e5e: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 8001c7c: f997 3007 ldrsb.w r3, [r7, #7] - 8001c80: 2b00 cmp r3, #0 - 8001c82: db0a blt.n 8001c9a <__NVIC_SetPriority+0x2a> + 8001e60: f997 3007 ldrsb.w r3, [r7, #7] + 8001e64: 2b00 cmp r3, #0 + 8001e66: db0a blt.n 8001e7e <__NVIC_SetPriority+0x2a> NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 8001c84: 683b ldr r3, [r7, #0] - 8001c86: b2da uxtb r2, r3 - 8001c88: 490c ldr r1, [pc, #48] ; (8001cbc <__NVIC_SetPriority+0x4c>) - 8001c8a: f997 3007 ldrsb.w r3, [r7, #7] - 8001c8e: 0112 lsls r2, r2, #4 - 8001c90: b2d2 uxtb r2, r2 - 8001c92: 440b add r3, r1 - 8001c94: f883 2300 strb.w r2, [r3, #768] ; 0x300 + 8001e68: 683b ldr r3, [r7, #0] + 8001e6a: b2da uxtb r2, r3 + 8001e6c: 490c ldr r1, [pc, #48] ; (8001ea0 <__NVIC_SetPriority+0x4c>) + 8001e6e: f997 3007 ldrsb.w r3, [r7, #7] + 8001e72: 0112 lsls r2, r2, #4 + 8001e74: b2d2 uxtb r2, r2 + 8001e76: 440b add r3, r1 + 8001e78: f883 2300 strb.w r2, [r3, #768] ; 0x300 } - 8001c98: e00a b.n 8001cb0 <__NVIC_SetPriority+0x40> + 8001e7c: e00a b.n 8001e94 <__NVIC_SetPriority+0x40> SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 8001c9a: 683b ldr r3, [r7, #0] - 8001c9c: b2da uxtb r2, r3 - 8001c9e: 4908 ldr r1, [pc, #32] ; (8001cc0 <__NVIC_SetPriority+0x50>) - 8001ca0: 79fb ldrb r3, [r7, #7] - 8001ca2: f003 030f and.w r3, r3, #15 - 8001ca6: 3b04 subs r3, #4 - 8001ca8: 0112 lsls r2, r2, #4 - 8001caa: b2d2 uxtb r2, r2 - 8001cac: 440b add r3, r1 - 8001cae: 761a strb r2, [r3, #24] + 8001e7e: 683b ldr r3, [r7, #0] + 8001e80: b2da uxtb r2, r3 + 8001e82: 4908 ldr r1, [pc, #32] ; (8001ea4 <__NVIC_SetPriority+0x50>) + 8001e84: 79fb ldrb r3, [r7, #7] + 8001e86: f003 030f and.w r3, r3, #15 + 8001e8a: 3b04 subs r3, #4 + 8001e8c: 0112 lsls r2, r2, #4 + 8001e8e: b2d2 uxtb r2, r2 + 8001e90: 440b add r3, r1 + 8001e92: 761a strb r2, [r3, #24] } - 8001cb0: bf00 nop - 8001cb2: 370c adds r7, #12 - 8001cb4: 46bd mov sp, r7 - 8001cb6: bc80 pop {r7} - 8001cb8: 4770 bx lr - 8001cba: bf00 nop - 8001cbc: e000e100 .word 0xe000e100 - 8001cc0: e000ed00 .word 0xe000ed00 + 8001e94: bf00 nop + 8001e96: 370c adds r7, #12 + 8001e98: 46bd mov sp, r7 + 8001e9a: bc80 pop {r7} + 8001e9c: 4770 bx lr + 8001e9e: bf00 nop + 8001ea0: e000e100 .word 0xe000e100 + 8001ea4: e000ed00 .word 0xe000ed00 -08001cc4 : +08001ea8 : { - 8001cc4: b480 push {r7} - 8001cc6: b089 sub sp, #36 ; 0x24 - 8001cc8: af00 add r7, sp, #0 - 8001cca: 60f8 str r0, [r7, #12] - 8001ccc: 60b9 str r1, [r7, #8] - 8001cce: 607a str r2, [r7, #4] + 8001ea8: b480 push {r7} + 8001eaa: b089 sub sp, #36 ; 0x24 + 8001eac: af00 add r7, sp, #0 + 8001eae: 60f8 str r0, [r7, #12] + 8001eb0: 60b9 str r1, [r7, #8] + 8001eb2: 607a str r2, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8001cd0: 68fb ldr r3, [r7, #12] - 8001cd2: f003 0307 and.w r3, r3, #7 - 8001cd6: 61fb str r3, [r7, #28] + 8001eb4: 68fb ldr r3, [r7, #12] + 8001eb6: f003 0307 and.w r3, r3, #7 + 8001eba: 61fb str r3, [r7, #28] PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - 8001cd8: 69fb ldr r3, [r7, #28] - 8001cda: f1c3 0307 rsb r3, r3, #7 - 8001cde: 2b04 cmp r3, #4 - 8001ce0: bf28 it cs - 8001ce2: 2304 movcs r3, #4 - 8001ce4: 61bb str r3, [r7, #24] + 8001ebc: 69fb ldr r3, [r7, #28] + 8001ebe: f1c3 0307 rsb r3, r3, #7 + 8001ec2: 2b04 cmp r3, #4 + 8001ec4: bf28 it cs + 8001ec6: 2304 movcs r3, #4 + 8001ec8: 61bb str r3, [r7, #24] SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - 8001ce6: 69fb ldr r3, [r7, #28] - 8001ce8: 3304 adds r3, #4 - 8001cea: 2b06 cmp r3, #6 - 8001cec: d902 bls.n 8001cf4 - 8001cee: 69fb ldr r3, [r7, #28] - 8001cf0: 3b03 subs r3, #3 - 8001cf2: e000 b.n 8001cf6 - 8001cf4: 2300 movs r3, #0 - 8001cf6: 617b str r3, [r7, #20] + 8001eca: 69fb ldr r3, [r7, #28] + 8001ecc: 3304 adds r3, #4 + 8001ece: 2b06 cmp r3, #6 + 8001ed0: d902 bls.n 8001ed8 + 8001ed2: 69fb ldr r3, [r7, #28] + 8001ed4: 3b03 subs r3, #3 + 8001ed6: e000 b.n 8001eda + 8001ed8: 2300 movs r3, #0 + 8001eda: 617b str r3, [r7, #20] ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 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 - 8001d04: 68bb ldr r3, [r7, #8] - 8001d06: 401a ands r2, r3 - 8001d08: 697b ldr r3, [r7, #20] - 8001d0a: 409a lsls r2, r3 + 8001edc: f04f 32ff mov.w r2, #4294967295 + 8001ee0: 69bb ldr r3, [r7, #24] + 8001ee2: fa02 f303 lsl.w r3, r2, r3 + 8001ee6: 43da mvns r2, r3 + 8001ee8: 68bb ldr r3, [r7, #8] + 8001eea: 401a ands r2, r3 + 8001eec: 697b ldr r3, [r7, #20] + 8001eee: 409a lsls r2, r3 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - 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 - 8001d18: 687b ldr r3, [r7, #4] - 8001d1a: 400b ands r3, r1 + 8001ef0: f04f 31ff mov.w r1, #4294967295 + 8001ef4: 697b ldr r3, [r7, #20] + 8001ef6: fa01 f303 lsl.w r3, r1, r3 + 8001efa: 43d9 mvns r1, r3 + 8001efc: 687b ldr r3, [r7, #4] + 8001efe: 400b ands r3, r1 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8001d1c: 4313 orrs r3, r2 + 8001f00: 4313 orrs r3, r2 } - 8001d1e: 4618 mov r0, r3 - 8001d20: 3724 adds r7, #36 ; 0x24 - 8001d22: 46bd mov sp, r7 - 8001d24: bc80 pop {r7} - 8001d26: 4770 bx lr + 8001f02: 4618 mov r0, r3 + 8001f04: 3724 adds r7, #36 ; 0x24 + 8001f06: 46bd mov sp, r7 + 8001f08: bc80 pop {r7} + 8001f0a: 4770 bx lr -08001d28 : +08001f0c : { - 8001d28: b580 push {r7, lr} - 8001d2a: b082 sub sp, #8 - 8001d2c: af00 add r7, sp, #0 - 8001d2e: 6078 str r0, [r7, #4] + 8001f0c: b580 push {r7, lr} + 8001f0e: b082 sub sp, #8 + 8001f10: af00 add r7, sp, #0 + 8001f12: 6078 str r0, [r7, #4] if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - 8001d30: 687b ldr r3, [r7, #4] - 8001d32: 3b01 subs r3, #1 - 8001d34: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 - 8001d38: d301 bcc.n 8001d3e + 8001f14: 687b ldr r3, [r7, #4] + 8001f16: 3b01 subs r3, #1 + 8001f18: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 + 8001f1c: d301 bcc.n 8001f22 return (1UL); /* Reload value impossible */ - 8001d3a: 2301 movs r3, #1 - 8001d3c: e00f b.n 8001d5e + 8001f1e: 2301 movs r3, #1 + 8001f20: e00f b.n 8001f42 SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - 8001d3e: 4a0a ldr r2, [pc, #40] ; (8001d68 ) - 8001d40: 687b ldr r3, [r7, #4] - 8001d42: 3b01 subs r3, #1 - 8001d44: 6053 str r3, [r2, #4] + 8001f22: 4a0a ldr r2, [pc, #40] ; (8001f4c ) + 8001f24: 687b ldr r3, [r7, #4] + 8001f26: 3b01 subs r3, #1 + 8001f28: 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 - 8001d4c: f7ff ff90 bl 8001c70 <__NVIC_SetPriority> + 8001f2a: 210f movs r1, #15 + 8001f2c: f04f 30ff mov.w r0, #4294967295 + 8001f30: f7ff ff90 bl 8001e54 <__NVIC_SetPriority> SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - 8001d50: 4b05 ldr r3, [pc, #20] ; (8001d68 ) - 8001d52: 2200 movs r2, #0 - 8001d54: 609a str r2, [r3, #8] + 8001f34: 4b05 ldr r3, [pc, #20] ; (8001f4c ) + 8001f36: 2200 movs r2, #0 + 8001f38: 609a str r2, [r3, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - 8001d56: 4b04 ldr r3, [pc, #16] ; (8001d68 ) - 8001d58: 2207 movs r2, #7 - 8001d5a: 601a str r2, [r3, #0] + 8001f3a: 4b04 ldr r3, [pc, #16] ; (8001f4c ) + 8001f3c: 2207 movs r2, #7 + 8001f3e: 601a str r2, [r3, #0] return (0UL); /* Function successful */ - 8001d5c: 2300 movs r3, #0 + 8001f40: 2300 movs r3, #0 } - 8001d5e: 4618 mov r0, r3 - 8001d60: 3708 adds r7, #8 - 8001d62: 46bd mov sp, r7 - 8001d64: bd80 pop {r7, pc} - 8001d66: bf00 nop - 8001d68: e000e010 .word 0xe000e010 + 8001f42: 4618 mov r0, r3 + 8001f44: 3708 adds r7, #8 + 8001f46: 46bd mov sp, r7 + 8001f48: bd80 pop {r7, pc} + 8001f4a: bf00 nop + 8001f4c: e000e010 .word 0xe000e010 -08001d6c : +08001f50 : * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. * The pending IRQ priority will be managed only by the subpriority. * @retval None */ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { - 8001d6c: b580 push {r7, lr} - 8001d6e: b082 sub sp, #8 - 8001d70: af00 add r7, sp, #0 - 8001d72: 6078 str r0, [r7, #4] + 8001f50: b580 push {r7, lr} + 8001f52: b082 sub sp, #8 + 8001f54: af00 add r7, sp, #0 + 8001f56: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ NVIC_SetPriorityGrouping(PriorityGroup); - 8001d74: 6878 ldr r0, [r7, #4] - 8001d76: f7ff ff2d bl 8001bd4 <__NVIC_SetPriorityGrouping> + 8001f58: 6878 ldr r0, [r7, #4] + 8001f5a: f7ff ff2d bl 8001db8 <__NVIC_SetPriorityGrouping> } - 8001d7a: bf00 nop - 8001d7c: 3708 adds r7, #8 - 8001d7e: 46bd mov sp, r7 - 8001d80: bd80 pop {r7, pc} + 8001f5e: bf00 nop + 8001f60: 3708 adds r7, #8 + 8001f62: 46bd mov sp, r7 + 8001f64: bd80 pop {r7, pc} -08001d82 : +08001f66 : * This parameter can be a value between 0 and 15 * A lower priority value indicates a higher priority. * @retval None */ void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) { - 8001d82: b580 push {r7, lr} - 8001d84: b086 sub sp, #24 - 8001d86: af00 add r7, sp, #0 - 8001d88: 4603 mov r3, r0 - 8001d8a: 60b9 str r1, [r7, #8] - 8001d8c: 607a str r2, [r7, #4] - 8001d8e: 73fb strb r3, [r7, #15] + 8001f66: b580 push {r7, lr} + 8001f68: b086 sub sp, #24 + 8001f6a: af00 add r7, sp, #0 + 8001f6c: 4603 mov r3, r0 + 8001f6e: 60b9 str r1, [r7, #8] + 8001f70: 607a str r2, [r7, #4] + 8001f72: 73fb strb r3, [r7, #15] uint32_t prioritygroup = 0x00U; - 8001d90: 2300 movs r3, #0 - 8001d92: 617b str r3, [r7, #20] + 8001f74: 2300 movs r3, #0 + 8001f76: 617b str r3, [r7, #20] /* Check the parameters */ assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); prioritygroup = NVIC_GetPriorityGrouping(); - 8001d94: f7ff ff42 bl 8001c1c <__NVIC_GetPriorityGrouping> - 8001d98: 6178 str r0, [r7, #20] + 8001f78: f7ff ff42 bl 8001e00 <__NVIC_GetPriorityGrouping> + 8001f7c: 6178 str r0, [r7, #20] NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); - 8001d9a: 687a ldr r2, [r7, #4] - 8001d9c: 68b9 ldr r1, [r7, #8] - 8001d9e: 6978 ldr r0, [r7, #20] - 8001da0: f7ff ff90 bl 8001cc4 - 8001da4: 4602 mov r2, r0 - 8001da6: f997 300f ldrsb.w r3, [r7, #15] - 8001daa: 4611 mov r1, r2 - 8001dac: 4618 mov r0, r3 - 8001dae: f7ff ff5f bl 8001c70 <__NVIC_SetPriority> + 8001f7e: 687a ldr r2, [r7, #4] + 8001f80: 68b9 ldr r1, [r7, #8] + 8001f82: 6978 ldr r0, [r7, #20] + 8001f84: f7ff ff90 bl 8001ea8 + 8001f88: 4602 mov r2, r0 + 8001f8a: f997 300f ldrsb.w r3, [r7, #15] + 8001f8e: 4611 mov r1, r2 + 8001f90: 4618 mov r0, r3 + 8001f92: f7ff ff5f bl 8001e54 <__NVIC_SetPriority> } - 8001db2: bf00 nop - 8001db4: 3718 adds r7, #24 - 8001db6: 46bd mov sp, r7 - 8001db8: bd80 pop {r7, pc} + 8001f96: bf00 nop + 8001f98: 3718 adds r7, #24 + 8001f9a: 46bd mov sp, r7 + 8001f9c: bd80 pop {r7, pc} -08001dba : +08001f9e : * This parameter can be an enumerator of IRQn_Type enumeration * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f10xxx.h)) * @retval None */ void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) { - 8001dba: b580 push {r7, lr} - 8001dbc: b082 sub sp, #8 - 8001dbe: af00 add r7, sp, #0 - 8001dc0: 4603 mov r3, r0 - 8001dc2: 71fb strb r3, [r7, #7] + 8001f9e: b580 push {r7, lr} + 8001fa0: b082 sub sp, #8 + 8001fa2: af00 add r7, sp, #0 + 8001fa4: 4603 mov r3, r0 + 8001fa6: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); /* Enable interrupt */ NVIC_EnableIRQ(IRQn); - 8001dc4: f997 3007 ldrsb.w r3, [r7, #7] - 8001dc8: 4618 mov r0, r3 - 8001dca: f7ff ff35 bl 8001c38 <__NVIC_EnableIRQ> + 8001fa8: f997 3007 ldrsb.w r3, [r7, #7] + 8001fac: 4618 mov r0, r3 + 8001fae: f7ff ff35 bl 8001e1c <__NVIC_EnableIRQ> } - 8001dce: bf00 nop - 8001dd0: 3708 adds r7, #8 - 8001dd2: 46bd mov sp, r7 - 8001dd4: bd80 pop {r7, pc} + 8001fb2: bf00 nop + 8001fb4: 3708 adds r7, #8 + 8001fb6: 46bd mov sp, r7 + 8001fb8: bd80 pop {r7, pc} -08001dd6 : +08001fba : * @param TicksNumb: Specifies the ticks Number of ticks between two interrupts. * @retval status: - 0 Function succeeded. * - 1 Function failed. */ uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) { - 8001dd6: b580 push {r7, lr} - 8001dd8: b082 sub sp, #8 - 8001dda: af00 add r7, sp, #0 - 8001ddc: 6078 str r0, [r7, #4] + 8001fba: b580 push {r7, lr} + 8001fbc: b082 sub sp, #8 + 8001fbe: af00 add r7, sp, #0 + 8001fc0: 6078 str r0, [r7, #4] return SysTick_Config(TicksNumb); - 8001dde: 6878 ldr r0, [r7, #4] - 8001de0: f7ff ffa2 bl 8001d28 - 8001de4: 4603 mov r3, r0 + 8001fc2: 6878 ldr r0, [r7, #4] + 8001fc4: f7ff ffa2 bl 8001f0c + 8001fc8: 4603 mov r3, r0 } - 8001de6: 4618 mov r0, r3 - 8001de8: 3708 adds r7, #8 - 8001dea: 46bd mov sp, r7 - 8001dec: bd80 pop {r7, pc} + 8001fca: 4618 mov r0, r3 + 8001fcc: 3708 adds r7, #8 + 8001fce: 46bd mov sp, r7 + 8001fd0: bd80 pop {r7, pc} ... -08001df0 : +08001fd4 : * @param GPIO_Init: pointer to a GPIO_InitTypeDef structure that contains * the configuration information for the specified GPIO peripheral. * @retval None */ void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) { - 8001df0: b480 push {r7} - 8001df2: b08b sub sp, #44 ; 0x2c - 8001df4: af00 add r7, sp, #0 - 8001df6: 6078 str r0, [r7, #4] - 8001df8: 6039 str r1, [r7, #0] + 8001fd4: b480 push {r7} + 8001fd6: b08b sub sp, #44 ; 0x2c + 8001fd8: af00 add r7, sp, #0 + 8001fda: 6078 str r0, [r7, #4] + 8001fdc: 6039 str r1, [r7, #0] uint32_t position = 0x00u; - 8001dfa: 2300 movs r3, #0 - 8001dfc: 627b str r3, [r7, #36] ; 0x24 + 8001fde: 2300 movs r3, #0 + 8001fe0: 627b str r3, [r7, #36] ; 0x24 uint32_t ioposition; uint32_t iocurrent; uint32_t temp; uint32_t config = 0x00u; - 8001dfe: 2300 movs r3, #0 - 8001e00: 623b str r3, [r7, #32] + 8001fe2: 2300 movs r3, #0 + 8001fe4: 623b str r3, [r7, #32] assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); /* Configure the port pins */ while (((GPIO_Init->Pin) >> position) != 0x00u) - 8001e02: e179 b.n 80020f8 + 8001fe6: e179 b.n 80022dc { /* Get the IO position */ ioposition = (0x01uL << position); - 8001e04: 2201 movs r2, #1 - 8001e06: 6a7b ldr r3, [r7, #36] ; 0x24 - 8001e08: fa02 f303 lsl.w r3, r2, r3 - 8001e0c: 61fb str r3, [r7, #28] + 8001fe8: 2201 movs r2, #1 + 8001fea: 6a7b ldr r3, [r7, #36] ; 0x24 + 8001fec: fa02 f303 lsl.w r3, r2, r3 + 8001ff0: 61fb str r3, [r7, #28] /* Get the current IO position */ iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition; - 8001e0e: 683b ldr r3, [r7, #0] - 8001e10: 681b ldr r3, [r3, #0] - 8001e12: 69fa ldr r2, [r7, #28] - 8001e14: 4013 ands r3, r2 - 8001e16: 61bb str r3, [r7, #24] + 8001ff2: 683b ldr r3, [r7, #0] + 8001ff4: 681b ldr r3, [r3, #0] + 8001ff6: 69fa ldr r2, [r7, #28] + 8001ff8: 4013 ands r3, r2 + 8001ffa: 61bb str r3, [r7, #24] if (iocurrent == ioposition) - 8001e18: 69ba ldr r2, [r7, #24] - 8001e1a: 69fb ldr r3, [r7, #28] - 8001e1c: 429a cmp r2, r3 - 8001e1e: f040 8168 bne.w 80020f2 + 8001ffc: 69ba ldr r2, [r7, #24] + 8001ffe: 69fb ldr r3, [r7, #28] + 8002000: 429a cmp r2, r3 + 8002002: f040 8168 bne.w 80022d6 { /* Check the Alternate function parameters */ assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); /* Based on the required mode, filling config variable with MODEy[1:0] and CNFy[3:2] corresponding bits */ switch (GPIO_Init->Mode) - 8001e22: 683b ldr r3, [r7, #0] - 8001e24: 685b ldr r3, [r3, #4] - 8001e26: 4aa0 ldr r2, [pc, #640] ; (80020a8 ) - 8001e28: 4293 cmp r3, r2 - 8001e2a: d05e beq.n 8001eea - 8001e2c: 4a9e ldr r2, [pc, #632] ; (80020a8 ) - 8001e2e: 4293 cmp r3, r2 - 8001e30: d875 bhi.n 8001f1e - 8001e32: 4a9e ldr r2, [pc, #632] ; (80020ac ) - 8001e34: 4293 cmp r3, r2 - 8001e36: d058 beq.n 8001eea - 8001e38: 4a9c ldr r2, [pc, #624] ; (80020ac ) - 8001e3a: 4293 cmp r3, r2 - 8001e3c: d86f bhi.n 8001f1e - 8001e3e: 4a9c ldr r2, [pc, #624] ; (80020b0 ) - 8001e40: 4293 cmp r3, r2 - 8001e42: d052 beq.n 8001eea - 8001e44: 4a9a ldr r2, [pc, #616] ; (80020b0 ) - 8001e46: 4293 cmp r3, r2 - 8001e48: d869 bhi.n 8001f1e - 8001e4a: 4a9a ldr r2, [pc, #616] ; (80020b4 ) - 8001e4c: 4293 cmp r3, r2 - 8001e4e: d04c beq.n 8001eea - 8001e50: 4a98 ldr r2, [pc, #608] ; (80020b4 ) - 8001e52: 4293 cmp r3, r2 - 8001e54: d863 bhi.n 8001f1e - 8001e56: 4a98 ldr r2, [pc, #608] ; (80020b8 ) - 8001e58: 4293 cmp r3, r2 - 8001e5a: d046 beq.n 8001eea - 8001e5c: 4a96 ldr r2, [pc, #600] ; (80020b8 ) - 8001e5e: 4293 cmp r3, r2 - 8001e60: d85d bhi.n 8001f1e - 8001e62: 2b12 cmp r3, #18 - 8001e64: d82a bhi.n 8001ebc - 8001e66: 2b12 cmp r3, #18 - 8001e68: d859 bhi.n 8001f1e - 8001e6a: a201 add r2, pc, #4 ; (adr r2, 8001e70 ) - 8001e6c: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8001e70: 08001eeb .word 0x08001eeb - 8001e74: 08001ec5 .word 0x08001ec5 - 8001e78: 08001ed7 .word 0x08001ed7 - 8001e7c: 08001f19 .word 0x08001f19 - 8001e80: 08001f1f .word 0x08001f1f - 8001e84: 08001f1f .word 0x08001f1f - 8001e88: 08001f1f .word 0x08001f1f - 8001e8c: 08001f1f .word 0x08001f1f - 8001e90: 08001f1f .word 0x08001f1f - 8001e94: 08001f1f .word 0x08001f1f - 8001e98: 08001f1f .word 0x08001f1f - 8001e9c: 08001f1f .word 0x08001f1f - 8001ea0: 08001f1f .word 0x08001f1f - 8001ea4: 08001f1f .word 0x08001f1f - 8001ea8: 08001f1f .word 0x08001f1f - 8001eac: 08001f1f .word 0x08001f1f - 8001eb0: 08001f1f .word 0x08001f1f - 8001eb4: 08001ecd .word 0x08001ecd - 8001eb8: 08001ee1 .word 0x08001ee1 - 8001ebc: 4a7f ldr r2, [pc, #508] ; (80020bc ) - 8001ebe: 4293 cmp r3, r2 - 8001ec0: d013 beq.n 8001eea + 8002006: 683b ldr r3, [r7, #0] + 8002008: 685b ldr r3, [r3, #4] + 800200a: 4aa0 ldr r2, [pc, #640] ; (800228c ) + 800200c: 4293 cmp r3, r2 + 800200e: d05e beq.n 80020ce + 8002010: 4a9e ldr r2, [pc, #632] ; (800228c ) + 8002012: 4293 cmp r3, r2 + 8002014: d875 bhi.n 8002102 + 8002016: 4a9e ldr r2, [pc, #632] ; (8002290 ) + 8002018: 4293 cmp r3, r2 + 800201a: d058 beq.n 80020ce + 800201c: 4a9c ldr r2, [pc, #624] ; (8002290 ) + 800201e: 4293 cmp r3, r2 + 8002020: d86f bhi.n 8002102 + 8002022: 4a9c ldr r2, [pc, #624] ; (8002294 ) + 8002024: 4293 cmp r3, r2 + 8002026: d052 beq.n 80020ce + 8002028: 4a9a ldr r2, [pc, #616] ; (8002294 ) + 800202a: 4293 cmp r3, r2 + 800202c: d869 bhi.n 8002102 + 800202e: 4a9a ldr r2, [pc, #616] ; (8002298 ) + 8002030: 4293 cmp r3, r2 + 8002032: d04c beq.n 80020ce + 8002034: 4a98 ldr r2, [pc, #608] ; (8002298 ) + 8002036: 4293 cmp r3, r2 + 8002038: d863 bhi.n 8002102 + 800203a: 4a98 ldr r2, [pc, #608] ; (800229c ) + 800203c: 4293 cmp r3, r2 + 800203e: d046 beq.n 80020ce + 8002040: 4a96 ldr r2, [pc, #600] ; (800229c ) + 8002042: 4293 cmp r3, r2 + 8002044: d85d bhi.n 8002102 + 8002046: 2b12 cmp r3, #18 + 8002048: d82a bhi.n 80020a0 + 800204a: 2b12 cmp r3, #18 + 800204c: d859 bhi.n 8002102 + 800204e: a201 add r2, pc, #4 ; (adr r2, 8002054 ) + 8002050: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002054: 080020cf .word 0x080020cf + 8002058: 080020a9 .word 0x080020a9 + 800205c: 080020bb .word 0x080020bb + 8002060: 080020fd .word 0x080020fd + 8002064: 08002103 .word 0x08002103 + 8002068: 08002103 .word 0x08002103 + 800206c: 08002103 .word 0x08002103 + 8002070: 08002103 .word 0x08002103 + 8002074: 08002103 .word 0x08002103 + 8002078: 08002103 .word 0x08002103 + 800207c: 08002103 .word 0x08002103 + 8002080: 08002103 .word 0x08002103 + 8002084: 08002103 .word 0x08002103 + 8002088: 08002103 .word 0x08002103 + 800208c: 08002103 .word 0x08002103 + 8002090: 08002103 .word 0x08002103 + 8002094: 08002103 .word 0x08002103 + 8002098: 080020b1 .word 0x080020b1 + 800209c: 080020c5 .word 0x080020c5 + 80020a0: 4a7f ldr r2, [pc, #508] ; (80022a0 ) + 80020a2: 4293 cmp r3, r2 + 80020a4: d013 beq.n 80020ce config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_ANALOG; break; /* Parameters are checked with assert_param */ default: break; - 8001ec2: e02c b.n 8001f1e + 80020a6: e02c b.n 8002102 config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_PP; - 8001ec4: 683b ldr r3, [r7, #0] - 8001ec6: 68db ldr r3, [r3, #12] - 8001ec8: 623b str r3, [r7, #32] + 80020a8: 683b ldr r3, [r7, #0] + 80020aa: 68db ldr r3, [r3, #12] + 80020ac: 623b str r3, [r7, #32] break; - 8001eca: e029 b.n 8001f20 + 80020ae: e029 b.n 8002104 config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_OD; - 8001ecc: 683b ldr r3, [r7, #0] - 8001ece: 68db ldr r3, [r3, #12] - 8001ed0: 3304 adds r3, #4 - 8001ed2: 623b str r3, [r7, #32] + 80020b0: 683b ldr r3, [r7, #0] + 80020b2: 68db ldr r3, [r3, #12] + 80020b4: 3304 adds r3, #4 + 80020b6: 623b str r3, [r7, #32] break; - 8001ed4: e024 b.n 8001f20 + 80020b8: e024 b.n 8002104 config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_PP; - 8001ed6: 683b ldr r3, [r7, #0] - 8001ed8: 68db ldr r3, [r3, #12] - 8001eda: 3308 adds r3, #8 - 8001edc: 623b str r3, [r7, #32] + 80020ba: 683b ldr r3, [r7, #0] + 80020bc: 68db ldr r3, [r3, #12] + 80020be: 3308 adds r3, #8 + 80020c0: 623b str r3, [r7, #32] break; - 8001ede: e01f b.n 8001f20 + 80020c2: e01f b.n 8002104 config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_OD; - 8001ee0: 683b ldr r3, [r7, #0] - 8001ee2: 68db ldr r3, [r3, #12] - 8001ee4: 330c adds r3, #12 - 8001ee6: 623b str r3, [r7, #32] + 80020c4: 683b ldr r3, [r7, #0] + 80020c6: 68db ldr r3, [r3, #12] + 80020c8: 330c adds r3, #12 + 80020ca: 623b str r3, [r7, #32] break; - 8001ee8: e01a b.n 8001f20 + 80020cc: e01a b.n 8002104 if (GPIO_Init->Pull == GPIO_NOPULL) - 8001eea: 683b ldr r3, [r7, #0] - 8001eec: 689b ldr r3, [r3, #8] - 8001eee: 2b00 cmp r3, #0 - 8001ef0: d102 bne.n 8001ef8 + 80020ce: 683b ldr r3, [r7, #0] + 80020d0: 689b ldr r3, [r3, #8] + 80020d2: 2b00 cmp r3, #0 + 80020d4: d102 bne.n 80020dc config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_FLOATING; - 8001ef2: 2304 movs r3, #4 - 8001ef4: 623b str r3, [r7, #32] + 80020d6: 2304 movs r3, #4 + 80020d8: 623b str r3, [r7, #32] break; - 8001ef6: e013 b.n 8001f20 + 80020da: e013 b.n 8002104 else if (GPIO_Init->Pull == GPIO_PULLUP) - 8001ef8: 683b ldr r3, [r7, #0] - 8001efa: 689b ldr r3, [r3, #8] - 8001efc: 2b01 cmp r3, #1 - 8001efe: d105 bne.n 8001f0c + 80020dc: 683b ldr r3, [r7, #0] + 80020de: 689b ldr r3, [r3, #8] + 80020e0: 2b01 cmp r3, #1 + 80020e2: d105 bne.n 80020f0 config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_PU_PD; - 8001f00: 2308 movs r3, #8 - 8001f02: 623b str r3, [r7, #32] + 80020e4: 2308 movs r3, #8 + 80020e6: 623b str r3, [r7, #32] GPIOx->BSRR = ioposition; - 8001f04: 687b ldr r3, [r7, #4] - 8001f06: 69fa ldr r2, [r7, #28] - 8001f08: 611a str r2, [r3, #16] + 80020e8: 687b ldr r3, [r7, #4] + 80020ea: 69fa ldr r2, [r7, #28] + 80020ec: 611a str r2, [r3, #16] break; - 8001f0a: e009 b.n 8001f20 + 80020ee: e009 b.n 8002104 config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_PU_PD; - 8001f0c: 2308 movs r3, #8 - 8001f0e: 623b str r3, [r7, #32] + 80020f0: 2308 movs r3, #8 + 80020f2: 623b str r3, [r7, #32] GPIOx->BRR = ioposition; - 8001f10: 687b ldr r3, [r7, #4] - 8001f12: 69fa ldr r2, [r7, #28] - 8001f14: 615a str r2, [r3, #20] + 80020f4: 687b ldr r3, [r7, #4] + 80020f6: 69fa ldr r2, [r7, #28] + 80020f8: 615a str r2, [r3, #20] break; - 8001f16: e003 b.n 8001f20 + 80020fa: e003 b.n 8002104 config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_ANALOG; - 8001f18: 2300 movs r3, #0 - 8001f1a: 623b str r3, [r7, #32] + 80020fc: 2300 movs r3, #0 + 80020fe: 623b str r3, [r7, #32] break; - 8001f1c: e000 b.n 8001f20 + 8002100: e000 b.n 8002104 break; - 8001f1e: bf00 nop + 8002102: bf00 nop } /* Check if the current bit belongs to first half or last half of the pin count number in order to address CRH or CRL register*/ configregister = (iocurrent < GPIO_PIN_8) ? &GPIOx->CRL : &GPIOx->CRH; - 8001f20: 69bb ldr r3, [r7, #24] - 8001f22: 2bff cmp r3, #255 ; 0xff - 8001f24: d801 bhi.n 8001f2a - 8001f26: 687b ldr r3, [r7, #4] - 8001f28: e001 b.n 8001f2e - 8001f2a: 687b ldr r3, [r7, #4] - 8001f2c: 3304 adds r3, #4 - 8001f2e: 617b str r3, [r7, #20] + 8002104: 69bb ldr r3, [r7, #24] + 8002106: 2bff cmp r3, #255 ; 0xff + 8002108: d801 bhi.n 800210e + 800210a: 687b ldr r3, [r7, #4] + 800210c: e001 b.n 8002112 + 800210e: 687b ldr r3, [r7, #4] + 8002110: 3304 adds r3, #4 + 8002112: 617b str r3, [r7, #20] registeroffset = (iocurrent < GPIO_PIN_8) ? (position << 2u) : ((position - 8u) << 2u); - 8001f30: 69bb ldr r3, [r7, #24] - 8001f32: 2bff cmp r3, #255 ; 0xff - 8001f34: d802 bhi.n 8001f3c - 8001f36: 6a7b ldr r3, [r7, #36] ; 0x24 - 8001f38: 009b lsls r3, r3, #2 - 8001f3a: e002 b.n 8001f42 - 8001f3c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8001f3e: 3b08 subs r3, #8 - 8001f40: 009b lsls r3, r3, #2 - 8001f42: 613b str r3, [r7, #16] + 8002114: 69bb ldr r3, [r7, #24] + 8002116: 2bff cmp r3, #255 ; 0xff + 8002118: d802 bhi.n 8002120 + 800211a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800211c: 009b lsls r3, r3, #2 + 800211e: e002 b.n 8002126 + 8002120: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002122: 3b08 subs r3, #8 + 8002124: 009b lsls r3, r3, #2 + 8002126: 613b str r3, [r7, #16] /* Apply the new configuration of the pin to the register */ MODIFY_REG((*configregister), ((GPIO_CRL_MODE0 | GPIO_CRL_CNF0) << registeroffset), (config << registeroffset)); - 8001f44: 697b ldr r3, [r7, #20] - 8001f46: 681a ldr r2, [r3, #0] - 8001f48: 210f movs r1, #15 - 8001f4a: 693b ldr r3, [r7, #16] - 8001f4c: fa01 f303 lsl.w r3, r1, r3 - 8001f50: 43db mvns r3, r3 - 8001f52: 401a ands r2, r3 - 8001f54: 6a39 ldr r1, [r7, #32] - 8001f56: 693b ldr r3, [r7, #16] - 8001f58: fa01 f303 lsl.w r3, r1, r3 - 8001f5c: 431a orrs r2, r3 - 8001f5e: 697b ldr r3, [r7, #20] - 8001f60: 601a str r2, [r3, #0] + 8002128: 697b ldr r3, [r7, #20] + 800212a: 681a ldr r2, [r3, #0] + 800212c: 210f movs r1, #15 + 800212e: 693b ldr r3, [r7, #16] + 8002130: fa01 f303 lsl.w r3, r1, r3 + 8002134: 43db mvns r3, r3 + 8002136: 401a ands r2, r3 + 8002138: 6a39 ldr r1, [r7, #32] + 800213a: 693b ldr r3, [r7, #16] + 800213c: fa01 f303 lsl.w r3, r1, r3 + 8002140: 431a orrs r2, r3 + 8002142: 697b ldr r3, [r7, #20] + 8002144: 601a str r2, [r3, #0] /*--------------------- EXTI Mode Configuration ------------------------*/ /* Configure the External Interrupt or event for the current IO */ if ((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE) - 8001f62: 683b ldr r3, [r7, #0] - 8001f64: 685b ldr r3, [r3, #4] - 8001f66: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8001f6a: 2b00 cmp r3, #0 - 8001f6c: f000 80c1 beq.w 80020f2 + 8002146: 683b ldr r3, [r7, #0] + 8002148: 685b ldr r3, [r3, #4] + 800214a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 800214e: 2b00 cmp r3, #0 + 8002150: f000 80c1 beq.w 80022d6 { /* Enable AFIO Clock */ __HAL_RCC_AFIO_CLK_ENABLE(); - 8001f70: 4b53 ldr r3, [pc, #332] ; (80020c0 ) - 8001f72: 699b ldr r3, [r3, #24] - 8001f74: 4a52 ldr r2, [pc, #328] ; (80020c0 ) - 8001f76: f043 0301 orr.w r3, r3, #1 - 8001f7a: 6193 str r3, [r2, #24] - 8001f7c: 4b50 ldr r3, [pc, #320] ; (80020c0 ) - 8001f7e: 699b ldr r3, [r3, #24] - 8001f80: f003 0301 and.w r3, r3, #1 - 8001f84: 60bb str r3, [r7, #8] - 8001f86: 68bb ldr r3, [r7, #8] + 8002154: 4b53 ldr r3, [pc, #332] ; (80022a4 ) + 8002156: 699b ldr r3, [r3, #24] + 8002158: 4a52 ldr r2, [pc, #328] ; (80022a4 ) + 800215a: f043 0301 orr.w r3, r3, #1 + 800215e: 6193 str r3, [r2, #24] + 8002160: 4b50 ldr r3, [pc, #320] ; (80022a4 ) + 8002162: 699b ldr r3, [r3, #24] + 8002164: f003 0301 and.w r3, r3, #1 + 8002168: 60bb str r3, [r7, #8] + 800216a: 68bb ldr r3, [r7, #8] temp = AFIO->EXTICR[position >> 2u]; - 8001f88: 4a4e ldr r2, [pc, #312] ; (80020c4 ) - 8001f8a: 6a7b ldr r3, [r7, #36] ; 0x24 - 8001f8c: 089b lsrs r3, r3, #2 - 8001f8e: 3302 adds r3, #2 - 8001f90: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8001f94: 60fb str r3, [r7, #12] + 800216c: 4a4e ldr r2, [pc, #312] ; (80022a8 ) + 800216e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002170: 089b lsrs r3, r3, #2 + 8002172: 3302 adds r3, #2 + 8002174: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8002178: 60fb str r3, [r7, #12] CLEAR_BIT(temp, (0x0Fu) << (4u * (position & 0x03u))); - 8001f96: 6a7b ldr r3, [r7, #36] ; 0x24 - 8001f98: f003 0303 and.w r3, r3, #3 - 8001f9c: 009b lsls r3, r3, #2 - 8001f9e: 220f movs r2, #15 - 8001fa0: fa02 f303 lsl.w r3, r2, r3 - 8001fa4: 43db mvns r3, r3 - 8001fa6: 68fa ldr r2, [r7, #12] - 8001fa8: 4013 ands r3, r2 - 8001faa: 60fb str r3, [r7, #12] + 800217a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800217c: f003 0303 and.w r3, r3, #3 + 8002180: 009b lsls r3, r3, #2 + 8002182: 220f movs r2, #15 + 8002184: fa02 f303 lsl.w r3, r2, r3 + 8002188: 43db mvns r3, r3 + 800218a: 68fa ldr r2, [r7, #12] + 800218c: 4013 ands r3, r2 + 800218e: 60fb str r3, [r7, #12] SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4u * (position & 0x03u))); - 8001fac: 687b ldr r3, [r7, #4] - 8001fae: 4a46 ldr r2, [pc, #280] ; (80020c8 ) - 8001fb0: 4293 cmp r3, r2 - 8001fb2: d01f beq.n 8001ff4 - 8001fb4: 687b ldr r3, [r7, #4] - 8001fb6: 4a45 ldr r2, [pc, #276] ; (80020cc ) - 8001fb8: 4293 cmp r3, r2 - 8001fba: d019 beq.n 8001ff0 - 8001fbc: 687b ldr r3, [r7, #4] - 8001fbe: 4a44 ldr r2, [pc, #272] ; (80020d0 ) - 8001fc0: 4293 cmp r3, r2 - 8001fc2: d013 beq.n 8001fec - 8001fc4: 687b ldr r3, [r7, #4] - 8001fc6: 4a43 ldr r2, [pc, #268] ; (80020d4 ) - 8001fc8: 4293 cmp r3, r2 - 8001fca: d00d beq.n 8001fe8 - 8001fcc: 687b ldr r3, [r7, #4] - 8001fce: 4a42 ldr r2, [pc, #264] ; (80020d8 ) - 8001fd0: 4293 cmp r3, r2 - 8001fd2: d007 beq.n 8001fe4 - 8001fd4: 687b ldr r3, [r7, #4] - 8001fd6: 4a41 ldr r2, [pc, #260] ; (80020dc ) - 8001fd8: 4293 cmp r3, r2 - 8001fda: d101 bne.n 8001fe0 - 8001fdc: 2305 movs r3, #5 - 8001fde: e00a b.n 8001ff6 - 8001fe0: 2306 movs r3, #6 - 8001fe2: e008 b.n 8001ff6 - 8001fe4: 2304 movs r3, #4 - 8001fe6: e006 b.n 8001ff6 - 8001fe8: 2303 movs r3, #3 - 8001fea: e004 b.n 8001ff6 - 8001fec: 2302 movs r3, #2 - 8001fee: e002 b.n 8001ff6 - 8001ff0: 2301 movs r3, #1 - 8001ff2: e000 b.n 8001ff6 - 8001ff4: 2300 movs r3, #0 - 8001ff6: 6a7a ldr r2, [r7, #36] ; 0x24 - 8001ff8: f002 0203 and.w r2, r2, #3 - 8001ffc: 0092 lsls r2, r2, #2 - 8001ffe: 4093 lsls r3, r2 - 8002000: 68fa ldr r2, [r7, #12] - 8002002: 4313 orrs r3, r2 - 8002004: 60fb str r3, [r7, #12] + 8002190: 687b ldr r3, [r7, #4] + 8002192: 4a46 ldr r2, [pc, #280] ; (80022ac ) + 8002194: 4293 cmp r3, r2 + 8002196: d01f beq.n 80021d8 + 8002198: 687b ldr r3, [r7, #4] + 800219a: 4a45 ldr r2, [pc, #276] ; (80022b0 ) + 800219c: 4293 cmp r3, r2 + 800219e: d019 beq.n 80021d4 + 80021a0: 687b ldr r3, [r7, #4] + 80021a2: 4a44 ldr r2, [pc, #272] ; (80022b4 ) + 80021a4: 4293 cmp r3, r2 + 80021a6: d013 beq.n 80021d0 + 80021a8: 687b ldr r3, [r7, #4] + 80021aa: 4a43 ldr r2, [pc, #268] ; (80022b8 ) + 80021ac: 4293 cmp r3, r2 + 80021ae: d00d beq.n 80021cc + 80021b0: 687b ldr r3, [r7, #4] + 80021b2: 4a42 ldr r2, [pc, #264] ; (80022bc ) + 80021b4: 4293 cmp r3, r2 + 80021b6: d007 beq.n 80021c8 + 80021b8: 687b ldr r3, [r7, #4] + 80021ba: 4a41 ldr r2, [pc, #260] ; (80022c0 ) + 80021bc: 4293 cmp r3, r2 + 80021be: d101 bne.n 80021c4 + 80021c0: 2305 movs r3, #5 + 80021c2: e00a b.n 80021da + 80021c4: 2306 movs r3, #6 + 80021c6: e008 b.n 80021da + 80021c8: 2304 movs r3, #4 + 80021ca: e006 b.n 80021da + 80021cc: 2303 movs r3, #3 + 80021ce: e004 b.n 80021da + 80021d0: 2302 movs r3, #2 + 80021d2: e002 b.n 80021da + 80021d4: 2301 movs r3, #1 + 80021d6: e000 b.n 80021da + 80021d8: 2300 movs r3, #0 + 80021da: 6a7a ldr r2, [r7, #36] ; 0x24 + 80021dc: f002 0203 and.w r2, r2, #3 + 80021e0: 0092 lsls r2, r2, #2 + 80021e2: 4093 lsls r3, r2 + 80021e4: 68fa ldr r2, [r7, #12] + 80021e6: 4313 orrs r3, r2 + 80021e8: 60fb str r3, [r7, #12] AFIO->EXTICR[position >> 2u] = temp; - 8002006: 492f ldr r1, [pc, #188] ; (80020c4 ) - 8002008: 6a7b ldr r3, [r7, #36] ; 0x24 - 800200a: 089b lsrs r3, r3, #2 - 800200c: 3302 adds r3, #2 - 800200e: 68fa ldr r2, [r7, #12] - 8002010: f841 2023 str.w r2, [r1, r3, lsl #2] + 80021ea: 492f ldr r1, [pc, #188] ; (80022a8 ) + 80021ec: 6a7b ldr r3, [r7, #36] ; 0x24 + 80021ee: 089b lsrs r3, r3, #2 + 80021f0: 3302 adds r3, #2 + 80021f2: 68fa ldr r2, [r7, #12] + 80021f4: f841 2023 str.w r2, [r1, r3, lsl #2] /* Configure the interrupt mask */ if ((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT) - 8002014: 683b ldr r3, [r7, #0] - 8002016: 685b ldr r3, [r3, #4] - 8002018: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 800201c: 2b00 cmp r3, #0 - 800201e: d006 beq.n 800202e + 80021f8: 683b ldr r3, [r7, #0] + 80021fa: 685b ldr r3, [r3, #4] + 80021fc: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8002200: 2b00 cmp r3, #0 + 8002202: d006 beq.n 8002212 { SET_BIT(EXTI->IMR, iocurrent); - 8002020: 4b2f ldr r3, [pc, #188] ; (80020e0 ) - 8002022: 681a ldr r2, [r3, #0] - 8002024: 492e ldr r1, [pc, #184] ; (80020e0 ) - 8002026: 69bb ldr r3, [r7, #24] - 8002028: 4313 orrs r3, r2 - 800202a: 600b str r3, [r1, #0] - 800202c: e006 b.n 800203c + 8002204: 4b2f ldr r3, [pc, #188] ; (80022c4 ) + 8002206: 681a ldr r2, [r3, #0] + 8002208: 492e ldr r1, [pc, #184] ; (80022c4 ) + 800220a: 69bb ldr r3, [r7, #24] + 800220c: 4313 orrs r3, r2 + 800220e: 600b str r3, [r1, #0] + 8002210: e006 b.n 8002220 } else { CLEAR_BIT(EXTI->IMR, iocurrent); - 800202e: 4b2c ldr r3, [pc, #176] ; (80020e0 ) - 8002030: 681a ldr r2, [r3, #0] - 8002032: 69bb ldr r3, [r7, #24] - 8002034: 43db mvns r3, r3 - 8002036: 492a ldr r1, [pc, #168] ; (80020e0 ) - 8002038: 4013 ands r3, r2 - 800203a: 600b str r3, [r1, #0] + 8002212: 4b2c ldr r3, [pc, #176] ; (80022c4 ) + 8002214: 681a ldr r2, [r3, #0] + 8002216: 69bb ldr r3, [r7, #24] + 8002218: 43db mvns r3, r3 + 800221a: 492a ldr r1, [pc, #168] ; (80022c4 ) + 800221c: 4013 ands r3, r2 + 800221e: 600b str r3, [r1, #0] } /* Configure the event mask */ if ((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT) - 800203c: 683b ldr r3, [r7, #0] - 800203e: 685b ldr r3, [r3, #4] - 8002040: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8002044: 2b00 cmp r3, #0 - 8002046: d006 beq.n 8002056 + 8002220: 683b ldr r3, [r7, #0] + 8002222: 685b ldr r3, [r3, #4] + 8002224: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8002228: 2b00 cmp r3, #0 + 800222a: d006 beq.n 800223a { SET_BIT(EXTI->EMR, iocurrent); - 8002048: 4b25 ldr r3, [pc, #148] ; (80020e0 ) - 800204a: 685a ldr r2, [r3, #4] - 800204c: 4924 ldr r1, [pc, #144] ; (80020e0 ) - 800204e: 69bb ldr r3, [r7, #24] - 8002050: 4313 orrs r3, r2 - 8002052: 604b str r3, [r1, #4] - 8002054: e006 b.n 8002064 + 800222c: 4b25 ldr r3, [pc, #148] ; (80022c4 ) + 800222e: 685a ldr r2, [r3, #4] + 8002230: 4924 ldr r1, [pc, #144] ; (80022c4 ) + 8002232: 69bb ldr r3, [r7, #24] + 8002234: 4313 orrs r3, r2 + 8002236: 604b str r3, [r1, #4] + 8002238: e006 b.n 8002248 } else { CLEAR_BIT(EXTI->EMR, iocurrent); - 8002056: 4b22 ldr r3, [pc, #136] ; (80020e0 ) - 8002058: 685a ldr r2, [r3, #4] - 800205a: 69bb ldr r3, [r7, #24] - 800205c: 43db mvns r3, r3 - 800205e: 4920 ldr r1, [pc, #128] ; (80020e0 ) - 8002060: 4013 ands r3, r2 - 8002062: 604b str r3, [r1, #4] + 800223a: 4b22 ldr r3, [pc, #136] ; (80022c4 ) + 800223c: 685a ldr r2, [r3, #4] + 800223e: 69bb ldr r3, [r7, #24] + 8002240: 43db mvns r3, r3 + 8002242: 4920 ldr r1, [pc, #128] ; (80022c4 ) + 8002244: 4013 ands r3, r2 + 8002246: 604b str r3, [r1, #4] } /* Enable or disable the rising trigger */ if ((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE) - 8002064: 683b ldr r3, [r7, #0] - 8002066: 685b ldr r3, [r3, #4] - 8002068: f403 1380 and.w r3, r3, #1048576 ; 0x100000 - 800206c: 2b00 cmp r3, #0 - 800206e: d006 beq.n 800207e + 8002248: 683b ldr r3, [r7, #0] + 800224a: 685b ldr r3, [r3, #4] + 800224c: f403 1380 and.w r3, r3, #1048576 ; 0x100000 + 8002250: 2b00 cmp r3, #0 + 8002252: d006 beq.n 8002262 { SET_BIT(EXTI->RTSR, iocurrent); - 8002070: 4b1b ldr r3, [pc, #108] ; (80020e0 ) - 8002072: 689a ldr r2, [r3, #8] - 8002074: 491a ldr r1, [pc, #104] ; (80020e0 ) - 8002076: 69bb ldr r3, [r7, #24] - 8002078: 4313 orrs r3, r2 - 800207a: 608b str r3, [r1, #8] - 800207c: e006 b.n 800208c + 8002254: 4b1b ldr r3, [pc, #108] ; (80022c4 ) + 8002256: 689a ldr r2, [r3, #8] + 8002258: 491a ldr r1, [pc, #104] ; (80022c4 ) + 800225a: 69bb ldr r3, [r7, #24] + 800225c: 4313 orrs r3, r2 + 800225e: 608b str r3, [r1, #8] + 8002260: e006 b.n 8002270 } else { CLEAR_BIT(EXTI->RTSR, iocurrent); - 800207e: 4b18 ldr r3, [pc, #96] ; (80020e0 ) - 8002080: 689a ldr r2, [r3, #8] - 8002082: 69bb ldr r3, [r7, #24] - 8002084: 43db mvns r3, r3 - 8002086: 4916 ldr r1, [pc, #88] ; (80020e0 ) - 8002088: 4013 ands r3, r2 - 800208a: 608b str r3, [r1, #8] + 8002262: 4b18 ldr r3, [pc, #96] ; (80022c4 ) + 8002264: 689a ldr r2, [r3, #8] + 8002266: 69bb ldr r3, [r7, #24] + 8002268: 43db mvns r3, r3 + 800226a: 4916 ldr r1, [pc, #88] ; (80022c4 ) + 800226c: 4013 ands r3, r2 + 800226e: 608b str r3, [r1, #8] } /* Enable or disable the falling trigger */ if ((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE) - 800208c: 683b ldr r3, [r7, #0] - 800208e: 685b ldr r3, [r3, #4] - 8002090: f403 1300 and.w r3, r3, #2097152 ; 0x200000 - 8002094: 2b00 cmp r3, #0 - 8002096: d025 beq.n 80020e4 + 8002270: 683b ldr r3, [r7, #0] + 8002272: 685b ldr r3, [r3, #4] + 8002274: f403 1300 and.w r3, r3, #2097152 ; 0x200000 + 8002278: 2b00 cmp r3, #0 + 800227a: d025 beq.n 80022c8 { SET_BIT(EXTI->FTSR, iocurrent); - 8002098: 4b11 ldr r3, [pc, #68] ; (80020e0 ) - 800209a: 68da ldr r2, [r3, #12] - 800209c: 4910 ldr r1, [pc, #64] ; (80020e0 ) - 800209e: 69bb ldr r3, [r7, #24] - 80020a0: 4313 orrs r3, r2 - 80020a2: 60cb str r3, [r1, #12] - 80020a4: e025 b.n 80020f2 - 80020a6: bf00 nop - 80020a8: 10320000 .word 0x10320000 - 80020ac: 10310000 .word 0x10310000 - 80020b0: 10220000 .word 0x10220000 - 80020b4: 10210000 .word 0x10210000 - 80020b8: 10120000 .word 0x10120000 - 80020bc: 10110000 .word 0x10110000 - 80020c0: 40021000 .word 0x40021000 - 80020c4: 40010000 .word 0x40010000 - 80020c8: 40010800 .word 0x40010800 - 80020cc: 40010c00 .word 0x40010c00 - 80020d0: 40011000 .word 0x40011000 - 80020d4: 40011400 .word 0x40011400 - 80020d8: 40011800 .word 0x40011800 - 80020dc: 40011c00 .word 0x40011c00 - 80020e0: 40010400 .word 0x40010400 + 800227c: 4b11 ldr r3, [pc, #68] ; (80022c4 ) + 800227e: 68da ldr r2, [r3, #12] + 8002280: 4910 ldr r1, [pc, #64] ; (80022c4 ) + 8002282: 69bb ldr r3, [r7, #24] + 8002284: 4313 orrs r3, r2 + 8002286: 60cb str r3, [r1, #12] + 8002288: e025 b.n 80022d6 + 800228a: bf00 nop + 800228c: 10320000 .word 0x10320000 + 8002290: 10310000 .word 0x10310000 + 8002294: 10220000 .word 0x10220000 + 8002298: 10210000 .word 0x10210000 + 800229c: 10120000 .word 0x10120000 + 80022a0: 10110000 .word 0x10110000 + 80022a4: 40021000 .word 0x40021000 + 80022a8: 40010000 .word 0x40010000 + 80022ac: 40010800 .word 0x40010800 + 80022b0: 40010c00 .word 0x40010c00 + 80022b4: 40011000 .word 0x40011000 + 80022b8: 40011400 .word 0x40011400 + 80022bc: 40011800 .word 0x40011800 + 80022c0: 40011c00 .word 0x40011c00 + 80022c4: 40010400 .word 0x40010400 } else { CLEAR_BIT(EXTI->FTSR, iocurrent); - 80020e4: 4b0b ldr r3, [pc, #44] ; (8002114 ) - 80020e6: 68da ldr r2, [r3, #12] - 80020e8: 69bb ldr r3, [r7, #24] - 80020ea: 43db mvns r3, r3 - 80020ec: 4909 ldr r1, [pc, #36] ; (8002114 ) - 80020ee: 4013 ands r3, r2 - 80020f0: 60cb str r3, [r1, #12] + 80022c8: 4b0b ldr r3, [pc, #44] ; (80022f8 ) + 80022ca: 68da ldr r2, [r3, #12] + 80022cc: 69bb ldr r3, [r7, #24] + 80022ce: 43db mvns r3, r3 + 80022d0: 4909 ldr r1, [pc, #36] ; (80022f8 ) + 80022d2: 4013 ands r3, r2 + 80022d4: 60cb str r3, [r1, #12] } } } position++; - 80020f2: 6a7b ldr r3, [r7, #36] ; 0x24 - 80020f4: 3301 adds r3, #1 - 80020f6: 627b str r3, [r7, #36] ; 0x24 + 80022d6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80022d8: 3301 adds r3, #1 + 80022da: 627b str r3, [r7, #36] ; 0x24 while (((GPIO_Init->Pin) >> position) != 0x00u) - 80020f8: 683b ldr r3, [r7, #0] - 80020fa: 681a ldr r2, [r3, #0] - 80020fc: 6a7b ldr r3, [r7, #36] ; 0x24 - 80020fe: fa22 f303 lsr.w r3, r2, r3 - 8002102: 2b00 cmp r3, #0 - 8002104: f47f ae7e bne.w 8001e04 + 80022dc: 683b ldr r3, [r7, #0] + 80022de: 681a ldr r2, [r3, #0] + 80022e0: 6a7b ldr r3, [r7, #36] ; 0x24 + 80022e2: fa22 f303 lsr.w r3, r2, r3 + 80022e6: 2b00 cmp r3, #0 + 80022e8: f47f ae7e bne.w 8001fe8 } } - 8002108: bf00 nop - 800210a: bf00 nop - 800210c: 372c adds r7, #44 ; 0x2c - 800210e: 46bd mov sp, r7 - 8002110: bc80 pop {r7} - 8002112: 4770 bx lr - 8002114: 40010400 .word 0x40010400 + 80022ec: bf00 nop + 80022ee: bf00 nop + 80022f0: 372c adds r7, #44 ; 0x2c + 80022f2: 46bd mov sp, r7 + 80022f4: bc80 pop {r7} + 80022f6: 4770 bx lr + 80022f8: 40010400 .word 0x40010400 -08002118 : +080022fc : * @param GPIO_Pin: specifies the port bit to read. * This parameter can be GPIO_PIN_x where x can be (0..15). * @retval The input port pin value. */ GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) { - 8002118: b480 push {r7} - 800211a: b085 sub sp, #20 - 800211c: af00 add r7, sp, #0 - 800211e: 6078 str r0, [r7, #4] - 8002120: 460b mov r3, r1 - 8002122: 807b strh r3, [r7, #2] + 80022fc: b480 push {r7} + 80022fe: b085 sub sp, #20 + 8002300: af00 add r7, sp, #0 + 8002302: 6078 str r0, [r7, #4] + 8002304: 460b mov r3, r1 + 8002306: 807b strh r3, [r7, #2] GPIO_PinState bitstatus; /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET) - 8002124: 687b ldr r3, [r7, #4] - 8002126: 689a ldr r2, [r3, #8] - 8002128: 887b ldrh r3, [r7, #2] - 800212a: 4013 ands r3, r2 - 800212c: 2b00 cmp r3, #0 - 800212e: d002 beq.n 8002136 + 8002308: 687b ldr r3, [r7, #4] + 800230a: 689a ldr r2, [r3, #8] + 800230c: 887b ldrh r3, [r7, #2] + 800230e: 4013 ands r3, r2 + 8002310: 2b00 cmp r3, #0 + 8002312: d002 beq.n 800231a { bitstatus = GPIO_PIN_SET; - 8002130: 2301 movs r3, #1 - 8002132: 73fb strb r3, [r7, #15] - 8002134: e001 b.n 800213a + 8002314: 2301 movs r3, #1 + 8002316: 73fb strb r3, [r7, #15] + 8002318: e001 b.n 800231e } else { bitstatus = GPIO_PIN_RESET; - 8002136: 2300 movs r3, #0 - 8002138: 73fb strb r3, [r7, #15] + 800231a: 2300 movs r3, #0 + 800231c: 73fb strb r3, [r7, #15] } return bitstatus; - 800213a: 7bfb ldrb r3, [r7, #15] + 800231e: 7bfb ldrb r3, [r7, #15] } - 800213c: 4618 mov r0, r3 - 800213e: 3714 adds r7, #20 - 8002140: 46bd mov sp, r7 - 8002142: bc80 pop {r7} - 8002144: 4770 bx lr + 8002320: 4618 mov r0, r3 + 8002322: 3714 adds r7, #20 + 8002324: 46bd mov sp, r7 + 8002326: bc80 pop {r7} + 8002328: 4770 bx lr -08002146 : +0800232a : * @arg GPIO_PIN_RESET: to clear the port pin * @arg GPIO_PIN_SET: to set the port pin * @retval None */ void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) { - 8002146: b480 push {r7} - 8002148: b083 sub sp, #12 - 800214a: af00 add r7, sp, #0 - 800214c: 6078 str r0, [r7, #4] - 800214e: 460b mov r3, r1 - 8002150: 807b strh r3, [r7, #2] - 8002152: 4613 mov r3, r2 - 8002154: 707b strb r3, [r7, #1] + 800232a: b480 push {r7} + 800232c: b083 sub sp, #12 + 800232e: af00 add r7, sp, #0 + 8002330: 6078 str r0, [r7, #4] + 8002332: 460b mov r3, r1 + 8002334: 807b strh r3, [r7, #2] + 8002336: 4613 mov r3, r2 + 8002338: 707b strb r3, [r7, #1] /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); assert_param(IS_GPIO_PIN_ACTION(PinState)); if (PinState != GPIO_PIN_RESET) - 8002156: 787b ldrb r3, [r7, #1] - 8002158: 2b00 cmp r3, #0 - 800215a: d003 beq.n 8002164 + 800233a: 787b ldrb r3, [r7, #1] + 800233c: 2b00 cmp r3, #0 + 800233e: d003 beq.n 8002348 { GPIOx->BSRR = GPIO_Pin; - 800215c: 887a ldrh r2, [r7, #2] - 800215e: 687b ldr r3, [r7, #4] - 8002160: 611a str r2, [r3, #16] + 8002340: 887a ldrh r2, [r7, #2] + 8002342: 687b ldr r3, [r7, #4] + 8002344: 611a str r2, [r3, #16] } else { GPIOx->BSRR = (uint32_t)GPIO_Pin << 16u; } } - 8002162: e003 b.n 800216c + 8002346: e003 b.n 8002350 GPIOx->BSRR = (uint32_t)GPIO_Pin << 16u; - 8002164: 887b ldrh r3, [r7, #2] - 8002166: 041a lsls r2, r3, #16 - 8002168: 687b ldr r3, [r7, #4] - 800216a: 611a str r2, [r3, #16] + 8002348: 887b ldrh r3, [r7, #2] + 800234a: 041a lsls r2, r3, #16 + 800234c: 687b ldr r3, [r7, #4] + 800234e: 611a str r2, [r3, #16] } - 800216c: bf00 nop - 800216e: 370c adds r7, #12 - 8002170: 46bd mov sp, r7 - 8002172: bc80 pop {r7} - 8002174: 4770 bx lr + 8002350: bf00 nop + 8002352: 370c adds r7, #12 + 8002354: 46bd mov sp, r7 + 8002356: bc80 pop {r7} + 8002358: 4770 bx lr ... -08002178 : +0800235c : * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @retval HAL status */ HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) { - 8002178: b580 push {r7, lr} - 800217a: b084 sub sp, #16 - 800217c: af00 add r7, sp, #0 - 800217e: 6078 str r0, [r7, #4] + 800235c: b580 push {r7, lr} + 800235e: b084 sub sp, #16 + 8002360: af00 add r7, sp, #0 + 8002362: 6078 str r0, [r7, #4] uint32_t freqrange; uint32_t pclk1; /* Check the I2C handle allocation */ if (hi2c == NULL) - 8002180: 687b ldr r3, [r7, #4] - 8002182: 2b00 cmp r3, #0 - 8002184: d101 bne.n 800218a + 8002364: 687b ldr r3, [r7, #4] + 8002366: 2b00 cmp r3, #0 + 8002368: d101 bne.n 800236e { return HAL_ERROR; - 8002186: 2301 movs r3, #1 - 8002188: e12b b.n 80023e2 + 800236a: 2301 movs r3, #1 + 800236c: e12b b.n 80025c6 assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); if (hi2c->State == HAL_I2C_STATE_RESET) - 800218a: 687b ldr r3, [r7, #4] - 800218c: f893 303d ldrb.w r3, [r3, #61] ; 0x3d - 8002190: b2db uxtb r3, r3 - 8002192: 2b00 cmp r3, #0 - 8002194: d106 bne.n 80021a4 + 800236e: 687b ldr r3, [r7, #4] + 8002370: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 8002374: b2db uxtb r3, r3 + 8002376: 2b00 cmp r3, #0 + 8002378: d106 bne.n 8002388 { /* Allocate lock resource and initialize it */ hi2c->Lock = HAL_UNLOCKED; - 8002196: 687b ldr r3, [r7, #4] - 8002198: 2200 movs r2, #0 - 800219a: f883 203c strb.w r2, [r3, #60] ; 0x3c + 800237a: 687b ldr r3, [r7, #4] + 800237c: 2200 movs r2, #0 + 800237e: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Init the low level hardware : GPIO, CLOCK, NVIC */ hi2c->MspInitCallback(hi2c); #else /* Init the low level hardware : GPIO, CLOCK, NVIC */ HAL_I2C_MspInit(hi2c); - 800219e: 6878 ldr r0, [r7, #4] - 80021a0: f7ff fa82 bl 80016a8 + 8002382: 6878 ldr r0, [r7, #4] + 8002384: f7ff fa28 bl 80017d8 #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ } hi2c->State = HAL_I2C_STATE_BUSY; - 80021a4: 687b ldr r3, [r7, #4] - 80021a6: 2224 movs r2, #36 ; 0x24 - 80021a8: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8002388: 687b ldr r3, [r7, #4] + 800238a: 2224 movs r2, #36 ; 0x24 + 800238c: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Disable the selected I2C peripheral */ __HAL_I2C_DISABLE(hi2c); - 80021ac: 687b ldr r3, [r7, #4] - 80021ae: 681b ldr r3, [r3, #0] - 80021b0: 681a ldr r2, [r3, #0] - 80021b2: 687b ldr r3, [r7, #4] - 80021b4: 681b ldr r3, [r3, #0] - 80021b6: f022 0201 bic.w r2, r2, #1 - 80021ba: 601a str r2, [r3, #0] + 8002390: 687b ldr r3, [r7, #4] + 8002392: 681b ldr r3, [r3, #0] + 8002394: 681a ldr r2, [r3, #0] + 8002396: 687b ldr r3, [r7, #4] + 8002398: 681b ldr r3, [r3, #0] + 800239a: f022 0201 bic.w r2, r2, #1 + 800239e: 601a str r2, [r3, #0] /*Reset I2C*/ hi2c->Instance->CR1 |= I2C_CR1_SWRST; - 80021bc: 687b ldr r3, [r7, #4] - 80021be: 681b ldr r3, [r3, #0] - 80021c0: 681a ldr r2, [r3, #0] - 80021c2: 687b ldr r3, [r7, #4] - 80021c4: 681b ldr r3, [r3, #0] - 80021c6: f442 4200 orr.w r2, r2, #32768 ; 0x8000 - 80021ca: 601a str r2, [r3, #0] + 80023a0: 687b ldr r3, [r7, #4] + 80023a2: 681b ldr r3, [r3, #0] + 80023a4: 681a ldr r2, [r3, #0] + 80023a6: 687b ldr r3, [r7, #4] + 80023a8: 681b ldr r3, [r3, #0] + 80023aa: f442 4200 orr.w r2, r2, #32768 ; 0x8000 + 80023ae: 601a str r2, [r3, #0] hi2c->Instance->CR1 &= ~I2C_CR1_SWRST; - 80021cc: 687b ldr r3, [r7, #4] - 80021ce: 681b ldr r3, [r3, #0] - 80021d0: 681a ldr r2, [r3, #0] - 80021d2: 687b ldr r3, [r7, #4] - 80021d4: 681b ldr r3, [r3, #0] - 80021d6: f422 4200 bic.w r2, r2, #32768 ; 0x8000 - 80021da: 601a str r2, [r3, #0] + 80023b0: 687b ldr r3, [r7, #4] + 80023b2: 681b ldr r3, [r3, #0] + 80023b4: 681a ldr r2, [r3, #0] + 80023b6: 687b ldr r3, [r7, #4] + 80023b8: 681b ldr r3, [r3, #0] + 80023ba: f422 4200 bic.w r2, r2, #32768 ; 0x8000 + 80023be: 601a str r2, [r3, #0] /* Get PCLK1 frequency */ pclk1 = HAL_RCC_GetPCLK1Freq(); - 80021dc: f001 fba0 bl 8003920 - 80021e0: 60f8 str r0, [r7, #12] + 80023c0: f001 fba0 bl 8003b04 + 80023c4: 60f8 str r0, [r7, #12] /* Check the minimum allowed PCLK1 frequency */ if (I2C_MIN_PCLK_FREQ(pclk1, hi2c->Init.ClockSpeed) == 1U) - 80021e2: 687b ldr r3, [r7, #4] - 80021e4: 685b ldr r3, [r3, #4] - 80021e6: 4a81 ldr r2, [pc, #516] ; (80023ec ) - 80021e8: 4293 cmp r3, r2 - 80021ea: d807 bhi.n 80021fc - 80021ec: 68fb ldr r3, [r7, #12] - 80021ee: 4a80 ldr r2, [pc, #512] ; (80023f0 ) - 80021f0: 4293 cmp r3, r2 - 80021f2: bf94 ite ls - 80021f4: 2301 movls r3, #1 - 80021f6: 2300 movhi r3, #0 - 80021f8: b2db uxtb r3, r3 - 80021fa: e006 b.n 800220a - 80021fc: 68fb ldr r3, [r7, #12] - 80021fe: 4a7d ldr r2, [pc, #500] ; (80023f4 ) - 8002200: 4293 cmp r3, r2 - 8002202: bf94 ite ls - 8002204: 2301 movls r3, #1 - 8002206: 2300 movhi r3, #0 - 8002208: b2db uxtb r3, r3 - 800220a: 2b00 cmp r3, #0 - 800220c: d001 beq.n 8002212 + 80023c6: 687b ldr r3, [r7, #4] + 80023c8: 685b ldr r3, [r3, #4] + 80023ca: 4a81 ldr r2, [pc, #516] ; (80025d0 ) + 80023cc: 4293 cmp r3, r2 + 80023ce: d807 bhi.n 80023e0 + 80023d0: 68fb ldr r3, [r7, #12] + 80023d2: 4a80 ldr r2, [pc, #512] ; (80025d4 ) + 80023d4: 4293 cmp r3, r2 + 80023d6: bf94 ite ls + 80023d8: 2301 movls r3, #1 + 80023da: 2300 movhi r3, #0 + 80023dc: b2db uxtb r3, r3 + 80023de: e006 b.n 80023ee + 80023e0: 68fb ldr r3, [r7, #12] + 80023e2: 4a7d ldr r2, [pc, #500] ; (80025d8 ) + 80023e4: 4293 cmp r3, r2 + 80023e6: bf94 ite ls + 80023e8: 2301 movls r3, #1 + 80023ea: 2300 movhi r3, #0 + 80023ec: b2db uxtb r3, r3 + 80023ee: 2b00 cmp r3, #0 + 80023f0: d001 beq.n 80023f6 { return HAL_ERROR; - 800220e: 2301 movs r3, #1 - 8002210: e0e7 b.n 80023e2 + 80023f2: 2301 movs r3, #1 + 80023f4: e0e7 b.n 80025c6 } /* Calculate frequency range */ freqrange = I2C_FREQRANGE(pclk1); - 8002212: 68fb ldr r3, [r7, #12] - 8002214: 4a78 ldr r2, [pc, #480] ; (80023f8 ) - 8002216: fba2 2303 umull r2, r3, r2, r3 - 800221a: 0c9b lsrs r3, r3, #18 - 800221c: 60bb str r3, [r7, #8] + 80023f6: 68fb ldr r3, [r7, #12] + 80023f8: 4a78 ldr r2, [pc, #480] ; (80025dc ) + 80023fa: fba2 2303 umull r2, r3, r2, r3 + 80023fe: 0c9b lsrs r3, r3, #18 + 8002400: 60bb str r3, [r7, #8] /*---------------------------- I2Cx CR2 Configuration ----------------------*/ /* Configure I2Cx: Frequency range */ MODIFY_REG(hi2c->Instance->CR2, I2C_CR2_FREQ, freqrange); - 800221e: 687b ldr r3, [r7, #4] - 8002220: 681b ldr r3, [r3, #0] - 8002222: 685b ldr r3, [r3, #4] - 8002224: f023 013f bic.w r1, r3, #63 ; 0x3f - 8002228: 687b ldr r3, [r7, #4] - 800222a: 681b ldr r3, [r3, #0] - 800222c: 68ba ldr r2, [r7, #8] - 800222e: 430a orrs r2, r1 - 8002230: 605a str r2, [r3, #4] + 8002402: 687b ldr r3, [r7, #4] + 8002404: 681b ldr r3, [r3, #0] + 8002406: 685b ldr r3, [r3, #4] + 8002408: f023 013f bic.w r1, r3, #63 ; 0x3f + 800240c: 687b ldr r3, [r7, #4] + 800240e: 681b ldr r3, [r3, #0] + 8002410: 68ba ldr r2, [r7, #8] + 8002412: 430a orrs r2, r1 + 8002414: 605a str r2, [r3, #4] /*---------------------------- I2Cx TRISE Configuration --------------------*/ /* Configure I2Cx: Rise Time */ MODIFY_REG(hi2c->Instance->TRISE, I2C_TRISE_TRISE, I2C_RISE_TIME(freqrange, hi2c->Init.ClockSpeed)); - 8002232: 687b ldr r3, [r7, #4] - 8002234: 681b ldr r3, [r3, #0] - 8002236: 6a1b ldr r3, [r3, #32] - 8002238: f023 013f bic.w r1, r3, #63 ; 0x3f - 800223c: 687b ldr r3, [r7, #4] - 800223e: 685b ldr r3, [r3, #4] - 8002240: 4a6a ldr r2, [pc, #424] ; (80023ec ) - 8002242: 4293 cmp r3, r2 - 8002244: d802 bhi.n 800224c - 8002246: 68bb ldr r3, [r7, #8] - 8002248: 3301 adds r3, #1 - 800224a: e009 b.n 8002260 - 800224c: 68bb ldr r3, [r7, #8] - 800224e: f44f 7296 mov.w r2, #300 ; 0x12c - 8002252: fb02 f303 mul.w r3, r2, r3 - 8002256: 4a69 ldr r2, [pc, #420] ; (80023fc ) - 8002258: fba2 2303 umull r2, r3, r2, r3 - 800225c: 099b lsrs r3, r3, #6 - 800225e: 3301 adds r3, #1 - 8002260: 687a ldr r2, [r7, #4] - 8002262: 6812 ldr r2, [r2, #0] - 8002264: 430b orrs r3, r1 - 8002266: 6213 str r3, [r2, #32] + 8002416: 687b ldr r3, [r7, #4] + 8002418: 681b ldr r3, [r3, #0] + 800241a: 6a1b ldr r3, [r3, #32] + 800241c: f023 013f bic.w r1, r3, #63 ; 0x3f + 8002420: 687b ldr r3, [r7, #4] + 8002422: 685b ldr r3, [r3, #4] + 8002424: 4a6a ldr r2, [pc, #424] ; (80025d0 ) + 8002426: 4293 cmp r3, r2 + 8002428: d802 bhi.n 8002430 + 800242a: 68bb ldr r3, [r7, #8] + 800242c: 3301 adds r3, #1 + 800242e: e009 b.n 8002444 + 8002430: 68bb ldr r3, [r7, #8] + 8002432: f44f 7296 mov.w r2, #300 ; 0x12c + 8002436: fb02 f303 mul.w r3, r2, r3 + 800243a: 4a69 ldr r2, [pc, #420] ; (80025e0 ) + 800243c: fba2 2303 umull r2, r3, r2, r3 + 8002440: 099b lsrs r3, r3, #6 + 8002442: 3301 adds r3, #1 + 8002444: 687a ldr r2, [r7, #4] + 8002446: 6812 ldr r2, [r2, #0] + 8002448: 430b orrs r3, r1 + 800244a: 6213 str r3, [r2, #32] /*---------------------------- I2Cx CCR Configuration ----------------------*/ /* Configure I2Cx: Speed */ MODIFY_REG(hi2c->Instance->CCR, (I2C_CCR_FS | I2C_CCR_DUTY | I2C_CCR_CCR), I2C_SPEED(pclk1, hi2c->Init.ClockSpeed, hi2c->Init.DutyCycle)); - 8002268: 687b ldr r3, [r7, #4] - 800226a: 681b ldr r3, [r3, #0] - 800226c: 69db ldr r3, [r3, #28] - 800226e: f423 424f bic.w r2, r3, #52992 ; 0xcf00 - 8002272: f022 02ff bic.w r2, r2, #255 ; 0xff - 8002276: 687b ldr r3, [r7, #4] - 8002278: 685b ldr r3, [r3, #4] - 800227a: 495c ldr r1, [pc, #368] ; (80023ec ) - 800227c: 428b cmp r3, r1 - 800227e: d819 bhi.n 80022b4 - 8002280: 68fb ldr r3, [r7, #12] - 8002282: 1e59 subs r1, r3, #1 - 8002284: 687b ldr r3, [r7, #4] - 8002286: 685b ldr r3, [r3, #4] - 8002288: 005b lsls r3, r3, #1 - 800228a: fbb1 f3f3 udiv r3, r1, r3 - 800228e: 1c59 adds r1, r3, #1 - 8002290: f640 73fc movw r3, #4092 ; 0xffc - 8002294: 400b ands r3, r1 - 8002296: 2b00 cmp r3, #0 - 8002298: d00a beq.n 80022b0 - 800229a: 68fb ldr r3, [r7, #12] - 800229c: 1e59 subs r1, r3, #1 - 800229e: 687b ldr r3, [r7, #4] - 80022a0: 685b ldr r3, [r3, #4] - 80022a2: 005b lsls r3, r3, #1 - 80022a4: fbb1 f3f3 udiv r3, r1, r3 - 80022a8: 3301 adds r3, #1 - 80022aa: f3c3 030b ubfx r3, r3, #0, #12 - 80022ae: e051 b.n 8002354 - 80022b0: 2304 movs r3, #4 - 80022b2: e04f b.n 8002354 - 80022b4: 687b ldr r3, [r7, #4] - 80022b6: 689b ldr r3, [r3, #8] - 80022b8: 2b00 cmp r3, #0 - 80022ba: d111 bne.n 80022e0 - 80022bc: 68fb ldr r3, [r7, #12] - 80022be: 1e58 subs r0, r3, #1 - 80022c0: 687b ldr r3, [r7, #4] - 80022c2: 6859 ldr r1, [r3, #4] - 80022c4: 460b mov r3, r1 - 80022c6: 005b lsls r3, r3, #1 - 80022c8: 440b add r3, r1 - 80022ca: fbb0 f3f3 udiv r3, r0, r3 - 80022ce: 3301 adds r3, #1 - 80022d0: f3c3 030b ubfx r3, r3, #0, #12 - 80022d4: 2b00 cmp r3, #0 - 80022d6: bf0c ite eq - 80022d8: 2301 moveq r3, #1 - 80022da: 2300 movne r3, #0 - 80022dc: b2db uxtb r3, r3 - 80022de: e012 b.n 8002306 - 80022e0: 68fb ldr r3, [r7, #12] - 80022e2: 1e58 subs r0, r3, #1 - 80022e4: 687b ldr r3, [r7, #4] - 80022e6: 6859 ldr r1, [r3, #4] - 80022e8: 460b mov r3, r1 - 80022ea: 009b lsls r3, r3, #2 - 80022ec: 440b add r3, r1 - 80022ee: 0099 lsls r1, r3, #2 - 80022f0: 440b add r3, r1 - 80022f2: fbb0 f3f3 udiv r3, r0, r3 - 80022f6: 3301 adds r3, #1 - 80022f8: f3c3 030b ubfx r3, r3, #0, #12 - 80022fc: 2b00 cmp r3, #0 - 80022fe: bf0c ite eq - 8002300: 2301 moveq r3, #1 - 8002302: 2300 movne r3, #0 - 8002304: b2db uxtb r3, r3 - 8002306: 2b00 cmp r3, #0 - 8002308: d001 beq.n 800230e - 800230a: 2301 movs r3, #1 - 800230c: e022 b.n 8002354 - 800230e: 687b ldr r3, [r7, #4] - 8002310: 689b ldr r3, [r3, #8] - 8002312: 2b00 cmp r3, #0 - 8002314: d10e bne.n 8002334 - 8002316: 68fb ldr r3, [r7, #12] - 8002318: 1e58 subs r0, r3, #1 - 800231a: 687b ldr r3, [r7, #4] - 800231c: 6859 ldr r1, [r3, #4] - 800231e: 460b mov r3, r1 - 8002320: 005b lsls r3, r3, #1 - 8002322: 440b add r3, r1 - 8002324: fbb0 f3f3 udiv r3, r0, r3 - 8002328: 3301 adds r3, #1 - 800232a: f3c3 030b ubfx r3, r3, #0, #12 - 800232e: f443 4300 orr.w r3, r3, #32768 ; 0x8000 - 8002332: e00f b.n 8002354 - 8002334: 68fb ldr r3, [r7, #12] - 8002336: 1e58 subs r0, r3, #1 - 8002338: 687b ldr r3, [r7, #4] - 800233a: 6859 ldr r1, [r3, #4] - 800233c: 460b mov r3, r1 - 800233e: 009b lsls r3, r3, #2 - 8002340: 440b add r3, r1 - 8002342: 0099 lsls r1, r3, #2 - 8002344: 440b add r3, r1 - 8002346: fbb0 f3f3 udiv r3, r0, r3 - 800234a: 3301 adds r3, #1 - 800234c: f3c3 030b ubfx r3, r3, #0, #12 - 8002350: f443 4340 orr.w r3, r3, #49152 ; 0xc000 - 8002354: 6879 ldr r1, [r7, #4] - 8002356: 6809 ldr r1, [r1, #0] - 8002358: 4313 orrs r3, r2 - 800235a: 61cb str r3, [r1, #28] + 800244c: 687b ldr r3, [r7, #4] + 800244e: 681b ldr r3, [r3, #0] + 8002450: 69db ldr r3, [r3, #28] + 8002452: f423 424f bic.w r2, r3, #52992 ; 0xcf00 + 8002456: f022 02ff bic.w r2, r2, #255 ; 0xff + 800245a: 687b ldr r3, [r7, #4] + 800245c: 685b ldr r3, [r3, #4] + 800245e: 495c ldr r1, [pc, #368] ; (80025d0 ) + 8002460: 428b cmp r3, r1 + 8002462: d819 bhi.n 8002498 + 8002464: 68fb ldr r3, [r7, #12] + 8002466: 1e59 subs r1, r3, #1 + 8002468: 687b ldr r3, [r7, #4] + 800246a: 685b ldr r3, [r3, #4] + 800246c: 005b lsls r3, r3, #1 + 800246e: fbb1 f3f3 udiv r3, r1, r3 + 8002472: 1c59 adds r1, r3, #1 + 8002474: f640 73fc movw r3, #4092 ; 0xffc + 8002478: 400b ands r3, r1 + 800247a: 2b00 cmp r3, #0 + 800247c: d00a beq.n 8002494 + 800247e: 68fb ldr r3, [r7, #12] + 8002480: 1e59 subs r1, r3, #1 + 8002482: 687b ldr r3, [r7, #4] + 8002484: 685b ldr r3, [r3, #4] + 8002486: 005b lsls r3, r3, #1 + 8002488: fbb1 f3f3 udiv r3, r1, r3 + 800248c: 3301 adds r3, #1 + 800248e: f3c3 030b ubfx r3, r3, #0, #12 + 8002492: e051 b.n 8002538 + 8002494: 2304 movs r3, #4 + 8002496: e04f b.n 8002538 + 8002498: 687b ldr r3, [r7, #4] + 800249a: 689b ldr r3, [r3, #8] + 800249c: 2b00 cmp r3, #0 + 800249e: d111 bne.n 80024c4 + 80024a0: 68fb ldr r3, [r7, #12] + 80024a2: 1e58 subs r0, r3, #1 + 80024a4: 687b ldr r3, [r7, #4] + 80024a6: 6859 ldr r1, [r3, #4] + 80024a8: 460b mov r3, r1 + 80024aa: 005b lsls r3, r3, #1 + 80024ac: 440b add r3, r1 + 80024ae: fbb0 f3f3 udiv r3, r0, r3 + 80024b2: 3301 adds r3, #1 + 80024b4: f3c3 030b ubfx r3, r3, #0, #12 + 80024b8: 2b00 cmp r3, #0 + 80024ba: bf0c ite eq + 80024bc: 2301 moveq r3, #1 + 80024be: 2300 movne r3, #0 + 80024c0: b2db uxtb r3, r3 + 80024c2: e012 b.n 80024ea + 80024c4: 68fb ldr r3, [r7, #12] + 80024c6: 1e58 subs r0, r3, #1 + 80024c8: 687b ldr r3, [r7, #4] + 80024ca: 6859 ldr r1, [r3, #4] + 80024cc: 460b mov r3, r1 + 80024ce: 009b lsls r3, r3, #2 + 80024d0: 440b add r3, r1 + 80024d2: 0099 lsls r1, r3, #2 + 80024d4: 440b add r3, r1 + 80024d6: fbb0 f3f3 udiv r3, r0, r3 + 80024da: 3301 adds r3, #1 + 80024dc: f3c3 030b ubfx r3, r3, #0, #12 + 80024e0: 2b00 cmp r3, #0 + 80024e2: bf0c ite eq + 80024e4: 2301 moveq r3, #1 + 80024e6: 2300 movne r3, #0 + 80024e8: b2db uxtb r3, r3 + 80024ea: 2b00 cmp r3, #0 + 80024ec: d001 beq.n 80024f2 + 80024ee: 2301 movs r3, #1 + 80024f0: e022 b.n 8002538 + 80024f2: 687b ldr r3, [r7, #4] + 80024f4: 689b ldr r3, [r3, #8] + 80024f6: 2b00 cmp r3, #0 + 80024f8: d10e bne.n 8002518 + 80024fa: 68fb ldr r3, [r7, #12] + 80024fc: 1e58 subs r0, r3, #1 + 80024fe: 687b ldr r3, [r7, #4] + 8002500: 6859 ldr r1, [r3, #4] + 8002502: 460b mov r3, r1 + 8002504: 005b lsls r3, r3, #1 + 8002506: 440b add r3, r1 + 8002508: fbb0 f3f3 udiv r3, r0, r3 + 800250c: 3301 adds r3, #1 + 800250e: f3c3 030b ubfx r3, r3, #0, #12 + 8002512: f443 4300 orr.w r3, r3, #32768 ; 0x8000 + 8002516: e00f b.n 8002538 + 8002518: 68fb ldr r3, [r7, #12] + 800251a: 1e58 subs r0, r3, #1 + 800251c: 687b ldr r3, [r7, #4] + 800251e: 6859 ldr r1, [r3, #4] + 8002520: 460b mov r3, r1 + 8002522: 009b lsls r3, r3, #2 + 8002524: 440b add r3, r1 + 8002526: 0099 lsls r1, r3, #2 + 8002528: 440b add r3, r1 + 800252a: fbb0 f3f3 udiv r3, r0, r3 + 800252e: 3301 adds r3, #1 + 8002530: f3c3 030b ubfx r3, r3, #0, #12 + 8002534: f443 4340 orr.w r3, r3, #49152 ; 0xc000 + 8002538: 6879 ldr r1, [r7, #4] + 800253a: 6809 ldr r1, [r1, #0] + 800253c: 4313 orrs r3, r2 + 800253e: 61cb str r3, [r1, #28] /*---------------------------- I2Cx CR1 Configuration ----------------------*/ /* Configure I2Cx: Generalcall and NoStretch mode */ MODIFY_REG(hi2c->Instance->CR1, (I2C_CR1_ENGC | I2C_CR1_NOSTRETCH), (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode)); - 800235c: 687b ldr r3, [r7, #4] - 800235e: 681b ldr r3, [r3, #0] - 8002360: 681b ldr r3, [r3, #0] - 8002362: f023 01c0 bic.w r1, r3, #192 ; 0xc0 - 8002366: 687b ldr r3, [r7, #4] - 8002368: 69da ldr r2, [r3, #28] - 800236a: 687b ldr r3, [r7, #4] - 800236c: 6a1b ldr r3, [r3, #32] - 800236e: 431a orrs r2, r3 - 8002370: 687b ldr r3, [r7, #4] - 8002372: 681b ldr r3, [r3, #0] - 8002374: 430a orrs r2, r1 - 8002376: 601a str r2, [r3, #0] + 8002540: 687b ldr r3, [r7, #4] + 8002542: 681b ldr r3, [r3, #0] + 8002544: 681b ldr r3, [r3, #0] + 8002546: f023 01c0 bic.w r1, r3, #192 ; 0xc0 + 800254a: 687b ldr r3, [r7, #4] + 800254c: 69da ldr r2, [r3, #28] + 800254e: 687b ldr r3, [r7, #4] + 8002550: 6a1b ldr r3, [r3, #32] + 8002552: 431a orrs r2, r3 + 8002554: 687b ldr r3, [r7, #4] + 8002556: 681b ldr r3, [r3, #0] + 8002558: 430a orrs r2, r1 + 800255a: 601a str r2, [r3, #0] /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ /* Configure I2Cx: Own Address1 and addressing mode */ MODIFY_REG(hi2c->Instance->OAR1, (I2C_OAR1_ADDMODE | I2C_OAR1_ADD8_9 | I2C_OAR1_ADD1_7 | I2C_OAR1_ADD0), (hi2c->Init.AddressingMode | hi2c->Init.OwnAddress1)); - 8002378: 687b ldr r3, [r7, #4] - 800237a: 681b ldr r3, [r3, #0] - 800237c: 689b ldr r3, [r3, #8] - 800237e: f423 4303 bic.w r3, r3, #33536 ; 0x8300 - 8002382: f023 03ff bic.w r3, r3, #255 ; 0xff - 8002386: 687a ldr r2, [r7, #4] - 8002388: 6911 ldr r1, [r2, #16] - 800238a: 687a ldr r2, [r7, #4] - 800238c: 68d2 ldr r2, [r2, #12] - 800238e: 4311 orrs r1, r2 - 8002390: 687a ldr r2, [r7, #4] - 8002392: 6812 ldr r2, [r2, #0] - 8002394: 430b orrs r3, r1 - 8002396: 6093 str r3, [r2, #8] + 800255c: 687b ldr r3, [r7, #4] + 800255e: 681b ldr r3, [r3, #0] + 8002560: 689b ldr r3, [r3, #8] + 8002562: f423 4303 bic.w r3, r3, #33536 ; 0x8300 + 8002566: f023 03ff bic.w r3, r3, #255 ; 0xff + 800256a: 687a ldr r2, [r7, #4] + 800256c: 6911 ldr r1, [r2, #16] + 800256e: 687a ldr r2, [r7, #4] + 8002570: 68d2 ldr r2, [r2, #12] + 8002572: 4311 orrs r1, r2 + 8002574: 687a ldr r2, [r7, #4] + 8002576: 6812 ldr r2, [r2, #0] + 8002578: 430b orrs r3, r1 + 800257a: 6093 str r3, [r2, #8] /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ /* Configure I2Cx: Dual mode and Own Address2 */ MODIFY_REG(hi2c->Instance->OAR2, (I2C_OAR2_ENDUAL | I2C_OAR2_ADD2), (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2)); - 8002398: 687b ldr r3, [r7, #4] - 800239a: 681b ldr r3, [r3, #0] - 800239c: 68db ldr r3, [r3, #12] - 800239e: f023 01ff bic.w r1, r3, #255 ; 0xff - 80023a2: 687b ldr r3, [r7, #4] - 80023a4: 695a ldr r2, [r3, #20] - 80023a6: 687b ldr r3, [r7, #4] - 80023a8: 699b ldr r3, [r3, #24] - 80023aa: 431a orrs r2, r3 - 80023ac: 687b ldr r3, [r7, #4] - 80023ae: 681b ldr r3, [r3, #0] - 80023b0: 430a orrs r2, r1 - 80023b2: 60da str r2, [r3, #12] + 800257c: 687b ldr r3, [r7, #4] + 800257e: 681b ldr r3, [r3, #0] + 8002580: 68db ldr r3, [r3, #12] + 8002582: f023 01ff bic.w r1, r3, #255 ; 0xff + 8002586: 687b ldr r3, [r7, #4] + 8002588: 695a ldr r2, [r3, #20] + 800258a: 687b ldr r3, [r7, #4] + 800258c: 699b ldr r3, [r3, #24] + 800258e: 431a orrs r2, r3 + 8002590: 687b ldr r3, [r7, #4] + 8002592: 681b ldr r3, [r3, #0] + 8002594: 430a orrs r2, r1 + 8002596: 60da str r2, [r3, #12] /* Enable the selected I2C peripheral */ __HAL_I2C_ENABLE(hi2c); - 80023b4: 687b ldr r3, [r7, #4] - 80023b6: 681b ldr r3, [r3, #0] - 80023b8: 681a ldr r2, [r3, #0] - 80023ba: 687b ldr r3, [r7, #4] - 80023bc: 681b ldr r3, [r3, #0] - 80023be: f042 0201 orr.w r2, r2, #1 - 80023c2: 601a str r2, [r3, #0] + 8002598: 687b ldr r3, [r7, #4] + 800259a: 681b ldr r3, [r3, #0] + 800259c: 681a ldr r2, [r3, #0] + 800259e: 687b ldr r3, [r7, #4] + 80025a0: 681b ldr r3, [r3, #0] + 80025a2: f042 0201 orr.w r2, r2, #1 + 80025a6: 601a str r2, [r3, #0] hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 80023c4: 687b ldr r3, [r7, #4] - 80023c6: 2200 movs r2, #0 - 80023c8: 641a str r2, [r3, #64] ; 0x40 + 80025a8: 687b ldr r3, [r7, #4] + 80025aa: 2200 movs r2, #0 + 80025ac: 641a str r2, [r3, #64] ; 0x40 hi2c->State = HAL_I2C_STATE_READY; - 80023ca: 687b ldr r3, [r7, #4] - 80023cc: 2220 movs r2, #32 - 80023ce: f883 203d strb.w r2, [r3, #61] ; 0x3d + 80025ae: 687b ldr r3, [r7, #4] + 80025b0: 2220 movs r2, #32 + 80025b2: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->PreviousState = I2C_STATE_NONE; - 80023d2: 687b ldr r3, [r7, #4] - 80023d4: 2200 movs r2, #0 - 80023d6: 631a str r2, [r3, #48] ; 0x30 + 80025b6: 687b ldr r3, [r7, #4] + 80025b8: 2200 movs r2, #0 + 80025ba: 631a str r2, [r3, #48] ; 0x30 hi2c->Mode = HAL_I2C_MODE_NONE; - 80023d8: 687b ldr r3, [r7, #4] - 80023da: 2200 movs r2, #0 - 80023dc: f883 203e strb.w r2, [r3, #62] ; 0x3e + 80025bc: 687b ldr r3, [r7, #4] + 80025be: 2200 movs r2, #0 + 80025c0: f883 203e strb.w r2, [r3, #62] ; 0x3e return HAL_OK; - 80023e0: 2300 movs r3, #0 + 80025c4: 2300 movs r3, #0 } - 80023e2: 4618 mov r0, r3 - 80023e4: 3710 adds r7, #16 - 80023e6: 46bd mov sp, r7 - 80023e8: bd80 pop {r7, pc} - 80023ea: bf00 nop - 80023ec: 000186a0 .word 0x000186a0 - 80023f0: 001e847f .word 0x001e847f - 80023f4: 003d08ff .word 0x003d08ff - 80023f8: 431bde83 .word 0x431bde83 - 80023fc: 10624dd3 .word 0x10624dd3 + 80025c6: 4618 mov r0, r3 + 80025c8: 3710 adds r7, #16 + 80025ca: 46bd mov sp, r7 + 80025cc: bd80 pop {r7, pc} + 80025ce: bf00 nop + 80025d0: 000186a0 .word 0x000186a0 + 80025d4: 001e847f .word 0x001e847f + 80025d8: 003d08ff .word 0x003d08ff + 80025dc: 431bde83 .word 0x431bde83 + 80025e0: 10624dd3 .word 0x10624dd3 -08002400 : +080025e4 : * @param Size Amount of data to be sent * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout) { - 8002400: b580 push {r7, lr} - 8002402: b088 sub sp, #32 - 8002404: af02 add r7, sp, #8 - 8002406: 60f8 str r0, [r7, #12] - 8002408: 4608 mov r0, r1 - 800240a: 4611 mov r1, r2 - 800240c: 461a mov r2, r3 - 800240e: 4603 mov r3, r0 - 8002410: 817b strh r3, [r7, #10] - 8002412: 460b mov r3, r1 - 8002414: 813b strh r3, [r7, #8] - 8002416: 4613 mov r3, r2 - 8002418: 80fb strh r3, [r7, #6] + 80025e4: b580 push {r7, lr} + 80025e6: b088 sub sp, #32 + 80025e8: af02 add r7, sp, #8 + 80025ea: 60f8 str r0, [r7, #12] + 80025ec: 4608 mov r0, r1 + 80025ee: 4611 mov r1, r2 + 80025f0: 461a mov r2, r3 + 80025f2: 4603 mov r3, r0 + 80025f4: 817b strh r3, [r7, #10] + 80025f6: 460b mov r3, r1 + 80025f8: 813b strh r3, [r7, #8] + 80025fa: 4613 mov r3, r2 + 80025fc: 80fb strh r3, [r7, #6] /* Init tickstart for timeout management*/ uint32_t tickstart = HAL_GetTick(); - 800241a: f7ff fbad bl 8001b78 - 800241e: 6178 str r0, [r7, #20] + 80025fe: f7ff fbad bl 8001d5c + 8002602: 6178 str r0, [r7, #20] /* Check the parameters */ assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); if (hi2c->State == HAL_I2C_STATE_READY) - 8002420: 68fb ldr r3, [r7, #12] - 8002422: f893 303d ldrb.w r3, [r3, #61] ; 0x3d - 8002426: b2db uxtb r3, r3 - 8002428: 2b20 cmp r3, #32 - 800242a: f040 80d9 bne.w 80025e0 + 8002604: 68fb ldr r3, [r7, #12] + 8002606: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 800260a: b2db uxtb r3, r3 + 800260c: 2b20 cmp r3, #32 + 800260e: f040 80d9 bne.w 80027c4 { /* Wait until BUSY flag is reset */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) - 800242e: 697b ldr r3, [r7, #20] - 8002430: 9300 str r3, [sp, #0] - 8002432: 2319 movs r3, #25 - 8002434: 2201 movs r2, #1 - 8002436: 496d ldr r1, [pc, #436] ; (80025ec ) - 8002438: 68f8 ldr r0, [r7, #12] - 800243a: f000 fcc1 bl 8002dc0 - 800243e: 4603 mov r3, r0 - 8002440: 2b00 cmp r3, #0 - 8002442: d001 beq.n 8002448 + 8002612: 697b ldr r3, [r7, #20] + 8002614: 9300 str r3, [sp, #0] + 8002616: 2319 movs r3, #25 + 8002618: 2201 movs r2, #1 + 800261a: 496d ldr r1, [pc, #436] ; (80027d0 ) + 800261c: 68f8 ldr r0, [r7, #12] + 800261e: f000 fcc1 bl 8002fa4 + 8002622: 4603 mov r3, r0 + 8002624: 2b00 cmp r3, #0 + 8002626: d001 beq.n 800262c { return HAL_BUSY; - 8002444: 2302 movs r3, #2 - 8002446: e0cc b.n 80025e2 + 8002628: 2302 movs r3, #2 + 800262a: e0cc b.n 80027c6 } /* Process Locked */ __HAL_LOCK(hi2c); - 8002448: 68fb ldr r3, [r7, #12] - 800244a: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 800244e: 2b01 cmp r3, #1 - 8002450: d101 bne.n 8002456 - 8002452: 2302 movs r3, #2 - 8002454: e0c5 b.n 80025e2 - 8002456: 68fb ldr r3, [r7, #12] - 8002458: 2201 movs r2, #1 - 800245a: f883 203c strb.w r2, [r3, #60] ; 0x3c + 800262c: 68fb ldr r3, [r7, #12] + 800262e: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8002632: 2b01 cmp r3, #1 + 8002634: d101 bne.n 800263a + 8002636: 2302 movs r3, #2 + 8002638: e0c5 b.n 80027c6 + 800263a: 68fb ldr r3, [r7, #12] + 800263c: 2201 movs r2, #1 + 800263e: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Check if the I2C is already enabled */ if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) - 800245e: 68fb ldr r3, [r7, #12] - 8002460: 681b ldr r3, [r3, #0] - 8002462: 681b ldr r3, [r3, #0] - 8002464: f003 0301 and.w r3, r3, #1 - 8002468: 2b01 cmp r3, #1 - 800246a: d007 beq.n 800247c + 8002642: 68fb ldr r3, [r7, #12] + 8002644: 681b ldr r3, [r3, #0] + 8002646: 681b ldr r3, [r3, #0] + 8002648: f003 0301 and.w r3, r3, #1 + 800264c: 2b01 cmp r3, #1 + 800264e: d007 beq.n 8002660 { /* Enable I2C peripheral */ __HAL_I2C_ENABLE(hi2c); - 800246c: 68fb ldr r3, [r7, #12] - 800246e: 681b ldr r3, [r3, #0] - 8002470: 681a ldr r2, [r3, #0] - 8002472: 68fb ldr r3, [r7, #12] - 8002474: 681b ldr r3, [r3, #0] - 8002476: f042 0201 orr.w r2, r2, #1 - 800247a: 601a str r2, [r3, #0] + 8002650: 68fb ldr r3, [r7, #12] + 8002652: 681b ldr r3, [r3, #0] + 8002654: 681a ldr r2, [r3, #0] + 8002656: 68fb ldr r3, [r7, #12] + 8002658: 681b ldr r3, [r3, #0] + 800265a: f042 0201 orr.w r2, r2, #1 + 800265e: 601a str r2, [r3, #0] } /* Disable Pos */ CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); - 800247c: 68fb ldr r3, [r7, #12] - 800247e: 681b ldr r3, [r3, #0] - 8002480: 681a ldr r2, [r3, #0] - 8002482: 68fb ldr r3, [r7, #12] - 8002484: 681b ldr r3, [r3, #0] - 8002486: f422 6200 bic.w r2, r2, #2048 ; 0x800 - 800248a: 601a str r2, [r3, #0] + 8002660: 68fb ldr r3, [r7, #12] + 8002662: 681b ldr r3, [r3, #0] + 8002664: 681a ldr r2, [r3, #0] + 8002666: 68fb ldr r3, [r7, #12] + 8002668: 681b ldr r3, [r3, #0] + 800266a: f422 6200 bic.w r2, r2, #2048 ; 0x800 + 800266e: 601a str r2, [r3, #0] hi2c->State = HAL_I2C_STATE_BUSY_TX; - 800248c: 68fb ldr r3, [r7, #12] - 800248e: 2221 movs r2, #33 ; 0x21 - 8002490: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8002670: 68fb ldr r3, [r7, #12] + 8002672: 2221 movs r2, #33 ; 0x21 + 8002674: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_MEM; - 8002494: 68fb ldr r3, [r7, #12] - 8002496: 2240 movs r2, #64 ; 0x40 - 8002498: f883 203e strb.w r2, [r3, #62] ; 0x3e + 8002678: 68fb ldr r3, [r7, #12] + 800267a: 2240 movs r2, #64 ; 0x40 + 800267c: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 800249c: 68fb ldr r3, [r7, #12] - 800249e: 2200 movs r2, #0 - 80024a0: 641a str r2, [r3, #64] ; 0x40 + 8002680: 68fb ldr r3, [r7, #12] + 8002682: 2200 movs r2, #0 + 8002684: 641a str r2, [r3, #64] ; 0x40 /* Prepare transfer parameters */ hi2c->pBuffPtr = pData; - 80024a2: 68fb ldr r3, [r7, #12] - 80024a4: 6a3a ldr r2, [r7, #32] - 80024a6: 625a str r2, [r3, #36] ; 0x24 + 8002686: 68fb ldr r3, [r7, #12] + 8002688: 6a3a ldr r2, [r7, #32] + 800268a: 625a str r2, [r3, #36] ; 0x24 hi2c->XferCount = Size; - 80024a8: 68fb ldr r3, [r7, #12] - 80024aa: 8cba ldrh r2, [r7, #36] ; 0x24 - 80024ac: 855a strh r2, [r3, #42] ; 0x2a + 800268c: 68fb ldr r3, [r7, #12] + 800268e: 8cba ldrh r2, [r7, #36] ; 0x24 + 8002690: 855a strh r2, [r3, #42] ; 0x2a hi2c->XferSize = hi2c->XferCount; - 80024ae: 68fb ldr r3, [r7, #12] - 80024b0: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80024b2: b29a uxth r2, r3 - 80024b4: 68fb ldr r3, [r7, #12] - 80024b6: 851a strh r2, [r3, #40] ; 0x28 + 8002692: 68fb ldr r3, [r7, #12] + 8002694: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8002696: b29a uxth r2, r3 + 8002698: 68fb ldr r3, [r7, #12] + 800269a: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 80024b8: 68fb ldr r3, [r7, #12] - 80024ba: 4a4d ldr r2, [pc, #308] ; (80025f0 ) - 80024bc: 62da str r2, [r3, #44] ; 0x2c + 800269c: 68fb ldr r3, [r7, #12] + 800269e: 4a4d ldr r2, [pc, #308] ; (80027d4 ) + 80026a0: 62da str r2, [r3, #44] ; 0x2c /* Send Slave Address and Memory Address */ if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) - 80024be: 88f8 ldrh r0, [r7, #6] - 80024c0: 893a ldrh r2, [r7, #8] - 80024c2: 8979 ldrh r1, [r7, #10] - 80024c4: 697b ldr r3, [r7, #20] - 80024c6: 9301 str r3, [sp, #4] - 80024c8: 6abb ldr r3, [r7, #40] ; 0x28 - 80024ca: 9300 str r3, [sp, #0] - 80024cc: 4603 mov r3, r0 - 80024ce: 68f8 ldr r0, [r7, #12] - 80024d0: f000 faf8 bl 8002ac4 - 80024d4: 4603 mov r3, r0 - 80024d6: 2b00 cmp r3, #0 - 80024d8: d052 beq.n 8002580 + 80026a2: 88f8 ldrh r0, [r7, #6] + 80026a4: 893a ldrh r2, [r7, #8] + 80026a6: 8979 ldrh r1, [r7, #10] + 80026a8: 697b ldr r3, [r7, #20] + 80026aa: 9301 str r3, [sp, #4] + 80026ac: 6abb ldr r3, [r7, #40] ; 0x28 + 80026ae: 9300 str r3, [sp, #0] + 80026b0: 4603 mov r3, r0 + 80026b2: 68f8 ldr r0, [r7, #12] + 80026b4: f000 faf8 bl 8002ca8 + 80026b8: 4603 mov r3, r0 + 80026ba: 2b00 cmp r3, #0 + 80026bc: d052 beq.n 8002764 { return HAL_ERROR; - 80024da: 2301 movs r3, #1 - 80024dc: e081 b.n 80025e2 + 80026be: 2301 movs r3, #1 + 80026c0: e081 b.n 80027c6 } while (hi2c->XferSize > 0U) { /* Wait until TXE flag is set */ if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 80024de: 697a ldr r2, [r7, #20] - 80024e0: 6ab9 ldr r1, [r7, #40] ; 0x28 - 80024e2: 68f8 ldr r0, [r7, #12] - 80024e4: f000 fd42 bl 8002f6c - 80024e8: 4603 mov r3, r0 - 80024ea: 2b00 cmp r3, #0 - 80024ec: d00d beq.n 800250a + 80026c2: 697a ldr r2, [r7, #20] + 80026c4: 6ab9 ldr r1, [r7, #40] ; 0x28 + 80026c6: 68f8 ldr r0, [r7, #12] + 80026c8: f000 fd42 bl 8003150 + 80026cc: 4603 mov r3, r0 + 80026ce: 2b00 cmp r3, #0 + 80026d0: d00d beq.n 80026ee { if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) - 80024ee: 68fb ldr r3, [r7, #12] - 80024f0: 6c1b ldr r3, [r3, #64] ; 0x40 - 80024f2: 2b04 cmp r3, #4 - 80024f4: d107 bne.n 8002506 + 80026d2: 68fb ldr r3, [r7, #12] + 80026d4: 6c1b ldr r3, [r3, #64] ; 0x40 + 80026d6: 2b04 cmp r3, #4 + 80026d8: d107 bne.n 80026ea { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 80024f6: 68fb ldr r3, [r7, #12] - 80024f8: 681b ldr r3, [r3, #0] - 80024fa: 681a ldr r2, [r3, #0] - 80024fc: 68fb ldr r3, [r7, #12] - 80024fe: 681b ldr r3, [r3, #0] - 8002500: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002504: 601a str r2, [r3, #0] + 80026da: 68fb ldr r3, [r7, #12] + 80026dc: 681b ldr r3, [r3, #0] + 80026de: 681a ldr r2, [r3, #0] + 80026e0: 68fb ldr r3, [r7, #12] + 80026e2: 681b ldr r3, [r3, #0] + 80026e4: f442 7200 orr.w r2, r2, #512 ; 0x200 + 80026e8: 601a str r2, [r3, #0] } return HAL_ERROR; - 8002506: 2301 movs r3, #1 - 8002508: e06b b.n 80025e2 + 80026ea: 2301 movs r3, #1 + 80026ec: e06b b.n 80027c6 } /* Write data to DR */ hi2c->Instance->DR = *hi2c->pBuffPtr; - 800250a: 68fb ldr r3, [r7, #12] - 800250c: 6a5b ldr r3, [r3, #36] ; 0x24 - 800250e: 781a ldrb r2, [r3, #0] - 8002510: 68fb ldr r3, [r7, #12] - 8002512: 681b ldr r3, [r3, #0] - 8002514: 611a str r2, [r3, #16] + 80026ee: 68fb ldr r3, [r7, #12] + 80026f0: 6a5b ldr r3, [r3, #36] ; 0x24 + 80026f2: 781a ldrb r2, [r3, #0] + 80026f4: 68fb ldr r3, [r7, #12] + 80026f6: 681b ldr r3, [r3, #0] + 80026f8: 611a str r2, [r3, #16] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 8002516: 68fb ldr r3, [r7, #12] - 8002518: 6a5b ldr r3, [r3, #36] ; 0x24 - 800251a: 1c5a adds r2, r3, #1 - 800251c: 68fb ldr r3, [r7, #12] - 800251e: 625a str r2, [r3, #36] ; 0x24 + 80026fa: 68fb ldr r3, [r7, #12] + 80026fc: 6a5b ldr r3, [r3, #36] ; 0x24 + 80026fe: 1c5a adds r2, r3, #1 + 8002700: 68fb ldr r3, [r7, #12] + 8002702: 625a str r2, [r3, #36] ; 0x24 /* Update counter */ hi2c->XferSize--; - 8002520: 68fb ldr r3, [r7, #12] - 8002522: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002524: 3b01 subs r3, #1 - 8002526: b29a uxth r2, r3 - 8002528: 68fb ldr r3, [r7, #12] - 800252a: 851a strh r2, [r3, #40] ; 0x28 + 8002704: 68fb ldr r3, [r7, #12] + 8002706: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002708: 3b01 subs r3, #1 + 800270a: b29a uxth r2, r3 + 800270c: 68fb ldr r3, [r7, #12] + 800270e: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferCount--; - 800252c: 68fb ldr r3, [r7, #12] - 800252e: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002530: b29b uxth r3, r3 - 8002532: 3b01 subs r3, #1 - 8002534: b29a uxth r2, r3 - 8002536: 68fb ldr r3, [r7, #12] - 8002538: 855a strh r2, [r3, #42] ; 0x2a + 8002710: 68fb ldr r3, [r7, #12] + 8002712: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8002714: b29b uxth r3, r3 + 8002716: 3b01 subs r3, #1 + 8002718: b29a uxth r2, r3 + 800271a: 68fb ldr r3, [r7, #12] + 800271c: 855a strh r2, [r3, #42] ; 0x2a if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) - 800253a: 68fb ldr r3, [r7, #12] - 800253c: 681b ldr r3, [r3, #0] - 800253e: 695b ldr r3, [r3, #20] - 8002540: f003 0304 and.w r3, r3, #4 - 8002544: 2b04 cmp r3, #4 - 8002546: d11b bne.n 8002580 - 8002548: 68fb ldr r3, [r7, #12] - 800254a: 8d1b ldrh r3, [r3, #40] ; 0x28 - 800254c: 2b00 cmp r3, #0 - 800254e: d017 beq.n 8002580 + 800271e: 68fb ldr r3, [r7, #12] + 8002720: 681b ldr r3, [r3, #0] + 8002722: 695b ldr r3, [r3, #20] + 8002724: f003 0304 and.w r3, r3, #4 + 8002728: 2b04 cmp r3, #4 + 800272a: d11b bne.n 8002764 + 800272c: 68fb ldr r3, [r7, #12] + 800272e: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002730: 2b00 cmp r3, #0 + 8002732: d017 beq.n 8002764 { /* Write data to DR */ hi2c->Instance->DR = *hi2c->pBuffPtr; - 8002550: 68fb ldr r3, [r7, #12] - 8002552: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002554: 781a ldrb r2, [r3, #0] - 8002556: 68fb ldr r3, [r7, #12] - 8002558: 681b ldr r3, [r3, #0] - 800255a: 611a str r2, [r3, #16] + 8002734: 68fb ldr r3, [r7, #12] + 8002736: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002738: 781a ldrb r2, [r3, #0] + 800273a: 68fb ldr r3, [r7, #12] + 800273c: 681b ldr r3, [r3, #0] + 800273e: 611a str r2, [r3, #16] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 800255c: 68fb ldr r3, [r7, #12] - 800255e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002560: 1c5a adds r2, r3, #1 - 8002562: 68fb ldr r3, [r7, #12] - 8002564: 625a str r2, [r3, #36] ; 0x24 + 8002740: 68fb ldr r3, [r7, #12] + 8002742: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002744: 1c5a adds r2, r3, #1 + 8002746: 68fb ldr r3, [r7, #12] + 8002748: 625a str r2, [r3, #36] ; 0x24 /* Update counter */ hi2c->XferSize--; - 8002566: 68fb ldr r3, [r7, #12] - 8002568: 8d1b ldrh r3, [r3, #40] ; 0x28 - 800256a: 3b01 subs r3, #1 - 800256c: b29a uxth r2, r3 - 800256e: 68fb ldr r3, [r7, #12] - 8002570: 851a strh r2, [r3, #40] ; 0x28 + 800274a: 68fb ldr r3, [r7, #12] + 800274c: 8d1b ldrh r3, [r3, #40] ; 0x28 + 800274e: 3b01 subs r3, #1 + 8002750: b29a uxth r2, r3 + 8002752: 68fb ldr r3, [r7, #12] + 8002754: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferCount--; - 8002572: 68fb ldr r3, [r7, #12] - 8002574: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002576: b29b uxth r3, r3 - 8002578: 3b01 subs r3, #1 - 800257a: b29a uxth r2, r3 - 800257c: 68fb ldr r3, [r7, #12] - 800257e: 855a strh r2, [r3, #42] ; 0x2a + 8002756: 68fb ldr r3, [r7, #12] + 8002758: 8d5b ldrh r3, [r3, #42] ; 0x2a + 800275a: b29b uxth r3, r3 + 800275c: 3b01 subs r3, #1 + 800275e: b29a uxth r2, r3 + 8002760: 68fb ldr r3, [r7, #12] + 8002762: 855a strh r2, [r3, #42] ; 0x2a while (hi2c->XferSize > 0U) - 8002580: 68fb ldr r3, [r7, #12] - 8002582: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002584: 2b00 cmp r3, #0 - 8002586: d1aa bne.n 80024de + 8002764: 68fb ldr r3, [r7, #12] + 8002766: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002768: 2b00 cmp r3, #0 + 800276a: d1aa bne.n 80026c2 } } /* Wait until BTF flag is set */ if (I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 8002588: 697a ldr r2, [r7, #20] - 800258a: 6ab9 ldr r1, [r7, #40] ; 0x28 - 800258c: 68f8 ldr r0, [r7, #12] - 800258e: f000 fd2e bl 8002fee - 8002592: 4603 mov r3, r0 - 8002594: 2b00 cmp r3, #0 - 8002596: d00d beq.n 80025b4 + 800276c: 697a ldr r2, [r7, #20] + 800276e: 6ab9 ldr r1, [r7, #40] ; 0x28 + 8002770: 68f8 ldr r0, [r7, #12] + 8002772: f000 fd2e bl 80031d2 + 8002776: 4603 mov r3, r0 + 8002778: 2b00 cmp r3, #0 + 800277a: d00d beq.n 8002798 { if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) - 8002598: 68fb ldr r3, [r7, #12] - 800259a: 6c1b ldr r3, [r3, #64] ; 0x40 - 800259c: 2b04 cmp r3, #4 - 800259e: d107 bne.n 80025b0 + 800277c: 68fb ldr r3, [r7, #12] + 800277e: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002780: 2b04 cmp r3, #4 + 8002782: d107 bne.n 8002794 { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 80025a0: 68fb ldr r3, [r7, #12] - 80025a2: 681b ldr r3, [r3, #0] - 80025a4: 681a ldr r2, [r3, #0] - 80025a6: 68fb ldr r3, [r7, #12] - 80025a8: 681b ldr r3, [r3, #0] - 80025aa: f442 7200 orr.w r2, r2, #512 ; 0x200 - 80025ae: 601a str r2, [r3, #0] + 8002784: 68fb ldr r3, [r7, #12] + 8002786: 681b ldr r3, [r3, #0] + 8002788: 681a ldr r2, [r3, #0] + 800278a: 68fb ldr r3, [r7, #12] + 800278c: 681b ldr r3, [r3, #0] + 800278e: f442 7200 orr.w r2, r2, #512 ; 0x200 + 8002792: 601a str r2, [r3, #0] } return HAL_ERROR; - 80025b0: 2301 movs r3, #1 - 80025b2: e016 b.n 80025e2 + 8002794: 2301 movs r3, #1 + 8002796: e016 b.n 80027c6 } /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 80025b4: 68fb ldr r3, [r7, #12] - 80025b6: 681b ldr r3, [r3, #0] - 80025b8: 681a ldr r2, [r3, #0] - 80025ba: 68fb ldr r3, [r7, #12] - 80025bc: 681b ldr r3, [r3, #0] - 80025be: f442 7200 orr.w r2, r2, #512 ; 0x200 - 80025c2: 601a str r2, [r3, #0] + 8002798: 68fb ldr r3, [r7, #12] + 800279a: 681b ldr r3, [r3, #0] + 800279c: 681a ldr r2, [r3, #0] + 800279e: 68fb ldr r3, [r7, #12] + 80027a0: 681b ldr r3, [r3, #0] + 80027a2: f442 7200 orr.w r2, r2, #512 ; 0x200 + 80027a6: 601a str r2, [r3, #0] hi2c->State = HAL_I2C_STATE_READY; - 80025c4: 68fb ldr r3, [r7, #12] - 80025c6: 2220 movs r2, #32 - 80025c8: f883 203d strb.w r2, [r3, #61] ; 0x3d + 80027a8: 68fb ldr r3, [r7, #12] + 80027aa: 2220 movs r2, #32 + 80027ac: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 80025cc: 68fb ldr r3, [r7, #12] - 80025ce: 2200 movs r2, #0 - 80025d0: f883 203e strb.w r2, [r3, #62] ; 0x3e + 80027b0: 68fb ldr r3, [r7, #12] + 80027b2: 2200 movs r2, #0 + 80027b4: f883 203e strb.w r2, [r3, #62] ; 0x3e /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 80025d4: 68fb ldr r3, [r7, #12] - 80025d6: 2200 movs r2, #0 - 80025d8: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80027b8: 68fb ldr r3, [r7, #12] + 80027ba: 2200 movs r2, #0 + 80027bc: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_OK; - 80025dc: 2300 movs r3, #0 - 80025de: e000 b.n 80025e2 + 80027c0: 2300 movs r3, #0 + 80027c2: e000 b.n 80027c6 } else { return HAL_BUSY; - 80025e0: 2302 movs r3, #2 + 80027c4: 2302 movs r3, #2 } } - 80025e2: 4618 mov r0, r3 - 80025e4: 3718 adds r7, #24 - 80025e6: 46bd mov sp, r7 - 80025e8: bd80 pop {r7, pc} - 80025ea: bf00 nop - 80025ec: 00100002 .word 0x00100002 - 80025f0: ffff0000 .word 0xffff0000 + 80027c6: 4618 mov r0, r3 + 80027c8: 3718 adds r7, #24 + 80027ca: 46bd mov sp, r7 + 80027cc: bd80 pop {r7, pc} + 80027ce: bf00 nop + 80027d0: 00100002 .word 0x00100002 + 80027d4: ffff0000 .word 0xffff0000 -080025f4 : +080027d8 : * @param Size Amount of data to be sent * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout) { - 80025f4: b580 push {r7, lr} - 80025f6: b08c sub sp, #48 ; 0x30 - 80025f8: af02 add r7, sp, #8 - 80025fa: 60f8 str r0, [r7, #12] - 80025fc: 4608 mov r0, r1 - 80025fe: 4611 mov r1, r2 - 8002600: 461a mov r2, r3 - 8002602: 4603 mov r3, r0 - 8002604: 817b strh r3, [r7, #10] - 8002606: 460b mov r3, r1 - 8002608: 813b strh r3, [r7, #8] - 800260a: 4613 mov r3, r2 - 800260c: 80fb strh r3, [r7, #6] + 80027d8: b580 push {r7, lr} + 80027da: b08c sub sp, #48 ; 0x30 + 80027dc: af02 add r7, sp, #8 + 80027de: 60f8 str r0, [r7, #12] + 80027e0: 4608 mov r0, r1 + 80027e2: 4611 mov r1, r2 + 80027e4: 461a mov r2, r3 + 80027e6: 4603 mov r3, r0 + 80027e8: 817b strh r3, [r7, #10] + 80027ea: 460b mov r3, r1 + 80027ec: 813b strh r3, [r7, #8] + 80027ee: 4613 mov r3, r2 + 80027f0: 80fb strh r3, [r7, #6] __IO uint32_t count = 0U; - 800260e: 2300 movs r3, #0 - 8002610: 623b str r3, [r7, #32] + 80027f2: 2300 movs r3, #0 + 80027f4: 623b str r3, [r7, #32] /* Init tickstart for timeout management*/ uint32_t tickstart = HAL_GetTick(); - 8002612: f7ff fab1 bl 8001b78 - 8002616: 6278 str r0, [r7, #36] ; 0x24 + 80027f6: f7ff fab1 bl 8001d5c + 80027fa: 6278 str r0, [r7, #36] ; 0x24 /* Check the parameters */ assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); if (hi2c->State == HAL_I2C_STATE_READY) - 8002618: 68fb ldr r3, [r7, #12] - 800261a: f893 303d ldrb.w r3, [r3, #61] ; 0x3d - 800261e: b2db uxtb r3, r3 - 8002620: 2b20 cmp r3, #32 - 8002622: f040 8244 bne.w 8002aae + 80027fc: 68fb ldr r3, [r7, #12] + 80027fe: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 8002802: b2db uxtb r3, r3 + 8002804: 2b20 cmp r3, #32 + 8002806: f040 8244 bne.w 8002c92 { /* Wait until BUSY flag is reset */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) - 8002626: 6a7b ldr r3, [r7, #36] ; 0x24 - 8002628: 9300 str r3, [sp, #0] - 800262a: 2319 movs r3, #25 - 800262c: 2201 movs r2, #1 - 800262e: 4982 ldr r1, [pc, #520] ; (8002838 ) - 8002630: 68f8 ldr r0, [r7, #12] - 8002632: f000 fbc5 bl 8002dc0 - 8002636: 4603 mov r3, r0 - 8002638: 2b00 cmp r3, #0 - 800263a: d001 beq.n 8002640 + 800280a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800280c: 9300 str r3, [sp, #0] + 800280e: 2319 movs r3, #25 + 8002810: 2201 movs r2, #1 + 8002812: 4982 ldr r1, [pc, #520] ; (8002a1c ) + 8002814: 68f8 ldr r0, [r7, #12] + 8002816: f000 fbc5 bl 8002fa4 + 800281a: 4603 mov r3, r0 + 800281c: 2b00 cmp r3, #0 + 800281e: d001 beq.n 8002824 { return HAL_BUSY; - 800263c: 2302 movs r3, #2 - 800263e: e237 b.n 8002ab0 + 8002820: 2302 movs r3, #2 + 8002822: e237 b.n 8002c94 } /* Process Locked */ __HAL_LOCK(hi2c); - 8002640: 68fb ldr r3, [r7, #12] - 8002642: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 8002646: 2b01 cmp r3, #1 - 8002648: d101 bne.n 800264e - 800264a: 2302 movs r3, #2 - 800264c: e230 b.n 8002ab0 - 800264e: 68fb ldr r3, [r7, #12] - 8002650: 2201 movs r2, #1 - 8002652: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8002824: 68fb ldr r3, [r7, #12] + 8002826: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 800282a: 2b01 cmp r3, #1 + 800282c: d101 bne.n 8002832 + 800282e: 2302 movs r3, #2 + 8002830: e230 b.n 8002c94 + 8002832: 68fb ldr r3, [r7, #12] + 8002834: 2201 movs r2, #1 + 8002836: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Check if the I2C is already enabled */ if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) - 8002656: 68fb ldr r3, [r7, #12] - 8002658: 681b ldr r3, [r3, #0] - 800265a: 681b ldr r3, [r3, #0] - 800265c: f003 0301 and.w r3, r3, #1 - 8002660: 2b01 cmp r3, #1 - 8002662: d007 beq.n 8002674 + 800283a: 68fb ldr r3, [r7, #12] + 800283c: 681b ldr r3, [r3, #0] + 800283e: 681b ldr r3, [r3, #0] + 8002840: f003 0301 and.w r3, r3, #1 + 8002844: 2b01 cmp r3, #1 + 8002846: d007 beq.n 8002858 { /* Enable I2C peripheral */ __HAL_I2C_ENABLE(hi2c); - 8002664: 68fb ldr r3, [r7, #12] - 8002666: 681b ldr r3, [r3, #0] - 8002668: 681a ldr r2, [r3, #0] - 800266a: 68fb ldr r3, [r7, #12] - 800266c: 681b ldr r3, [r3, #0] - 800266e: f042 0201 orr.w r2, r2, #1 - 8002672: 601a str r2, [r3, #0] + 8002848: 68fb ldr r3, [r7, #12] + 800284a: 681b ldr r3, [r3, #0] + 800284c: 681a ldr r2, [r3, #0] + 800284e: 68fb ldr r3, [r7, #12] + 8002850: 681b ldr r3, [r3, #0] + 8002852: f042 0201 orr.w r2, r2, #1 + 8002856: 601a str r2, [r3, #0] } /* Disable Pos */ CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); - 8002674: 68fb ldr r3, [r7, #12] - 8002676: 681b ldr r3, [r3, #0] - 8002678: 681a ldr r2, [r3, #0] - 800267a: 68fb ldr r3, [r7, #12] - 800267c: 681b ldr r3, [r3, #0] - 800267e: f422 6200 bic.w r2, r2, #2048 ; 0x800 - 8002682: 601a str r2, [r3, #0] + 8002858: 68fb ldr r3, [r7, #12] + 800285a: 681b ldr r3, [r3, #0] + 800285c: 681a ldr r2, [r3, #0] + 800285e: 68fb ldr r3, [r7, #12] + 8002860: 681b ldr r3, [r3, #0] + 8002862: f422 6200 bic.w r2, r2, #2048 ; 0x800 + 8002866: 601a str r2, [r3, #0] hi2c->State = HAL_I2C_STATE_BUSY_RX; - 8002684: 68fb ldr r3, [r7, #12] - 8002686: 2222 movs r2, #34 ; 0x22 - 8002688: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8002868: 68fb ldr r3, [r7, #12] + 800286a: 2222 movs r2, #34 ; 0x22 + 800286c: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_MEM; - 800268c: 68fb ldr r3, [r7, #12] - 800268e: 2240 movs r2, #64 ; 0x40 - 8002690: f883 203e strb.w r2, [r3, #62] ; 0x3e + 8002870: 68fb ldr r3, [r7, #12] + 8002872: 2240 movs r2, #64 ; 0x40 + 8002874: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 8002694: 68fb ldr r3, [r7, #12] - 8002696: 2200 movs r2, #0 - 8002698: 641a str r2, [r3, #64] ; 0x40 + 8002878: 68fb ldr r3, [r7, #12] + 800287a: 2200 movs r2, #0 + 800287c: 641a str r2, [r3, #64] ; 0x40 /* Prepare transfer parameters */ hi2c->pBuffPtr = pData; - 800269a: 68fb ldr r3, [r7, #12] - 800269c: 6b3a ldr r2, [r7, #48] ; 0x30 - 800269e: 625a str r2, [r3, #36] ; 0x24 + 800287e: 68fb ldr r3, [r7, #12] + 8002880: 6b3a ldr r2, [r7, #48] ; 0x30 + 8002882: 625a str r2, [r3, #36] ; 0x24 hi2c->XferCount = Size; - 80026a0: 68fb ldr r3, [r7, #12] - 80026a2: 8eba ldrh r2, [r7, #52] ; 0x34 - 80026a4: 855a strh r2, [r3, #42] ; 0x2a + 8002884: 68fb ldr r3, [r7, #12] + 8002886: 8eba ldrh r2, [r7, #52] ; 0x34 + 8002888: 855a strh r2, [r3, #42] ; 0x2a hi2c->XferSize = hi2c->XferCount; - 80026a6: 68fb ldr r3, [r7, #12] - 80026a8: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80026aa: b29a uxth r2, r3 - 80026ac: 68fb ldr r3, [r7, #12] - 80026ae: 851a strh r2, [r3, #40] ; 0x28 + 800288a: 68fb ldr r3, [r7, #12] + 800288c: 8d5b ldrh r3, [r3, #42] ; 0x2a + 800288e: b29a uxth r2, r3 + 8002890: 68fb ldr r3, [r7, #12] + 8002892: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 80026b0: 68fb ldr r3, [r7, #12] - 80026b2: 4a62 ldr r2, [pc, #392] ; (800283c ) - 80026b4: 62da str r2, [r3, #44] ; 0x2c + 8002894: 68fb ldr r3, [r7, #12] + 8002896: 4a62 ldr r2, [pc, #392] ; (8002a20 ) + 8002898: 62da str r2, [r3, #44] ; 0x2c /* Send Slave Address and Memory Address */ if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) - 80026b6: 88f8 ldrh r0, [r7, #6] - 80026b8: 893a ldrh r2, [r7, #8] - 80026ba: 8979 ldrh r1, [r7, #10] - 80026bc: 6a7b ldr r3, [r7, #36] ; 0x24 - 80026be: 9301 str r3, [sp, #4] - 80026c0: 6bbb ldr r3, [r7, #56] ; 0x38 - 80026c2: 9300 str r3, [sp, #0] - 80026c4: 4603 mov r3, r0 - 80026c6: 68f8 ldr r0, [r7, #12] - 80026c8: f000 fa92 bl 8002bf0 - 80026cc: 4603 mov r3, r0 - 80026ce: 2b00 cmp r3, #0 - 80026d0: d001 beq.n 80026d6 + 800289a: 88f8 ldrh r0, [r7, #6] + 800289c: 893a ldrh r2, [r7, #8] + 800289e: 8979 ldrh r1, [r7, #10] + 80028a0: 6a7b ldr r3, [r7, #36] ; 0x24 + 80028a2: 9301 str r3, [sp, #4] + 80028a4: 6bbb ldr r3, [r7, #56] ; 0x38 + 80028a6: 9300 str r3, [sp, #0] + 80028a8: 4603 mov r3, r0 + 80028aa: 68f8 ldr r0, [r7, #12] + 80028ac: f000 fa92 bl 8002dd4 + 80028b0: 4603 mov r3, r0 + 80028b2: 2b00 cmp r3, #0 + 80028b4: d001 beq.n 80028ba { return HAL_ERROR; - 80026d2: 2301 movs r3, #1 - 80026d4: e1ec b.n 8002ab0 + 80028b6: 2301 movs r3, #1 + 80028b8: e1ec b.n 8002c94 } if (hi2c->XferSize == 0U) - 80026d6: 68fb ldr r3, [r7, #12] - 80026d8: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80026da: 2b00 cmp r3, #0 - 80026dc: d113 bne.n 8002706 + 80028ba: 68fb ldr r3, [r7, #12] + 80028bc: 8d1b ldrh r3, [r3, #40] ; 0x28 + 80028be: 2b00 cmp r3, #0 + 80028c0: d113 bne.n 80028ea { /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 80026de: 2300 movs r3, #0 - 80026e0: 61fb str r3, [r7, #28] - 80026e2: 68fb ldr r3, [r7, #12] - 80026e4: 681b ldr r3, [r3, #0] - 80026e6: 695b ldr r3, [r3, #20] - 80026e8: 61fb str r3, [r7, #28] - 80026ea: 68fb ldr r3, [r7, #12] - 80026ec: 681b ldr r3, [r3, #0] - 80026ee: 699b ldr r3, [r3, #24] - 80026f0: 61fb str r3, [r7, #28] - 80026f2: 69fb ldr r3, [r7, #28] + 80028c2: 2300 movs r3, #0 + 80028c4: 61fb str r3, [r7, #28] + 80028c6: 68fb ldr r3, [r7, #12] + 80028c8: 681b ldr r3, [r3, #0] + 80028ca: 695b ldr r3, [r3, #20] + 80028cc: 61fb str r3, [r7, #28] + 80028ce: 68fb ldr r3, [r7, #12] + 80028d0: 681b ldr r3, [r3, #0] + 80028d2: 699b ldr r3, [r3, #24] + 80028d4: 61fb str r3, [r7, #28] + 80028d6: 69fb ldr r3, [r7, #28] /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 80026f4: 68fb ldr r3, [r7, #12] - 80026f6: 681b ldr r3, [r3, #0] - 80026f8: 681a ldr r2, [r3, #0] - 80026fa: 68fb ldr r3, [r7, #12] - 80026fc: 681b ldr r3, [r3, #0] - 80026fe: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002702: 601a str r2, [r3, #0] - 8002704: e1c0 b.n 8002a88 + 80028d8: 68fb ldr r3, [r7, #12] + 80028da: 681b ldr r3, [r3, #0] + 80028dc: 681a ldr r2, [r3, #0] + 80028de: 68fb ldr r3, [r7, #12] + 80028e0: 681b ldr r3, [r3, #0] + 80028e2: f442 7200 orr.w r2, r2, #512 ; 0x200 + 80028e6: 601a str r2, [r3, #0] + 80028e8: e1c0 b.n 8002c6c } else if (hi2c->XferSize == 1U) - 8002706: 68fb ldr r3, [r7, #12] - 8002708: 8d1b ldrh r3, [r3, #40] ; 0x28 - 800270a: 2b01 cmp r3, #1 - 800270c: d11e bne.n 800274c + 80028ea: 68fb ldr r3, [r7, #12] + 80028ec: 8d1b ldrh r3, [r3, #40] ; 0x28 + 80028ee: 2b01 cmp r3, #1 + 80028f0: d11e bne.n 8002930 { /* Disable Acknowledge */ CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); - 800270e: 68fb ldr r3, [r7, #12] - 8002710: 681b ldr r3, [r3, #0] - 8002712: 681a ldr r2, [r3, #0] - 8002714: 68fb ldr r3, [r7, #12] - 8002716: 681b ldr r3, [r3, #0] - 8002718: f422 6280 bic.w r2, r2, #1024 ; 0x400 - 800271c: 601a str r2, [r3, #0] + 80028f2: 68fb ldr r3, [r7, #12] + 80028f4: 681b ldr r3, [r3, #0] + 80028f6: 681a ldr r2, [r3, #0] + 80028f8: 68fb ldr r3, [r7, #12] + 80028fa: 681b ldr r3, [r3, #0] + 80028fc: f422 6280 bic.w r2, r2, #1024 ; 0x400 + 8002900: 601a str r2, [r3, #0] __ASM volatile ("cpsid i" : : : "memory"); - 800271e: b672 cpsid i + 8002902: b672 cpsid i } - 8002720: bf00 nop + 8002904: bf00 nop /* Disable all active IRQs around ADDR clearing and STOP programming because the EV6_3 software sequence must complete before the current byte end of transfer */ __disable_irq(); /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 8002722: 2300 movs r3, #0 - 8002724: 61bb str r3, [r7, #24] - 8002726: 68fb ldr r3, [r7, #12] - 8002728: 681b ldr r3, [r3, #0] - 800272a: 695b ldr r3, [r3, #20] - 800272c: 61bb str r3, [r7, #24] - 800272e: 68fb ldr r3, [r7, #12] - 8002730: 681b ldr r3, [r3, #0] - 8002732: 699b ldr r3, [r3, #24] - 8002734: 61bb str r3, [r7, #24] - 8002736: 69bb ldr r3, [r7, #24] + 8002906: 2300 movs r3, #0 + 8002908: 61bb str r3, [r7, #24] + 800290a: 68fb ldr r3, [r7, #12] + 800290c: 681b ldr r3, [r3, #0] + 800290e: 695b ldr r3, [r3, #20] + 8002910: 61bb str r3, [r7, #24] + 8002912: 68fb ldr r3, [r7, #12] + 8002914: 681b ldr r3, [r3, #0] + 8002916: 699b ldr r3, [r3, #24] + 8002918: 61bb str r3, [r7, #24] + 800291a: 69bb ldr r3, [r7, #24] /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8002738: 68fb ldr r3, [r7, #12] - 800273a: 681b ldr r3, [r3, #0] - 800273c: 681a ldr r2, [r3, #0] - 800273e: 68fb ldr r3, [r7, #12] - 8002740: 681b ldr r3, [r3, #0] - 8002742: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002746: 601a str r2, [r3, #0] + 800291c: 68fb ldr r3, [r7, #12] + 800291e: 681b ldr r3, [r3, #0] + 8002920: 681a ldr r2, [r3, #0] + 8002922: 68fb ldr r3, [r7, #12] + 8002924: 681b ldr r3, [r3, #0] + 8002926: f442 7200 orr.w r2, r2, #512 ; 0x200 + 800292a: 601a str r2, [r3, #0] __ASM volatile ("cpsie i" : : : "memory"); - 8002748: b662 cpsie i + 800292c: b662 cpsie i } - 800274a: e035 b.n 80027b8 + 800292e: e035 b.n 800299c /* Re-enable IRQs */ __enable_irq(); } else if (hi2c->XferSize == 2U) - 800274c: 68fb ldr r3, [r7, #12] - 800274e: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002750: 2b02 cmp r3, #2 - 8002752: d11e bne.n 8002792 + 8002930: 68fb ldr r3, [r7, #12] + 8002932: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002934: 2b02 cmp r3, #2 + 8002936: d11e bne.n 8002976 { /* Enable Pos */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); - 8002754: 68fb ldr r3, [r7, #12] - 8002756: 681b ldr r3, [r3, #0] - 8002758: 681a ldr r2, [r3, #0] - 800275a: 68fb ldr r3, [r7, #12] - 800275c: 681b ldr r3, [r3, #0] - 800275e: f442 6200 orr.w r2, r2, #2048 ; 0x800 - 8002762: 601a str r2, [r3, #0] + 8002938: 68fb ldr r3, [r7, #12] + 800293a: 681b ldr r3, [r3, #0] + 800293c: 681a ldr r2, [r3, #0] + 800293e: 68fb ldr r3, [r7, #12] + 8002940: 681b ldr r3, [r3, #0] + 8002942: f442 6200 orr.w r2, r2, #2048 ; 0x800 + 8002946: 601a str r2, [r3, #0] __ASM volatile ("cpsid i" : : : "memory"); - 8002764: b672 cpsid i + 8002948: b672 cpsid i } - 8002766: bf00 nop + 800294a: bf00 nop /* Disable all active IRQs around ADDR clearing and STOP programming because the EV6_3 software sequence must complete before the current byte end of transfer */ __disable_irq(); /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 8002768: 2300 movs r3, #0 - 800276a: 617b str r3, [r7, #20] - 800276c: 68fb ldr r3, [r7, #12] - 800276e: 681b ldr r3, [r3, #0] - 8002770: 695b ldr r3, [r3, #20] - 8002772: 617b str r3, [r7, #20] - 8002774: 68fb ldr r3, [r7, #12] - 8002776: 681b ldr r3, [r3, #0] - 8002778: 699b ldr r3, [r3, #24] - 800277a: 617b str r3, [r7, #20] - 800277c: 697b ldr r3, [r7, #20] + 800294c: 2300 movs r3, #0 + 800294e: 617b str r3, [r7, #20] + 8002950: 68fb ldr r3, [r7, #12] + 8002952: 681b ldr r3, [r3, #0] + 8002954: 695b ldr r3, [r3, #20] + 8002956: 617b str r3, [r7, #20] + 8002958: 68fb ldr r3, [r7, #12] + 800295a: 681b ldr r3, [r3, #0] + 800295c: 699b ldr r3, [r3, #24] + 800295e: 617b str r3, [r7, #20] + 8002960: 697b ldr r3, [r7, #20] /* Disable Acknowledge */ CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); - 800277e: 68fb ldr r3, [r7, #12] - 8002780: 681b ldr r3, [r3, #0] - 8002782: 681a ldr r2, [r3, #0] - 8002784: 68fb ldr r3, [r7, #12] - 8002786: 681b ldr r3, [r3, #0] - 8002788: f422 6280 bic.w r2, r2, #1024 ; 0x400 - 800278c: 601a str r2, [r3, #0] + 8002962: 68fb ldr r3, [r7, #12] + 8002964: 681b ldr r3, [r3, #0] + 8002966: 681a ldr r2, [r3, #0] + 8002968: 68fb ldr r3, [r7, #12] + 800296a: 681b ldr r3, [r3, #0] + 800296c: f422 6280 bic.w r2, r2, #1024 ; 0x400 + 8002970: 601a str r2, [r3, #0] __ASM volatile ("cpsie i" : : : "memory"); - 800278e: b662 cpsie i + 8002972: b662 cpsie i } - 8002790: e012 b.n 80027b8 + 8002974: e012 b.n 800299c __enable_irq(); } else { /* Enable Acknowledge */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); - 8002792: 68fb ldr r3, [r7, #12] - 8002794: 681b ldr r3, [r3, #0] - 8002796: 681a ldr r2, [r3, #0] - 8002798: 68fb ldr r3, [r7, #12] - 800279a: 681b ldr r3, [r3, #0] - 800279c: f442 6280 orr.w r2, r2, #1024 ; 0x400 - 80027a0: 601a str r2, [r3, #0] + 8002976: 68fb ldr r3, [r7, #12] + 8002978: 681b ldr r3, [r3, #0] + 800297a: 681a ldr r2, [r3, #0] + 800297c: 68fb ldr r3, [r7, #12] + 800297e: 681b ldr r3, [r3, #0] + 8002980: f442 6280 orr.w r2, r2, #1024 ; 0x400 + 8002984: 601a str r2, [r3, #0] /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 80027a2: 2300 movs r3, #0 - 80027a4: 613b str r3, [r7, #16] - 80027a6: 68fb ldr r3, [r7, #12] - 80027a8: 681b ldr r3, [r3, #0] - 80027aa: 695b ldr r3, [r3, #20] - 80027ac: 613b str r3, [r7, #16] - 80027ae: 68fb ldr r3, [r7, #12] - 80027b0: 681b ldr r3, [r3, #0] - 80027b2: 699b ldr r3, [r3, #24] - 80027b4: 613b str r3, [r7, #16] - 80027b6: 693b ldr r3, [r7, #16] + 8002986: 2300 movs r3, #0 + 8002988: 613b str r3, [r7, #16] + 800298a: 68fb ldr r3, [r7, #12] + 800298c: 681b ldr r3, [r3, #0] + 800298e: 695b ldr r3, [r3, #20] + 8002990: 613b str r3, [r7, #16] + 8002992: 68fb ldr r3, [r7, #12] + 8002994: 681b ldr r3, [r3, #0] + 8002996: 699b ldr r3, [r3, #24] + 8002998: 613b str r3, [r7, #16] + 800299a: 693b ldr r3, [r7, #16] } while (hi2c->XferSize > 0U) - 80027b8: e166 b.n 8002a88 + 800299c: e166 b.n 8002c6c { if (hi2c->XferSize <= 3U) - 80027ba: 68fb ldr r3, [r7, #12] - 80027bc: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80027be: 2b03 cmp r3, #3 - 80027c0: f200 811f bhi.w 8002a02 + 800299e: 68fb ldr r3, [r7, #12] + 80029a0: 8d1b ldrh r3, [r3, #40] ; 0x28 + 80029a2: 2b03 cmp r3, #3 + 80029a4: f200 811f bhi.w 8002be6 { /* One byte */ if (hi2c->XferSize == 1U) - 80027c4: 68fb ldr r3, [r7, #12] - 80027c6: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80027c8: 2b01 cmp r3, #1 - 80027ca: d123 bne.n 8002814 + 80029a8: 68fb ldr r3, [r7, #12] + 80029aa: 8d1b ldrh r3, [r3, #40] ; 0x28 + 80029ac: 2b01 cmp r3, #1 + 80029ae: d123 bne.n 80029f8 { /* Wait until RXNE flag is set */ if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 80027cc: 6a7a ldr r2, [r7, #36] ; 0x24 - 80027ce: 6bb9 ldr r1, [r7, #56] ; 0x38 - 80027d0: 68f8 ldr r0, [r7, #12] - 80027d2: f000 fc4d bl 8003070 - 80027d6: 4603 mov r3, r0 - 80027d8: 2b00 cmp r3, #0 - 80027da: d001 beq.n 80027e0 + 80029b0: 6a7a ldr r2, [r7, #36] ; 0x24 + 80029b2: 6bb9 ldr r1, [r7, #56] ; 0x38 + 80029b4: 68f8 ldr r0, [r7, #12] + 80029b6: f000 fc4d bl 8003254 + 80029ba: 4603 mov r3, r0 + 80029bc: 2b00 cmp r3, #0 + 80029be: d001 beq.n 80029c4 { return HAL_ERROR; - 80027dc: 2301 movs r3, #1 - 80027de: e167 b.n 8002ab0 + 80029c0: 2301 movs r3, #1 + 80029c2: e167 b.n 8002c94 } /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 80027e0: 68fb ldr r3, [r7, #12] - 80027e2: 681b ldr r3, [r3, #0] - 80027e4: 691a ldr r2, [r3, #16] - 80027e6: 68fb ldr r3, [r7, #12] - 80027e8: 6a5b ldr r3, [r3, #36] ; 0x24 - 80027ea: b2d2 uxtb r2, r2 - 80027ec: 701a strb r2, [r3, #0] + 80029c4: 68fb ldr r3, [r7, #12] + 80029c6: 681b ldr r3, [r3, #0] + 80029c8: 691a ldr r2, [r3, #16] + 80029ca: 68fb ldr r3, [r7, #12] + 80029cc: 6a5b ldr r3, [r3, #36] ; 0x24 + 80029ce: b2d2 uxtb r2, r2 + 80029d0: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 80027ee: 68fb ldr r3, [r7, #12] - 80027f0: 6a5b ldr r3, [r3, #36] ; 0x24 - 80027f2: 1c5a adds r2, r3, #1 - 80027f4: 68fb ldr r3, [r7, #12] - 80027f6: 625a str r2, [r3, #36] ; 0x24 + 80029d2: 68fb ldr r3, [r7, #12] + 80029d4: 6a5b ldr r3, [r3, #36] ; 0x24 + 80029d6: 1c5a adds r2, r3, #1 + 80029d8: 68fb ldr r3, [r7, #12] + 80029da: 625a str r2, [r3, #36] ; 0x24 /* Update counter */ hi2c->XferSize--; - 80027f8: 68fb ldr r3, [r7, #12] - 80027fa: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80027fc: 3b01 subs r3, #1 - 80027fe: b29a uxth r2, r3 - 8002800: 68fb ldr r3, [r7, #12] - 8002802: 851a strh r2, [r3, #40] ; 0x28 + 80029dc: 68fb ldr r3, [r7, #12] + 80029de: 8d1b ldrh r3, [r3, #40] ; 0x28 + 80029e0: 3b01 subs r3, #1 + 80029e2: b29a uxth r2, r3 + 80029e4: 68fb ldr r3, [r7, #12] + 80029e6: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferCount--; - 8002804: 68fb ldr r3, [r7, #12] - 8002806: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002808: b29b uxth r3, r3 - 800280a: 3b01 subs r3, #1 - 800280c: b29a uxth r2, r3 - 800280e: 68fb ldr r3, [r7, #12] - 8002810: 855a strh r2, [r3, #42] ; 0x2a - 8002812: e139 b.n 8002a88 + 80029e8: 68fb ldr r3, [r7, #12] + 80029ea: 8d5b ldrh r3, [r3, #42] ; 0x2a + 80029ec: b29b uxth r3, r3 + 80029ee: 3b01 subs r3, #1 + 80029f0: b29a uxth r2, r3 + 80029f2: 68fb ldr r3, [r7, #12] + 80029f4: 855a strh r2, [r3, #42] ; 0x2a + 80029f6: e139 b.n 8002c6c } /* Two bytes */ else if (hi2c->XferSize == 2U) - 8002814: 68fb ldr r3, [r7, #12] - 8002816: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002818: 2b02 cmp r3, #2 - 800281a: d152 bne.n 80028c2 + 80029f8: 68fb ldr r3, [r7, #12] + 80029fa: 8d1b ldrh r3, [r3, #40] ; 0x28 + 80029fc: 2b02 cmp r3, #2 + 80029fe: d152 bne.n 8002aa6 { /* Wait until BTF flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) - 800281c: 6a7b ldr r3, [r7, #36] ; 0x24 - 800281e: 9300 str r3, [sp, #0] - 8002820: 6bbb ldr r3, [r7, #56] ; 0x38 - 8002822: 2200 movs r2, #0 - 8002824: 4906 ldr r1, [pc, #24] ; (8002840 ) - 8002826: 68f8 ldr r0, [r7, #12] - 8002828: f000 faca bl 8002dc0 - 800282c: 4603 mov r3, r0 - 800282e: 2b00 cmp r3, #0 - 8002830: d008 beq.n 8002844 + 8002a00: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002a02: 9300 str r3, [sp, #0] + 8002a04: 6bbb ldr r3, [r7, #56] ; 0x38 + 8002a06: 2200 movs r2, #0 + 8002a08: 4906 ldr r1, [pc, #24] ; (8002a24 ) + 8002a0a: 68f8 ldr r0, [r7, #12] + 8002a0c: f000 faca bl 8002fa4 + 8002a10: 4603 mov r3, r0 + 8002a12: 2b00 cmp r3, #0 + 8002a14: d008 beq.n 8002a28 { return HAL_ERROR; - 8002832: 2301 movs r3, #1 - 8002834: e13c b.n 8002ab0 - 8002836: bf00 nop - 8002838: 00100002 .word 0x00100002 - 800283c: ffff0000 .word 0xffff0000 - 8002840: 00010004 .word 0x00010004 + 8002a16: 2301 movs r3, #1 + 8002a18: e13c b.n 8002c94 + 8002a1a: bf00 nop + 8002a1c: 00100002 .word 0x00100002 + 8002a20: ffff0000 .word 0xffff0000 + 8002a24: 00010004 .word 0x00010004 __ASM volatile ("cpsid i" : : : "memory"); - 8002844: b672 cpsid i + 8002a28: b672 cpsid i } - 8002846: bf00 nop + 8002a2a: bf00 nop /* Disable all active IRQs around ADDR clearing and STOP programming because the EV6_3 software sequence must complete before the current byte end of transfer */ __disable_irq(); /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8002848: 68fb ldr r3, [r7, #12] - 800284a: 681b ldr r3, [r3, #0] - 800284c: 681a ldr r2, [r3, #0] - 800284e: 68fb ldr r3, [r7, #12] - 8002850: 681b ldr r3, [r3, #0] - 8002852: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002856: 601a str r2, [r3, #0] + 8002a2c: 68fb ldr r3, [r7, #12] + 8002a2e: 681b ldr r3, [r3, #0] + 8002a30: 681a ldr r2, [r3, #0] + 8002a32: 68fb ldr r3, [r7, #12] + 8002a34: 681b ldr r3, [r3, #0] + 8002a36: f442 7200 orr.w r2, r2, #512 ; 0x200 + 8002a3a: 601a str r2, [r3, #0] /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 8002858: 68fb ldr r3, [r7, #12] - 800285a: 681b ldr r3, [r3, #0] - 800285c: 691a ldr r2, [r3, #16] - 800285e: 68fb ldr r3, [r7, #12] - 8002860: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002862: b2d2 uxtb r2, r2 - 8002864: 701a strb r2, [r3, #0] + 8002a3c: 68fb ldr r3, [r7, #12] + 8002a3e: 681b ldr r3, [r3, #0] + 8002a40: 691a ldr r2, [r3, #16] + 8002a42: 68fb ldr r3, [r7, #12] + 8002a44: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002a46: b2d2 uxtb r2, r2 + 8002a48: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 8002866: 68fb ldr r3, [r7, #12] - 8002868: 6a5b ldr r3, [r3, #36] ; 0x24 - 800286a: 1c5a adds r2, r3, #1 - 800286c: 68fb ldr r3, [r7, #12] - 800286e: 625a str r2, [r3, #36] ; 0x24 + 8002a4a: 68fb ldr r3, [r7, #12] + 8002a4c: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002a4e: 1c5a adds r2, r3, #1 + 8002a50: 68fb ldr r3, [r7, #12] + 8002a52: 625a str r2, [r3, #36] ; 0x24 /* Update counter */ hi2c->XferSize--; - 8002870: 68fb ldr r3, [r7, #12] - 8002872: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002874: 3b01 subs r3, #1 - 8002876: b29a uxth r2, r3 - 8002878: 68fb ldr r3, [r7, #12] - 800287a: 851a strh r2, [r3, #40] ; 0x28 + 8002a54: 68fb ldr r3, [r7, #12] + 8002a56: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002a58: 3b01 subs r3, #1 + 8002a5a: b29a uxth r2, r3 + 8002a5c: 68fb ldr r3, [r7, #12] + 8002a5e: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferCount--; - 800287c: 68fb ldr r3, [r7, #12] - 800287e: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002880: b29b uxth r3, r3 - 8002882: 3b01 subs r3, #1 - 8002884: b29a uxth r2, r3 - 8002886: 68fb ldr r3, [r7, #12] - 8002888: 855a strh r2, [r3, #42] ; 0x2a + 8002a60: 68fb ldr r3, [r7, #12] + 8002a62: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8002a64: b29b uxth r3, r3 + 8002a66: 3b01 subs r3, #1 + 8002a68: b29a uxth r2, r3 + 8002a6a: 68fb ldr r3, [r7, #12] + 8002a6c: 855a strh r2, [r3, #42] ; 0x2a __ASM volatile ("cpsie i" : : : "memory"); - 800288a: b662 cpsie i + 8002a6e: b662 cpsie i } - 800288c: bf00 nop + 8002a70: bf00 nop /* Re-enable IRQs */ __enable_irq(); /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 800288e: 68fb ldr r3, [r7, #12] - 8002890: 681b ldr r3, [r3, #0] - 8002892: 691a ldr r2, [r3, #16] - 8002894: 68fb ldr r3, [r7, #12] - 8002896: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002898: b2d2 uxtb r2, r2 - 800289a: 701a strb r2, [r3, #0] + 8002a72: 68fb ldr r3, [r7, #12] + 8002a74: 681b ldr r3, [r3, #0] + 8002a76: 691a ldr r2, [r3, #16] + 8002a78: 68fb ldr r3, [r7, #12] + 8002a7a: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002a7c: b2d2 uxtb r2, r2 + 8002a7e: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 800289c: 68fb ldr r3, [r7, #12] - 800289e: 6a5b ldr r3, [r3, #36] ; 0x24 - 80028a0: 1c5a adds r2, r3, #1 - 80028a2: 68fb ldr r3, [r7, #12] - 80028a4: 625a str r2, [r3, #36] ; 0x24 + 8002a80: 68fb ldr r3, [r7, #12] + 8002a82: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002a84: 1c5a adds r2, r3, #1 + 8002a86: 68fb ldr r3, [r7, #12] + 8002a88: 625a str r2, [r3, #36] ; 0x24 /* Update counter */ hi2c->XferSize--; - 80028a6: 68fb ldr r3, [r7, #12] - 80028a8: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80028aa: 3b01 subs r3, #1 - 80028ac: b29a uxth r2, r3 - 80028ae: 68fb ldr r3, [r7, #12] - 80028b0: 851a strh r2, [r3, #40] ; 0x28 + 8002a8a: 68fb ldr r3, [r7, #12] + 8002a8c: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002a8e: 3b01 subs r3, #1 + 8002a90: b29a uxth r2, r3 + 8002a92: 68fb ldr r3, [r7, #12] + 8002a94: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferCount--; - 80028b2: 68fb ldr r3, [r7, #12] - 80028b4: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80028b6: b29b uxth r3, r3 - 80028b8: 3b01 subs r3, #1 - 80028ba: b29a uxth r2, r3 - 80028bc: 68fb ldr r3, [r7, #12] - 80028be: 855a strh r2, [r3, #42] ; 0x2a - 80028c0: e0e2 b.n 8002a88 + 8002a96: 68fb ldr r3, [r7, #12] + 8002a98: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8002a9a: b29b uxth r3, r3 + 8002a9c: 3b01 subs r3, #1 + 8002a9e: b29a uxth r2, r3 + 8002aa0: 68fb ldr r3, [r7, #12] + 8002aa2: 855a strh r2, [r3, #42] ; 0x2a + 8002aa4: e0e2 b.n 8002c6c } /* 3 Last bytes */ else { /* Wait until BTF flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) - 80028c2: 6a7b ldr r3, [r7, #36] ; 0x24 - 80028c4: 9300 str r3, [sp, #0] - 80028c6: 6bbb ldr r3, [r7, #56] ; 0x38 - 80028c8: 2200 movs r2, #0 - 80028ca: 497b ldr r1, [pc, #492] ; (8002ab8 ) - 80028cc: 68f8 ldr r0, [r7, #12] - 80028ce: f000 fa77 bl 8002dc0 - 80028d2: 4603 mov r3, r0 - 80028d4: 2b00 cmp r3, #0 - 80028d6: d001 beq.n 80028dc + 8002aa6: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002aa8: 9300 str r3, [sp, #0] + 8002aaa: 6bbb ldr r3, [r7, #56] ; 0x38 + 8002aac: 2200 movs r2, #0 + 8002aae: 497b ldr r1, [pc, #492] ; (8002c9c ) + 8002ab0: 68f8 ldr r0, [r7, #12] + 8002ab2: f000 fa77 bl 8002fa4 + 8002ab6: 4603 mov r3, r0 + 8002ab8: 2b00 cmp r3, #0 + 8002aba: d001 beq.n 8002ac0 { return HAL_ERROR; - 80028d8: 2301 movs r3, #1 - 80028da: e0e9 b.n 8002ab0 + 8002abc: 2301 movs r3, #1 + 8002abe: e0e9 b.n 8002c94 } /* Disable Acknowledge */ CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); - 80028dc: 68fb ldr r3, [r7, #12] - 80028de: 681b ldr r3, [r3, #0] - 80028e0: 681a ldr r2, [r3, #0] - 80028e2: 68fb ldr r3, [r7, #12] - 80028e4: 681b ldr r3, [r3, #0] - 80028e6: f422 6280 bic.w r2, r2, #1024 ; 0x400 - 80028ea: 601a str r2, [r3, #0] + 8002ac0: 68fb ldr r3, [r7, #12] + 8002ac2: 681b ldr r3, [r3, #0] + 8002ac4: 681a ldr r2, [r3, #0] + 8002ac6: 68fb ldr r3, [r7, #12] + 8002ac8: 681b ldr r3, [r3, #0] + 8002aca: f422 6280 bic.w r2, r2, #1024 ; 0x400 + 8002ace: 601a str r2, [r3, #0] __ASM volatile ("cpsid i" : : : "memory"); - 80028ec: b672 cpsid i + 8002ad0: b672 cpsid i } - 80028ee: bf00 nop + 8002ad2: bf00 nop /* Disable all active IRQs around ADDR clearing and STOP programming because the EV6_3 software sequence must complete before the current byte end of transfer */ __disable_irq(); /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 80028f0: 68fb ldr r3, [r7, #12] - 80028f2: 681b ldr r3, [r3, #0] - 80028f4: 691a ldr r2, [r3, #16] - 80028f6: 68fb ldr r3, [r7, #12] - 80028f8: 6a5b ldr r3, [r3, #36] ; 0x24 - 80028fa: b2d2 uxtb r2, r2 - 80028fc: 701a strb r2, [r3, #0] + 8002ad4: 68fb ldr r3, [r7, #12] + 8002ad6: 681b ldr r3, [r3, #0] + 8002ad8: 691a ldr r2, [r3, #16] + 8002ada: 68fb ldr r3, [r7, #12] + 8002adc: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002ade: b2d2 uxtb r2, r2 + 8002ae0: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 80028fe: 68fb ldr r3, [r7, #12] - 8002900: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002902: 1c5a adds r2, r3, #1 - 8002904: 68fb ldr r3, [r7, #12] - 8002906: 625a str r2, [r3, #36] ; 0x24 + 8002ae2: 68fb ldr r3, [r7, #12] + 8002ae4: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002ae6: 1c5a adds r2, r3, #1 + 8002ae8: 68fb ldr r3, [r7, #12] + 8002aea: 625a str r2, [r3, #36] ; 0x24 /* Update counter */ hi2c->XferSize--; - 8002908: 68fb ldr r3, [r7, #12] - 800290a: 8d1b ldrh r3, [r3, #40] ; 0x28 - 800290c: 3b01 subs r3, #1 - 800290e: b29a uxth r2, r3 - 8002910: 68fb ldr r3, [r7, #12] - 8002912: 851a strh r2, [r3, #40] ; 0x28 + 8002aec: 68fb ldr r3, [r7, #12] + 8002aee: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002af0: 3b01 subs r3, #1 + 8002af2: b29a uxth r2, r3 + 8002af4: 68fb ldr r3, [r7, #12] + 8002af6: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferCount--; - 8002914: 68fb ldr r3, [r7, #12] - 8002916: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002918: b29b uxth r3, r3 - 800291a: 3b01 subs r3, #1 - 800291c: b29a uxth r2, r3 - 800291e: 68fb ldr r3, [r7, #12] - 8002920: 855a strh r2, [r3, #42] ; 0x2a + 8002af8: 68fb ldr r3, [r7, #12] + 8002afa: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8002afc: b29b uxth r3, r3 + 8002afe: 3b01 subs r3, #1 + 8002b00: b29a uxth r2, r3 + 8002b02: 68fb ldr r3, [r7, #12] + 8002b04: 855a strh r2, [r3, #42] ; 0x2a /* Wait until BTF flag is set */ count = I2C_TIMEOUT_FLAG * (SystemCoreClock / 25U / 1000U); - 8002922: 4b66 ldr r3, [pc, #408] ; (8002abc ) - 8002924: 681b ldr r3, [r3, #0] - 8002926: 08db lsrs r3, r3, #3 - 8002928: 4a65 ldr r2, [pc, #404] ; (8002ac0 ) - 800292a: fba2 2303 umull r2, r3, r2, r3 - 800292e: 0a1a lsrs r2, r3, #8 - 8002930: 4613 mov r3, r2 - 8002932: 009b lsls r3, r3, #2 - 8002934: 4413 add r3, r2 - 8002936: 00da lsls r2, r3, #3 - 8002938: 1ad3 subs r3, r2, r3 - 800293a: 623b str r3, [r7, #32] + 8002b06: 4b66 ldr r3, [pc, #408] ; (8002ca0 ) + 8002b08: 681b ldr r3, [r3, #0] + 8002b0a: 08db lsrs r3, r3, #3 + 8002b0c: 4a65 ldr r2, [pc, #404] ; (8002ca4 ) + 8002b0e: fba2 2303 umull r2, r3, r2, r3 + 8002b12: 0a1a lsrs r2, r3, #8 + 8002b14: 4613 mov r3, r2 + 8002b16: 009b lsls r3, r3, #2 + 8002b18: 4413 add r3, r2 + 8002b1a: 00da lsls r2, r3, #3 + 8002b1c: 1ad3 subs r3, r2, r3 + 8002b1e: 623b str r3, [r7, #32] do { count--; - 800293c: 6a3b ldr r3, [r7, #32] - 800293e: 3b01 subs r3, #1 - 8002940: 623b str r3, [r7, #32] + 8002b20: 6a3b ldr r3, [r7, #32] + 8002b22: 3b01 subs r3, #1 + 8002b24: 623b str r3, [r7, #32] if (count == 0U) - 8002942: 6a3b ldr r3, [r7, #32] - 8002944: 2b00 cmp r3, #0 - 8002946: d118 bne.n 800297a + 8002b26: 6a3b ldr r3, [r7, #32] + 8002b28: 2b00 cmp r3, #0 + 8002b2a: d118 bne.n 8002b5e { hi2c->PreviousState = I2C_STATE_NONE; - 8002948: 68fb ldr r3, [r7, #12] - 800294a: 2200 movs r2, #0 - 800294c: 631a str r2, [r3, #48] ; 0x30 + 8002b2c: 68fb ldr r3, [r7, #12] + 8002b2e: 2200 movs r2, #0 + 8002b30: 631a str r2, [r3, #48] ; 0x30 hi2c->State = HAL_I2C_STATE_READY; - 800294e: 68fb ldr r3, [r7, #12] - 8002950: 2220 movs r2, #32 - 8002952: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8002b32: 68fb ldr r3, [r7, #12] + 8002b34: 2220 movs r2, #32 + 8002b36: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8002956: 68fb ldr r3, [r7, #12] - 8002958: 2200 movs r2, #0 - 800295a: f883 203e strb.w r2, [r3, #62] ; 0x3e + 8002b3a: 68fb ldr r3, [r7, #12] + 8002b3c: 2200 movs r2, #0 + 8002b3e: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 800295e: 68fb ldr r3, [r7, #12] - 8002960: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002962: f043 0220 orr.w r2, r3, #32 - 8002966: 68fb ldr r3, [r7, #12] - 8002968: 641a str r2, [r3, #64] ; 0x40 + 8002b42: 68fb ldr r3, [r7, #12] + 8002b44: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002b46: f043 0220 orr.w r2, r3, #32 + 8002b4a: 68fb ldr r3, [r7, #12] + 8002b4c: 641a str r2, [r3, #64] ; 0x40 __ASM volatile ("cpsie i" : : : "memory"); - 800296a: b662 cpsie i + 8002b4e: b662 cpsie i } - 800296c: bf00 nop + 8002b50: bf00 nop /* Re-enable IRQs */ __enable_irq(); /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 800296e: 68fb ldr r3, [r7, #12] - 8002970: 2200 movs r2, #0 - 8002972: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8002b52: 68fb ldr r3, [r7, #12] + 8002b54: 2200 movs r2, #0 + 8002b56: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 8002976: 2301 movs r3, #1 - 8002978: e09a b.n 8002ab0 + 8002b5a: 2301 movs r3, #1 + 8002b5c: e09a b.n 8002c94 } } while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET); - 800297a: 68fb ldr r3, [r7, #12] - 800297c: 681b ldr r3, [r3, #0] - 800297e: 695b ldr r3, [r3, #20] - 8002980: f003 0304 and.w r3, r3, #4 - 8002984: 2b04 cmp r3, #4 - 8002986: d1d9 bne.n 800293c + 8002b5e: 68fb ldr r3, [r7, #12] + 8002b60: 681b ldr r3, [r3, #0] + 8002b62: 695b ldr r3, [r3, #20] + 8002b64: f003 0304 and.w r3, r3, #4 + 8002b68: 2b04 cmp r3, #4 + 8002b6a: d1d9 bne.n 8002b20 /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8002988: 68fb ldr r3, [r7, #12] - 800298a: 681b ldr r3, [r3, #0] - 800298c: 681a ldr r2, [r3, #0] - 800298e: 68fb ldr r3, [r7, #12] - 8002990: 681b ldr r3, [r3, #0] - 8002992: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002996: 601a str r2, [r3, #0] + 8002b6c: 68fb ldr r3, [r7, #12] + 8002b6e: 681b ldr r3, [r3, #0] + 8002b70: 681a ldr r2, [r3, #0] + 8002b72: 68fb ldr r3, [r7, #12] + 8002b74: 681b ldr r3, [r3, #0] + 8002b76: f442 7200 orr.w r2, r2, #512 ; 0x200 + 8002b7a: 601a str r2, [r3, #0] /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 8002998: 68fb ldr r3, [r7, #12] - 800299a: 681b ldr r3, [r3, #0] - 800299c: 691a ldr r2, [r3, #16] - 800299e: 68fb ldr r3, [r7, #12] - 80029a0: 6a5b ldr r3, [r3, #36] ; 0x24 - 80029a2: b2d2 uxtb r2, r2 - 80029a4: 701a strb r2, [r3, #0] + 8002b7c: 68fb ldr r3, [r7, #12] + 8002b7e: 681b ldr r3, [r3, #0] + 8002b80: 691a ldr r2, [r3, #16] + 8002b82: 68fb ldr r3, [r7, #12] + 8002b84: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002b86: b2d2 uxtb r2, r2 + 8002b88: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 80029a6: 68fb ldr r3, [r7, #12] - 80029a8: 6a5b ldr r3, [r3, #36] ; 0x24 - 80029aa: 1c5a adds r2, r3, #1 - 80029ac: 68fb ldr r3, [r7, #12] - 80029ae: 625a str r2, [r3, #36] ; 0x24 + 8002b8a: 68fb ldr r3, [r7, #12] + 8002b8c: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002b8e: 1c5a adds r2, r3, #1 + 8002b90: 68fb ldr r3, [r7, #12] + 8002b92: 625a str r2, [r3, #36] ; 0x24 /* Update counter */ hi2c->XferSize--; - 80029b0: 68fb ldr r3, [r7, #12] - 80029b2: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80029b4: 3b01 subs r3, #1 - 80029b6: b29a uxth r2, r3 - 80029b8: 68fb ldr r3, [r7, #12] - 80029ba: 851a strh r2, [r3, #40] ; 0x28 + 8002b94: 68fb ldr r3, [r7, #12] + 8002b96: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002b98: 3b01 subs r3, #1 + 8002b9a: b29a uxth r2, r3 + 8002b9c: 68fb ldr r3, [r7, #12] + 8002b9e: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferCount--; - 80029bc: 68fb ldr r3, [r7, #12] - 80029be: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80029c0: b29b uxth r3, r3 - 80029c2: 3b01 subs r3, #1 - 80029c4: b29a uxth r2, r3 - 80029c6: 68fb ldr r3, [r7, #12] - 80029c8: 855a strh r2, [r3, #42] ; 0x2a + 8002ba0: 68fb ldr r3, [r7, #12] + 8002ba2: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8002ba4: b29b uxth r3, r3 + 8002ba6: 3b01 subs r3, #1 + 8002ba8: b29a uxth r2, r3 + 8002baa: 68fb ldr r3, [r7, #12] + 8002bac: 855a strh r2, [r3, #42] ; 0x2a __ASM volatile ("cpsie i" : : : "memory"); - 80029ca: b662 cpsie i + 8002bae: b662 cpsie i } - 80029cc: bf00 nop + 8002bb0: bf00 nop /* Re-enable IRQs */ __enable_irq(); /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 80029ce: 68fb ldr r3, [r7, #12] - 80029d0: 681b ldr r3, [r3, #0] - 80029d2: 691a ldr r2, [r3, #16] - 80029d4: 68fb ldr r3, [r7, #12] - 80029d6: 6a5b ldr r3, [r3, #36] ; 0x24 - 80029d8: b2d2 uxtb r2, r2 - 80029da: 701a strb r2, [r3, #0] + 8002bb2: 68fb ldr r3, [r7, #12] + 8002bb4: 681b ldr r3, [r3, #0] + 8002bb6: 691a ldr r2, [r3, #16] + 8002bb8: 68fb ldr r3, [r7, #12] + 8002bba: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002bbc: b2d2 uxtb r2, r2 + 8002bbe: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 80029dc: 68fb ldr r3, [r7, #12] - 80029de: 6a5b ldr r3, [r3, #36] ; 0x24 - 80029e0: 1c5a adds r2, r3, #1 - 80029e2: 68fb ldr r3, [r7, #12] - 80029e4: 625a str r2, [r3, #36] ; 0x24 + 8002bc0: 68fb ldr r3, [r7, #12] + 8002bc2: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002bc4: 1c5a adds r2, r3, #1 + 8002bc6: 68fb ldr r3, [r7, #12] + 8002bc8: 625a str r2, [r3, #36] ; 0x24 /* Update counter */ hi2c->XferSize--; - 80029e6: 68fb ldr r3, [r7, #12] - 80029e8: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80029ea: 3b01 subs r3, #1 - 80029ec: b29a uxth r2, r3 - 80029ee: 68fb ldr r3, [r7, #12] - 80029f0: 851a strh r2, [r3, #40] ; 0x28 + 8002bca: 68fb ldr r3, [r7, #12] + 8002bcc: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002bce: 3b01 subs r3, #1 + 8002bd0: b29a uxth r2, r3 + 8002bd2: 68fb ldr r3, [r7, #12] + 8002bd4: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferCount--; - 80029f2: 68fb ldr r3, [r7, #12] - 80029f4: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80029f6: b29b uxth r3, r3 - 80029f8: 3b01 subs r3, #1 - 80029fa: b29a uxth r2, r3 - 80029fc: 68fb ldr r3, [r7, #12] - 80029fe: 855a strh r2, [r3, #42] ; 0x2a - 8002a00: e042 b.n 8002a88 + 8002bd6: 68fb ldr r3, [r7, #12] + 8002bd8: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8002bda: b29b uxth r3, r3 + 8002bdc: 3b01 subs r3, #1 + 8002bde: b29a uxth r2, r3 + 8002be0: 68fb ldr r3, [r7, #12] + 8002be2: 855a strh r2, [r3, #42] ; 0x2a + 8002be4: e042 b.n 8002c6c } } else { /* Wait until RXNE flag is set */ if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 8002a02: 6a7a ldr r2, [r7, #36] ; 0x24 - 8002a04: 6bb9 ldr r1, [r7, #56] ; 0x38 - 8002a06: 68f8 ldr r0, [r7, #12] - 8002a08: f000 fb32 bl 8003070 - 8002a0c: 4603 mov r3, r0 - 8002a0e: 2b00 cmp r3, #0 - 8002a10: d001 beq.n 8002a16 + 8002be6: 6a7a ldr r2, [r7, #36] ; 0x24 + 8002be8: 6bb9 ldr r1, [r7, #56] ; 0x38 + 8002bea: 68f8 ldr r0, [r7, #12] + 8002bec: f000 fb32 bl 8003254 + 8002bf0: 4603 mov r3, r0 + 8002bf2: 2b00 cmp r3, #0 + 8002bf4: d001 beq.n 8002bfa { return HAL_ERROR; - 8002a12: 2301 movs r3, #1 - 8002a14: e04c b.n 8002ab0 + 8002bf6: 2301 movs r3, #1 + 8002bf8: e04c b.n 8002c94 } /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 8002a16: 68fb ldr r3, [r7, #12] - 8002a18: 681b ldr r3, [r3, #0] - 8002a1a: 691a ldr r2, [r3, #16] - 8002a1c: 68fb ldr r3, [r7, #12] - 8002a1e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002a20: b2d2 uxtb r2, r2 - 8002a22: 701a strb r2, [r3, #0] + 8002bfa: 68fb ldr r3, [r7, #12] + 8002bfc: 681b ldr r3, [r3, #0] + 8002bfe: 691a ldr r2, [r3, #16] + 8002c00: 68fb ldr r3, [r7, #12] + 8002c02: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002c04: b2d2 uxtb r2, r2 + 8002c06: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 8002a24: 68fb ldr r3, [r7, #12] - 8002a26: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002a28: 1c5a adds r2, r3, #1 - 8002a2a: 68fb ldr r3, [r7, #12] - 8002a2c: 625a str r2, [r3, #36] ; 0x24 + 8002c08: 68fb ldr r3, [r7, #12] + 8002c0a: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002c0c: 1c5a adds r2, r3, #1 + 8002c0e: 68fb ldr r3, [r7, #12] + 8002c10: 625a str r2, [r3, #36] ; 0x24 /* Update counter */ hi2c->XferSize--; - 8002a2e: 68fb ldr r3, [r7, #12] - 8002a30: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002a32: 3b01 subs r3, #1 - 8002a34: b29a uxth r2, r3 - 8002a36: 68fb ldr r3, [r7, #12] - 8002a38: 851a strh r2, [r3, #40] ; 0x28 + 8002c12: 68fb ldr r3, [r7, #12] + 8002c14: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002c16: 3b01 subs r3, #1 + 8002c18: b29a uxth r2, r3 + 8002c1a: 68fb ldr r3, [r7, #12] + 8002c1c: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferCount--; - 8002a3a: 68fb ldr r3, [r7, #12] - 8002a3c: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002a3e: b29b uxth r3, r3 - 8002a40: 3b01 subs r3, #1 - 8002a42: b29a uxth r2, r3 - 8002a44: 68fb ldr r3, [r7, #12] - 8002a46: 855a strh r2, [r3, #42] ; 0x2a + 8002c1e: 68fb ldr r3, [r7, #12] + 8002c20: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8002c22: b29b uxth r3, r3 + 8002c24: 3b01 subs r3, #1 + 8002c26: b29a uxth r2, r3 + 8002c28: 68fb ldr r3, [r7, #12] + 8002c2a: 855a strh r2, [r3, #42] ; 0x2a if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) - 8002a48: 68fb ldr r3, [r7, #12] - 8002a4a: 681b ldr r3, [r3, #0] - 8002a4c: 695b ldr r3, [r3, #20] - 8002a4e: f003 0304 and.w r3, r3, #4 - 8002a52: 2b04 cmp r3, #4 - 8002a54: d118 bne.n 8002a88 + 8002c2c: 68fb ldr r3, [r7, #12] + 8002c2e: 681b ldr r3, [r3, #0] + 8002c30: 695b ldr r3, [r3, #20] + 8002c32: f003 0304 and.w r3, r3, #4 + 8002c36: 2b04 cmp r3, #4 + 8002c38: d118 bne.n 8002c6c { /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 8002a56: 68fb ldr r3, [r7, #12] - 8002a58: 681b ldr r3, [r3, #0] - 8002a5a: 691a ldr r2, [r3, #16] - 8002a5c: 68fb ldr r3, [r7, #12] - 8002a5e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002a60: b2d2 uxtb r2, r2 - 8002a62: 701a strb r2, [r3, #0] + 8002c3a: 68fb ldr r3, [r7, #12] + 8002c3c: 681b ldr r3, [r3, #0] + 8002c3e: 691a ldr r2, [r3, #16] + 8002c40: 68fb ldr r3, [r7, #12] + 8002c42: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002c44: b2d2 uxtb r2, r2 + 8002c46: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 8002a64: 68fb ldr r3, [r7, #12] - 8002a66: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002a68: 1c5a adds r2, r3, #1 - 8002a6a: 68fb ldr r3, [r7, #12] - 8002a6c: 625a str r2, [r3, #36] ; 0x24 + 8002c48: 68fb ldr r3, [r7, #12] + 8002c4a: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002c4c: 1c5a adds r2, r3, #1 + 8002c4e: 68fb ldr r3, [r7, #12] + 8002c50: 625a str r2, [r3, #36] ; 0x24 /* Update counter */ hi2c->XferSize--; - 8002a6e: 68fb ldr r3, [r7, #12] - 8002a70: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002a72: 3b01 subs r3, #1 - 8002a74: b29a uxth r2, r3 - 8002a76: 68fb ldr r3, [r7, #12] - 8002a78: 851a strh r2, [r3, #40] ; 0x28 + 8002c52: 68fb ldr r3, [r7, #12] + 8002c54: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002c56: 3b01 subs r3, #1 + 8002c58: b29a uxth r2, r3 + 8002c5a: 68fb ldr r3, [r7, #12] + 8002c5c: 851a strh r2, [r3, #40] ; 0x28 hi2c->XferCount--; - 8002a7a: 68fb ldr r3, [r7, #12] - 8002a7c: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002a7e: b29b uxth r3, r3 - 8002a80: 3b01 subs r3, #1 - 8002a82: b29a uxth r2, r3 - 8002a84: 68fb ldr r3, [r7, #12] - 8002a86: 855a strh r2, [r3, #42] ; 0x2a + 8002c5e: 68fb ldr r3, [r7, #12] + 8002c60: 8d5b ldrh r3, [r3, #42] ; 0x2a + 8002c62: b29b uxth r3, r3 + 8002c64: 3b01 subs r3, #1 + 8002c66: b29a uxth r2, r3 + 8002c68: 68fb ldr r3, [r7, #12] + 8002c6a: 855a strh r2, [r3, #42] ; 0x2a while (hi2c->XferSize > 0U) - 8002a88: 68fb ldr r3, [r7, #12] - 8002a8a: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002a8c: 2b00 cmp r3, #0 - 8002a8e: f47f ae94 bne.w 80027ba + 8002c6c: 68fb ldr r3, [r7, #12] + 8002c6e: 8d1b ldrh r3, [r3, #40] ; 0x28 + 8002c70: 2b00 cmp r3, #0 + 8002c72: f47f ae94 bne.w 800299e } } } hi2c->State = HAL_I2C_STATE_READY; - 8002a92: 68fb ldr r3, [r7, #12] - 8002a94: 2220 movs r2, #32 - 8002a96: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8002c76: 68fb ldr r3, [r7, #12] + 8002c78: 2220 movs r2, #32 + 8002c7a: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8002a9a: 68fb ldr r3, [r7, #12] - 8002a9c: 2200 movs r2, #0 - 8002a9e: f883 203e strb.w r2, [r3, #62] ; 0x3e + 8002c7e: 68fb ldr r3, [r7, #12] + 8002c80: 2200 movs r2, #0 + 8002c82: f883 203e strb.w r2, [r3, #62] ; 0x3e /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8002aa2: 68fb ldr r3, [r7, #12] - 8002aa4: 2200 movs r2, #0 - 8002aa6: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8002c86: 68fb ldr r3, [r7, #12] + 8002c88: 2200 movs r2, #0 + 8002c8a: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_OK; - 8002aaa: 2300 movs r3, #0 - 8002aac: e000 b.n 8002ab0 + 8002c8e: 2300 movs r3, #0 + 8002c90: e000 b.n 8002c94 } else { return HAL_BUSY; - 8002aae: 2302 movs r3, #2 + 8002c92: 2302 movs r3, #2 } } - 8002ab0: 4618 mov r0, r3 - 8002ab2: 3728 adds r7, #40 ; 0x28 - 8002ab4: 46bd mov sp, r7 - 8002ab6: bd80 pop {r7, pc} - 8002ab8: 00010004 .word 0x00010004 - 8002abc: 20000000 .word 0x20000000 - 8002ac0: 14f8b589 .word 0x14f8b589 + 8002c94: 4618 mov r0, r3 + 8002c96: 3728 adds r7, #40 ; 0x28 + 8002c98: 46bd mov sp, r7 + 8002c9a: bd80 pop {r7, pc} + 8002c9c: 00010004 .word 0x00010004 + 8002ca0: 20000000 .word 0x20000000 + 8002ca4: 14f8b589 .word 0x14f8b589 -08002ac4 : +08002ca8 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, uint32_t Tickstart) { - 8002ac4: b580 push {r7, lr} - 8002ac6: b088 sub sp, #32 - 8002ac8: af02 add r7, sp, #8 - 8002aca: 60f8 str r0, [r7, #12] - 8002acc: 4608 mov r0, r1 - 8002ace: 4611 mov r1, r2 - 8002ad0: 461a mov r2, r3 - 8002ad2: 4603 mov r3, r0 - 8002ad4: 817b strh r3, [r7, #10] - 8002ad6: 460b mov r3, r1 - 8002ad8: 813b strh r3, [r7, #8] - 8002ada: 4613 mov r3, r2 - 8002adc: 80fb strh r3, [r7, #6] + 8002ca8: b580 push {r7, lr} + 8002caa: b088 sub sp, #32 + 8002cac: af02 add r7, sp, #8 + 8002cae: 60f8 str r0, [r7, #12] + 8002cb0: 4608 mov r0, r1 + 8002cb2: 4611 mov r1, r2 + 8002cb4: 461a mov r2, r3 + 8002cb6: 4603 mov r3, r0 + 8002cb8: 817b strh r3, [r7, #10] + 8002cba: 460b mov r3, r1 + 8002cbc: 813b strh r3, [r7, #8] + 8002cbe: 4613 mov r3, r2 + 8002cc0: 80fb strh r3, [r7, #6] /* Generate Start */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); - 8002ade: 68fb ldr r3, [r7, #12] - 8002ae0: 681b ldr r3, [r3, #0] - 8002ae2: 681a ldr r2, [r3, #0] - 8002ae4: 68fb ldr r3, [r7, #12] - 8002ae6: 681b ldr r3, [r3, #0] - 8002ae8: f442 7280 orr.w r2, r2, #256 ; 0x100 - 8002aec: 601a str r2, [r3, #0] + 8002cc2: 68fb ldr r3, [r7, #12] + 8002cc4: 681b ldr r3, [r3, #0] + 8002cc6: 681a ldr r2, [r3, #0] + 8002cc8: 68fb ldr r3, [r7, #12] + 8002cca: 681b ldr r3, [r3, #0] + 8002ccc: f442 7280 orr.w r2, r2, #256 ; 0x100 + 8002cd0: 601a str r2, [r3, #0] /* Wait until SB flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) - 8002aee: 6a7b ldr r3, [r7, #36] ; 0x24 - 8002af0: 9300 str r3, [sp, #0] - 8002af2: 6a3b ldr r3, [r7, #32] - 8002af4: 2200 movs r2, #0 - 8002af6: f04f 1101 mov.w r1, #65537 ; 0x10001 - 8002afa: 68f8 ldr r0, [r7, #12] - 8002afc: f000 f960 bl 8002dc0 - 8002b00: 4603 mov r3, r0 - 8002b02: 2b00 cmp r3, #0 - 8002b04: d00d beq.n 8002b22 + 8002cd2: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002cd4: 9300 str r3, [sp, #0] + 8002cd6: 6a3b ldr r3, [r7, #32] + 8002cd8: 2200 movs r2, #0 + 8002cda: f04f 1101 mov.w r1, #65537 ; 0x10001 + 8002cde: 68f8 ldr r0, [r7, #12] + 8002ce0: f000 f960 bl 8002fa4 + 8002ce4: 4603 mov r3, r0 + 8002ce6: 2b00 cmp r3, #0 + 8002ce8: d00d beq.n 8002d06 { if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) - 8002b06: 68fb ldr r3, [r7, #12] - 8002b08: 681b ldr r3, [r3, #0] - 8002b0a: 681b ldr r3, [r3, #0] - 8002b0c: f403 7380 and.w r3, r3, #256 ; 0x100 - 8002b10: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 8002b14: d103 bne.n 8002b1e + 8002cea: 68fb ldr r3, [r7, #12] + 8002cec: 681b ldr r3, [r3, #0] + 8002cee: 681b ldr r3, [r3, #0] + 8002cf0: f403 7380 and.w r3, r3, #256 ; 0x100 + 8002cf4: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 8002cf8: d103 bne.n 8002d02 { hi2c->ErrorCode = HAL_I2C_WRONG_START; - 8002b16: 68fb ldr r3, [r7, #12] - 8002b18: f44f 7200 mov.w r2, #512 ; 0x200 - 8002b1c: 641a str r2, [r3, #64] ; 0x40 + 8002cfa: 68fb ldr r3, [r7, #12] + 8002cfc: f44f 7200 mov.w r2, #512 ; 0x200 + 8002d00: 641a str r2, [r3, #64] ; 0x40 } return HAL_TIMEOUT; - 8002b1e: 2303 movs r3, #3 - 8002b20: e05f b.n 8002be2 + 8002d02: 2303 movs r3, #3 + 8002d04: e05f b.n 8002dc6 } /* Send slave address */ hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); - 8002b22: 897b ldrh r3, [r7, #10] - 8002b24: b2db uxtb r3, r3 - 8002b26: 461a mov r2, r3 - 8002b28: 68fb ldr r3, [r7, #12] - 8002b2a: 681b ldr r3, [r3, #0] - 8002b2c: f002 02fe and.w r2, r2, #254 ; 0xfe - 8002b30: 611a str r2, [r3, #16] + 8002d06: 897b ldrh r3, [r7, #10] + 8002d08: b2db uxtb r3, r3 + 8002d0a: 461a mov r2, r3 + 8002d0c: 68fb ldr r3, [r7, #12] + 8002d0e: 681b ldr r3, [r3, #0] + 8002d10: f002 02fe and.w r2, r2, #254 ; 0xfe + 8002d14: 611a str r2, [r3, #16] /* Wait until ADDR flag is set */ if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) - 8002b32: 6a7b ldr r3, [r7, #36] ; 0x24 - 8002b34: 6a3a ldr r2, [r7, #32] - 8002b36: 492d ldr r1, [pc, #180] ; (8002bec ) - 8002b38: 68f8 ldr r0, [r7, #12] - 8002b3a: f000 f998 bl 8002e6e - 8002b3e: 4603 mov r3, r0 - 8002b40: 2b00 cmp r3, #0 - 8002b42: d001 beq.n 8002b48 + 8002d16: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002d18: 6a3a ldr r2, [r7, #32] + 8002d1a: 492d ldr r1, [pc, #180] ; (8002dd0 ) + 8002d1c: 68f8 ldr r0, [r7, #12] + 8002d1e: f000 f998 bl 8003052 + 8002d22: 4603 mov r3, r0 + 8002d24: 2b00 cmp r3, #0 + 8002d26: d001 beq.n 8002d2c { return HAL_ERROR; - 8002b44: 2301 movs r3, #1 - 8002b46: e04c b.n 8002be2 + 8002d28: 2301 movs r3, #1 + 8002d2a: e04c b.n 8002dc6 } /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 8002b48: 2300 movs r3, #0 - 8002b4a: 617b str r3, [r7, #20] - 8002b4c: 68fb ldr r3, [r7, #12] - 8002b4e: 681b ldr r3, [r3, #0] - 8002b50: 695b ldr r3, [r3, #20] - 8002b52: 617b str r3, [r7, #20] - 8002b54: 68fb ldr r3, [r7, #12] - 8002b56: 681b ldr r3, [r3, #0] - 8002b58: 699b ldr r3, [r3, #24] - 8002b5a: 617b str r3, [r7, #20] - 8002b5c: 697b ldr r3, [r7, #20] + 8002d2c: 2300 movs r3, #0 + 8002d2e: 617b str r3, [r7, #20] + 8002d30: 68fb ldr r3, [r7, #12] + 8002d32: 681b ldr r3, [r3, #0] + 8002d34: 695b ldr r3, [r3, #20] + 8002d36: 617b str r3, [r7, #20] + 8002d38: 68fb ldr r3, [r7, #12] + 8002d3a: 681b ldr r3, [r3, #0] + 8002d3c: 699b ldr r3, [r3, #24] + 8002d3e: 617b str r3, [r7, #20] + 8002d40: 697b ldr r3, [r7, #20] /* Wait until TXE flag is set */ if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 8002b5e: 6a7a ldr r2, [r7, #36] ; 0x24 - 8002b60: 6a39 ldr r1, [r7, #32] - 8002b62: 68f8 ldr r0, [r7, #12] - 8002b64: f000 fa02 bl 8002f6c - 8002b68: 4603 mov r3, r0 - 8002b6a: 2b00 cmp r3, #0 - 8002b6c: d00d beq.n 8002b8a + 8002d42: 6a7a ldr r2, [r7, #36] ; 0x24 + 8002d44: 6a39 ldr r1, [r7, #32] + 8002d46: 68f8 ldr r0, [r7, #12] + 8002d48: f000 fa02 bl 8003150 + 8002d4c: 4603 mov r3, r0 + 8002d4e: 2b00 cmp r3, #0 + 8002d50: d00d beq.n 8002d6e { if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) - 8002b6e: 68fb ldr r3, [r7, #12] - 8002b70: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002b72: 2b04 cmp r3, #4 - 8002b74: d107 bne.n 8002b86 + 8002d52: 68fb ldr r3, [r7, #12] + 8002d54: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002d56: 2b04 cmp r3, #4 + 8002d58: d107 bne.n 8002d6a { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8002b76: 68fb ldr r3, [r7, #12] - 8002b78: 681b ldr r3, [r3, #0] - 8002b7a: 681a ldr r2, [r3, #0] - 8002b7c: 68fb ldr r3, [r7, #12] - 8002b7e: 681b ldr r3, [r3, #0] - 8002b80: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002b84: 601a str r2, [r3, #0] + 8002d5a: 68fb ldr r3, [r7, #12] + 8002d5c: 681b ldr r3, [r3, #0] + 8002d5e: 681a ldr r2, [r3, #0] + 8002d60: 68fb ldr r3, [r7, #12] + 8002d62: 681b ldr r3, [r3, #0] + 8002d64: f442 7200 orr.w r2, r2, #512 ; 0x200 + 8002d68: 601a str r2, [r3, #0] } return HAL_ERROR; - 8002b86: 2301 movs r3, #1 - 8002b88: e02b b.n 8002be2 + 8002d6a: 2301 movs r3, #1 + 8002d6c: e02b b.n 8002dc6 } /* If Memory address size is 8Bit */ if (MemAddSize == I2C_MEMADD_SIZE_8BIT) - 8002b8a: 88fb ldrh r3, [r7, #6] - 8002b8c: 2b01 cmp r3, #1 - 8002b8e: d105 bne.n 8002b9c + 8002d6e: 88fb ldrh r3, [r7, #6] + 8002d70: 2b01 cmp r3, #1 + 8002d72: d105 bne.n 8002d80 { /* Send Memory Address */ hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); - 8002b90: 893b ldrh r3, [r7, #8] - 8002b92: b2da uxtb r2, r3 - 8002b94: 68fb ldr r3, [r7, #12] - 8002b96: 681b ldr r3, [r3, #0] - 8002b98: 611a str r2, [r3, #16] - 8002b9a: e021 b.n 8002be0 + 8002d74: 893b ldrh r3, [r7, #8] + 8002d76: b2da uxtb r2, r3 + 8002d78: 68fb ldr r3, [r7, #12] + 8002d7a: 681b ldr r3, [r3, #0] + 8002d7c: 611a str r2, [r3, #16] + 8002d7e: e021 b.n 8002dc4 } /* If Memory address size is 16Bit */ else { /* Send MSB of Memory Address */ hi2c->Instance->DR = I2C_MEM_ADD_MSB(MemAddress); - 8002b9c: 893b ldrh r3, [r7, #8] - 8002b9e: 0a1b lsrs r3, r3, #8 - 8002ba0: b29b uxth r3, r3 - 8002ba2: b2da uxtb r2, r3 - 8002ba4: 68fb ldr r3, [r7, #12] - 8002ba6: 681b ldr r3, [r3, #0] - 8002ba8: 611a str r2, [r3, #16] + 8002d80: 893b ldrh r3, [r7, #8] + 8002d82: 0a1b lsrs r3, r3, #8 + 8002d84: b29b uxth r3, r3 + 8002d86: b2da uxtb r2, r3 + 8002d88: 68fb ldr r3, [r7, #12] + 8002d8a: 681b ldr r3, [r3, #0] + 8002d8c: 611a str r2, [r3, #16] /* Wait until TXE flag is set */ if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 8002baa: 6a7a ldr r2, [r7, #36] ; 0x24 - 8002bac: 6a39 ldr r1, [r7, #32] - 8002bae: 68f8 ldr r0, [r7, #12] - 8002bb0: f000 f9dc bl 8002f6c - 8002bb4: 4603 mov r3, r0 - 8002bb6: 2b00 cmp r3, #0 - 8002bb8: d00d beq.n 8002bd6 + 8002d8e: 6a7a ldr r2, [r7, #36] ; 0x24 + 8002d90: 6a39 ldr r1, [r7, #32] + 8002d92: 68f8 ldr r0, [r7, #12] + 8002d94: f000 f9dc bl 8003150 + 8002d98: 4603 mov r3, r0 + 8002d9a: 2b00 cmp r3, #0 + 8002d9c: d00d beq.n 8002dba { if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) - 8002bba: 68fb ldr r3, [r7, #12] - 8002bbc: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002bbe: 2b04 cmp r3, #4 - 8002bc0: d107 bne.n 8002bd2 + 8002d9e: 68fb ldr r3, [r7, #12] + 8002da0: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002da2: 2b04 cmp r3, #4 + 8002da4: d107 bne.n 8002db6 { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8002bc2: 68fb ldr r3, [r7, #12] - 8002bc4: 681b ldr r3, [r3, #0] - 8002bc6: 681a ldr r2, [r3, #0] - 8002bc8: 68fb ldr r3, [r7, #12] - 8002bca: 681b ldr r3, [r3, #0] - 8002bcc: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002bd0: 601a str r2, [r3, #0] + 8002da6: 68fb ldr r3, [r7, #12] + 8002da8: 681b ldr r3, [r3, #0] + 8002daa: 681a ldr r2, [r3, #0] + 8002dac: 68fb ldr r3, [r7, #12] + 8002dae: 681b ldr r3, [r3, #0] + 8002db0: f442 7200 orr.w r2, r2, #512 ; 0x200 + 8002db4: 601a str r2, [r3, #0] } return HAL_ERROR; - 8002bd2: 2301 movs r3, #1 - 8002bd4: e005 b.n 8002be2 + 8002db6: 2301 movs r3, #1 + 8002db8: e005 b.n 8002dc6 } /* Send LSB of Memory Address */ hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); - 8002bd6: 893b ldrh r3, [r7, #8] - 8002bd8: b2da uxtb r2, r3 - 8002bda: 68fb ldr r3, [r7, #12] - 8002bdc: 681b ldr r3, [r3, #0] - 8002bde: 611a str r2, [r3, #16] + 8002dba: 893b ldrh r3, [r7, #8] + 8002dbc: b2da uxtb r2, r3 + 8002dbe: 68fb ldr r3, [r7, #12] + 8002dc0: 681b ldr r3, [r3, #0] + 8002dc2: 611a str r2, [r3, #16] } return HAL_OK; - 8002be0: 2300 movs r3, #0 + 8002dc4: 2300 movs r3, #0 } - 8002be2: 4618 mov r0, r3 - 8002be4: 3718 adds r7, #24 - 8002be6: 46bd mov sp, r7 - 8002be8: bd80 pop {r7, pc} - 8002bea: bf00 nop - 8002bec: 00010002 .word 0x00010002 + 8002dc6: 4618 mov r0, r3 + 8002dc8: 3718 adds r7, #24 + 8002dca: 46bd mov sp, r7 + 8002dcc: bd80 pop {r7, pc} + 8002dce: bf00 nop + 8002dd0: 00010002 .word 0x00010002 -08002bf0 : +08002dd4 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, uint32_t Tickstart) { - 8002bf0: b580 push {r7, lr} - 8002bf2: b088 sub sp, #32 - 8002bf4: af02 add r7, sp, #8 - 8002bf6: 60f8 str r0, [r7, #12] - 8002bf8: 4608 mov r0, r1 - 8002bfa: 4611 mov r1, r2 - 8002bfc: 461a mov r2, r3 - 8002bfe: 4603 mov r3, r0 - 8002c00: 817b strh r3, [r7, #10] - 8002c02: 460b mov r3, r1 - 8002c04: 813b strh r3, [r7, #8] - 8002c06: 4613 mov r3, r2 - 8002c08: 80fb strh r3, [r7, #6] + 8002dd4: b580 push {r7, lr} + 8002dd6: b088 sub sp, #32 + 8002dd8: af02 add r7, sp, #8 + 8002dda: 60f8 str r0, [r7, #12] + 8002ddc: 4608 mov r0, r1 + 8002dde: 4611 mov r1, r2 + 8002de0: 461a mov r2, r3 + 8002de2: 4603 mov r3, r0 + 8002de4: 817b strh r3, [r7, #10] + 8002de6: 460b mov r3, r1 + 8002de8: 813b strh r3, [r7, #8] + 8002dea: 4613 mov r3, r2 + 8002dec: 80fb strh r3, [r7, #6] /* Enable Acknowledge */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); - 8002c0a: 68fb ldr r3, [r7, #12] - 8002c0c: 681b ldr r3, [r3, #0] - 8002c0e: 681a ldr r2, [r3, #0] - 8002c10: 68fb ldr r3, [r7, #12] - 8002c12: 681b ldr r3, [r3, #0] - 8002c14: f442 6280 orr.w r2, r2, #1024 ; 0x400 - 8002c18: 601a str r2, [r3, #0] + 8002dee: 68fb ldr r3, [r7, #12] + 8002df0: 681b ldr r3, [r3, #0] + 8002df2: 681a ldr r2, [r3, #0] + 8002df4: 68fb ldr r3, [r7, #12] + 8002df6: 681b ldr r3, [r3, #0] + 8002df8: f442 6280 orr.w r2, r2, #1024 ; 0x400 + 8002dfc: 601a str r2, [r3, #0] /* Generate Start */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); - 8002c1a: 68fb ldr r3, [r7, #12] - 8002c1c: 681b ldr r3, [r3, #0] - 8002c1e: 681a ldr r2, [r3, #0] - 8002c20: 68fb ldr r3, [r7, #12] - 8002c22: 681b ldr r3, [r3, #0] - 8002c24: f442 7280 orr.w r2, r2, #256 ; 0x100 - 8002c28: 601a str r2, [r3, #0] + 8002dfe: 68fb ldr r3, [r7, #12] + 8002e00: 681b ldr r3, [r3, #0] + 8002e02: 681a ldr r2, [r3, #0] + 8002e04: 68fb ldr r3, [r7, #12] + 8002e06: 681b ldr r3, [r3, #0] + 8002e08: f442 7280 orr.w r2, r2, #256 ; 0x100 + 8002e0c: 601a str r2, [r3, #0] /* Wait until SB flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) - 8002c2a: 6a7b ldr r3, [r7, #36] ; 0x24 - 8002c2c: 9300 str r3, [sp, #0] - 8002c2e: 6a3b ldr r3, [r7, #32] - 8002c30: 2200 movs r2, #0 - 8002c32: f04f 1101 mov.w r1, #65537 ; 0x10001 - 8002c36: 68f8 ldr r0, [r7, #12] - 8002c38: f000 f8c2 bl 8002dc0 - 8002c3c: 4603 mov r3, r0 - 8002c3e: 2b00 cmp r3, #0 - 8002c40: d00d beq.n 8002c5e + 8002e0e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002e10: 9300 str r3, [sp, #0] + 8002e12: 6a3b ldr r3, [r7, #32] + 8002e14: 2200 movs r2, #0 + 8002e16: f04f 1101 mov.w r1, #65537 ; 0x10001 + 8002e1a: 68f8 ldr r0, [r7, #12] + 8002e1c: f000 f8c2 bl 8002fa4 + 8002e20: 4603 mov r3, r0 + 8002e22: 2b00 cmp r3, #0 + 8002e24: d00d beq.n 8002e42 { if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) - 8002c42: 68fb ldr r3, [r7, #12] - 8002c44: 681b ldr r3, [r3, #0] - 8002c46: 681b ldr r3, [r3, #0] - 8002c48: f403 7380 and.w r3, r3, #256 ; 0x100 - 8002c4c: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 8002c50: d103 bne.n 8002c5a + 8002e26: 68fb ldr r3, [r7, #12] + 8002e28: 681b ldr r3, [r3, #0] + 8002e2a: 681b ldr r3, [r3, #0] + 8002e2c: f403 7380 and.w r3, r3, #256 ; 0x100 + 8002e30: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 8002e34: d103 bne.n 8002e3e { hi2c->ErrorCode = HAL_I2C_WRONG_START; - 8002c52: 68fb ldr r3, [r7, #12] - 8002c54: f44f 7200 mov.w r2, #512 ; 0x200 - 8002c58: 641a str r2, [r3, #64] ; 0x40 + 8002e36: 68fb ldr r3, [r7, #12] + 8002e38: f44f 7200 mov.w r2, #512 ; 0x200 + 8002e3c: 641a str r2, [r3, #64] ; 0x40 } return HAL_TIMEOUT; - 8002c5a: 2303 movs r3, #3 - 8002c5c: e0aa b.n 8002db4 + 8002e3e: 2303 movs r3, #3 + 8002e40: e0aa b.n 8002f98 } /* Send slave address */ hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); - 8002c5e: 897b ldrh r3, [r7, #10] - 8002c60: b2db uxtb r3, r3 - 8002c62: 461a mov r2, r3 - 8002c64: 68fb ldr r3, [r7, #12] - 8002c66: 681b ldr r3, [r3, #0] - 8002c68: f002 02fe and.w r2, r2, #254 ; 0xfe - 8002c6c: 611a str r2, [r3, #16] + 8002e42: 897b ldrh r3, [r7, #10] + 8002e44: b2db uxtb r3, r3 + 8002e46: 461a mov r2, r3 + 8002e48: 68fb ldr r3, [r7, #12] + 8002e4a: 681b ldr r3, [r3, #0] + 8002e4c: f002 02fe and.w r2, r2, #254 ; 0xfe + 8002e50: 611a str r2, [r3, #16] /* Wait until ADDR flag is set */ if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) - 8002c6e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8002c70: 6a3a ldr r2, [r7, #32] - 8002c72: 4952 ldr r1, [pc, #328] ; (8002dbc ) - 8002c74: 68f8 ldr r0, [r7, #12] - 8002c76: f000 f8fa bl 8002e6e - 8002c7a: 4603 mov r3, r0 - 8002c7c: 2b00 cmp r3, #0 - 8002c7e: d001 beq.n 8002c84 + 8002e52: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002e54: 6a3a ldr r2, [r7, #32] + 8002e56: 4952 ldr r1, [pc, #328] ; (8002fa0 ) + 8002e58: 68f8 ldr r0, [r7, #12] + 8002e5a: f000 f8fa bl 8003052 + 8002e5e: 4603 mov r3, r0 + 8002e60: 2b00 cmp r3, #0 + 8002e62: d001 beq.n 8002e68 { return HAL_ERROR; - 8002c80: 2301 movs r3, #1 - 8002c82: e097 b.n 8002db4 + 8002e64: 2301 movs r3, #1 + 8002e66: e097 b.n 8002f98 } /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 8002c84: 2300 movs r3, #0 - 8002c86: 617b str r3, [r7, #20] - 8002c88: 68fb ldr r3, [r7, #12] - 8002c8a: 681b ldr r3, [r3, #0] - 8002c8c: 695b ldr r3, [r3, #20] - 8002c8e: 617b str r3, [r7, #20] - 8002c90: 68fb ldr r3, [r7, #12] - 8002c92: 681b ldr r3, [r3, #0] - 8002c94: 699b ldr r3, [r3, #24] - 8002c96: 617b str r3, [r7, #20] - 8002c98: 697b ldr r3, [r7, #20] + 8002e68: 2300 movs r3, #0 + 8002e6a: 617b str r3, [r7, #20] + 8002e6c: 68fb ldr r3, [r7, #12] + 8002e6e: 681b ldr r3, [r3, #0] + 8002e70: 695b ldr r3, [r3, #20] + 8002e72: 617b str r3, [r7, #20] + 8002e74: 68fb ldr r3, [r7, #12] + 8002e76: 681b ldr r3, [r3, #0] + 8002e78: 699b ldr r3, [r3, #24] + 8002e7a: 617b str r3, [r7, #20] + 8002e7c: 697b ldr r3, [r7, #20] /* Wait until TXE flag is set */ if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 8002c9a: 6a7a ldr r2, [r7, #36] ; 0x24 - 8002c9c: 6a39 ldr r1, [r7, #32] - 8002c9e: 68f8 ldr r0, [r7, #12] - 8002ca0: f000 f964 bl 8002f6c - 8002ca4: 4603 mov r3, r0 - 8002ca6: 2b00 cmp r3, #0 - 8002ca8: d00d beq.n 8002cc6 + 8002e7e: 6a7a ldr r2, [r7, #36] ; 0x24 + 8002e80: 6a39 ldr r1, [r7, #32] + 8002e82: 68f8 ldr r0, [r7, #12] + 8002e84: f000 f964 bl 8003150 + 8002e88: 4603 mov r3, r0 + 8002e8a: 2b00 cmp r3, #0 + 8002e8c: d00d beq.n 8002eaa { if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) - 8002caa: 68fb ldr r3, [r7, #12] - 8002cac: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002cae: 2b04 cmp r3, #4 - 8002cb0: d107 bne.n 8002cc2 + 8002e8e: 68fb ldr r3, [r7, #12] + 8002e90: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002e92: 2b04 cmp r3, #4 + 8002e94: d107 bne.n 8002ea6 { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8002cb2: 68fb ldr r3, [r7, #12] - 8002cb4: 681b ldr r3, [r3, #0] - 8002cb6: 681a ldr r2, [r3, #0] - 8002cb8: 68fb ldr r3, [r7, #12] - 8002cba: 681b ldr r3, [r3, #0] - 8002cbc: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002cc0: 601a str r2, [r3, #0] + 8002e96: 68fb ldr r3, [r7, #12] + 8002e98: 681b ldr r3, [r3, #0] + 8002e9a: 681a ldr r2, [r3, #0] + 8002e9c: 68fb ldr r3, [r7, #12] + 8002e9e: 681b ldr r3, [r3, #0] + 8002ea0: f442 7200 orr.w r2, r2, #512 ; 0x200 + 8002ea4: 601a str r2, [r3, #0] } return HAL_ERROR; - 8002cc2: 2301 movs r3, #1 - 8002cc4: e076 b.n 8002db4 + 8002ea6: 2301 movs r3, #1 + 8002ea8: e076 b.n 8002f98 } /* If Memory address size is 8Bit */ if (MemAddSize == I2C_MEMADD_SIZE_8BIT) - 8002cc6: 88fb ldrh r3, [r7, #6] - 8002cc8: 2b01 cmp r3, #1 - 8002cca: d105 bne.n 8002cd8 + 8002eaa: 88fb ldrh r3, [r7, #6] + 8002eac: 2b01 cmp r3, #1 + 8002eae: d105 bne.n 8002ebc { /* Send Memory Address */ hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); - 8002ccc: 893b ldrh r3, [r7, #8] - 8002cce: b2da uxtb r2, r3 - 8002cd0: 68fb ldr r3, [r7, #12] - 8002cd2: 681b ldr r3, [r3, #0] - 8002cd4: 611a str r2, [r3, #16] - 8002cd6: e021 b.n 8002d1c + 8002eb0: 893b ldrh r3, [r7, #8] + 8002eb2: b2da uxtb r2, r3 + 8002eb4: 68fb ldr r3, [r7, #12] + 8002eb6: 681b ldr r3, [r3, #0] + 8002eb8: 611a str r2, [r3, #16] + 8002eba: e021 b.n 8002f00 } /* If Memory address size is 16Bit */ else { /* Send MSB of Memory Address */ hi2c->Instance->DR = I2C_MEM_ADD_MSB(MemAddress); - 8002cd8: 893b ldrh r3, [r7, #8] - 8002cda: 0a1b lsrs r3, r3, #8 - 8002cdc: b29b uxth r3, r3 - 8002cde: b2da uxtb r2, r3 - 8002ce0: 68fb ldr r3, [r7, #12] - 8002ce2: 681b ldr r3, [r3, #0] - 8002ce4: 611a str r2, [r3, #16] + 8002ebc: 893b ldrh r3, [r7, #8] + 8002ebe: 0a1b lsrs r3, r3, #8 + 8002ec0: b29b uxth r3, r3 + 8002ec2: b2da uxtb r2, r3 + 8002ec4: 68fb ldr r3, [r7, #12] + 8002ec6: 681b ldr r3, [r3, #0] + 8002ec8: 611a str r2, [r3, #16] /* Wait until TXE flag is set */ if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 8002ce6: 6a7a ldr r2, [r7, #36] ; 0x24 - 8002ce8: 6a39 ldr r1, [r7, #32] - 8002cea: 68f8 ldr r0, [r7, #12] - 8002cec: f000 f93e bl 8002f6c - 8002cf0: 4603 mov r3, r0 - 8002cf2: 2b00 cmp r3, #0 - 8002cf4: d00d beq.n 8002d12 + 8002eca: 6a7a ldr r2, [r7, #36] ; 0x24 + 8002ecc: 6a39 ldr r1, [r7, #32] + 8002ece: 68f8 ldr r0, [r7, #12] + 8002ed0: f000 f93e bl 8003150 + 8002ed4: 4603 mov r3, r0 + 8002ed6: 2b00 cmp r3, #0 + 8002ed8: d00d beq.n 8002ef6 { if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) - 8002cf6: 68fb ldr r3, [r7, #12] - 8002cf8: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002cfa: 2b04 cmp r3, #4 - 8002cfc: d107 bne.n 8002d0e + 8002eda: 68fb ldr r3, [r7, #12] + 8002edc: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002ede: 2b04 cmp r3, #4 + 8002ee0: d107 bne.n 8002ef2 { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8002cfe: 68fb ldr r3, [r7, #12] - 8002d00: 681b ldr r3, [r3, #0] - 8002d02: 681a ldr r2, [r3, #0] - 8002d04: 68fb ldr r3, [r7, #12] - 8002d06: 681b ldr r3, [r3, #0] - 8002d08: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002d0c: 601a str r2, [r3, #0] + 8002ee2: 68fb ldr r3, [r7, #12] + 8002ee4: 681b ldr r3, [r3, #0] + 8002ee6: 681a ldr r2, [r3, #0] + 8002ee8: 68fb ldr r3, [r7, #12] + 8002eea: 681b ldr r3, [r3, #0] + 8002eec: f442 7200 orr.w r2, r2, #512 ; 0x200 + 8002ef0: 601a str r2, [r3, #0] } return HAL_ERROR; - 8002d0e: 2301 movs r3, #1 - 8002d10: e050 b.n 8002db4 + 8002ef2: 2301 movs r3, #1 + 8002ef4: e050 b.n 8002f98 } /* Send LSB of Memory Address */ hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); - 8002d12: 893b ldrh r3, [r7, #8] - 8002d14: b2da uxtb r2, r3 - 8002d16: 68fb ldr r3, [r7, #12] - 8002d18: 681b ldr r3, [r3, #0] - 8002d1a: 611a str r2, [r3, #16] + 8002ef6: 893b ldrh r3, [r7, #8] + 8002ef8: b2da uxtb r2, r3 + 8002efa: 68fb ldr r3, [r7, #12] + 8002efc: 681b ldr r3, [r3, #0] + 8002efe: 611a str r2, [r3, #16] } /* Wait until TXE flag is set */ if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 8002d1c: 6a7a ldr r2, [r7, #36] ; 0x24 - 8002d1e: 6a39 ldr r1, [r7, #32] - 8002d20: 68f8 ldr r0, [r7, #12] - 8002d22: f000 f923 bl 8002f6c - 8002d26: 4603 mov r3, r0 - 8002d28: 2b00 cmp r3, #0 - 8002d2a: d00d beq.n 8002d48 + 8002f00: 6a7a ldr r2, [r7, #36] ; 0x24 + 8002f02: 6a39 ldr r1, [r7, #32] + 8002f04: 68f8 ldr r0, [r7, #12] + 8002f06: f000 f923 bl 8003150 + 8002f0a: 4603 mov r3, r0 + 8002f0c: 2b00 cmp r3, #0 + 8002f0e: d00d beq.n 8002f2c { if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) - 8002d2c: 68fb ldr r3, [r7, #12] - 8002d2e: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002d30: 2b04 cmp r3, #4 - 8002d32: d107 bne.n 8002d44 + 8002f10: 68fb ldr r3, [r7, #12] + 8002f12: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002f14: 2b04 cmp r3, #4 + 8002f16: d107 bne.n 8002f28 { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8002d34: 68fb ldr r3, [r7, #12] - 8002d36: 681b ldr r3, [r3, #0] - 8002d38: 681a ldr r2, [r3, #0] - 8002d3a: 68fb ldr r3, [r7, #12] - 8002d3c: 681b ldr r3, [r3, #0] - 8002d3e: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002d42: 601a str r2, [r3, #0] + 8002f18: 68fb ldr r3, [r7, #12] + 8002f1a: 681b ldr r3, [r3, #0] + 8002f1c: 681a ldr r2, [r3, #0] + 8002f1e: 68fb ldr r3, [r7, #12] + 8002f20: 681b ldr r3, [r3, #0] + 8002f22: f442 7200 orr.w r2, r2, #512 ; 0x200 + 8002f26: 601a str r2, [r3, #0] } return HAL_ERROR; - 8002d44: 2301 movs r3, #1 - 8002d46: e035 b.n 8002db4 + 8002f28: 2301 movs r3, #1 + 8002f2a: e035 b.n 8002f98 } /* Generate Restart */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); - 8002d48: 68fb ldr r3, [r7, #12] - 8002d4a: 681b ldr r3, [r3, #0] - 8002d4c: 681a ldr r2, [r3, #0] - 8002d4e: 68fb ldr r3, [r7, #12] - 8002d50: 681b ldr r3, [r3, #0] - 8002d52: f442 7280 orr.w r2, r2, #256 ; 0x100 - 8002d56: 601a str r2, [r3, #0] + 8002f2c: 68fb ldr r3, [r7, #12] + 8002f2e: 681b ldr r3, [r3, #0] + 8002f30: 681a ldr r2, [r3, #0] + 8002f32: 68fb ldr r3, [r7, #12] + 8002f34: 681b ldr r3, [r3, #0] + 8002f36: f442 7280 orr.w r2, r2, #256 ; 0x100 + 8002f3a: 601a str r2, [r3, #0] /* Wait until SB flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) - 8002d58: 6a7b ldr r3, [r7, #36] ; 0x24 - 8002d5a: 9300 str r3, [sp, #0] - 8002d5c: 6a3b ldr r3, [r7, #32] - 8002d5e: 2200 movs r2, #0 - 8002d60: f04f 1101 mov.w r1, #65537 ; 0x10001 - 8002d64: 68f8 ldr r0, [r7, #12] - 8002d66: f000 f82b bl 8002dc0 - 8002d6a: 4603 mov r3, r0 - 8002d6c: 2b00 cmp r3, #0 - 8002d6e: d00d beq.n 8002d8c + 8002f3c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002f3e: 9300 str r3, [sp, #0] + 8002f40: 6a3b ldr r3, [r7, #32] + 8002f42: 2200 movs r2, #0 + 8002f44: f04f 1101 mov.w r1, #65537 ; 0x10001 + 8002f48: 68f8 ldr r0, [r7, #12] + 8002f4a: f000 f82b bl 8002fa4 + 8002f4e: 4603 mov r3, r0 + 8002f50: 2b00 cmp r3, #0 + 8002f52: d00d beq.n 8002f70 { if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) - 8002d70: 68fb ldr r3, [r7, #12] - 8002d72: 681b ldr r3, [r3, #0] - 8002d74: 681b ldr r3, [r3, #0] - 8002d76: f403 7380 and.w r3, r3, #256 ; 0x100 - 8002d7a: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 8002d7e: d103 bne.n 8002d88 + 8002f54: 68fb ldr r3, [r7, #12] + 8002f56: 681b ldr r3, [r3, #0] + 8002f58: 681b ldr r3, [r3, #0] + 8002f5a: f403 7380 and.w r3, r3, #256 ; 0x100 + 8002f5e: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 8002f62: d103 bne.n 8002f6c { hi2c->ErrorCode = HAL_I2C_WRONG_START; - 8002d80: 68fb ldr r3, [r7, #12] - 8002d82: f44f 7200 mov.w r2, #512 ; 0x200 - 8002d86: 641a str r2, [r3, #64] ; 0x40 + 8002f64: 68fb ldr r3, [r7, #12] + 8002f66: f44f 7200 mov.w r2, #512 ; 0x200 + 8002f6a: 641a str r2, [r3, #64] ; 0x40 } return HAL_TIMEOUT; - 8002d88: 2303 movs r3, #3 - 8002d8a: e013 b.n 8002db4 + 8002f6c: 2303 movs r3, #3 + 8002f6e: e013 b.n 8002f98 } /* Send slave address */ hi2c->Instance->DR = I2C_7BIT_ADD_READ(DevAddress); - 8002d8c: 897b ldrh r3, [r7, #10] - 8002d8e: b2db uxtb r3, r3 - 8002d90: f043 0301 orr.w r3, r3, #1 - 8002d94: b2da uxtb r2, r3 - 8002d96: 68fb ldr r3, [r7, #12] - 8002d98: 681b ldr r3, [r3, #0] - 8002d9a: 611a str r2, [r3, #16] + 8002f70: 897b ldrh r3, [r7, #10] + 8002f72: b2db uxtb r3, r3 + 8002f74: f043 0301 orr.w r3, r3, #1 + 8002f78: b2da uxtb r2, r3 + 8002f7a: 68fb ldr r3, [r7, #12] + 8002f7c: 681b ldr r3, [r3, #0] + 8002f7e: 611a str r2, [r3, #16] /* Wait until ADDR flag is set */ if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) - 8002d9c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8002d9e: 6a3a ldr r2, [r7, #32] - 8002da0: 4906 ldr r1, [pc, #24] ; (8002dbc ) - 8002da2: 68f8 ldr r0, [r7, #12] - 8002da4: f000 f863 bl 8002e6e - 8002da8: 4603 mov r3, r0 - 8002daa: 2b00 cmp r3, #0 - 8002dac: d001 beq.n 8002db2 + 8002f80: 6a7b ldr r3, [r7, #36] ; 0x24 + 8002f82: 6a3a ldr r2, [r7, #32] + 8002f84: 4906 ldr r1, [pc, #24] ; (8002fa0 ) + 8002f86: 68f8 ldr r0, [r7, #12] + 8002f88: f000 f863 bl 8003052 + 8002f8c: 4603 mov r3, r0 + 8002f8e: 2b00 cmp r3, #0 + 8002f90: d001 beq.n 8002f96 { return HAL_ERROR; - 8002dae: 2301 movs r3, #1 - 8002db0: e000 b.n 8002db4 + 8002f92: 2301 movs r3, #1 + 8002f94: e000 b.n 8002f98 } return HAL_OK; - 8002db2: 2300 movs r3, #0 + 8002f96: 2300 movs r3, #0 } - 8002db4: 4618 mov r0, r3 - 8002db6: 3718 adds r7, #24 - 8002db8: 46bd mov sp, r7 - 8002dba: bd80 pop {r7, pc} - 8002dbc: 00010002 .word 0x00010002 + 8002f98: 4618 mov r0, r3 + 8002f9a: 3718 adds r7, #24 + 8002f9c: 46bd mov sp, r7 + 8002f9e: bd80 pop {r7, pc} + 8002fa0: 00010002 .word 0x00010002 -08002dc0 : +08002fa4 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagStatus Status, uint32_t Timeout, uint32_t Tickstart) { - 8002dc0: b580 push {r7, lr} - 8002dc2: b084 sub sp, #16 - 8002dc4: af00 add r7, sp, #0 - 8002dc6: 60f8 str r0, [r7, #12] - 8002dc8: 60b9 str r1, [r7, #8] - 8002dca: 603b str r3, [r7, #0] - 8002dcc: 4613 mov r3, r2 - 8002dce: 71fb strb r3, [r7, #7] + 8002fa4: b580 push {r7, lr} + 8002fa6: b084 sub sp, #16 + 8002fa8: af00 add r7, sp, #0 + 8002faa: 60f8 str r0, [r7, #12] + 8002fac: 60b9 str r1, [r7, #8] + 8002fae: 603b str r3, [r7, #0] + 8002fb0: 4613 mov r3, r2 + 8002fb2: 71fb strb r3, [r7, #7] /* Wait until flag is set */ while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) - 8002dd0: e025 b.n 8002e1e + 8002fb4: e025 b.n 8003002 { /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) - 8002dd2: 683b ldr r3, [r7, #0] - 8002dd4: f1b3 3fff cmp.w r3, #4294967295 - 8002dd8: d021 beq.n 8002e1e + 8002fb6: 683b ldr r3, [r7, #0] + 8002fb8: f1b3 3fff cmp.w r3, #4294967295 + 8002fbc: d021 beq.n 8003002 { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8002dda: f7fe fecd bl 8001b78 - 8002dde: 4602 mov r2, r0 - 8002de0: 69bb ldr r3, [r7, #24] - 8002de2: 1ad3 subs r3, r2, r3 - 8002de4: 683a ldr r2, [r7, #0] - 8002de6: 429a cmp r2, r3 - 8002de8: d302 bcc.n 8002df0 - 8002dea: 683b ldr r3, [r7, #0] - 8002dec: 2b00 cmp r3, #0 - 8002dee: d116 bne.n 8002e1e + 8002fbe: f7fe fecd bl 8001d5c + 8002fc2: 4602 mov r2, r0 + 8002fc4: 69bb ldr r3, [r7, #24] + 8002fc6: 1ad3 subs r3, r2, r3 + 8002fc8: 683a ldr r2, [r7, #0] + 8002fca: 429a cmp r2, r3 + 8002fcc: d302 bcc.n 8002fd4 + 8002fce: 683b ldr r3, [r7, #0] + 8002fd0: 2b00 cmp r3, #0 + 8002fd2: d116 bne.n 8003002 { hi2c->PreviousState = I2C_STATE_NONE; - 8002df0: 68fb ldr r3, [r7, #12] - 8002df2: 2200 movs r2, #0 - 8002df4: 631a str r2, [r3, #48] ; 0x30 + 8002fd4: 68fb ldr r3, [r7, #12] + 8002fd6: 2200 movs r2, #0 + 8002fd8: 631a str r2, [r3, #48] ; 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8002df6: 68fb ldr r3, [r7, #12] - 8002df8: 2220 movs r2, #32 - 8002dfa: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8002fda: 68fb ldr r3, [r7, #12] + 8002fdc: 2220 movs r2, #32 + 8002fde: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8002dfe: 68fb ldr r3, [r7, #12] - 8002e00: 2200 movs r2, #0 - 8002e02: f883 203e strb.w r2, [r3, #62] ; 0x3e + 8002fe2: 68fb ldr r3, [r7, #12] + 8002fe4: 2200 movs r2, #0 + 8002fe6: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 8002e06: 68fb ldr r3, [r7, #12] - 8002e08: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002e0a: f043 0220 orr.w r2, r3, #32 - 8002e0e: 68fb ldr r3, [r7, #12] - 8002e10: 641a str r2, [r3, #64] ; 0x40 + 8002fea: 68fb ldr r3, [r7, #12] + 8002fec: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002fee: f043 0220 orr.w r2, r3, #32 + 8002ff2: 68fb ldr r3, [r7, #12] + 8002ff4: 641a str r2, [r3, #64] ; 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8002e12: 68fb ldr r3, [r7, #12] - 8002e14: 2200 movs r2, #0 - 8002e16: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8002ff6: 68fb ldr r3, [r7, #12] + 8002ff8: 2200 movs r2, #0 + 8002ffa: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 8002e1a: 2301 movs r3, #1 - 8002e1c: e023 b.n 8002e66 + 8002ffe: 2301 movs r3, #1 + 8003000: e023 b.n 800304a while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) - 8002e1e: 68bb ldr r3, [r7, #8] - 8002e20: 0c1b lsrs r3, r3, #16 - 8002e22: b2db uxtb r3, r3 - 8002e24: 2b01 cmp r3, #1 - 8002e26: d10d bne.n 8002e44 - 8002e28: 68fb ldr r3, [r7, #12] - 8002e2a: 681b ldr r3, [r3, #0] - 8002e2c: 695b ldr r3, [r3, #20] - 8002e2e: 43da mvns r2, r3 - 8002e30: 68bb ldr r3, [r7, #8] - 8002e32: 4013 ands r3, r2 - 8002e34: b29b uxth r3, r3 - 8002e36: 2b00 cmp r3, #0 - 8002e38: bf0c ite eq - 8002e3a: 2301 moveq r3, #1 - 8002e3c: 2300 movne r3, #0 - 8002e3e: b2db uxtb r3, r3 - 8002e40: 461a mov r2, r3 - 8002e42: e00c b.n 8002e5e - 8002e44: 68fb ldr r3, [r7, #12] - 8002e46: 681b ldr r3, [r3, #0] - 8002e48: 699b ldr r3, [r3, #24] - 8002e4a: 43da mvns r2, r3 - 8002e4c: 68bb ldr r3, [r7, #8] - 8002e4e: 4013 ands r3, r2 - 8002e50: b29b uxth r3, r3 - 8002e52: 2b00 cmp r3, #0 - 8002e54: bf0c ite eq - 8002e56: 2301 moveq r3, #1 - 8002e58: 2300 movne r3, #0 - 8002e5a: b2db uxtb r3, r3 - 8002e5c: 461a mov r2, r3 - 8002e5e: 79fb ldrb r3, [r7, #7] - 8002e60: 429a cmp r2, r3 - 8002e62: d0b6 beq.n 8002dd2 + 8003002: 68bb ldr r3, [r7, #8] + 8003004: 0c1b lsrs r3, r3, #16 + 8003006: b2db uxtb r3, r3 + 8003008: 2b01 cmp r3, #1 + 800300a: d10d bne.n 8003028 + 800300c: 68fb ldr r3, [r7, #12] + 800300e: 681b ldr r3, [r3, #0] + 8003010: 695b ldr r3, [r3, #20] + 8003012: 43da mvns r2, r3 + 8003014: 68bb ldr r3, [r7, #8] + 8003016: 4013 ands r3, r2 + 8003018: b29b uxth r3, r3 + 800301a: 2b00 cmp r3, #0 + 800301c: bf0c ite eq + 800301e: 2301 moveq r3, #1 + 8003020: 2300 movne r3, #0 + 8003022: b2db uxtb r3, r3 + 8003024: 461a mov r2, r3 + 8003026: e00c b.n 8003042 + 8003028: 68fb ldr r3, [r7, #12] + 800302a: 681b ldr r3, [r3, #0] + 800302c: 699b ldr r3, [r3, #24] + 800302e: 43da mvns r2, r3 + 8003030: 68bb ldr r3, [r7, #8] + 8003032: 4013 ands r3, r2 + 8003034: b29b uxth r3, r3 + 8003036: 2b00 cmp r3, #0 + 8003038: bf0c ite eq + 800303a: 2301 moveq r3, #1 + 800303c: 2300 movne r3, #0 + 800303e: b2db uxtb r3, r3 + 8003040: 461a mov r2, r3 + 8003042: 79fb ldrb r3, [r7, #7] + 8003044: 429a cmp r2, r3 + 8003046: d0b6 beq.n 8002fb6 } } } return HAL_OK; - 8002e64: 2300 movs r3, #0 + 8003048: 2300 movs r3, #0 } - 8002e66: 4618 mov r0, r3 - 8002e68: 3710 adds r7, #16 - 8002e6a: 46bd mov sp, r7 - 8002e6c: bd80 pop {r7, pc} + 800304a: 4618 mov r0, r3 + 800304c: 3710 adds r7, #16 + 800304e: 46bd mov sp, r7 + 8003050: bd80 pop {r7, pc} -08002e6e : +08003052 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, uint32_t Timeout, uint32_t Tickstart) { - 8002e6e: b580 push {r7, lr} - 8002e70: b084 sub sp, #16 - 8002e72: af00 add r7, sp, #0 - 8002e74: 60f8 str r0, [r7, #12] - 8002e76: 60b9 str r1, [r7, #8] - 8002e78: 607a str r2, [r7, #4] - 8002e7a: 603b str r3, [r7, #0] + 8003052: b580 push {r7, lr} + 8003054: b084 sub sp, #16 + 8003056: af00 add r7, sp, #0 + 8003058: 60f8 str r0, [r7, #12] + 800305a: 60b9 str r1, [r7, #8] + 800305c: 607a str r2, [r7, #4] + 800305e: 603b str r3, [r7, #0] while (__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET) - 8002e7c: e051 b.n 8002f22 + 8003060: e051 b.n 8003106 { if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) - 8002e7e: 68fb ldr r3, [r7, #12] - 8002e80: 681b ldr r3, [r3, #0] - 8002e82: 695b ldr r3, [r3, #20] - 8002e84: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8002e88: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 8002e8c: d123 bne.n 8002ed6 + 8003062: 68fb ldr r3, [r7, #12] + 8003064: 681b ldr r3, [r3, #0] + 8003066: 695b ldr r3, [r3, #20] + 8003068: f403 6380 and.w r3, r3, #1024 ; 0x400 + 800306c: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 8003070: d123 bne.n 80030ba { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8002e8e: 68fb ldr r3, [r7, #12] - 8002e90: 681b ldr r3, [r3, #0] - 8002e92: 681a ldr r2, [r3, #0] - 8002e94: 68fb ldr r3, [r7, #12] - 8002e96: 681b ldr r3, [r3, #0] - 8002e98: f442 7200 orr.w r2, r2, #512 ; 0x200 - 8002e9c: 601a str r2, [r3, #0] + 8003072: 68fb ldr r3, [r7, #12] + 8003074: 681b ldr r3, [r3, #0] + 8003076: 681a ldr r2, [r3, #0] + 8003078: 68fb ldr r3, [r7, #12] + 800307a: 681b ldr r3, [r3, #0] + 800307c: f442 7200 orr.w r2, r2, #512 ; 0x200 + 8003080: 601a str r2, [r3, #0] /* Clear AF Flag */ __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 8002e9e: 68fb ldr r3, [r7, #12] - 8002ea0: 681b ldr r3, [r3, #0] - 8002ea2: f46f 6280 mvn.w r2, #1024 ; 0x400 - 8002ea6: 615a str r2, [r3, #20] + 8003082: 68fb ldr r3, [r7, #12] + 8003084: 681b ldr r3, [r3, #0] + 8003086: f46f 6280 mvn.w r2, #1024 ; 0x400 + 800308a: 615a str r2, [r3, #20] hi2c->PreviousState = I2C_STATE_NONE; - 8002ea8: 68fb ldr r3, [r7, #12] - 8002eaa: 2200 movs r2, #0 - 8002eac: 631a str r2, [r3, #48] ; 0x30 + 800308c: 68fb ldr r3, [r7, #12] + 800308e: 2200 movs r2, #0 + 8003090: 631a str r2, [r3, #48] ; 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8002eae: 68fb ldr r3, [r7, #12] - 8002eb0: 2220 movs r2, #32 - 8002eb2: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8003092: 68fb ldr r3, [r7, #12] + 8003094: 2220 movs r2, #32 + 8003096: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8002eb6: 68fb ldr r3, [r7, #12] - 8002eb8: 2200 movs r2, #0 - 8002eba: f883 203e strb.w r2, [r3, #62] ; 0x3e + 800309a: 68fb ldr r3, [r7, #12] + 800309c: 2200 movs r2, #0 + 800309e: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_AF; - 8002ebe: 68fb ldr r3, [r7, #12] - 8002ec0: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002ec2: f043 0204 orr.w r2, r3, #4 - 8002ec6: 68fb ldr r3, [r7, #12] - 8002ec8: 641a str r2, [r3, #64] ; 0x40 + 80030a2: 68fb ldr r3, [r7, #12] + 80030a4: 6c1b ldr r3, [r3, #64] ; 0x40 + 80030a6: f043 0204 orr.w r2, r3, #4 + 80030aa: 68fb ldr r3, [r7, #12] + 80030ac: 641a str r2, [r3, #64] ; 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8002eca: 68fb ldr r3, [r7, #12] - 8002ecc: 2200 movs r2, #0 - 8002ece: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80030ae: 68fb ldr r3, [r7, #12] + 80030b0: 2200 movs r2, #0 + 80030b2: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 8002ed2: 2301 movs r3, #1 - 8002ed4: e046 b.n 8002f64 + 80030b6: 2301 movs r3, #1 + 80030b8: e046 b.n 8003148 } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) - 8002ed6: 687b ldr r3, [r7, #4] - 8002ed8: f1b3 3fff cmp.w r3, #4294967295 - 8002edc: d021 beq.n 8002f22 + 80030ba: 687b ldr r3, [r7, #4] + 80030bc: f1b3 3fff cmp.w r3, #4294967295 + 80030c0: d021 beq.n 8003106 { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8002ede: f7fe fe4b bl 8001b78 - 8002ee2: 4602 mov r2, r0 - 8002ee4: 683b ldr r3, [r7, #0] - 8002ee6: 1ad3 subs r3, r2, r3 - 8002ee8: 687a ldr r2, [r7, #4] - 8002eea: 429a cmp r2, r3 - 8002eec: d302 bcc.n 8002ef4 - 8002eee: 687b ldr r3, [r7, #4] - 8002ef0: 2b00 cmp r3, #0 - 8002ef2: d116 bne.n 8002f22 + 80030c2: f7fe fe4b bl 8001d5c + 80030c6: 4602 mov r2, r0 + 80030c8: 683b ldr r3, [r7, #0] + 80030ca: 1ad3 subs r3, r2, r3 + 80030cc: 687a ldr r2, [r7, #4] + 80030ce: 429a cmp r2, r3 + 80030d0: d302 bcc.n 80030d8 + 80030d2: 687b ldr r3, [r7, #4] + 80030d4: 2b00 cmp r3, #0 + 80030d6: d116 bne.n 8003106 { hi2c->PreviousState = I2C_STATE_NONE; - 8002ef4: 68fb ldr r3, [r7, #12] - 8002ef6: 2200 movs r2, #0 - 8002ef8: 631a str r2, [r3, #48] ; 0x30 + 80030d8: 68fb ldr r3, [r7, #12] + 80030da: 2200 movs r2, #0 + 80030dc: 631a str r2, [r3, #48] ; 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8002efa: 68fb ldr r3, [r7, #12] - 8002efc: 2220 movs r2, #32 - 8002efe: f883 203d strb.w r2, [r3, #61] ; 0x3d + 80030de: 68fb ldr r3, [r7, #12] + 80030e0: 2220 movs r2, #32 + 80030e2: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8002f02: 68fb ldr r3, [r7, #12] - 8002f04: 2200 movs r2, #0 - 8002f06: f883 203e strb.w r2, [r3, #62] ; 0x3e + 80030e6: 68fb ldr r3, [r7, #12] + 80030e8: 2200 movs r2, #0 + 80030ea: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 8002f0a: 68fb ldr r3, [r7, #12] - 8002f0c: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002f0e: f043 0220 orr.w r2, r3, #32 - 8002f12: 68fb ldr r3, [r7, #12] - 8002f14: 641a str r2, [r3, #64] ; 0x40 + 80030ee: 68fb ldr r3, [r7, #12] + 80030f0: 6c1b ldr r3, [r3, #64] ; 0x40 + 80030f2: f043 0220 orr.w r2, r3, #32 + 80030f6: 68fb ldr r3, [r7, #12] + 80030f8: 641a str r2, [r3, #64] ; 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8002f16: 68fb ldr r3, [r7, #12] - 8002f18: 2200 movs r2, #0 - 8002f1a: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80030fa: 68fb ldr r3, [r7, #12] + 80030fc: 2200 movs r2, #0 + 80030fe: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 8002f1e: 2301 movs r3, #1 - 8002f20: e020 b.n 8002f64 + 8003102: 2301 movs r3, #1 + 8003104: e020 b.n 8003148 while (__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET) - 8002f22: 68bb ldr r3, [r7, #8] - 8002f24: 0c1b lsrs r3, r3, #16 - 8002f26: b2db uxtb r3, r3 - 8002f28: 2b01 cmp r3, #1 - 8002f2a: d10c bne.n 8002f46 - 8002f2c: 68fb ldr r3, [r7, #12] - 8002f2e: 681b ldr r3, [r3, #0] - 8002f30: 695b ldr r3, [r3, #20] - 8002f32: 43da mvns r2, r3 - 8002f34: 68bb ldr r3, [r7, #8] - 8002f36: 4013 ands r3, r2 - 8002f38: b29b uxth r3, r3 - 8002f3a: 2b00 cmp r3, #0 - 8002f3c: bf14 ite ne - 8002f3e: 2301 movne r3, #1 - 8002f40: 2300 moveq r3, #0 - 8002f42: b2db uxtb r3, r3 - 8002f44: e00b b.n 8002f5e - 8002f46: 68fb ldr r3, [r7, #12] - 8002f48: 681b ldr r3, [r3, #0] - 8002f4a: 699b ldr r3, [r3, #24] - 8002f4c: 43da mvns r2, r3 - 8002f4e: 68bb ldr r3, [r7, #8] - 8002f50: 4013 ands r3, r2 - 8002f52: b29b uxth r3, r3 - 8002f54: 2b00 cmp r3, #0 - 8002f56: bf14 ite ne - 8002f58: 2301 movne r3, #1 - 8002f5a: 2300 moveq r3, #0 - 8002f5c: b2db uxtb r3, r3 - 8002f5e: 2b00 cmp r3, #0 - 8002f60: d18d bne.n 8002e7e + 8003106: 68bb ldr r3, [r7, #8] + 8003108: 0c1b lsrs r3, r3, #16 + 800310a: b2db uxtb r3, r3 + 800310c: 2b01 cmp r3, #1 + 800310e: d10c bne.n 800312a + 8003110: 68fb ldr r3, [r7, #12] + 8003112: 681b ldr r3, [r3, #0] + 8003114: 695b ldr r3, [r3, #20] + 8003116: 43da mvns r2, r3 + 8003118: 68bb ldr r3, [r7, #8] + 800311a: 4013 ands r3, r2 + 800311c: b29b uxth r3, r3 + 800311e: 2b00 cmp r3, #0 + 8003120: bf14 ite ne + 8003122: 2301 movne r3, #1 + 8003124: 2300 moveq r3, #0 + 8003126: b2db uxtb r3, r3 + 8003128: e00b b.n 8003142 + 800312a: 68fb ldr r3, [r7, #12] + 800312c: 681b ldr r3, [r3, #0] + 800312e: 699b ldr r3, [r3, #24] + 8003130: 43da mvns r2, r3 + 8003132: 68bb ldr r3, [r7, #8] + 8003134: 4013 ands r3, r2 + 8003136: b29b uxth r3, r3 + 8003138: 2b00 cmp r3, #0 + 800313a: bf14 ite ne + 800313c: 2301 movne r3, #1 + 800313e: 2300 moveq r3, #0 + 8003140: b2db uxtb r3, r3 + 8003142: 2b00 cmp r3, #0 + 8003144: d18d bne.n 8003062 } } } return HAL_OK; - 8002f62: 2300 movs r3, #0 + 8003146: 2300 movs r3, #0 } - 8002f64: 4618 mov r0, r3 - 8002f66: 3710 adds r7, #16 - 8002f68: 46bd mov sp, r7 - 8002f6a: bd80 pop {r7, pc} + 8003148: 4618 mov r0, r3 + 800314a: 3710 adds r7, #16 + 800314c: 46bd mov sp, r7 + 800314e: bd80 pop {r7, pc} -08002f6c : +08003150 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) { - 8002f6c: b580 push {r7, lr} - 8002f6e: b084 sub sp, #16 - 8002f70: af00 add r7, sp, #0 - 8002f72: 60f8 str r0, [r7, #12] - 8002f74: 60b9 str r1, [r7, #8] - 8002f76: 607a str r2, [r7, #4] + 8003150: b580 push {r7, lr} + 8003152: b084 sub sp, #16 + 8003154: af00 add r7, sp, #0 + 8003156: 60f8 str r0, [r7, #12] + 8003158: 60b9 str r1, [r7, #8] + 800315a: 607a str r2, [r7, #4] while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) - 8002f78: e02d b.n 8002fd6 + 800315c: e02d b.n 80031ba { /* Check if a NACK is detected */ if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) - 8002f7a: 68f8 ldr r0, [r7, #12] - 8002f7c: f000 f8ce bl 800311c - 8002f80: 4603 mov r3, r0 - 8002f82: 2b00 cmp r3, #0 - 8002f84: d001 beq.n 8002f8a + 800315e: 68f8 ldr r0, [r7, #12] + 8003160: f000 f8ce bl 8003300 + 8003164: 4603 mov r3, r0 + 8003166: 2b00 cmp r3, #0 + 8003168: d001 beq.n 800316e { return HAL_ERROR; - 8002f86: 2301 movs r3, #1 - 8002f88: e02d b.n 8002fe6 + 800316a: 2301 movs r3, #1 + 800316c: e02d b.n 80031ca } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) - 8002f8a: 68bb ldr r3, [r7, #8] - 8002f8c: f1b3 3fff cmp.w r3, #4294967295 - 8002f90: d021 beq.n 8002fd6 + 800316e: 68bb ldr r3, [r7, #8] + 8003170: f1b3 3fff cmp.w r3, #4294967295 + 8003174: d021 beq.n 80031ba { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8002f92: f7fe fdf1 bl 8001b78 - 8002f96: 4602 mov r2, r0 - 8002f98: 687b ldr r3, [r7, #4] - 8002f9a: 1ad3 subs r3, r2, r3 - 8002f9c: 68ba ldr r2, [r7, #8] - 8002f9e: 429a cmp r2, r3 - 8002fa0: d302 bcc.n 8002fa8 - 8002fa2: 68bb ldr r3, [r7, #8] - 8002fa4: 2b00 cmp r3, #0 - 8002fa6: d116 bne.n 8002fd6 + 8003176: f7fe fdf1 bl 8001d5c + 800317a: 4602 mov r2, r0 + 800317c: 687b ldr r3, [r7, #4] + 800317e: 1ad3 subs r3, r2, r3 + 8003180: 68ba ldr r2, [r7, #8] + 8003182: 429a cmp r2, r3 + 8003184: d302 bcc.n 800318c + 8003186: 68bb ldr r3, [r7, #8] + 8003188: 2b00 cmp r3, #0 + 800318a: d116 bne.n 80031ba { hi2c->PreviousState = I2C_STATE_NONE; - 8002fa8: 68fb ldr r3, [r7, #12] - 8002faa: 2200 movs r2, #0 - 8002fac: 631a str r2, [r3, #48] ; 0x30 + 800318c: 68fb ldr r3, [r7, #12] + 800318e: 2200 movs r2, #0 + 8003190: 631a str r2, [r3, #48] ; 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8002fae: 68fb ldr r3, [r7, #12] - 8002fb0: 2220 movs r2, #32 - 8002fb2: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8003192: 68fb ldr r3, [r7, #12] + 8003194: 2220 movs r2, #32 + 8003196: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8002fb6: 68fb ldr r3, [r7, #12] - 8002fb8: 2200 movs r2, #0 - 8002fba: f883 203e strb.w r2, [r3, #62] ; 0x3e + 800319a: 68fb ldr r3, [r7, #12] + 800319c: 2200 movs r2, #0 + 800319e: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 8002fbe: 68fb ldr r3, [r7, #12] - 8002fc0: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002fc2: f043 0220 orr.w r2, r3, #32 - 8002fc6: 68fb ldr r3, [r7, #12] - 8002fc8: 641a str r2, [r3, #64] ; 0x40 + 80031a2: 68fb ldr r3, [r7, #12] + 80031a4: 6c1b ldr r3, [r3, #64] ; 0x40 + 80031a6: f043 0220 orr.w r2, r3, #32 + 80031aa: 68fb ldr r3, [r7, #12] + 80031ac: 641a str r2, [r3, #64] ; 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8002fca: 68fb ldr r3, [r7, #12] - 8002fcc: 2200 movs r2, #0 - 8002fce: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80031ae: 68fb ldr r3, [r7, #12] + 80031b0: 2200 movs r2, #0 + 80031b2: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 8002fd2: 2301 movs r3, #1 - 8002fd4: e007 b.n 8002fe6 + 80031b6: 2301 movs r3, #1 + 80031b8: e007 b.n 80031ca while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) - 8002fd6: 68fb ldr r3, [r7, #12] - 8002fd8: 681b ldr r3, [r3, #0] - 8002fda: 695b ldr r3, [r3, #20] - 8002fdc: f003 0380 and.w r3, r3, #128 ; 0x80 - 8002fe0: 2b80 cmp r3, #128 ; 0x80 - 8002fe2: d1ca bne.n 8002f7a + 80031ba: 68fb ldr r3, [r7, #12] + 80031bc: 681b ldr r3, [r3, #0] + 80031be: 695b ldr r3, [r3, #20] + 80031c0: f003 0380 and.w r3, r3, #128 ; 0x80 + 80031c4: 2b80 cmp r3, #128 ; 0x80 + 80031c6: d1ca bne.n 800315e } } } return HAL_OK; - 8002fe4: 2300 movs r3, #0 + 80031c8: 2300 movs r3, #0 } - 8002fe6: 4618 mov r0, r3 - 8002fe8: 3710 adds r7, #16 - 8002fea: 46bd mov sp, r7 - 8002fec: bd80 pop {r7, pc} + 80031ca: 4618 mov r0, r3 + 80031cc: 3710 adds r7, #16 + 80031ce: 46bd mov sp, r7 + 80031d0: bd80 pop {r7, pc} -08002fee : +080031d2 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) { - 8002fee: b580 push {r7, lr} - 8002ff0: b084 sub sp, #16 - 8002ff2: af00 add r7, sp, #0 - 8002ff4: 60f8 str r0, [r7, #12] - 8002ff6: 60b9 str r1, [r7, #8] - 8002ff8: 607a str r2, [r7, #4] + 80031d2: b580 push {r7, lr} + 80031d4: b084 sub sp, #16 + 80031d6: af00 add r7, sp, #0 + 80031d8: 60f8 str r0, [r7, #12] + 80031da: 60b9 str r1, [r7, #8] + 80031dc: 607a str r2, [r7, #4] while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET) - 8002ffa: e02d b.n 8003058 + 80031de: e02d b.n 800323c { /* Check if a NACK is detected */ if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) - 8002ffc: 68f8 ldr r0, [r7, #12] - 8002ffe: f000 f88d bl 800311c - 8003002: 4603 mov r3, r0 - 8003004: 2b00 cmp r3, #0 - 8003006: d001 beq.n 800300c + 80031e0: 68f8 ldr r0, [r7, #12] + 80031e2: f000 f88d bl 8003300 + 80031e6: 4603 mov r3, r0 + 80031e8: 2b00 cmp r3, #0 + 80031ea: d001 beq.n 80031f0 { return HAL_ERROR; - 8003008: 2301 movs r3, #1 - 800300a: e02d b.n 8003068 + 80031ec: 2301 movs r3, #1 + 80031ee: e02d b.n 800324c } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) - 800300c: 68bb ldr r3, [r7, #8] - 800300e: f1b3 3fff cmp.w r3, #4294967295 - 8003012: d021 beq.n 8003058 + 80031f0: 68bb ldr r3, [r7, #8] + 80031f2: f1b3 3fff cmp.w r3, #4294967295 + 80031f6: d021 beq.n 800323c { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8003014: f7fe fdb0 bl 8001b78 - 8003018: 4602 mov r2, r0 - 800301a: 687b ldr r3, [r7, #4] - 800301c: 1ad3 subs r3, r2, r3 - 800301e: 68ba ldr r2, [r7, #8] - 8003020: 429a cmp r2, r3 - 8003022: d302 bcc.n 800302a - 8003024: 68bb ldr r3, [r7, #8] - 8003026: 2b00 cmp r3, #0 - 8003028: d116 bne.n 8003058 + 80031f8: f7fe fdb0 bl 8001d5c + 80031fc: 4602 mov r2, r0 + 80031fe: 687b ldr r3, [r7, #4] + 8003200: 1ad3 subs r3, r2, r3 + 8003202: 68ba ldr r2, [r7, #8] + 8003204: 429a cmp r2, r3 + 8003206: d302 bcc.n 800320e + 8003208: 68bb ldr r3, [r7, #8] + 800320a: 2b00 cmp r3, #0 + 800320c: d116 bne.n 800323c { hi2c->PreviousState = I2C_STATE_NONE; - 800302a: 68fb ldr r3, [r7, #12] - 800302c: 2200 movs r2, #0 - 800302e: 631a str r2, [r3, #48] ; 0x30 + 800320e: 68fb ldr r3, [r7, #12] + 8003210: 2200 movs r2, #0 + 8003212: 631a str r2, [r3, #48] ; 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8003030: 68fb ldr r3, [r7, #12] - 8003032: 2220 movs r2, #32 - 8003034: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8003214: 68fb ldr r3, [r7, #12] + 8003216: 2220 movs r2, #32 + 8003218: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8003038: 68fb ldr r3, [r7, #12] - 800303a: 2200 movs r2, #0 - 800303c: f883 203e strb.w r2, [r3, #62] ; 0x3e + 800321c: 68fb ldr r3, [r7, #12] + 800321e: 2200 movs r2, #0 + 8003220: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 8003040: 68fb ldr r3, [r7, #12] - 8003042: 6c1b ldr r3, [r3, #64] ; 0x40 - 8003044: f043 0220 orr.w r2, r3, #32 - 8003048: 68fb ldr r3, [r7, #12] - 800304a: 641a str r2, [r3, #64] ; 0x40 + 8003224: 68fb ldr r3, [r7, #12] + 8003226: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003228: f043 0220 orr.w r2, r3, #32 + 800322c: 68fb ldr r3, [r7, #12] + 800322e: 641a str r2, [r3, #64] ; 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 800304c: 68fb ldr r3, [r7, #12] - 800304e: 2200 movs r2, #0 - 8003050: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8003230: 68fb ldr r3, [r7, #12] + 8003232: 2200 movs r2, #0 + 8003234: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 8003054: 2301 movs r3, #1 - 8003056: e007 b.n 8003068 + 8003238: 2301 movs r3, #1 + 800323a: e007 b.n 800324c while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET) - 8003058: 68fb ldr r3, [r7, #12] - 800305a: 681b ldr r3, [r3, #0] - 800305c: 695b ldr r3, [r3, #20] - 800305e: f003 0304 and.w r3, r3, #4 - 8003062: 2b04 cmp r3, #4 - 8003064: d1ca bne.n 8002ffc + 800323c: 68fb ldr r3, [r7, #12] + 800323e: 681b ldr r3, [r3, #0] + 8003240: 695b ldr r3, [r3, #20] + 8003242: f003 0304 and.w r3, r3, #4 + 8003246: 2b04 cmp r3, #4 + 8003248: d1ca bne.n 80031e0 } } } return HAL_OK; - 8003066: 2300 movs r3, #0 + 800324a: 2300 movs r3, #0 } - 8003068: 4618 mov r0, r3 - 800306a: 3710 adds r7, #16 - 800306c: 46bd mov sp, r7 - 800306e: bd80 pop {r7, pc} + 800324c: 4618 mov r0, r3 + 800324e: 3710 adds r7, #16 + 8003250: 46bd mov sp, r7 + 8003252: bd80 pop {r7, pc} -08003070 : +08003254 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) { - 8003070: b580 push {r7, lr} - 8003072: b084 sub sp, #16 - 8003074: af00 add r7, sp, #0 - 8003076: 60f8 str r0, [r7, #12] - 8003078: 60b9 str r1, [r7, #8] - 800307a: 607a str r2, [r7, #4] + 8003254: b580 push {r7, lr} + 8003256: b084 sub sp, #16 + 8003258: af00 add r7, sp, #0 + 800325a: 60f8 str r0, [r7, #12] + 800325c: 60b9 str r1, [r7, #8] + 800325e: 607a str r2, [r7, #4] while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) - 800307c: e042 b.n 8003104 + 8003260: e042 b.n 80032e8 { /* Check if a STOPF is detected */ if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) - 800307e: 68fb ldr r3, [r7, #12] - 8003080: 681b ldr r3, [r3, #0] - 8003082: 695b ldr r3, [r3, #20] - 8003084: f003 0310 and.w r3, r3, #16 - 8003088: 2b10 cmp r3, #16 - 800308a: d119 bne.n 80030c0 + 8003262: 68fb ldr r3, [r7, #12] + 8003264: 681b ldr r3, [r3, #0] + 8003266: 695b ldr r3, [r3, #20] + 8003268: f003 0310 and.w r3, r3, #16 + 800326c: 2b10 cmp r3, #16 + 800326e: d119 bne.n 80032a4 { /* Clear STOP Flag */ __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 800308c: 68fb ldr r3, [r7, #12] - 800308e: 681b ldr r3, [r3, #0] - 8003090: f06f 0210 mvn.w r2, #16 - 8003094: 615a str r2, [r3, #20] + 8003270: 68fb ldr r3, [r7, #12] + 8003272: 681b ldr r3, [r3, #0] + 8003274: f06f 0210 mvn.w r2, #16 + 8003278: 615a str r2, [r3, #20] hi2c->PreviousState = I2C_STATE_NONE; - 8003096: 68fb ldr r3, [r7, #12] - 8003098: 2200 movs r2, #0 - 800309a: 631a str r2, [r3, #48] ; 0x30 + 800327a: 68fb ldr r3, [r7, #12] + 800327c: 2200 movs r2, #0 + 800327e: 631a str r2, [r3, #48] ; 0x30 hi2c->State = HAL_I2C_STATE_READY; - 800309c: 68fb ldr r3, [r7, #12] - 800309e: 2220 movs r2, #32 - 80030a0: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8003280: 68fb ldr r3, [r7, #12] + 8003282: 2220 movs r2, #32 + 8003284: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 80030a4: 68fb ldr r3, [r7, #12] - 80030a6: 2200 movs r2, #0 - 80030a8: f883 203e strb.w r2, [r3, #62] ; 0x3e + 8003288: 68fb ldr r3, [r7, #12] + 800328a: 2200 movs r2, #0 + 800328c: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_NONE; - 80030ac: 68fb ldr r3, [r7, #12] - 80030ae: 6c1a ldr r2, [r3, #64] ; 0x40 - 80030b0: 68fb ldr r3, [r7, #12] - 80030b2: 641a str r2, [r3, #64] ; 0x40 + 8003290: 68fb ldr r3, [r7, #12] + 8003292: 6c1a ldr r2, [r3, #64] ; 0x40 + 8003294: 68fb ldr r3, [r7, #12] + 8003296: 641a str r2, [r3, #64] ; 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 80030b4: 68fb ldr r3, [r7, #12] - 80030b6: 2200 movs r2, #0 - 80030b8: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8003298: 68fb ldr r3, [r7, #12] + 800329a: 2200 movs r2, #0 + 800329c: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 80030bc: 2301 movs r3, #1 - 80030be: e029 b.n 8003114 + 80032a0: 2301 movs r3, #1 + 80032a2: e029 b.n 80032f8 } /* Check for the Timeout */ if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 80030c0: f7fe fd5a bl 8001b78 - 80030c4: 4602 mov r2, r0 - 80030c6: 687b ldr r3, [r7, #4] - 80030c8: 1ad3 subs r3, r2, r3 - 80030ca: 68ba ldr r2, [r7, #8] - 80030cc: 429a cmp r2, r3 - 80030ce: d302 bcc.n 80030d6 - 80030d0: 68bb ldr r3, [r7, #8] - 80030d2: 2b00 cmp r3, #0 - 80030d4: d116 bne.n 8003104 + 80032a4: f7fe fd5a bl 8001d5c + 80032a8: 4602 mov r2, r0 + 80032aa: 687b ldr r3, [r7, #4] + 80032ac: 1ad3 subs r3, r2, r3 + 80032ae: 68ba ldr r2, [r7, #8] + 80032b0: 429a cmp r2, r3 + 80032b2: d302 bcc.n 80032ba + 80032b4: 68bb ldr r3, [r7, #8] + 80032b6: 2b00 cmp r3, #0 + 80032b8: d116 bne.n 80032e8 { hi2c->PreviousState = I2C_STATE_NONE; - 80030d6: 68fb ldr r3, [r7, #12] - 80030d8: 2200 movs r2, #0 - 80030da: 631a str r2, [r3, #48] ; 0x30 + 80032ba: 68fb ldr r3, [r7, #12] + 80032bc: 2200 movs r2, #0 + 80032be: 631a str r2, [r3, #48] ; 0x30 hi2c->State = HAL_I2C_STATE_READY; - 80030dc: 68fb ldr r3, [r7, #12] - 80030de: 2220 movs r2, #32 - 80030e0: f883 203d strb.w r2, [r3, #61] ; 0x3d + 80032c0: 68fb ldr r3, [r7, #12] + 80032c2: 2220 movs r2, #32 + 80032c4: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 80030e4: 68fb ldr r3, [r7, #12] - 80030e6: 2200 movs r2, #0 - 80030e8: f883 203e strb.w r2, [r3, #62] ; 0x3e + 80032c8: 68fb ldr r3, [r7, #12] + 80032ca: 2200 movs r2, #0 + 80032cc: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 80030ec: 68fb ldr r3, [r7, #12] - 80030ee: 6c1b ldr r3, [r3, #64] ; 0x40 - 80030f0: f043 0220 orr.w r2, r3, #32 - 80030f4: 68fb ldr r3, [r7, #12] - 80030f6: 641a str r2, [r3, #64] ; 0x40 + 80032d0: 68fb ldr r3, [r7, #12] + 80032d2: 6c1b ldr r3, [r3, #64] ; 0x40 + 80032d4: f043 0220 orr.w r2, r3, #32 + 80032d8: 68fb ldr r3, [r7, #12] + 80032da: 641a str r2, [r3, #64] ; 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 80030f8: 68fb ldr r3, [r7, #12] - 80030fa: 2200 movs r2, #0 - 80030fc: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80032dc: 68fb ldr r3, [r7, #12] + 80032de: 2200 movs r2, #0 + 80032e0: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 8003100: 2301 movs r3, #1 - 8003102: e007 b.n 8003114 + 80032e4: 2301 movs r3, #1 + 80032e6: e007 b.n 80032f8 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) - 8003104: 68fb ldr r3, [r7, #12] - 8003106: 681b ldr r3, [r3, #0] - 8003108: 695b ldr r3, [r3, #20] - 800310a: f003 0340 and.w r3, r3, #64 ; 0x40 - 800310e: 2b40 cmp r3, #64 ; 0x40 - 8003110: d1b5 bne.n 800307e + 80032e8: 68fb ldr r3, [r7, #12] + 80032ea: 681b ldr r3, [r3, #0] + 80032ec: 695b ldr r3, [r3, #20] + 80032ee: f003 0340 and.w r3, r3, #64 ; 0x40 + 80032f2: 2b40 cmp r3, #64 ; 0x40 + 80032f4: d1b5 bne.n 8003262 } } return HAL_OK; - 8003112: 2300 movs r3, #0 + 80032f6: 2300 movs r3, #0 } - 8003114: 4618 mov r0, r3 - 8003116: 3710 adds r7, #16 - 8003118: 46bd mov sp, r7 - 800311a: bd80 pop {r7, pc} + 80032f8: 4618 mov r0, r3 + 80032fa: 3710 adds r7, #16 + 80032fc: 46bd mov sp, r7 + 80032fe: bd80 pop {r7, pc} -0800311c : +08003300 : * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @retval HAL status */ static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c) { - 800311c: b480 push {r7} - 800311e: b083 sub sp, #12 - 8003120: af00 add r7, sp, #0 - 8003122: 6078 str r0, [r7, #4] + 8003300: b480 push {r7} + 8003302: b083 sub sp, #12 + 8003304: af00 add r7, sp, #0 + 8003306: 6078 str r0, [r7, #4] if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) - 8003124: 687b ldr r3, [r7, #4] - 8003126: 681b ldr r3, [r3, #0] - 8003128: 695b ldr r3, [r3, #20] - 800312a: f403 6380 and.w r3, r3, #1024 ; 0x400 - 800312e: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 8003132: d11b bne.n 800316c + 8003308: 687b ldr r3, [r7, #4] + 800330a: 681b ldr r3, [r3, #0] + 800330c: 695b ldr r3, [r3, #20] + 800330e: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8003312: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 8003316: d11b bne.n 8003350 { /* Clear NACKF Flag */ __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 8003134: 687b ldr r3, [r7, #4] - 8003136: 681b ldr r3, [r3, #0] - 8003138: f46f 6280 mvn.w r2, #1024 ; 0x400 - 800313c: 615a str r2, [r3, #20] + 8003318: 687b ldr r3, [r7, #4] + 800331a: 681b ldr r3, [r3, #0] + 800331c: f46f 6280 mvn.w r2, #1024 ; 0x400 + 8003320: 615a str r2, [r3, #20] hi2c->PreviousState = I2C_STATE_NONE; - 800313e: 687b ldr r3, [r7, #4] - 8003140: 2200 movs r2, #0 - 8003142: 631a str r2, [r3, #48] ; 0x30 + 8003322: 687b ldr r3, [r7, #4] + 8003324: 2200 movs r2, #0 + 8003326: 631a str r2, [r3, #48] ; 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8003144: 687b ldr r3, [r7, #4] - 8003146: 2220 movs r2, #32 - 8003148: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8003328: 687b ldr r3, [r7, #4] + 800332a: 2220 movs r2, #32 + 800332c: f883 203d strb.w r2, [r3, #61] ; 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 800314c: 687b ldr r3, [r7, #4] - 800314e: 2200 movs r2, #0 - 8003150: f883 203e strb.w r2, [r3, #62] ; 0x3e + 8003330: 687b ldr r3, [r7, #4] + 8003332: 2200 movs r2, #0 + 8003334: f883 203e strb.w r2, [r3, #62] ; 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_AF; - 8003154: 687b ldr r3, [r7, #4] - 8003156: 6c1b ldr r3, [r3, #64] ; 0x40 - 8003158: f043 0204 orr.w r2, r3, #4 - 800315c: 687b ldr r3, [r7, #4] - 800315e: 641a str r2, [r3, #64] ; 0x40 + 8003338: 687b ldr r3, [r7, #4] + 800333a: 6c1b ldr r3, [r3, #64] ; 0x40 + 800333c: f043 0204 orr.w r2, r3, #4 + 8003340: 687b ldr r3, [r7, #4] + 8003342: 641a str r2, [r3, #64] ; 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8003160: 687b ldr r3, [r7, #4] - 8003162: 2200 movs r2, #0 - 8003164: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8003344: 687b ldr r3, [r7, #4] + 8003346: 2200 movs r2, #0 + 8003348: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 8003168: 2301 movs r3, #1 - 800316a: e000 b.n 800316e + 800334c: 2301 movs r3, #1 + 800334e: e000 b.n 8003352 } return HAL_OK; - 800316c: 2300 movs r3, #0 + 8003350: 2300 movs r3, #0 } - 800316e: 4618 mov r0, r3 - 8003170: 370c adds r7, #12 - 8003172: 46bd mov sp, r7 - 8003174: bc80 pop {r7} - 8003176: 4770 bx lr + 8003352: 4618 mov r0, r3 + 8003354: 370c adds r7, #12 + 8003356: 46bd mov sp, r7 + 8003358: bc80 pop {r7} + 800335a: 4770 bx lr -08003178 : +0800335c : * supported by this macro. User should request a transition to HSE Off * first and then HSE On or HSE Bypass. * @retval HAL status */ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { - 8003178: b580 push {r7, lr} - 800317a: b086 sub sp, #24 - 800317c: af00 add r7, sp, #0 - 800317e: 6078 str r0, [r7, #4] + 800335c: b580 push {r7, lr} + 800335e: b086 sub sp, #24 + 8003360: af00 add r7, sp, #0 + 8003362: 6078 str r0, [r7, #4] uint32_t tickstart; uint32_t pll_config; /* Check Null pointer */ if (RCC_OscInitStruct == NULL) - 8003180: 687b ldr r3, [r7, #4] - 8003182: 2b00 cmp r3, #0 - 8003184: d101 bne.n 800318a + 8003364: 687b ldr r3, [r7, #4] + 8003366: 2b00 cmp r3, #0 + 8003368: d101 bne.n 800336e { return HAL_ERROR; - 8003186: 2301 movs r3, #1 - 8003188: e26c b.n 8003664 + 800336a: 2301 movs r3, #1 + 800336c: e26c b.n 8003848 /* Check the parameters */ assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); /*------------------------------- HSE Configuration ------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) - 800318a: 687b ldr r3, [r7, #4] - 800318c: 681b ldr r3, [r3, #0] - 800318e: f003 0301 and.w r3, r3, #1 - 8003192: 2b00 cmp r3, #0 - 8003194: f000 8087 beq.w 80032a6 + 800336e: 687b ldr r3, [r7, #4] + 8003370: 681b ldr r3, [r3, #0] + 8003372: f003 0301 and.w r3, r3, #1 + 8003376: 2b00 cmp r3, #0 + 8003378: f000 8087 beq.w 800348a { /* Check the parameters */ assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); /* When the HSE is used as system clock or clock source for PLL in these cases it is not allowed to be disabled */ if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE) - 8003198: 4b92 ldr r3, [pc, #584] ; (80033e4 ) - 800319a: 685b ldr r3, [r3, #4] - 800319c: f003 030c and.w r3, r3, #12 - 80031a0: 2b04 cmp r3, #4 - 80031a2: d00c beq.n 80031be + 800337c: 4b92 ldr r3, [pc, #584] ; (80035c8 ) + 800337e: 685b ldr r3, [r3, #4] + 8003380: f003 030c and.w r3, r3, #12 + 8003384: 2b04 cmp r3, #4 + 8003386: d00c beq.n 80033a2 || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE))) - 80031a4: 4b8f ldr r3, [pc, #572] ; (80033e4 ) - 80031a6: 685b ldr r3, [r3, #4] - 80031a8: f003 030c and.w r3, r3, #12 - 80031ac: 2b08 cmp r3, #8 - 80031ae: d112 bne.n 80031d6 - 80031b0: 4b8c ldr r3, [pc, #560] ; (80033e4 ) - 80031b2: 685b ldr r3, [r3, #4] - 80031b4: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 80031b8: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 80031bc: d10b bne.n 80031d6 + 8003388: 4b8f ldr r3, [pc, #572] ; (80035c8 ) + 800338a: 685b ldr r3, [r3, #4] + 800338c: f003 030c and.w r3, r3, #12 + 8003390: 2b08 cmp r3, #8 + 8003392: d112 bne.n 80033ba + 8003394: 4b8c ldr r3, [pc, #560] ; (80035c8 ) + 8003396: 685b ldr r3, [r3, #4] + 8003398: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 800339c: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 80033a0: d10b bne.n 80033ba { if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 80031be: 4b89 ldr r3, [pc, #548] ; (80033e4 ) - 80031c0: 681b ldr r3, [r3, #0] - 80031c2: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 80031c6: 2b00 cmp r3, #0 - 80031c8: d06c beq.n 80032a4 - 80031ca: 687b ldr r3, [r7, #4] - 80031cc: 685b ldr r3, [r3, #4] - 80031ce: 2b00 cmp r3, #0 - 80031d0: d168 bne.n 80032a4 + 80033a2: 4b89 ldr r3, [pc, #548] ; (80035c8 ) + 80033a4: 681b ldr r3, [r3, #0] + 80033a6: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80033aa: 2b00 cmp r3, #0 + 80033ac: d06c beq.n 8003488 + 80033ae: 687b ldr r3, [r7, #4] + 80033b0: 685b ldr r3, [r3, #4] + 80033b2: 2b00 cmp r3, #0 + 80033b4: d168 bne.n 8003488 { return HAL_ERROR; - 80031d2: 2301 movs r3, #1 - 80031d4: e246 b.n 8003664 + 80033b6: 2301 movs r3, #1 + 80033b8: e246 b.n 8003848 } } else { /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); - 80031d6: 687b ldr r3, [r7, #4] - 80031d8: 685b ldr r3, [r3, #4] - 80031da: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 80031de: d106 bne.n 80031ee - 80031e0: 4b80 ldr r3, [pc, #512] ; (80033e4 ) - 80031e2: 681b ldr r3, [r3, #0] - 80031e4: 4a7f ldr r2, [pc, #508] ; (80033e4 ) - 80031e6: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 80031ea: 6013 str r3, [r2, #0] - 80031ec: e02e b.n 800324c - 80031ee: 687b ldr r3, [r7, #4] - 80031f0: 685b ldr r3, [r3, #4] - 80031f2: 2b00 cmp r3, #0 - 80031f4: d10c bne.n 8003210 - 80031f6: 4b7b ldr r3, [pc, #492] ; (80033e4 ) - 80031f8: 681b ldr r3, [r3, #0] - 80031fa: 4a7a ldr r2, [pc, #488] ; (80033e4 ) - 80031fc: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 8003200: 6013 str r3, [r2, #0] - 8003202: 4b78 ldr r3, [pc, #480] ; (80033e4 ) - 8003204: 681b ldr r3, [r3, #0] - 8003206: 4a77 ldr r2, [pc, #476] ; (80033e4 ) - 8003208: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 800320c: 6013 str r3, [r2, #0] - 800320e: e01d b.n 800324c - 8003210: 687b ldr r3, [r7, #4] - 8003212: 685b ldr r3, [r3, #4] - 8003214: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 - 8003218: d10c bne.n 8003234 - 800321a: 4b72 ldr r3, [pc, #456] ; (80033e4 ) - 800321c: 681b ldr r3, [r3, #0] - 800321e: 4a71 ldr r2, [pc, #452] ; (80033e4 ) - 8003220: f443 2380 orr.w r3, r3, #262144 ; 0x40000 - 8003224: 6013 str r3, [r2, #0] - 8003226: 4b6f ldr r3, [pc, #444] ; (80033e4 ) - 8003228: 681b ldr r3, [r3, #0] - 800322a: 4a6e ldr r2, [pc, #440] ; (80033e4 ) - 800322c: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 8003230: 6013 str r3, [r2, #0] - 8003232: e00b b.n 800324c - 8003234: 4b6b ldr r3, [pc, #428] ; (80033e4 ) - 8003236: 681b ldr r3, [r3, #0] - 8003238: 4a6a ldr r2, [pc, #424] ; (80033e4 ) - 800323a: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 800323e: 6013 str r3, [r2, #0] - 8003240: 4b68 ldr r3, [pc, #416] ; (80033e4 ) - 8003242: 681b ldr r3, [r3, #0] - 8003244: 4a67 ldr r2, [pc, #412] ; (80033e4 ) - 8003246: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 800324a: 6013 str r3, [r2, #0] + 80033ba: 687b ldr r3, [r7, #4] + 80033bc: 685b ldr r3, [r3, #4] + 80033be: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 80033c2: d106 bne.n 80033d2 + 80033c4: 4b80 ldr r3, [pc, #512] ; (80035c8 ) + 80033c6: 681b ldr r3, [r3, #0] + 80033c8: 4a7f ldr r2, [pc, #508] ; (80035c8 ) + 80033ca: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 80033ce: 6013 str r3, [r2, #0] + 80033d0: e02e b.n 8003430 + 80033d2: 687b ldr r3, [r7, #4] + 80033d4: 685b ldr r3, [r3, #4] + 80033d6: 2b00 cmp r3, #0 + 80033d8: d10c bne.n 80033f4 + 80033da: 4b7b ldr r3, [pc, #492] ; (80035c8 ) + 80033dc: 681b ldr r3, [r3, #0] + 80033de: 4a7a ldr r2, [pc, #488] ; (80035c8 ) + 80033e0: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 80033e4: 6013 str r3, [r2, #0] + 80033e6: 4b78 ldr r3, [pc, #480] ; (80035c8 ) + 80033e8: 681b ldr r3, [r3, #0] + 80033ea: 4a77 ldr r2, [pc, #476] ; (80035c8 ) + 80033ec: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 80033f0: 6013 str r3, [r2, #0] + 80033f2: e01d b.n 8003430 + 80033f4: 687b ldr r3, [r7, #4] + 80033f6: 685b ldr r3, [r3, #4] + 80033f8: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 + 80033fc: d10c bne.n 8003418 + 80033fe: 4b72 ldr r3, [pc, #456] ; (80035c8 ) + 8003400: 681b ldr r3, [r3, #0] + 8003402: 4a71 ldr r2, [pc, #452] ; (80035c8 ) + 8003404: f443 2380 orr.w r3, r3, #262144 ; 0x40000 + 8003408: 6013 str r3, [r2, #0] + 800340a: 4b6f ldr r3, [pc, #444] ; (80035c8 ) + 800340c: 681b ldr r3, [r3, #0] + 800340e: 4a6e ldr r2, [pc, #440] ; (80035c8 ) + 8003410: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 8003414: 6013 str r3, [r2, #0] + 8003416: e00b b.n 8003430 + 8003418: 4b6b ldr r3, [pc, #428] ; (80035c8 ) + 800341a: 681b ldr r3, [r3, #0] + 800341c: 4a6a ldr r2, [pc, #424] ; (80035c8 ) + 800341e: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 8003422: 6013 str r3, [r2, #0] + 8003424: 4b68 ldr r3, [pc, #416] ; (80035c8 ) + 8003426: 681b ldr r3, [r3, #0] + 8003428: 4a67 ldr r2, [pc, #412] ; (80035c8 ) + 800342a: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 800342e: 6013 str r3, [r2, #0] /* Check the HSE State */ if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF) - 800324c: 687b ldr r3, [r7, #4] - 800324e: 685b ldr r3, [r3, #4] - 8003250: 2b00 cmp r3, #0 - 8003252: d013 beq.n 800327c + 8003430: 687b ldr r3, [r7, #4] + 8003432: 685b ldr r3, [r3, #4] + 8003434: 2b00 cmp r3, #0 + 8003436: d013 beq.n 8003460 { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003254: f7fe fc90 bl 8001b78 - 8003258: 6138 str r0, [r7, #16] + 8003438: f7fe fc90 bl 8001d5c + 800343c: 6138 str r0, [r7, #16] /* Wait till HSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 800325a: e008 b.n 800326e + 800343e: e008 b.n 8003452 { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) - 800325c: f7fe fc8c bl 8001b78 - 8003260: 4602 mov r2, r0 - 8003262: 693b ldr r3, [r7, #16] - 8003264: 1ad3 subs r3, r2, r3 - 8003266: 2b64 cmp r3, #100 ; 0x64 - 8003268: d901 bls.n 800326e + 8003440: f7fe fc8c bl 8001d5c + 8003444: 4602 mov r2, r0 + 8003446: 693b ldr r3, [r7, #16] + 8003448: 1ad3 subs r3, r2, r3 + 800344a: 2b64 cmp r3, #100 ; 0x64 + 800344c: d901 bls.n 8003452 { return HAL_TIMEOUT; - 800326a: 2303 movs r3, #3 - 800326c: e1fa b.n 8003664 + 800344e: 2303 movs r3, #3 + 8003450: e1fa b.n 8003848 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 800326e: 4b5d ldr r3, [pc, #372] ; (80033e4 ) - 8003270: 681b ldr r3, [r3, #0] - 8003272: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8003276: 2b00 cmp r3, #0 - 8003278: d0f0 beq.n 800325c - 800327a: e014 b.n 80032a6 + 8003452: 4b5d ldr r3, [pc, #372] ; (80035c8 ) + 8003454: 681b ldr r3, [r3, #0] + 8003456: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 800345a: 2b00 cmp r3, #0 + 800345c: d0f0 beq.n 8003440 + 800345e: e014 b.n 800348a } } else { /* Get Start Tick */ tickstart = HAL_GetTick(); - 800327c: f7fe fc7c bl 8001b78 - 8003280: 6138 str r0, [r7, #16] + 8003460: f7fe fc7c bl 8001d5c + 8003464: 6138 str r0, [r7, #16] /* Wait till HSE is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) - 8003282: e008 b.n 8003296 + 8003466: e008 b.n 800347a { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) - 8003284: f7fe fc78 bl 8001b78 - 8003288: 4602 mov r2, r0 - 800328a: 693b ldr r3, [r7, #16] - 800328c: 1ad3 subs r3, r2, r3 - 800328e: 2b64 cmp r3, #100 ; 0x64 - 8003290: d901 bls.n 8003296 + 8003468: f7fe fc78 bl 8001d5c + 800346c: 4602 mov r2, r0 + 800346e: 693b ldr r3, [r7, #16] + 8003470: 1ad3 subs r3, r2, r3 + 8003472: 2b64 cmp r3, #100 ; 0x64 + 8003474: d901 bls.n 800347a { return HAL_TIMEOUT; - 8003292: 2303 movs r3, #3 - 8003294: e1e6 b.n 8003664 + 8003476: 2303 movs r3, #3 + 8003478: e1e6 b.n 8003848 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) - 8003296: 4b53 ldr r3, [pc, #332] ; (80033e4 ) - 8003298: 681b ldr r3, [r3, #0] - 800329a: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 800329e: 2b00 cmp r3, #0 - 80032a0: d1f0 bne.n 8003284 - 80032a2: e000 b.n 80032a6 + 800347a: 4b53 ldr r3, [pc, #332] ; (80035c8 ) + 800347c: 681b ldr r3, [r3, #0] + 800347e: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8003482: 2b00 cmp r3, #0 + 8003484: d1f0 bne.n 8003468 + 8003486: e000 b.n 800348a if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 80032a4: bf00 nop + 8003488: bf00 nop } } } } /*----------------------------- HSI Configuration --------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) - 80032a6: 687b ldr r3, [r7, #4] - 80032a8: 681b ldr r3, [r3, #0] - 80032aa: f003 0302 and.w r3, r3, #2 - 80032ae: 2b00 cmp r3, #0 - 80032b0: d063 beq.n 800337a + 800348a: 687b ldr r3, [r7, #4] + 800348c: 681b ldr r3, [r3, #0] + 800348e: f003 0302 and.w r3, r3, #2 + 8003492: 2b00 cmp r3, #0 + 8003494: d063 beq.n 800355e /* Check the parameters */ assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI) - 80032b2: 4b4c ldr r3, [pc, #304] ; (80033e4 ) - 80032b4: 685b ldr r3, [r3, #4] - 80032b6: f003 030c and.w r3, r3, #12 - 80032ba: 2b00 cmp r3, #0 - 80032bc: d00b beq.n 80032d6 + 8003496: 4b4c ldr r3, [pc, #304] ; (80035c8 ) + 8003498: 685b ldr r3, [r3, #4] + 800349a: f003 030c and.w r3, r3, #12 + 800349e: 2b00 cmp r3, #0 + 80034a0: d00b beq.n 80034ba || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI_DIV2))) - 80032be: 4b49 ldr r3, [pc, #292] ; (80033e4 ) - 80032c0: 685b ldr r3, [r3, #4] - 80032c2: f003 030c and.w r3, r3, #12 - 80032c6: 2b08 cmp r3, #8 - 80032c8: d11c bne.n 8003304 - 80032ca: 4b46 ldr r3, [pc, #280] ; (80033e4 ) - 80032cc: 685b ldr r3, [r3, #4] - 80032ce: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 80032d2: 2b00 cmp r3, #0 - 80032d4: d116 bne.n 8003304 + 80034a2: 4b49 ldr r3, [pc, #292] ; (80035c8 ) + 80034a4: 685b ldr r3, [r3, #4] + 80034a6: f003 030c and.w r3, r3, #12 + 80034aa: 2b08 cmp r3, #8 + 80034ac: d11c bne.n 80034e8 + 80034ae: 4b46 ldr r3, [pc, #280] ; (80035c8 ) + 80034b0: 685b ldr r3, [r3, #4] + 80034b2: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 80034b6: 2b00 cmp r3, #0 + 80034b8: d116 bne.n 80034e8 { /* When HSI is used as system clock it will not disabled */ if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 80032d6: 4b43 ldr r3, [pc, #268] ; (80033e4 ) - 80032d8: 681b ldr r3, [r3, #0] - 80032da: f003 0302 and.w r3, r3, #2 - 80032de: 2b00 cmp r3, #0 - 80032e0: d005 beq.n 80032ee - 80032e2: 687b ldr r3, [r7, #4] - 80032e4: 691b ldr r3, [r3, #16] - 80032e6: 2b01 cmp r3, #1 - 80032e8: d001 beq.n 80032ee + 80034ba: 4b43 ldr r3, [pc, #268] ; (80035c8 ) + 80034bc: 681b ldr r3, [r3, #0] + 80034be: f003 0302 and.w r3, r3, #2 + 80034c2: 2b00 cmp r3, #0 + 80034c4: d005 beq.n 80034d2 + 80034c6: 687b ldr r3, [r7, #4] + 80034c8: 691b ldr r3, [r3, #16] + 80034ca: 2b01 cmp r3, #1 + 80034cc: d001 beq.n 80034d2 { return HAL_ERROR; - 80032ea: 2301 movs r3, #1 - 80032ec: e1ba b.n 8003664 + 80034ce: 2301 movs r3, #1 + 80034d0: e1ba b.n 8003848 } /* Otherwise, just the calibration is allowed */ else { /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 80032ee: 4b3d ldr r3, [pc, #244] ; (80033e4 ) - 80032f0: 681b ldr r3, [r3, #0] - 80032f2: f023 02f8 bic.w r2, r3, #248 ; 0xf8 - 80032f6: 687b ldr r3, [r7, #4] - 80032f8: 695b ldr r3, [r3, #20] - 80032fa: 00db lsls r3, r3, #3 - 80032fc: 4939 ldr r1, [pc, #228] ; (80033e4 ) - 80032fe: 4313 orrs r3, r2 - 8003300: 600b str r3, [r1, #0] + 80034d2: 4b3d ldr r3, [pc, #244] ; (80035c8 ) + 80034d4: 681b ldr r3, [r3, #0] + 80034d6: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 80034da: 687b ldr r3, [r7, #4] + 80034dc: 695b ldr r3, [r3, #20] + 80034de: 00db lsls r3, r3, #3 + 80034e0: 4939 ldr r1, [pc, #228] ; (80035c8 ) + 80034e2: 4313 orrs r3, r2 + 80034e4: 600b str r3, [r1, #0] if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 8003302: e03a b.n 800337a + 80034e6: e03a b.n 800355e } } else { /* Check the HSI State */ if (RCC_OscInitStruct->HSIState != RCC_HSI_OFF) - 8003304: 687b ldr r3, [r7, #4] - 8003306: 691b ldr r3, [r3, #16] - 8003308: 2b00 cmp r3, #0 - 800330a: d020 beq.n 800334e + 80034e8: 687b ldr r3, [r7, #4] + 80034ea: 691b ldr r3, [r3, #16] + 80034ec: 2b00 cmp r3, #0 + 80034ee: d020 beq.n 8003532 { /* Enable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_ENABLE(); - 800330c: 4b36 ldr r3, [pc, #216] ; (80033e8 ) - 800330e: 2201 movs r2, #1 - 8003310: 601a str r2, [r3, #0] + 80034f0: 4b36 ldr r3, [pc, #216] ; (80035cc ) + 80034f2: 2201 movs r2, #1 + 80034f4: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003312: f7fe fc31 bl 8001b78 - 8003316: 6138 str r0, [r7, #16] + 80034f6: f7fe fc31 bl 8001d5c + 80034fa: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8003318: e008 b.n 800332c + 80034fc: e008 b.n 8003510 { if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) - 800331a: f7fe fc2d bl 8001b78 - 800331e: 4602 mov r2, r0 - 8003320: 693b ldr r3, [r7, #16] - 8003322: 1ad3 subs r3, r2, r3 - 8003324: 2b02 cmp r3, #2 - 8003326: d901 bls.n 800332c + 80034fe: f7fe fc2d bl 8001d5c + 8003502: 4602 mov r2, r0 + 8003504: 693b ldr r3, [r7, #16] + 8003506: 1ad3 subs r3, r2, r3 + 8003508: 2b02 cmp r3, #2 + 800350a: d901 bls.n 8003510 { return HAL_TIMEOUT; - 8003328: 2303 movs r3, #3 - 800332a: e19b b.n 8003664 + 800350c: 2303 movs r3, #3 + 800350e: e19b b.n 8003848 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 800332c: 4b2d ldr r3, [pc, #180] ; (80033e4 ) - 800332e: 681b ldr r3, [r3, #0] - 8003330: f003 0302 and.w r3, r3, #2 - 8003334: 2b00 cmp r3, #0 - 8003336: d0f0 beq.n 800331a + 8003510: 4b2d ldr r3, [pc, #180] ; (80035c8 ) + 8003512: 681b ldr r3, [r3, #0] + 8003514: f003 0302 and.w r3, r3, #2 + 8003518: 2b00 cmp r3, #0 + 800351a: d0f0 beq.n 80034fe } } /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 8003338: 4b2a ldr r3, [pc, #168] ; (80033e4 ) - 800333a: 681b ldr r3, [r3, #0] - 800333c: f023 02f8 bic.w r2, r3, #248 ; 0xf8 - 8003340: 687b ldr r3, [r7, #4] - 8003342: 695b ldr r3, [r3, #20] - 8003344: 00db lsls r3, r3, #3 - 8003346: 4927 ldr r1, [pc, #156] ; (80033e4 ) - 8003348: 4313 orrs r3, r2 - 800334a: 600b str r3, [r1, #0] - 800334c: e015 b.n 800337a + 800351c: 4b2a ldr r3, [pc, #168] ; (80035c8 ) + 800351e: 681b ldr r3, [r3, #0] + 8003520: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 8003524: 687b ldr r3, [r7, #4] + 8003526: 695b ldr r3, [r3, #20] + 8003528: 00db lsls r3, r3, #3 + 800352a: 4927 ldr r1, [pc, #156] ; (80035c8 ) + 800352c: 4313 orrs r3, r2 + 800352e: 600b str r3, [r1, #0] + 8003530: e015 b.n 800355e } else { /* Disable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_DISABLE(); - 800334e: 4b26 ldr r3, [pc, #152] ; (80033e8 ) - 8003350: 2200 movs r2, #0 - 8003352: 601a str r2, [r3, #0] + 8003532: 4b26 ldr r3, [pc, #152] ; (80035cc ) + 8003534: 2200 movs r2, #0 + 8003536: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003354: f7fe fc10 bl 8001b78 - 8003358: 6138 str r0, [r7, #16] + 8003538: f7fe fc10 bl 8001d5c + 800353c: 6138 str r0, [r7, #16] /* Wait till HSI is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) - 800335a: e008 b.n 800336e + 800353e: e008 b.n 8003552 { if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) - 800335c: f7fe fc0c bl 8001b78 - 8003360: 4602 mov r2, r0 - 8003362: 693b ldr r3, [r7, #16] - 8003364: 1ad3 subs r3, r2, r3 - 8003366: 2b02 cmp r3, #2 - 8003368: d901 bls.n 800336e + 8003540: f7fe fc0c bl 8001d5c + 8003544: 4602 mov r2, r0 + 8003546: 693b ldr r3, [r7, #16] + 8003548: 1ad3 subs r3, r2, r3 + 800354a: 2b02 cmp r3, #2 + 800354c: d901 bls.n 8003552 { return HAL_TIMEOUT; - 800336a: 2303 movs r3, #3 - 800336c: e17a b.n 8003664 + 800354e: 2303 movs r3, #3 + 8003550: e17a b.n 8003848 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) - 800336e: 4b1d ldr r3, [pc, #116] ; (80033e4 ) - 8003370: 681b ldr r3, [r3, #0] - 8003372: f003 0302 and.w r3, r3, #2 - 8003376: 2b00 cmp r3, #0 - 8003378: d1f0 bne.n 800335c + 8003552: 4b1d ldr r3, [pc, #116] ; (80035c8 ) + 8003554: 681b ldr r3, [r3, #0] + 8003556: f003 0302 and.w r3, r3, #2 + 800355a: 2b00 cmp r3, #0 + 800355c: d1f0 bne.n 8003540 } } } } /*------------------------------ LSI Configuration -------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) - 800337a: 687b ldr r3, [r7, #4] - 800337c: 681b ldr r3, [r3, #0] - 800337e: f003 0308 and.w r3, r3, #8 - 8003382: 2b00 cmp r3, #0 - 8003384: d03a beq.n 80033fc + 800355e: 687b ldr r3, [r7, #4] + 8003560: 681b ldr r3, [r3, #0] + 8003562: f003 0308 and.w r3, r3, #8 + 8003566: 2b00 cmp r3, #0 + 8003568: d03a beq.n 80035e0 { /* Check the parameters */ assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); /* Check the LSI State */ if (RCC_OscInitStruct->LSIState != RCC_LSI_OFF) - 8003386: 687b ldr r3, [r7, #4] - 8003388: 699b ldr r3, [r3, #24] - 800338a: 2b00 cmp r3, #0 - 800338c: d019 beq.n 80033c2 + 800356a: 687b ldr r3, [r7, #4] + 800356c: 699b ldr r3, [r3, #24] + 800356e: 2b00 cmp r3, #0 + 8003570: d019 beq.n 80035a6 { /* Enable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_ENABLE(); - 800338e: 4b17 ldr r3, [pc, #92] ; (80033ec ) - 8003390: 2201 movs r2, #1 - 8003392: 601a str r2, [r3, #0] + 8003572: 4b17 ldr r3, [pc, #92] ; (80035d0 ) + 8003574: 2201 movs r2, #1 + 8003576: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003394: f7fe fbf0 bl 8001b78 - 8003398: 6138 str r0, [r7, #16] + 8003578: f7fe fbf0 bl 8001d5c + 800357c: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) - 800339a: e008 b.n 80033ae + 800357e: e008 b.n 8003592 { if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) - 800339c: f7fe fbec bl 8001b78 - 80033a0: 4602 mov r2, r0 - 80033a2: 693b ldr r3, [r7, #16] - 80033a4: 1ad3 subs r3, r2, r3 - 80033a6: 2b02 cmp r3, #2 - 80033a8: d901 bls.n 80033ae + 8003580: f7fe fbec bl 8001d5c + 8003584: 4602 mov r2, r0 + 8003586: 693b ldr r3, [r7, #16] + 8003588: 1ad3 subs r3, r2, r3 + 800358a: 2b02 cmp r3, #2 + 800358c: d901 bls.n 8003592 { return HAL_TIMEOUT; - 80033aa: 2303 movs r3, #3 - 80033ac: e15a b.n 8003664 + 800358e: 2303 movs r3, #3 + 8003590: e15a b.n 8003848 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) - 80033ae: 4b0d ldr r3, [pc, #52] ; (80033e4 ) - 80033b0: 6a5b ldr r3, [r3, #36] ; 0x24 - 80033b2: f003 0302 and.w r3, r3, #2 - 80033b6: 2b00 cmp r3, #0 - 80033b8: d0f0 beq.n 800339c + 8003592: 4b0d ldr r3, [pc, #52] ; (80035c8 ) + 8003594: 6a5b ldr r3, [r3, #36] ; 0x24 + 8003596: f003 0302 and.w r3, r3, #2 + 800359a: 2b00 cmp r3, #0 + 800359c: d0f0 beq.n 8003580 } } /* To have a fully stabilized clock in the specified range, a software delay of 1ms should be added.*/ RCC_Delay(1); - 80033ba: 2001 movs r0, #1 - 80033bc: f000 fac4 bl 8003948 - 80033c0: e01c b.n 80033fc + 800359e: 2001 movs r0, #1 + 80035a0: f000 fac4 bl 8003b2c + 80035a4: e01c b.n 80035e0 } else { /* Disable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_DISABLE(); - 80033c2: 4b0a ldr r3, [pc, #40] ; (80033ec ) - 80033c4: 2200 movs r2, #0 - 80033c6: 601a str r2, [r3, #0] + 80035a6: 4b0a ldr r3, [pc, #40] ; (80035d0 ) + 80035a8: 2200 movs r2, #0 + 80035aa: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80033c8: f7fe fbd6 bl 8001b78 - 80033cc: 6138 str r0, [r7, #16] + 80035ac: f7fe fbd6 bl 8001d5c + 80035b0: 6138 str r0, [r7, #16] /* Wait till LSI is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) - 80033ce: e00f b.n 80033f0 + 80035b2: e00f b.n 80035d4 { if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) - 80033d0: f7fe fbd2 bl 8001b78 - 80033d4: 4602 mov r2, r0 - 80033d6: 693b ldr r3, [r7, #16] - 80033d8: 1ad3 subs r3, r2, r3 - 80033da: 2b02 cmp r3, #2 - 80033dc: d908 bls.n 80033f0 + 80035b4: f7fe fbd2 bl 8001d5c + 80035b8: 4602 mov r2, r0 + 80035ba: 693b ldr r3, [r7, #16] + 80035bc: 1ad3 subs r3, r2, r3 + 80035be: 2b02 cmp r3, #2 + 80035c0: d908 bls.n 80035d4 { return HAL_TIMEOUT; - 80033de: 2303 movs r3, #3 - 80033e0: e140 b.n 8003664 - 80033e2: bf00 nop - 80033e4: 40021000 .word 0x40021000 - 80033e8: 42420000 .word 0x42420000 - 80033ec: 42420480 .word 0x42420480 + 80035c2: 2303 movs r3, #3 + 80035c4: e140 b.n 8003848 + 80035c6: bf00 nop + 80035c8: 40021000 .word 0x40021000 + 80035cc: 42420000 .word 0x42420000 + 80035d0: 42420480 .word 0x42420480 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) - 80033f0: 4b9e ldr r3, [pc, #632] ; (800366c ) - 80033f2: 6a5b ldr r3, [r3, #36] ; 0x24 - 80033f4: f003 0302 and.w r3, r3, #2 - 80033f8: 2b00 cmp r3, #0 - 80033fa: d1e9 bne.n 80033d0 + 80035d4: 4b9e ldr r3, [pc, #632] ; (8003850 ) + 80035d6: 6a5b ldr r3, [r3, #36] ; 0x24 + 80035d8: f003 0302 and.w r3, r3, #2 + 80035dc: 2b00 cmp r3, #0 + 80035de: d1e9 bne.n 80035b4 } } } } /*------------------------------ LSE Configuration -------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) - 80033fc: 687b ldr r3, [r7, #4] - 80033fe: 681b ldr r3, [r3, #0] - 8003400: f003 0304 and.w r3, r3, #4 - 8003404: 2b00 cmp r3, #0 - 8003406: f000 80a6 beq.w 8003556 + 80035e0: 687b ldr r3, [r7, #4] + 80035e2: 681b ldr r3, [r3, #0] + 80035e4: f003 0304 and.w r3, r3, #4 + 80035e8: 2b00 cmp r3, #0 + 80035ea: f000 80a6 beq.w 800373a { FlagStatus pwrclkchanged = RESET; - 800340a: 2300 movs r3, #0 - 800340c: 75fb strb r3, [r7, #23] + 80035ee: 2300 movs r3, #0 + 80035f0: 75fb strb r3, [r7, #23] /* Check the parameters */ assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); /* Update LSE configuration in Backup Domain control register */ /* Requires to enable write access to Backup Domain of necessary */ if (__HAL_RCC_PWR_IS_CLK_DISABLED()) - 800340e: 4b97 ldr r3, [pc, #604] ; (800366c ) - 8003410: 69db ldr r3, [r3, #28] - 8003412: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8003416: 2b00 cmp r3, #0 - 8003418: d10d bne.n 8003436 + 80035f2: 4b97 ldr r3, [pc, #604] ; (8003850 ) + 80035f4: 69db ldr r3, [r3, #28] + 80035f6: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 80035fa: 2b00 cmp r3, #0 + 80035fc: d10d bne.n 800361a { __HAL_RCC_PWR_CLK_ENABLE(); - 800341a: 4b94 ldr r3, [pc, #592] ; (800366c ) - 800341c: 69db ldr r3, [r3, #28] - 800341e: 4a93 ldr r2, [pc, #588] ; (800366c ) - 8003420: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8003424: 61d3 str r3, [r2, #28] - 8003426: 4b91 ldr r3, [pc, #580] ; (800366c ) - 8003428: 69db ldr r3, [r3, #28] - 800342a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 800342e: 60bb str r3, [r7, #8] - 8003430: 68bb ldr r3, [r7, #8] + 80035fe: 4b94 ldr r3, [pc, #592] ; (8003850 ) + 8003600: 69db ldr r3, [r3, #28] + 8003602: 4a93 ldr r2, [pc, #588] ; (8003850 ) + 8003604: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8003608: 61d3 str r3, [r2, #28] + 800360a: 4b91 ldr r3, [pc, #580] ; (8003850 ) + 800360c: 69db ldr r3, [r3, #28] + 800360e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8003612: 60bb str r3, [r7, #8] + 8003614: 68bb ldr r3, [r7, #8] pwrclkchanged = SET; - 8003432: 2301 movs r3, #1 - 8003434: 75fb strb r3, [r7, #23] + 8003616: 2301 movs r3, #1 + 8003618: 75fb strb r3, [r7, #23] } if (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8003436: 4b8e ldr r3, [pc, #568] ; (8003670 ) - 8003438: 681b ldr r3, [r3, #0] - 800343a: f403 7380 and.w r3, r3, #256 ; 0x100 - 800343e: 2b00 cmp r3, #0 - 8003440: d118 bne.n 8003474 + 800361a: 4b8e ldr r3, [pc, #568] ; (8003854 ) + 800361c: 681b ldr r3, [r3, #0] + 800361e: f403 7380 and.w r3, r3, #256 ; 0x100 + 8003622: 2b00 cmp r3, #0 + 8003624: d118 bne.n 8003658 { /* Enable write access to Backup domain */ SET_BIT(PWR->CR, PWR_CR_DBP); - 8003442: 4b8b ldr r3, [pc, #556] ; (8003670 ) - 8003444: 681b ldr r3, [r3, #0] - 8003446: 4a8a ldr r2, [pc, #552] ; (8003670 ) - 8003448: f443 7380 orr.w r3, r3, #256 ; 0x100 - 800344c: 6013 str r3, [r2, #0] + 8003626: 4b8b ldr r3, [pc, #556] ; (8003854 ) + 8003628: 681b ldr r3, [r3, #0] + 800362a: 4a8a ldr r2, [pc, #552] ; (8003854 ) + 800362c: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8003630: 6013 str r3, [r2, #0] /* Wait for Backup domain Write protection disable */ tickstart = HAL_GetTick(); - 800344e: f7fe fb93 bl 8001b78 - 8003452: 6138 str r0, [r7, #16] + 8003632: f7fe fb93 bl 8001d5c + 8003636: 6138 str r0, [r7, #16] while (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8003454: e008 b.n 8003468 + 8003638: e008 b.n 800364c { if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 8003456: f7fe fb8f bl 8001b78 - 800345a: 4602 mov r2, r0 - 800345c: 693b ldr r3, [r7, #16] - 800345e: 1ad3 subs r3, r2, r3 - 8003460: 2b64 cmp r3, #100 ; 0x64 - 8003462: d901 bls.n 8003468 + 800363a: f7fe fb8f bl 8001d5c + 800363e: 4602 mov r2, r0 + 8003640: 693b ldr r3, [r7, #16] + 8003642: 1ad3 subs r3, r2, r3 + 8003644: 2b64 cmp r3, #100 ; 0x64 + 8003646: d901 bls.n 800364c { return HAL_TIMEOUT; - 8003464: 2303 movs r3, #3 - 8003466: e0fd b.n 8003664 + 8003648: 2303 movs r3, #3 + 800364a: e0fd b.n 8003848 while (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8003468: 4b81 ldr r3, [pc, #516] ; (8003670 ) - 800346a: 681b ldr r3, [r3, #0] - 800346c: f403 7380 and.w r3, r3, #256 ; 0x100 - 8003470: 2b00 cmp r3, #0 - 8003472: d0f0 beq.n 8003456 + 800364c: 4b81 ldr r3, [pc, #516] ; (8003854 ) + 800364e: 681b ldr r3, [r3, #0] + 8003650: f403 7380 and.w r3, r3, #256 ; 0x100 + 8003654: 2b00 cmp r3, #0 + 8003656: d0f0 beq.n 800363a } } } /* Set the new LSE configuration -----------------------------------------*/ __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); - 8003474: 687b ldr r3, [r7, #4] - 8003476: 68db ldr r3, [r3, #12] - 8003478: 2b01 cmp r3, #1 - 800347a: d106 bne.n 800348a - 800347c: 4b7b ldr r3, [pc, #492] ; (800366c ) - 800347e: 6a1b ldr r3, [r3, #32] - 8003480: 4a7a ldr r2, [pc, #488] ; (800366c ) - 8003482: f043 0301 orr.w r3, r3, #1 - 8003486: 6213 str r3, [r2, #32] - 8003488: e02d b.n 80034e6 - 800348a: 687b ldr r3, [r7, #4] - 800348c: 68db ldr r3, [r3, #12] - 800348e: 2b00 cmp r3, #0 - 8003490: d10c bne.n 80034ac - 8003492: 4b76 ldr r3, [pc, #472] ; (800366c ) - 8003494: 6a1b ldr r3, [r3, #32] - 8003496: 4a75 ldr r2, [pc, #468] ; (800366c ) - 8003498: f023 0301 bic.w r3, r3, #1 - 800349c: 6213 str r3, [r2, #32] - 800349e: 4b73 ldr r3, [pc, #460] ; (800366c ) - 80034a0: 6a1b ldr r3, [r3, #32] - 80034a2: 4a72 ldr r2, [pc, #456] ; (800366c ) - 80034a4: f023 0304 bic.w r3, r3, #4 - 80034a8: 6213 str r3, [r2, #32] - 80034aa: e01c b.n 80034e6 - 80034ac: 687b ldr r3, [r7, #4] - 80034ae: 68db ldr r3, [r3, #12] - 80034b0: 2b05 cmp r3, #5 - 80034b2: d10c bne.n 80034ce - 80034b4: 4b6d ldr r3, [pc, #436] ; (800366c ) - 80034b6: 6a1b ldr r3, [r3, #32] - 80034b8: 4a6c ldr r2, [pc, #432] ; (800366c ) - 80034ba: f043 0304 orr.w r3, r3, #4 - 80034be: 6213 str r3, [r2, #32] - 80034c0: 4b6a ldr r3, [pc, #424] ; (800366c ) - 80034c2: 6a1b ldr r3, [r3, #32] - 80034c4: 4a69 ldr r2, [pc, #420] ; (800366c ) - 80034c6: f043 0301 orr.w r3, r3, #1 - 80034ca: 6213 str r3, [r2, #32] - 80034cc: e00b b.n 80034e6 - 80034ce: 4b67 ldr r3, [pc, #412] ; (800366c ) - 80034d0: 6a1b ldr r3, [r3, #32] - 80034d2: 4a66 ldr r2, [pc, #408] ; (800366c ) - 80034d4: f023 0301 bic.w r3, r3, #1 - 80034d8: 6213 str r3, [r2, #32] - 80034da: 4b64 ldr r3, [pc, #400] ; (800366c ) - 80034dc: 6a1b ldr r3, [r3, #32] - 80034de: 4a63 ldr r2, [pc, #396] ; (800366c ) - 80034e0: f023 0304 bic.w r3, r3, #4 - 80034e4: 6213 str r3, [r2, #32] + 8003658: 687b ldr r3, [r7, #4] + 800365a: 68db ldr r3, [r3, #12] + 800365c: 2b01 cmp r3, #1 + 800365e: d106 bne.n 800366e + 8003660: 4b7b ldr r3, [pc, #492] ; (8003850 ) + 8003662: 6a1b ldr r3, [r3, #32] + 8003664: 4a7a ldr r2, [pc, #488] ; (8003850 ) + 8003666: f043 0301 orr.w r3, r3, #1 + 800366a: 6213 str r3, [r2, #32] + 800366c: e02d b.n 80036ca + 800366e: 687b ldr r3, [r7, #4] + 8003670: 68db ldr r3, [r3, #12] + 8003672: 2b00 cmp r3, #0 + 8003674: d10c bne.n 8003690 + 8003676: 4b76 ldr r3, [pc, #472] ; (8003850 ) + 8003678: 6a1b ldr r3, [r3, #32] + 800367a: 4a75 ldr r2, [pc, #468] ; (8003850 ) + 800367c: f023 0301 bic.w r3, r3, #1 + 8003680: 6213 str r3, [r2, #32] + 8003682: 4b73 ldr r3, [pc, #460] ; (8003850 ) + 8003684: 6a1b ldr r3, [r3, #32] + 8003686: 4a72 ldr r2, [pc, #456] ; (8003850 ) + 8003688: f023 0304 bic.w r3, r3, #4 + 800368c: 6213 str r3, [r2, #32] + 800368e: e01c b.n 80036ca + 8003690: 687b ldr r3, [r7, #4] + 8003692: 68db ldr r3, [r3, #12] + 8003694: 2b05 cmp r3, #5 + 8003696: d10c bne.n 80036b2 + 8003698: 4b6d ldr r3, [pc, #436] ; (8003850 ) + 800369a: 6a1b ldr r3, [r3, #32] + 800369c: 4a6c ldr r2, [pc, #432] ; (8003850 ) + 800369e: f043 0304 orr.w r3, r3, #4 + 80036a2: 6213 str r3, [r2, #32] + 80036a4: 4b6a ldr r3, [pc, #424] ; (8003850 ) + 80036a6: 6a1b ldr r3, [r3, #32] + 80036a8: 4a69 ldr r2, [pc, #420] ; (8003850 ) + 80036aa: f043 0301 orr.w r3, r3, #1 + 80036ae: 6213 str r3, [r2, #32] + 80036b0: e00b b.n 80036ca + 80036b2: 4b67 ldr r3, [pc, #412] ; (8003850 ) + 80036b4: 6a1b ldr r3, [r3, #32] + 80036b6: 4a66 ldr r2, [pc, #408] ; (8003850 ) + 80036b8: f023 0301 bic.w r3, r3, #1 + 80036bc: 6213 str r3, [r2, #32] + 80036be: 4b64 ldr r3, [pc, #400] ; (8003850 ) + 80036c0: 6a1b ldr r3, [r3, #32] + 80036c2: 4a63 ldr r2, [pc, #396] ; (8003850 ) + 80036c4: f023 0304 bic.w r3, r3, #4 + 80036c8: 6213 str r3, [r2, #32] /* Check the LSE State */ if (RCC_OscInitStruct->LSEState != RCC_LSE_OFF) - 80034e6: 687b ldr r3, [r7, #4] - 80034e8: 68db ldr r3, [r3, #12] - 80034ea: 2b00 cmp r3, #0 - 80034ec: d015 beq.n 800351a + 80036ca: 687b ldr r3, [r7, #4] + 80036cc: 68db ldr r3, [r3, #12] + 80036ce: 2b00 cmp r3, #0 + 80036d0: d015 beq.n 80036fe { /* Get Start Tick */ tickstart = HAL_GetTick(); - 80034ee: f7fe fb43 bl 8001b78 - 80034f2: 6138 str r0, [r7, #16] + 80036d2: f7fe fb43 bl 8001d5c + 80036d6: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 80034f4: e00a b.n 800350c + 80036d8: e00a b.n 80036f0 { if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) - 80034f6: f7fe fb3f bl 8001b78 - 80034fa: 4602 mov r2, r0 - 80034fc: 693b ldr r3, [r7, #16] - 80034fe: 1ad3 subs r3, r2, r3 - 8003500: f241 3288 movw r2, #5000 ; 0x1388 - 8003504: 4293 cmp r3, r2 - 8003506: d901 bls.n 800350c + 80036da: f7fe fb3f bl 8001d5c + 80036de: 4602 mov r2, r0 + 80036e0: 693b ldr r3, [r7, #16] + 80036e2: 1ad3 subs r3, r2, r3 + 80036e4: f241 3288 movw r2, #5000 ; 0x1388 + 80036e8: 4293 cmp r3, r2 + 80036ea: d901 bls.n 80036f0 { return HAL_TIMEOUT; - 8003508: 2303 movs r3, #3 - 800350a: e0ab b.n 8003664 + 80036ec: 2303 movs r3, #3 + 80036ee: e0ab b.n 8003848 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 800350c: 4b57 ldr r3, [pc, #348] ; (800366c ) - 800350e: 6a1b ldr r3, [r3, #32] - 8003510: f003 0302 and.w r3, r3, #2 - 8003514: 2b00 cmp r3, #0 - 8003516: d0ee beq.n 80034f6 - 8003518: e014 b.n 8003544 + 80036f0: 4b57 ldr r3, [pc, #348] ; (8003850 ) + 80036f2: 6a1b ldr r3, [r3, #32] + 80036f4: f003 0302 and.w r3, r3, #2 + 80036f8: 2b00 cmp r3, #0 + 80036fa: d0ee beq.n 80036da + 80036fc: e014 b.n 8003728 } } else { /* Get Start Tick */ tickstart = HAL_GetTick(); - 800351a: f7fe fb2d bl 8001b78 - 800351e: 6138 str r0, [r7, #16] + 80036fe: f7fe fb2d bl 8001d5c + 8003702: 6138 str r0, [r7, #16] /* Wait till LSE is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) - 8003520: e00a b.n 8003538 + 8003704: e00a b.n 800371c { if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) - 8003522: f7fe fb29 bl 8001b78 - 8003526: 4602 mov r2, r0 - 8003528: 693b ldr r3, [r7, #16] - 800352a: 1ad3 subs r3, r2, r3 - 800352c: f241 3288 movw r2, #5000 ; 0x1388 - 8003530: 4293 cmp r3, r2 - 8003532: d901 bls.n 8003538 + 8003706: f7fe fb29 bl 8001d5c + 800370a: 4602 mov r2, r0 + 800370c: 693b ldr r3, [r7, #16] + 800370e: 1ad3 subs r3, r2, r3 + 8003710: f241 3288 movw r2, #5000 ; 0x1388 + 8003714: 4293 cmp r3, r2 + 8003716: d901 bls.n 800371c { return HAL_TIMEOUT; - 8003534: 2303 movs r3, #3 - 8003536: e095 b.n 8003664 + 8003718: 2303 movs r3, #3 + 800371a: e095 b.n 8003848 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) - 8003538: 4b4c ldr r3, [pc, #304] ; (800366c ) - 800353a: 6a1b ldr r3, [r3, #32] - 800353c: f003 0302 and.w r3, r3, #2 - 8003540: 2b00 cmp r3, #0 - 8003542: d1ee bne.n 8003522 + 800371c: 4b4c ldr r3, [pc, #304] ; (8003850 ) + 800371e: 6a1b ldr r3, [r3, #32] + 8003720: f003 0302 and.w r3, r3, #2 + 8003724: 2b00 cmp r3, #0 + 8003726: d1ee bne.n 8003706 } } } /* Require to disable power clock if necessary */ if (pwrclkchanged == SET) - 8003544: 7dfb ldrb r3, [r7, #23] - 8003546: 2b01 cmp r3, #1 - 8003548: d105 bne.n 8003556 + 8003728: 7dfb ldrb r3, [r7, #23] + 800372a: 2b01 cmp r3, #1 + 800372c: d105 bne.n 800373a { __HAL_RCC_PWR_CLK_DISABLE(); - 800354a: 4b48 ldr r3, [pc, #288] ; (800366c ) - 800354c: 69db ldr r3, [r3, #28] - 800354e: 4a47 ldr r2, [pc, #284] ; (800366c ) - 8003550: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 - 8003554: 61d3 str r3, [r2, #28] + 800372e: 4b48 ldr r3, [pc, #288] ; (8003850 ) + 8003730: 69db ldr r3, [r3, #28] + 8003732: 4a47 ldr r2, [pc, #284] ; (8003850 ) + 8003734: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 + 8003738: 61d3 str r3, [r2, #28] #endif /* RCC_CR_PLL2ON */ /*-------------------------------- PLL Configuration -----------------------*/ /* Check the parameters */ assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) - 8003556: 687b ldr r3, [r7, #4] - 8003558: 69db ldr r3, [r3, #28] - 800355a: 2b00 cmp r3, #0 - 800355c: f000 8081 beq.w 8003662 + 800373a: 687b ldr r3, [r7, #4] + 800373c: 69db ldr r3, [r3, #28] + 800373e: 2b00 cmp r3, #0 + 8003740: f000 8081 beq.w 8003846 { /* Check if the PLL is used as system clock or not */ if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) - 8003560: 4b42 ldr r3, [pc, #264] ; (800366c ) - 8003562: 685b ldr r3, [r3, #4] - 8003564: f003 030c and.w r3, r3, #12 - 8003568: 2b08 cmp r3, #8 - 800356a: d061 beq.n 8003630 + 8003744: 4b42 ldr r3, [pc, #264] ; (8003850 ) + 8003746: 685b ldr r3, [r3, #4] + 8003748: f003 030c and.w r3, r3, #12 + 800374c: 2b08 cmp r3, #8 + 800374e: d061 beq.n 8003814 { if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) - 800356c: 687b ldr r3, [r7, #4] - 800356e: 69db ldr r3, [r3, #28] - 8003570: 2b02 cmp r3, #2 - 8003572: d146 bne.n 8003602 + 8003750: 687b ldr r3, [r7, #4] + 8003752: 69db ldr r3, [r3, #28] + 8003754: 2b02 cmp r3, #2 + 8003756: d146 bne.n 80037e6 /* Check the parameters */ assert_param(IS_RCC_PLLSOURCE(RCC_OscInitStruct->PLL.PLLSource)); assert_param(IS_RCC_PLL_MUL(RCC_OscInitStruct->PLL.PLLMUL)); /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 8003574: 4b3f ldr r3, [pc, #252] ; (8003674 ) - 8003576: 2200 movs r2, #0 - 8003578: 601a str r2, [r3, #0] + 8003758: 4b3f ldr r3, [pc, #252] ; (8003858 ) + 800375a: 2200 movs r2, #0 + 800375c: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 800357a: f7fe fafd bl 8001b78 - 800357e: 6138 str r0, [r7, #16] + 800375e: f7fe fafd bl 8001d5c + 8003762: 6138 str r0, [r7, #16] /* Wait till PLL is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8003580: e008 b.n 8003594 + 8003764: e008 b.n 8003778 { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8003582: f7fe faf9 bl 8001b78 - 8003586: 4602 mov r2, r0 - 8003588: 693b ldr r3, [r7, #16] - 800358a: 1ad3 subs r3, r2, r3 - 800358c: 2b02 cmp r3, #2 - 800358e: d901 bls.n 8003594 + 8003766: f7fe faf9 bl 8001d5c + 800376a: 4602 mov r2, r0 + 800376c: 693b ldr r3, [r7, #16] + 800376e: 1ad3 subs r3, r2, r3 + 8003770: 2b02 cmp r3, #2 + 8003772: d901 bls.n 8003778 { return HAL_TIMEOUT; - 8003590: 2303 movs r3, #3 - 8003592: e067 b.n 8003664 + 8003774: 2303 movs r3, #3 + 8003776: e067 b.n 8003848 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8003594: 4b35 ldr r3, [pc, #212] ; (800366c ) - 8003596: 681b ldr r3, [r3, #0] - 8003598: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 800359c: 2b00 cmp r3, #0 - 800359e: d1f0 bne.n 8003582 + 8003778: 4b35 ldr r3, [pc, #212] ; (8003850 ) + 800377a: 681b ldr r3, [r3, #0] + 800377c: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8003780: 2b00 cmp r3, #0 + 8003782: d1f0 bne.n 8003766 } } /* Configure the HSE prediv factor --------------------------------*/ /* It can be written only when the PLL is disabled. Not used in PLL source is different than HSE */ if (RCC_OscInitStruct->PLL.PLLSource == RCC_PLLSOURCE_HSE) - 80035a0: 687b ldr r3, [r7, #4] - 80035a2: 6a1b ldr r3, [r3, #32] - 80035a4: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 80035a8: d108 bne.n 80035bc + 8003784: 687b ldr r3, [r7, #4] + 8003786: 6a1b ldr r3, [r3, #32] + 8003788: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 800378c: d108 bne.n 80037a0 /* Set PREDIV1 source */ SET_BIT(RCC->CFGR2, RCC_OscInitStruct->Prediv1Source); #endif /* RCC_CFGR2_PREDIV1SRC */ /* Set PREDIV1 Value */ __HAL_RCC_HSE_PREDIV_CONFIG(RCC_OscInitStruct->HSEPredivValue); - 80035aa: 4b30 ldr r3, [pc, #192] ; (800366c ) - 80035ac: 685b ldr r3, [r3, #4] - 80035ae: f423 3200 bic.w r2, r3, #131072 ; 0x20000 - 80035b2: 687b ldr r3, [r7, #4] - 80035b4: 689b ldr r3, [r3, #8] - 80035b6: 492d ldr r1, [pc, #180] ; (800366c ) - 80035b8: 4313 orrs r3, r2 - 80035ba: 604b str r3, [r1, #4] + 800378e: 4b30 ldr r3, [pc, #192] ; (8003850 ) + 8003790: 685b ldr r3, [r3, #4] + 8003792: f423 3200 bic.w r2, r3, #131072 ; 0x20000 + 8003796: 687b ldr r3, [r7, #4] + 8003798: 689b ldr r3, [r3, #8] + 800379a: 492d ldr r1, [pc, #180] ; (8003850 ) + 800379c: 4313 orrs r3, r2 + 800379e: 604b str r3, [r1, #4] } /* Configure the main PLL clock source and multiplication factors. */ __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, - 80035bc: 4b2b ldr r3, [pc, #172] ; (800366c ) - 80035be: 685b ldr r3, [r3, #4] - 80035c0: f423 1274 bic.w r2, r3, #3997696 ; 0x3d0000 - 80035c4: 687b ldr r3, [r7, #4] - 80035c6: 6a19 ldr r1, [r3, #32] - 80035c8: 687b ldr r3, [r7, #4] - 80035ca: 6a5b ldr r3, [r3, #36] ; 0x24 - 80035cc: 430b orrs r3, r1 - 80035ce: 4927 ldr r1, [pc, #156] ; (800366c ) - 80035d0: 4313 orrs r3, r2 - 80035d2: 604b str r3, [r1, #4] + 80037a0: 4b2b ldr r3, [pc, #172] ; (8003850 ) + 80037a2: 685b ldr r3, [r3, #4] + 80037a4: f423 1274 bic.w r2, r3, #3997696 ; 0x3d0000 + 80037a8: 687b ldr r3, [r7, #4] + 80037aa: 6a19 ldr r1, [r3, #32] + 80037ac: 687b ldr r3, [r7, #4] + 80037ae: 6a5b ldr r3, [r3, #36] ; 0x24 + 80037b0: 430b orrs r3, r1 + 80037b2: 4927 ldr r1, [pc, #156] ; (8003850 ) + 80037b4: 4313 orrs r3, r2 + 80037b6: 604b str r3, [r1, #4] RCC_OscInitStruct->PLL.PLLMUL); /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); - 80035d4: 4b27 ldr r3, [pc, #156] ; (8003674 ) - 80035d6: 2201 movs r2, #1 - 80035d8: 601a str r2, [r3, #0] + 80037b8: 4b27 ldr r3, [pc, #156] ; (8003858 ) + 80037ba: 2201 movs r2, #1 + 80037bc: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80035da: f7fe facd bl 8001b78 - 80035de: 6138 str r0, [r7, #16] + 80037be: f7fe facd bl 8001d5c + 80037c2: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 80035e0: e008 b.n 80035f4 + 80037c4: e008 b.n 80037d8 { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 80035e2: f7fe fac9 bl 8001b78 - 80035e6: 4602 mov r2, r0 - 80035e8: 693b ldr r3, [r7, #16] - 80035ea: 1ad3 subs r3, r2, r3 - 80035ec: 2b02 cmp r3, #2 - 80035ee: d901 bls.n 80035f4 + 80037c6: f7fe fac9 bl 8001d5c + 80037ca: 4602 mov r2, r0 + 80037cc: 693b ldr r3, [r7, #16] + 80037ce: 1ad3 subs r3, r2, r3 + 80037d0: 2b02 cmp r3, #2 + 80037d2: d901 bls.n 80037d8 { return HAL_TIMEOUT; - 80035f0: 2303 movs r3, #3 - 80035f2: e037 b.n 8003664 + 80037d4: 2303 movs r3, #3 + 80037d6: e037 b.n 8003848 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 80035f4: 4b1d ldr r3, [pc, #116] ; (800366c ) - 80035f6: 681b ldr r3, [r3, #0] - 80035f8: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 80035fc: 2b00 cmp r3, #0 - 80035fe: d0f0 beq.n 80035e2 - 8003600: e02f b.n 8003662 + 80037d8: 4b1d ldr r3, [pc, #116] ; (8003850 ) + 80037da: 681b ldr r3, [r3, #0] + 80037dc: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 80037e0: 2b00 cmp r3, #0 + 80037e2: d0f0 beq.n 80037c6 + 80037e4: e02f b.n 8003846 } } else { /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 8003602: 4b1c ldr r3, [pc, #112] ; (8003674 ) - 8003604: 2200 movs r2, #0 - 8003606: 601a str r2, [r3, #0] + 80037e6: 4b1c ldr r3, [pc, #112] ; (8003858 ) + 80037e8: 2200 movs r2, #0 + 80037ea: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003608: f7fe fab6 bl 8001b78 - 800360c: 6138 str r0, [r7, #16] + 80037ec: f7fe fab6 bl 8001d5c + 80037f0: 6138 str r0, [r7, #16] /* Wait till PLL is disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 800360e: e008 b.n 8003622 + 80037f2: e008 b.n 8003806 { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8003610: f7fe fab2 bl 8001b78 - 8003614: 4602 mov r2, r0 - 8003616: 693b ldr r3, [r7, #16] - 8003618: 1ad3 subs r3, r2, r3 - 800361a: 2b02 cmp r3, #2 - 800361c: d901 bls.n 8003622 + 80037f4: f7fe fab2 bl 8001d5c + 80037f8: 4602 mov r2, r0 + 80037fa: 693b ldr r3, [r7, #16] + 80037fc: 1ad3 subs r3, r2, r3 + 80037fe: 2b02 cmp r3, #2 + 8003800: d901 bls.n 8003806 { return HAL_TIMEOUT; - 800361e: 2303 movs r3, #3 - 8003620: e020 b.n 8003664 + 8003802: 2303 movs r3, #3 + 8003804: e020 b.n 8003848 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8003622: 4b12 ldr r3, [pc, #72] ; (800366c ) - 8003624: 681b ldr r3, [r3, #0] - 8003626: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 800362a: 2b00 cmp r3, #0 - 800362c: d1f0 bne.n 8003610 - 800362e: e018 b.n 8003662 + 8003806: 4b12 ldr r3, [pc, #72] ; (8003850 ) + 8003808: 681b ldr r3, [r3, #0] + 800380a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 800380e: 2b00 cmp r3, #0 + 8003810: d1f0 bne.n 80037f4 + 8003812: e018 b.n 8003846 } } else { /* Check if there is a request to disable the PLL used as System clock source */ if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) - 8003630: 687b ldr r3, [r7, #4] - 8003632: 69db ldr r3, [r3, #28] - 8003634: 2b01 cmp r3, #1 - 8003636: d101 bne.n 800363c + 8003814: 687b ldr r3, [r7, #4] + 8003816: 69db ldr r3, [r3, #28] + 8003818: 2b01 cmp r3, #1 + 800381a: d101 bne.n 8003820 { return HAL_ERROR; - 8003638: 2301 movs r3, #1 - 800363a: e013 b.n 8003664 + 800381c: 2301 movs r3, #1 + 800381e: e013 b.n 8003848 } else { /* Do not return HAL_ERROR if request repeats the current configuration */ pll_config = RCC->CFGR; - 800363c: 4b0b ldr r3, [pc, #44] ; (800366c ) - 800363e: 685b ldr r3, [r3, #4] - 8003640: 60fb str r3, [r7, #12] + 8003820: 4b0b ldr r3, [pc, #44] ; (8003850 ) + 8003822: 685b ldr r3, [r3, #4] + 8003824: 60fb str r3, [r7, #12] if ((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 8003642: 68fb ldr r3, [r7, #12] - 8003644: f403 3280 and.w r2, r3, #65536 ; 0x10000 - 8003648: 687b ldr r3, [r7, #4] - 800364a: 6a1b ldr r3, [r3, #32] - 800364c: 429a cmp r2, r3 - 800364e: d106 bne.n 800365e + 8003826: 68fb ldr r3, [r7, #12] + 8003828: f403 3280 and.w r2, r3, #65536 ; 0x10000 + 800382c: 687b ldr r3, [r7, #4] + 800382e: 6a1b ldr r3, [r3, #32] + 8003830: 429a cmp r2, r3 + 8003832: d106 bne.n 8003842 (READ_BIT(pll_config, RCC_CFGR_PLLMULL) != RCC_OscInitStruct->PLL.PLLMUL)) - 8003650: 68fb ldr r3, [r7, #12] - 8003652: f403 1270 and.w r2, r3, #3932160 ; 0x3c0000 - 8003656: 687b ldr r3, [r7, #4] - 8003658: 6a5b ldr r3, [r3, #36] ; 0x24 + 8003834: 68fb ldr r3, [r7, #12] + 8003836: f403 1270 and.w r2, r3, #3932160 ; 0x3c0000 + 800383a: 687b ldr r3, [r7, #4] + 800383c: 6a5b ldr r3, [r3, #36] ; 0x24 if ((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 800365a: 429a cmp r2, r3 - 800365c: d001 beq.n 8003662 + 800383e: 429a cmp r2, r3 + 8003840: d001 beq.n 8003846 { return HAL_ERROR; - 800365e: 2301 movs r3, #1 - 8003660: e000 b.n 8003664 + 8003842: 2301 movs r3, #1 + 8003844: e000 b.n 8003848 } } } } return HAL_OK; - 8003662: 2300 movs r3, #0 + 8003846: 2300 movs r3, #0 } - 8003664: 4618 mov r0, r3 - 8003666: 3718 adds r7, #24 - 8003668: 46bd mov sp, r7 - 800366a: bd80 pop {r7, pc} - 800366c: 40021000 .word 0x40021000 - 8003670: 40007000 .word 0x40007000 - 8003674: 42420060 .word 0x42420060 + 8003848: 4618 mov r0, r3 + 800384a: 3718 adds r7, #24 + 800384c: 46bd mov sp, r7 + 800384e: bd80 pop {r7, pc} + 8003850: 40021000 .word 0x40021000 + 8003854: 40007000 .word 0x40007000 + 8003858: 42420060 .word 0x42420060 -08003678 : +0800385c : * You can use @ref HAL_RCC_GetClockConfig() function to know which clock is * currently used as system clock source. * @retval HAL status */ HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) { - 8003678: b580 push {r7, lr} - 800367a: b084 sub sp, #16 - 800367c: af00 add r7, sp, #0 - 800367e: 6078 str r0, [r7, #4] - 8003680: 6039 str r1, [r7, #0] + 800385c: b580 push {r7, lr} + 800385e: b084 sub sp, #16 + 8003860: af00 add r7, sp, #0 + 8003862: 6078 str r0, [r7, #4] + 8003864: 6039 str r1, [r7, #0] uint32_t tickstart; /* Check Null pointer */ if (RCC_ClkInitStruct == NULL) - 8003682: 687b ldr r3, [r7, #4] - 8003684: 2b00 cmp r3, #0 - 8003686: d101 bne.n 800368c + 8003866: 687b ldr r3, [r7, #4] + 8003868: 2b00 cmp r3, #0 + 800386a: d101 bne.n 8003870 { return HAL_ERROR; - 8003688: 2301 movs r3, #1 - 800368a: e0d0 b.n 800382e + 800386c: 2301 movs r3, #1 + 800386e: e0d0 b.n 8003a12 must be correctly programmed according to the frequency of the CPU clock (HCLK) of the device. */ #if defined(FLASH_ACR_LATENCY) /* Increasing the number of wait states because of higher CPU frequency */ if (FLatency > __HAL_FLASH_GET_LATENCY()) - 800368c: 4b6a ldr r3, [pc, #424] ; (8003838 ) - 800368e: 681b ldr r3, [r3, #0] - 8003690: f003 0307 and.w r3, r3, #7 - 8003694: 683a ldr r2, [r7, #0] - 8003696: 429a cmp r2, r3 - 8003698: d910 bls.n 80036bc + 8003870: 4b6a ldr r3, [pc, #424] ; (8003a1c ) + 8003872: 681b ldr r3, [r3, #0] + 8003874: f003 0307 and.w r3, r3, #7 + 8003878: 683a ldr r2, [r7, #0] + 800387a: 429a cmp r2, r3 + 800387c: d910 bls.n 80038a0 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 800369a: 4b67 ldr r3, [pc, #412] ; (8003838 ) - 800369c: 681b ldr r3, [r3, #0] - 800369e: f023 0207 bic.w r2, r3, #7 - 80036a2: 4965 ldr r1, [pc, #404] ; (8003838 ) - 80036a4: 683b ldr r3, [r7, #0] - 80036a6: 4313 orrs r3, r2 - 80036a8: 600b str r3, [r1, #0] + 800387e: 4b67 ldr r3, [pc, #412] ; (8003a1c ) + 8003880: 681b ldr r3, [r3, #0] + 8003882: f023 0207 bic.w r2, r3, #7 + 8003886: 4965 ldr r1, [pc, #404] ; (8003a1c ) + 8003888: 683b ldr r3, [r7, #0] + 800388a: 4313 orrs r3, r2 + 800388c: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if (__HAL_FLASH_GET_LATENCY() != FLatency) - 80036aa: 4b63 ldr r3, [pc, #396] ; (8003838 ) - 80036ac: 681b ldr r3, [r3, #0] - 80036ae: f003 0307 and.w r3, r3, #7 - 80036b2: 683a ldr r2, [r7, #0] - 80036b4: 429a cmp r2, r3 - 80036b6: d001 beq.n 80036bc + 800388e: 4b63 ldr r3, [pc, #396] ; (8003a1c ) + 8003890: 681b ldr r3, [r3, #0] + 8003892: f003 0307 and.w r3, r3, #7 + 8003896: 683a ldr r2, [r7, #0] + 8003898: 429a cmp r2, r3 + 800389a: d001 beq.n 80038a0 { return HAL_ERROR; - 80036b8: 2301 movs r3, #1 - 80036ba: e0b8 b.n 800382e + 800389c: 2301 movs r3, #1 + 800389e: e0b8 b.n 8003a12 } } #endif /* FLASH_ACR_LATENCY */ /*-------------------------- HCLK Configuration --------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) - 80036bc: 687b ldr r3, [r7, #4] - 80036be: 681b ldr r3, [r3, #0] - 80036c0: f003 0302 and.w r3, r3, #2 - 80036c4: 2b00 cmp r3, #0 - 80036c6: d020 beq.n 800370a + 80038a0: 687b ldr r3, [r7, #4] + 80038a2: 681b ldr r3, [r3, #0] + 80038a4: f003 0302 and.w r3, r3, #2 + 80038a8: 2b00 cmp r3, #0 + 80038aa: d020 beq.n 80038ee { /* Set the highest APBx dividers in order to ensure that we do not go through a non-spec phase whatever we decrease or increase HCLK. */ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 80036c8: 687b ldr r3, [r7, #4] - 80036ca: 681b ldr r3, [r3, #0] - 80036cc: f003 0304 and.w r3, r3, #4 - 80036d0: 2b00 cmp r3, #0 - 80036d2: d005 beq.n 80036e0 + 80038ac: 687b ldr r3, [r7, #4] + 80038ae: 681b ldr r3, [r3, #0] + 80038b0: f003 0304 and.w r3, r3, #4 + 80038b4: 2b00 cmp r3, #0 + 80038b6: d005 beq.n 80038c4 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); - 80036d4: 4b59 ldr r3, [pc, #356] ; (800383c ) - 80036d6: 685b ldr r3, [r3, #4] - 80036d8: 4a58 ldr r2, [pc, #352] ; (800383c ) - 80036da: f443 63e0 orr.w r3, r3, #1792 ; 0x700 - 80036de: 6053 str r3, [r2, #4] + 80038b8: 4b59 ldr r3, [pc, #356] ; (8003a20 ) + 80038ba: 685b ldr r3, [r3, #4] + 80038bc: 4a58 ldr r2, [pc, #352] ; (8003a20 ) + 80038be: f443 63e0 orr.w r3, r3, #1792 ; 0x700 + 80038c2: 6053 str r3, [r2, #4] } if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 80036e0: 687b ldr r3, [r7, #4] - 80036e2: 681b ldr r3, [r3, #0] - 80036e4: f003 0308 and.w r3, r3, #8 - 80036e8: 2b00 cmp r3, #0 - 80036ea: d005 beq.n 80036f8 + 80038c4: 687b ldr r3, [r7, #4] + 80038c6: 681b ldr r3, [r3, #0] + 80038c8: f003 0308 and.w r3, r3, #8 + 80038cc: 2b00 cmp r3, #0 + 80038ce: d005 beq.n 80038dc { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); - 80036ec: 4b53 ldr r3, [pc, #332] ; (800383c ) - 80036ee: 685b ldr r3, [r3, #4] - 80036f0: 4a52 ldr r2, [pc, #328] ; (800383c ) - 80036f2: f443 5360 orr.w r3, r3, #14336 ; 0x3800 - 80036f6: 6053 str r3, [r2, #4] + 80038d0: 4b53 ldr r3, [pc, #332] ; (8003a20 ) + 80038d2: 685b ldr r3, [r3, #4] + 80038d4: 4a52 ldr r2, [pc, #328] ; (8003a20 ) + 80038d6: f443 5360 orr.w r3, r3, #14336 ; 0x3800 + 80038da: 6053 str r3, [r2, #4] } /* Set the new HCLK clock divider */ assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); - 80036f8: 4b50 ldr r3, [pc, #320] ; (800383c ) - 80036fa: 685b ldr r3, [r3, #4] - 80036fc: f023 02f0 bic.w r2, r3, #240 ; 0xf0 - 8003700: 687b ldr r3, [r7, #4] - 8003702: 689b ldr r3, [r3, #8] - 8003704: 494d ldr r1, [pc, #308] ; (800383c ) - 8003706: 4313 orrs r3, r2 - 8003708: 604b str r3, [r1, #4] + 80038dc: 4b50 ldr r3, [pc, #320] ; (8003a20 ) + 80038de: 685b ldr r3, [r3, #4] + 80038e0: f023 02f0 bic.w r2, r3, #240 ; 0xf0 + 80038e4: 687b ldr r3, [r7, #4] + 80038e6: 689b ldr r3, [r3, #8] + 80038e8: 494d ldr r1, [pc, #308] ; (8003a20 ) + 80038ea: 4313 orrs r3, r2 + 80038ec: 604b str r3, [r1, #4] } /*------------------------- SYSCLK Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) - 800370a: 687b ldr r3, [r7, #4] - 800370c: 681b ldr r3, [r3, #0] - 800370e: f003 0301 and.w r3, r3, #1 - 8003712: 2b00 cmp r3, #0 - 8003714: d040 beq.n 8003798 + 80038ee: 687b ldr r3, [r7, #4] + 80038f0: 681b ldr r3, [r3, #0] + 80038f2: f003 0301 and.w r3, r3, #1 + 80038f6: 2b00 cmp r3, #0 + 80038f8: d040 beq.n 800397c { assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); /* HSE is selected as System Clock Source */ if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) - 8003716: 687b ldr r3, [r7, #4] - 8003718: 685b ldr r3, [r3, #4] - 800371a: 2b01 cmp r3, #1 - 800371c: d107 bne.n 800372e + 80038fa: 687b ldr r3, [r7, #4] + 80038fc: 685b ldr r3, [r3, #4] + 80038fe: 2b01 cmp r3, #1 + 8003900: d107 bne.n 8003912 { /* Check the HSE ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 800371e: 4b47 ldr r3, [pc, #284] ; (800383c ) - 8003720: 681b ldr r3, [r3, #0] - 8003722: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8003726: 2b00 cmp r3, #0 - 8003728: d115 bne.n 8003756 + 8003902: 4b47 ldr r3, [pc, #284] ; (8003a20 ) + 8003904: 681b ldr r3, [r3, #0] + 8003906: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 800390a: 2b00 cmp r3, #0 + 800390c: d115 bne.n 800393a { return HAL_ERROR; - 800372a: 2301 movs r3, #1 - 800372c: e07f b.n 800382e + 800390e: 2301 movs r3, #1 + 8003910: e07f b.n 8003a12 } } /* PLL is selected as System Clock Source */ else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) - 800372e: 687b ldr r3, [r7, #4] - 8003730: 685b ldr r3, [r3, #4] - 8003732: 2b02 cmp r3, #2 - 8003734: d107 bne.n 8003746 + 8003912: 687b ldr r3, [r7, #4] + 8003914: 685b ldr r3, [r3, #4] + 8003916: 2b02 cmp r3, #2 + 8003918: d107 bne.n 800392a { /* Check the PLL ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 8003736: 4b41 ldr r3, [pc, #260] ; (800383c ) - 8003738: 681b ldr r3, [r3, #0] - 800373a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 800373e: 2b00 cmp r3, #0 - 8003740: d109 bne.n 8003756 + 800391a: 4b41 ldr r3, [pc, #260] ; (8003a20 ) + 800391c: 681b ldr r3, [r3, #0] + 800391e: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8003922: 2b00 cmp r3, #0 + 8003924: d109 bne.n 800393a { return HAL_ERROR; - 8003742: 2301 movs r3, #1 - 8003744: e073 b.n 800382e + 8003926: 2301 movs r3, #1 + 8003928: e073 b.n 8003a12 } /* HSI is selected as System Clock Source */ else { /* Check the HSI ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8003746: 4b3d ldr r3, [pc, #244] ; (800383c ) - 8003748: 681b ldr r3, [r3, #0] - 800374a: f003 0302 and.w r3, r3, #2 - 800374e: 2b00 cmp r3, #0 - 8003750: d101 bne.n 8003756 + 800392a: 4b3d ldr r3, [pc, #244] ; (8003a20 ) + 800392c: 681b ldr r3, [r3, #0] + 800392e: f003 0302 and.w r3, r3, #2 + 8003932: 2b00 cmp r3, #0 + 8003934: d101 bne.n 800393a { return HAL_ERROR; - 8003752: 2301 movs r3, #1 - 8003754: e06b b.n 800382e + 8003936: 2301 movs r3, #1 + 8003938: e06b b.n 8003a12 } } __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); - 8003756: 4b39 ldr r3, [pc, #228] ; (800383c ) - 8003758: 685b ldr r3, [r3, #4] - 800375a: f023 0203 bic.w r2, r3, #3 - 800375e: 687b ldr r3, [r7, #4] - 8003760: 685b ldr r3, [r3, #4] - 8003762: 4936 ldr r1, [pc, #216] ; (800383c ) - 8003764: 4313 orrs r3, r2 - 8003766: 604b str r3, [r1, #4] + 800393a: 4b39 ldr r3, [pc, #228] ; (8003a20 ) + 800393c: 685b ldr r3, [r3, #4] + 800393e: f023 0203 bic.w r2, r3, #3 + 8003942: 687b ldr r3, [r7, #4] + 8003944: 685b ldr r3, [r3, #4] + 8003946: 4936 ldr r1, [pc, #216] ; (8003a20 ) + 8003948: 4313 orrs r3, r2 + 800394a: 604b str r3, [r1, #4] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003768: f7fe fa06 bl 8001b78 - 800376c: 60f8 str r0, [r7, #12] + 800394c: f7fe fa06 bl 8001d5c + 8003950: 60f8 str r0, [r7, #12] while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 800376e: e00a b.n 8003786 + 8003952: e00a b.n 800396a { if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) - 8003770: f7fe fa02 bl 8001b78 - 8003774: 4602 mov r2, r0 - 8003776: 68fb ldr r3, [r7, #12] - 8003778: 1ad3 subs r3, r2, r3 - 800377a: f241 3288 movw r2, #5000 ; 0x1388 - 800377e: 4293 cmp r3, r2 - 8003780: d901 bls.n 8003786 + 8003954: f7fe fa02 bl 8001d5c + 8003958: 4602 mov r2, r0 + 800395a: 68fb ldr r3, [r7, #12] + 800395c: 1ad3 subs r3, r2, r3 + 800395e: f241 3288 movw r2, #5000 ; 0x1388 + 8003962: 4293 cmp r3, r2 + 8003964: d901 bls.n 800396a { return HAL_TIMEOUT; - 8003782: 2303 movs r3, #3 - 8003784: e053 b.n 800382e + 8003966: 2303 movs r3, #3 + 8003968: e053 b.n 8003a12 while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 8003786: 4b2d ldr r3, [pc, #180] ; (800383c ) - 8003788: 685b ldr r3, [r3, #4] - 800378a: f003 020c and.w r2, r3, #12 - 800378e: 687b ldr r3, [r7, #4] - 8003790: 685b ldr r3, [r3, #4] - 8003792: 009b lsls r3, r3, #2 - 8003794: 429a cmp r2, r3 - 8003796: d1eb bne.n 8003770 + 800396a: 4b2d ldr r3, [pc, #180] ; (8003a20 ) + 800396c: 685b ldr r3, [r3, #4] + 800396e: f003 020c and.w r2, r3, #12 + 8003972: 687b ldr r3, [r7, #4] + 8003974: 685b ldr r3, [r3, #4] + 8003976: 009b lsls r3, r3, #2 + 8003978: 429a cmp r2, r3 + 800397a: d1eb bne.n 8003954 } } #if defined(FLASH_ACR_LATENCY) /* Decreasing the number of wait states because of lower CPU frequency */ if (FLatency < __HAL_FLASH_GET_LATENCY()) - 8003798: 4b27 ldr r3, [pc, #156] ; (8003838 ) - 800379a: 681b ldr r3, [r3, #0] - 800379c: f003 0307 and.w r3, r3, #7 - 80037a0: 683a ldr r2, [r7, #0] - 80037a2: 429a cmp r2, r3 - 80037a4: d210 bcs.n 80037c8 + 800397c: 4b27 ldr r3, [pc, #156] ; (8003a1c ) + 800397e: 681b ldr r3, [r3, #0] + 8003980: f003 0307 and.w r3, r3, #7 + 8003984: 683a ldr r2, [r7, #0] + 8003986: 429a cmp r2, r3 + 8003988: d210 bcs.n 80039ac { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 80037a6: 4b24 ldr r3, [pc, #144] ; (8003838 ) - 80037a8: 681b ldr r3, [r3, #0] - 80037aa: f023 0207 bic.w r2, r3, #7 - 80037ae: 4922 ldr r1, [pc, #136] ; (8003838 ) - 80037b0: 683b ldr r3, [r7, #0] - 80037b2: 4313 orrs r3, r2 - 80037b4: 600b str r3, [r1, #0] + 800398a: 4b24 ldr r3, [pc, #144] ; (8003a1c ) + 800398c: 681b ldr r3, [r3, #0] + 800398e: f023 0207 bic.w r2, r3, #7 + 8003992: 4922 ldr r1, [pc, #136] ; (8003a1c ) + 8003994: 683b ldr r3, [r7, #0] + 8003996: 4313 orrs r3, r2 + 8003998: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if (__HAL_FLASH_GET_LATENCY() != FLatency) - 80037b6: 4b20 ldr r3, [pc, #128] ; (8003838 ) - 80037b8: 681b ldr r3, [r3, #0] - 80037ba: f003 0307 and.w r3, r3, #7 - 80037be: 683a ldr r2, [r7, #0] - 80037c0: 429a cmp r2, r3 - 80037c2: d001 beq.n 80037c8 + 800399a: 4b20 ldr r3, [pc, #128] ; (8003a1c ) + 800399c: 681b ldr r3, [r3, #0] + 800399e: f003 0307 and.w r3, r3, #7 + 80039a2: 683a ldr r2, [r7, #0] + 80039a4: 429a cmp r2, r3 + 80039a6: d001 beq.n 80039ac { return HAL_ERROR; - 80037c4: 2301 movs r3, #1 - 80037c6: e032 b.n 800382e + 80039a8: 2301 movs r3, #1 + 80039aa: e032 b.n 8003a12 } } #endif /* FLASH_ACR_LATENCY */ /*-------------------------- PCLK1 Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 80037c8: 687b ldr r3, [r7, #4] - 80037ca: 681b ldr r3, [r3, #0] - 80037cc: f003 0304 and.w r3, r3, #4 - 80037d0: 2b00 cmp r3, #0 - 80037d2: d008 beq.n 80037e6 + 80039ac: 687b ldr r3, [r7, #4] + 80039ae: 681b ldr r3, [r3, #0] + 80039b0: f003 0304 and.w r3, r3, #4 + 80039b4: 2b00 cmp r3, #0 + 80039b6: d008 beq.n 80039ca { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); - 80037d4: 4b19 ldr r3, [pc, #100] ; (800383c ) - 80037d6: 685b ldr r3, [r3, #4] - 80037d8: f423 62e0 bic.w r2, r3, #1792 ; 0x700 - 80037dc: 687b ldr r3, [r7, #4] - 80037de: 68db ldr r3, [r3, #12] - 80037e0: 4916 ldr r1, [pc, #88] ; (800383c ) - 80037e2: 4313 orrs r3, r2 - 80037e4: 604b str r3, [r1, #4] + 80039b8: 4b19 ldr r3, [pc, #100] ; (8003a20 ) + 80039ba: 685b ldr r3, [r3, #4] + 80039bc: f423 62e0 bic.w r2, r3, #1792 ; 0x700 + 80039c0: 687b ldr r3, [r7, #4] + 80039c2: 68db ldr r3, [r3, #12] + 80039c4: 4916 ldr r1, [pc, #88] ; (8003a20 ) + 80039c6: 4313 orrs r3, r2 + 80039c8: 604b str r3, [r1, #4] } /*-------------------------- PCLK2 Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 80037e6: 687b ldr r3, [r7, #4] - 80037e8: 681b ldr r3, [r3, #0] - 80037ea: f003 0308 and.w r3, r3, #8 - 80037ee: 2b00 cmp r3, #0 - 80037f0: d009 beq.n 8003806 + 80039ca: 687b ldr r3, [r7, #4] + 80039cc: 681b ldr r3, [r3, #0] + 80039ce: f003 0308 and.w r3, r3, #8 + 80039d2: 2b00 cmp r3, #0 + 80039d4: d009 beq.n 80039ea { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3)); - 80037f2: 4b12 ldr r3, [pc, #72] ; (800383c ) - 80037f4: 685b ldr r3, [r3, #4] - 80037f6: f423 5260 bic.w r2, r3, #14336 ; 0x3800 - 80037fa: 687b ldr r3, [r7, #4] - 80037fc: 691b ldr r3, [r3, #16] - 80037fe: 00db lsls r3, r3, #3 - 8003800: 490e ldr r1, [pc, #56] ; (800383c ) - 8003802: 4313 orrs r3, r2 - 8003804: 604b str r3, [r1, #4] + 80039d6: 4b12 ldr r3, [pc, #72] ; (8003a20 ) + 80039d8: 685b ldr r3, [r3, #4] + 80039da: f423 5260 bic.w r2, r3, #14336 ; 0x3800 + 80039de: 687b ldr r3, [r7, #4] + 80039e0: 691b ldr r3, [r3, #16] + 80039e2: 00db lsls r3, r3, #3 + 80039e4: 490e ldr r1, [pc, #56] ; (8003a20 ) + 80039e6: 4313 orrs r3, r2 + 80039e8: 604b str r3, [r1, #4] } /* Update the SystemCoreClock global variable */ SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos]; - 8003806: f000 f821 bl 800384c - 800380a: 4602 mov r2, r0 - 800380c: 4b0b ldr r3, [pc, #44] ; (800383c ) - 800380e: 685b ldr r3, [r3, #4] - 8003810: 091b lsrs r3, r3, #4 - 8003812: f003 030f and.w r3, r3, #15 - 8003816: 490a ldr r1, [pc, #40] ; (8003840 ) - 8003818: 5ccb ldrb r3, [r1, r3] - 800381a: fa22 f303 lsr.w r3, r2, r3 - 800381e: 4a09 ldr r2, [pc, #36] ; (8003844 ) - 8003820: 6013 str r3, [r2, #0] + 80039ea: f000 f821 bl 8003a30 + 80039ee: 4602 mov r2, r0 + 80039f0: 4b0b ldr r3, [pc, #44] ; (8003a20 ) + 80039f2: 685b ldr r3, [r3, #4] + 80039f4: 091b lsrs r3, r3, #4 + 80039f6: f003 030f and.w r3, r3, #15 + 80039fa: 490a ldr r1, [pc, #40] ; (8003a24 ) + 80039fc: 5ccb ldrb r3, [r1, r3] + 80039fe: fa22 f303 lsr.w r3, r2, r3 + 8003a02: 4a09 ldr r2, [pc, #36] ; (8003a28 ) + 8003a04: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings*/ HAL_InitTick(uwTickPrio); - 8003822: 4b09 ldr r3, [pc, #36] ; (8003848 ) - 8003824: 681b ldr r3, [r3, #0] - 8003826: 4618 mov r0, r3 - 8003828: f7fe f964 bl 8001af4 + 8003a06: 4b09 ldr r3, [pc, #36] ; (8003a2c ) + 8003a08: 681b ldr r3, [r3, #0] + 8003a0a: 4618 mov r0, r3 + 8003a0c: f7fe f964 bl 8001cd8 return HAL_OK; - 800382c: 2300 movs r3, #0 + 8003a10: 2300 movs r3, #0 } - 800382e: 4618 mov r0, r3 - 8003830: 3710 adds r7, #16 - 8003832: 46bd mov sp, r7 - 8003834: bd80 pop {r7, pc} - 8003836: bf00 nop - 8003838: 40022000 .word 0x40022000 - 800383c: 40021000 .word 0x40021000 - 8003840: 0800996c .word 0x0800996c - 8003844: 20000000 .word 0x20000000 - 8003848: 20000004 .word 0x20000004 + 8003a12: 4618 mov r0, r3 + 8003a14: 3710 adds r7, #16 + 8003a16: 46bd mov sp, r7 + 8003a18: bd80 pop {r7, pc} + 8003a1a: bf00 nop + 8003a1c: 40022000 .word 0x40022000 + 8003a20: 40021000 .word 0x40021000 + 8003a24: 0800a874 .word 0x0800a874 + 8003a28: 20000000 .word 0x20000000 + 8003a2c: 20000004 .word 0x20000004 -0800384c : +08003a30 : * right SYSCLK value. Otherwise, any configuration based on this function will be incorrect. * * @retval SYSCLK frequency */ uint32_t HAL_RCC_GetSysClockFreq(void) { - 800384c: b490 push {r4, r7} - 800384e: b08a sub sp, #40 ; 0x28 - 8003850: af00 add r7, sp, #0 + 8003a30: b490 push {r4, r7} + 8003a32: b08a sub sp, #40 ; 0x28 + 8003a34: af00 add r7, sp, #0 #if defined(RCC_CFGR2_PREDIV1SRC) const uint8_t aPLLMULFactorTable[14] = {0, 0, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 13}; const uint8_t aPredivFactorTable[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; #else const uint8_t aPLLMULFactorTable[16] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16}; - 8003852: 4b2a ldr r3, [pc, #168] ; (80038fc ) - 8003854: 1d3c adds r4, r7, #4 - 8003856: cb0f ldmia r3, {r0, r1, r2, r3} - 8003858: e884 000f stmia.w r4, {r0, r1, r2, r3} + 8003a36: 4b2a ldr r3, [pc, #168] ; (8003ae0 ) + 8003a38: 1d3c adds r4, r7, #4 + 8003a3a: cb0f ldmia r3, {r0, r1, r2, r3} + 8003a3c: e884 000f stmia.w r4, {r0, r1, r2, r3} #if defined(RCC_CFGR2_PREDIV1) const uint8_t aPredivFactorTable[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; #else const uint8_t aPredivFactorTable[2] = {1, 2}; - 800385c: f240 2301 movw r3, #513 ; 0x201 - 8003860: 803b strh r3, [r7, #0] + 8003a40: f240 2301 movw r3, #513 ; 0x201 + 8003a44: 803b strh r3, [r7, #0] #endif /*RCC_CFGR2_PREDIV1*/ #endif uint32_t tmpreg = 0U, prediv = 0U, pllclk = 0U, pllmul = 0U; - 8003862: 2300 movs r3, #0 - 8003864: 61fb str r3, [r7, #28] - 8003866: 2300 movs r3, #0 - 8003868: 61bb str r3, [r7, #24] - 800386a: 2300 movs r3, #0 - 800386c: 627b str r3, [r7, #36] ; 0x24 - 800386e: 2300 movs r3, #0 - 8003870: 617b str r3, [r7, #20] + 8003a46: 2300 movs r3, #0 + 8003a48: 61fb str r3, [r7, #28] + 8003a4a: 2300 movs r3, #0 + 8003a4c: 61bb str r3, [r7, #24] + 8003a4e: 2300 movs r3, #0 + 8003a50: 627b str r3, [r7, #36] ; 0x24 + 8003a52: 2300 movs r3, #0 + 8003a54: 617b str r3, [r7, #20] uint32_t sysclockfreq = 0U; - 8003872: 2300 movs r3, #0 - 8003874: 623b str r3, [r7, #32] + 8003a56: 2300 movs r3, #0 + 8003a58: 623b str r3, [r7, #32] #if defined(RCC_CFGR2_PREDIV1SRC) uint32_t prediv2 = 0U, pll2mul = 0U; #endif /*RCC_CFGR2_PREDIV1SRC*/ tmpreg = RCC->CFGR; - 8003876: 4b22 ldr r3, [pc, #136] ; (8003900 ) - 8003878: 685b ldr r3, [r3, #4] - 800387a: 61fb str r3, [r7, #28] + 8003a5a: 4b22 ldr r3, [pc, #136] ; (8003ae4 ) + 8003a5c: 685b ldr r3, [r3, #4] + 8003a5e: 61fb str r3, [r7, #28] /* Get SYSCLK source -------------------------------------------------------*/ switch (tmpreg & RCC_CFGR_SWS) - 800387c: 69fb ldr r3, [r7, #28] - 800387e: f003 030c and.w r3, r3, #12 - 8003882: 2b04 cmp r3, #4 - 8003884: d002 beq.n 800388c - 8003886: 2b08 cmp r3, #8 - 8003888: d003 beq.n 8003892 - 800388a: e02d b.n 80038e8 + 8003a60: 69fb ldr r3, [r7, #28] + 8003a62: f003 030c and.w r3, r3, #12 + 8003a66: 2b04 cmp r3, #4 + 8003a68: d002 beq.n 8003a70 + 8003a6a: 2b08 cmp r3, #8 + 8003a6c: d003 beq.n 8003a76 + 8003a6e: e02d b.n 8003acc { case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock */ { sysclockfreq = HSE_VALUE; - 800388c: 4b1d ldr r3, [pc, #116] ; (8003904 ) - 800388e: 623b str r3, [r7, #32] + 8003a70: 4b1d ldr r3, [pc, #116] ; (8003ae8 ) + 8003a72: 623b str r3, [r7, #32] break; - 8003890: e02d b.n 80038ee + 8003a74: e02d b.n 8003ad2 } case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock */ { pllmul = aPLLMULFactorTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMULL) >> RCC_CFGR_PLLMULL_Pos]; - 8003892: 69fb ldr r3, [r7, #28] - 8003894: 0c9b lsrs r3, r3, #18 - 8003896: f003 030f and.w r3, r3, #15 - 800389a: f107 0228 add.w r2, r7, #40 ; 0x28 - 800389e: 4413 add r3, r2 - 80038a0: f813 3c24 ldrb.w r3, [r3, #-36] - 80038a4: 617b str r3, [r7, #20] + 8003a76: 69fb ldr r3, [r7, #28] + 8003a78: 0c9b lsrs r3, r3, #18 + 8003a7a: f003 030f and.w r3, r3, #15 + 8003a7e: f107 0228 add.w r2, r7, #40 ; 0x28 + 8003a82: 4413 add r3, r2 + 8003a84: f813 3c24 ldrb.w r3, [r3, #-36] + 8003a88: 617b str r3, [r7, #20] if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2) - 80038a6: 69fb ldr r3, [r7, #28] - 80038a8: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 80038ac: 2b00 cmp r3, #0 - 80038ae: d013 beq.n 80038d8 + 8003a8a: 69fb ldr r3, [r7, #28] + 8003a8c: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8003a90: 2b00 cmp r3, #0 + 8003a92: d013 beq.n 8003abc { #if defined(RCC_CFGR2_PREDIV1) prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV1) >> RCC_CFGR2_PREDIV1_Pos]; #else prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR & RCC_CFGR_PLLXTPRE) >> RCC_CFGR_PLLXTPRE_Pos]; - 80038b0: 4b13 ldr r3, [pc, #76] ; (8003900 ) - 80038b2: 685b ldr r3, [r3, #4] - 80038b4: 0c5b lsrs r3, r3, #17 - 80038b6: f003 0301 and.w r3, r3, #1 - 80038ba: f107 0228 add.w r2, r7, #40 ; 0x28 - 80038be: 4413 add r3, r2 - 80038c0: f813 3c28 ldrb.w r3, [r3, #-40] - 80038c4: 61bb str r3, [r7, #24] + 8003a94: 4b13 ldr r3, [pc, #76] ; (8003ae4 ) + 8003a96: 685b ldr r3, [r3, #4] + 8003a98: 0c5b lsrs r3, r3, #17 + 8003a9a: f003 0301 and.w r3, r3, #1 + 8003a9e: f107 0228 add.w r2, r7, #40 ; 0x28 + 8003aa2: 4413 add r3, r2 + 8003aa4: f813 3c28 ldrb.w r3, [r3, #-40] + 8003aa8: 61bb str r3, [r7, #24] { pllclk = pllclk / 2; } #else /* HSE used as PLL clock source : PLLCLK = HSE/PREDIV1 * PLLMUL */ pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv); - 80038c6: 697b ldr r3, [r7, #20] - 80038c8: 4a0e ldr r2, [pc, #56] ; (8003904 ) - 80038ca: fb02 f203 mul.w r2, r2, r3 - 80038ce: 69bb ldr r3, [r7, #24] - 80038d0: fbb2 f3f3 udiv r3, r2, r3 - 80038d4: 627b str r3, [r7, #36] ; 0x24 - 80038d6: e004 b.n 80038e2 + 8003aaa: 697b ldr r3, [r7, #20] + 8003aac: 4a0e ldr r2, [pc, #56] ; (8003ae8 ) + 8003aae: fb02 f203 mul.w r2, r2, r3 + 8003ab2: 69bb ldr r3, [r7, #24] + 8003ab4: fbb2 f3f3 udiv r3, r2, r3 + 8003ab8: 627b str r3, [r7, #36] ; 0x24 + 8003aba: e004 b.n 8003ac6 #endif /*RCC_CFGR2_PREDIV1SRC*/ } else { /* HSI used as PLL clock source : PLLCLK = HSI/2 * PLLMUL */ pllclk = (uint32_t)((HSI_VALUE >> 1) * pllmul); - 80038d8: 697b ldr r3, [r7, #20] - 80038da: 4a0b ldr r2, [pc, #44] ; (8003908 ) - 80038dc: fb02 f303 mul.w r3, r2, r3 - 80038e0: 627b str r3, [r7, #36] ; 0x24 + 8003abc: 697b ldr r3, [r7, #20] + 8003abe: 4a0b ldr r2, [pc, #44] ; (8003aec ) + 8003ac0: fb02 f303 mul.w r3, r2, r3 + 8003ac4: 627b str r3, [r7, #36] ; 0x24 } sysclockfreq = pllclk; - 80038e2: 6a7b ldr r3, [r7, #36] ; 0x24 - 80038e4: 623b str r3, [r7, #32] + 8003ac6: 6a7b ldr r3, [r7, #36] ; 0x24 + 8003ac8: 623b str r3, [r7, #32] break; - 80038e6: e002 b.n 80038ee + 8003aca: e002 b.n 8003ad2 } case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ default: /* HSI used as system clock */ { sysclockfreq = HSI_VALUE; - 80038e8: 4b06 ldr r3, [pc, #24] ; (8003904 ) - 80038ea: 623b str r3, [r7, #32] + 8003acc: 4b06 ldr r3, [pc, #24] ; (8003ae8 ) + 8003ace: 623b str r3, [r7, #32] break; - 80038ec: bf00 nop + 8003ad0: bf00 nop } } return sysclockfreq; - 80038ee: 6a3b ldr r3, [r7, #32] + 8003ad2: 6a3b ldr r3, [r7, #32] } - 80038f0: 4618 mov r0, r3 - 80038f2: 3728 adds r7, #40 ; 0x28 - 80038f4: 46bd mov sp, r7 - 80038f6: bc90 pop {r4, r7} - 80038f8: 4770 bx lr - 80038fa: bf00 nop - 80038fc: 08009898 .word 0x08009898 - 8003900: 40021000 .word 0x40021000 - 8003904: 007a1200 .word 0x007a1200 - 8003908: 003d0900 .word 0x003d0900 + 8003ad4: 4618 mov r0, r3 + 8003ad6: 3728 adds r7, #40 ; 0x28 + 8003ad8: 46bd mov sp, r7 + 8003ada: bc90 pop {r4, r7} + 8003adc: 4770 bx lr + 8003ade: bf00 nop + 8003ae0: 0800a780 .word 0x0800a780 + 8003ae4: 40021000 .word 0x40021000 + 8003ae8: 007a1200 .word 0x007a1200 + 8003aec: 003d0900 .word 0x003d0900 -0800390c : +08003af0 : * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency * and updated within this function * @retval HCLK frequency */ uint32_t HAL_RCC_GetHCLKFreq(void) { - 800390c: b480 push {r7} - 800390e: af00 add r7, sp, #0 + 8003af0: b480 push {r7} + 8003af2: af00 add r7, sp, #0 return SystemCoreClock; - 8003910: 4b02 ldr r3, [pc, #8] ; (800391c ) - 8003912: 681b ldr r3, [r3, #0] + 8003af4: 4b02 ldr r3, [pc, #8] ; (8003b00 ) + 8003af6: 681b ldr r3, [r3, #0] } - 8003914: 4618 mov r0, r3 - 8003916: 46bd mov sp, r7 - 8003918: bc80 pop {r7} - 800391a: 4770 bx lr - 800391c: 20000000 .word 0x20000000 + 8003af8: 4618 mov r0, r3 + 8003afa: 46bd mov sp, r7 + 8003afc: bc80 pop {r7} + 8003afe: 4770 bx lr + 8003b00: 20000000 .word 0x20000000 -08003920 : +08003b04 : * @note Each time PCLK1 changes, this function must be called to update the * right PCLK1 value. Otherwise, any configuration based on this function will be incorrect. * @retval PCLK1 frequency */ uint32_t HAL_RCC_GetPCLK1Freq(void) { - 8003920: b580 push {r7, lr} - 8003922: af00 add r7, sp, #0 + 8003b04: b580 push {r7, lr} + 8003b06: af00 add r7, sp, #0 /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos]); - 8003924: f7ff fff2 bl 800390c - 8003928: 4602 mov r2, r0 - 800392a: 4b05 ldr r3, [pc, #20] ; (8003940 ) - 800392c: 685b ldr r3, [r3, #4] - 800392e: 0a1b lsrs r3, r3, #8 - 8003930: f003 0307 and.w r3, r3, #7 - 8003934: 4903 ldr r1, [pc, #12] ; (8003944 ) - 8003936: 5ccb ldrb r3, [r1, r3] - 8003938: fa22 f303 lsr.w r3, r2, r3 + 8003b08: f7ff fff2 bl 8003af0 + 8003b0c: 4602 mov r2, r0 + 8003b0e: 4b05 ldr r3, [pc, #20] ; (8003b24 ) + 8003b10: 685b ldr r3, [r3, #4] + 8003b12: 0a1b lsrs r3, r3, #8 + 8003b14: f003 0307 and.w r3, r3, #7 + 8003b18: 4903 ldr r1, [pc, #12] ; (8003b28 ) + 8003b1a: 5ccb ldrb r3, [r1, r3] + 8003b1c: fa22 f303 lsr.w r3, r2, r3 } - 800393c: 4618 mov r0, r3 - 800393e: bd80 pop {r7, pc} - 8003940: 40021000 .word 0x40021000 - 8003944: 0800997c .word 0x0800997c + 8003b20: 4618 mov r0, r3 + 8003b22: bd80 pop {r7, pc} + 8003b24: 40021000 .word 0x40021000 + 8003b28: 0800a884 .word 0x0800a884 -08003948 : +08003b2c : * @brief This function provides delay (in milliseconds) based on CPU cycles method. * @param mdelay: specifies the delay time length, in milliseconds. * @retval None */ static void RCC_Delay(uint32_t mdelay) { - 8003948: b480 push {r7} - 800394a: b085 sub sp, #20 - 800394c: af00 add r7, sp, #0 - 800394e: 6078 str r0, [r7, #4] + 8003b2c: b480 push {r7} + 8003b2e: b085 sub sp, #20 + 8003b30: af00 add r7, sp, #0 + 8003b32: 6078 str r0, [r7, #4] __IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U); - 8003950: 4b0a ldr r3, [pc, #40] ; (800397c ) - 8003952: 681b ldr r3, [r3, #0] - 8003954: 4a0a ldr r2, [pc, #40] ; (8003980 ) - 8003956: fba2 2303 umull r2, r3, r2, r3 - 800395a: 0a5b lsrs r3, r3, #9 - 800395c: 687a ldr r2, [r7, #4] - 800395e: fb02 f303 mul.w r3, r2, r3 - 8003962: 60fb str r3, [r7, #12] + 8003b34: 4b0a ldr r3, [pc, #40] ; (8003b60 ) + 8003b36: 681b ldr r3, [r3, #0] + 8003b38: 4a0a ldr r2, [pc, #40] ; (8003b64 ) + 8003b3a: fba2 2303 umull r2, r3, r2, r3 + 8003b3e: 0a5b lsrs r3, r3, #9 + 8003b40: 687a ldr r2, [r7, #4] + 8003b42: fb02 f303 mul.w r3, r2, r3 + 8003b46: 60fb str r3, [r7, #12] do { __NOP(); - 8003964: bf00 nop + 8003b48: bf00 nop } while (Delay --); - 8003966: 68fb ldr r3, [r7, #12] - 8003968: 1e5a subs r2, r3, #1 - 800396a: 60fa str r2, [r7, #12] - 800396c: 2b00 cmp r3, #0 - 800396e: d1f9 bne.n 8003964 + 8003b4a: 68fb ldr r3, [r7, #12] + 8003b4c: 1e5a subs r2, r3, #1 + 8003b4e: 60fa str r2, [r7, #12] + 8003b50: 2b00 cmp r3, #0 + 8003b52: d1f9 bne.n 8003b48 } - 8003970: bf00 nop - 8003972: bf00 nop - 8003974: 3714 adds r7, #20 - 8003976: 46bd mov sp, r7 - 8003978: bc80 pop {r7} - 800397a: 4770 bx lr - 800397c: 20000000 .word 0x20000000 - 8003980: 10624dd3 .word 0x10624dd3 + 8003b54: bf00 nop + 8003b56: bf00 nop + 8003b58: 3714 adds r7, #20 + 8003b5a: 46bd mov sp, r7 + 8003b5c: bc80 pop {r7} + 8003b5e: 4770 bx lr + 8003b60: 20000000 .word 0x20000000 + 8003b64: 10624dd3 .word 0x10624dd3 -08003984 : +08003b68 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval HAL status */ HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi) { - 8003984: b580 push {r7, lr} - 8003986: b082 sub sp, #8 - 8003988: af00 add r7, sp, #0 - 800398a: 6078 str r0, [r7, #4] + 8003b68: b580 push {r7, lr} + 8003b6a: b082 sub sp, #8 + 8003b6c: af00 add r7, sp, #0 + 8003b6e: 6078 str r0, [r7, #4] /* Check the SPI handle allocation */ if (hspi == NULL) - 800398c: 687b ldr r3, [r7, #4] - 800398e: 2b00 cmp r3, #0 - 8003990: d101 bne.n 8003996 + 8003b70: 687b ldr r3, [r7, #4] + 8003b72: 2b00 cmp r3, #0 + 8003b74: d101 bne.n 8003b7a { return HAL_ERROR; - 8003992: 2301 movs r3, #1 - 8003994: e076 b.n 8003a84 + 8003b76: 2301 movs r3, #1 + 8003b78: e076 b.n 8003c68 assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit)); /* TI mode is not supported on this device. TIMode parameter is mandatory equal to SPI_TIMODE_DISABLE */ assert_param(IS_SPI_TIMODE(hspi->Init.TIMode)); if (hspi->Init.TIMode == SPI_TIMODE_DISABLE) - 8003996: 687b ldr r3, [r7, #4] - 8003998: 6a5b ldr r3, [r3, #36] ; 0x24 - 800399a: 2b00 cmp r3, #0 - 800399c: d108 bne.n 80039b0 + 8003b7a: 687b ldr r3, [r7, #4] + 8003b7c: 6a5b ldr r3, [r3, #36] ; 0x24 + 8003b7e: 2b00 cmp r3, #0 + 8003b80: d108 bne.n 8003b94 { assert_param(IS_SPI_CPOL(hspi->Init.CLKPolarity)); assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase)); if (hspi->Init.Mode == SPI_MODE_MASTER) - 800399e: 687b ldr r3, [r7, #4] - 80039a0: 685b ldr r3, [r3, #4] - 80039a2: f5b3 7f82 cmp.w r3, #260 ; 0x104 - 80039a6: d009 beq.n 80039bc + 8003b82: 687b ldr r3, [r7, #4] + 8003b84: 685b ldr r3, [r3, #4] + 8003b86: f5b3 7f82 cmp.w r3, #260 ; 0x104 + 8003b8a: d009 beq.n 8003ba0 assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); } else { /* Baudrate prescaler not use in Motoraola Slave mode. force to default value */ hspi->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; - 80039a8: 687b ldr r3, [r7, #4] - 80039aa: 2200 movs r2, #0 - 80039ac: 61da str r2, [r3, #28] - 80039ae: e005 b.n 80039bc + 8003b8c: 687b ldr r3, [r7, #4] + 8003b8e: 2200 movs r2, #0 + 8003b90: 61da str r2, [r3, #28] + 8003b92: e005 b.n 8003ba0 else { assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); /* Force polarity and phase to TI protocaol requirements */ hspi->Init.CLKPolarity = SPI_POLARITY_LOW; - 80039b0: 687b ldr r3, [r7, #4] - 80039b2: 2200 movs r2, #0 - 80039b4: 611a str r2, [r3, #16] + 8003b94: 687b ldr r3, [r7, #4] + 8003b96: 2200 movs r2, #0 + 8003b98: 611a str r2, [r3, #16] hspi->Init.CLKPhase = SPI_PHASE_1EDGE; - 80039b6: 687b ldr r3, [r7, #4] - 80039b8: 2200 movs r2, #0 - 80039ba: 615a str r2, [r3, #20] + 8003b9a: 687b ldr r3, [r7, #4] + 8003b9c: 2200 movs r2, #0 + 8003b9e: 615a str r2, [r3, #20] if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) { assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial)); } #else hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; - 80039bc: 687b ldr r3, [r7, #4] - 80039be: 2200 movs r2, #0 - 80039c0: 629a str r2, [r3, #40] ; 0x28 + 8003ba0: 687b ldr r3, [r7, #4] + 8003ba2: 2200 movs r2, #0 + 8003ba4: 629a str r2, [r3, #40] ; 0x28 #endif /* USE_SPI_CRC */ if (hspi->State == HAL_SPI_STATE_RESET) - 80039c2: 687b ldr r3, [r7, #4] - 80039c4: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 - 80039c8: b2db uxtb r3, r3 - 80039ca: 2b00 cmp r3, #0 - 80039cc: d106 bne.n 80039dc + 8003ba6: 687b ldr r3, [r7, #4] + 8003ba8: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 + 8003bac: b2db uxtb r3, r3 + 8003bae: 2b00 cmp r3, #0 + 8003bb0: d106 bne.n 8003bc0 { /* Allocate lock resource and initialize it */ hspi->Lock = HAL_UNLOCKED; - 80039ce: 687b ldr r3, [r7, #4] - 80039d0: 2200 movs r2, #0 - 80039d2: f883 2050 strb.w r2, [r3, #80] ; 0x50 + 8003bb2: 687b ldr r3, [r7, #4] + 8003bb4: 2200 movs r2, #0 + 8003bb6: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Init the low level hardware : GPIO, CLOCK, NVIC... */ hspi->MspInitCallback(hspi); #else /* Init the low level hardware : GPIO, CLOCK, NVIC... */ HAL_SPI_MspInit(hspi); - 80039d6: 6878 ldr r0, [r7, #4] - 80039d8: f7fd fea6 bl 8001728 + 8003bba: 6878 ldr r0, [r7, #4] + 8003bbc: f7fd fe4c bl 8001858 #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ } hspi->State = HAL_SPI_STATE_BUSY; - 80039dc: 687b ldr r3, [r7, #4] - 80039de: 2202 movs r2, #2 - 80039e0: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8003bc0: 687b ldr r3, [r7, #4] + 8003bc2: 2202 movs r2, #2 + 8003bc4: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Disable the selected SPI peripheral */ __HAL_SPI_DISABLE(hspi); - 80039e4: 687b ldr r3, [r7, #4] - 80039e6: 681b ldr r3, [r3, #0] - 80039e8: 681a ldr r2, [r3, #0] - 80039ea: 687b ldr r3, [r7, #4] - 80039ec: 681b ldr r3, [r3, #0] - 80039ee: f022 0240 bic.w r2, r2, #64 ; 0x40 - 80039f2: 601a str r2, [r3, #0] + 8003bc8: 687b ldr r3, [r7, #4] + 8003bca: 681b ldr r3, [r3, #0] + 8003bcc: 681a ldr r2, [r3, #0] + 8003bce: 687b ldr r3, [r7, #4] + 8003bd0: 681b ldr r3, [r3, #0] + 8003bd2: f022 0240 bic.w r2, r2, #64 ; 0x40 + 8003bd6: 601a str r2, [r3, #0] /*----------------------- SPIx CR1 & CR2 Configuration ---------------------*/ /* Configure : SPI Mode, Communication Mode, Data size, Clock polarity and phase, NSS management, Communication speed, First bit and CRC calculation state */ WRITE_REG(hspi->Instance->CR1, ((hspi->Init.Mode & (SPI_CR1_MSTR | SPI_CR1_SSI)) | - 80039f4: 687b ldr r3, [r7, #4] - 80039f6: 685b ldr r3, [r3, #4] - 80039f8: f403 7282 and.w r2, r3, #260 ; 0x104 - 80039fc: 687b ldr r3, [r7, #4] - 80039fe: 689b ldr r3, [r3, #8] - 8003a00: f403 4304 and.w r3, r3, #33792 ; 0x8400 - 8003a04: 431a orrs r2, r3 - 8003a06: 687b ldr r3, [r7, #4] - 8003a08: 68db ldr r3, [r3, #12] - 8003a0a: f403 6300 and.w r3, r3, #2048 ; 0x800 - 8003a0e: 431a orrs r2, r3 - 8003a10: 687b ldr r3, [r7, #4] - 8003a12: 691b ldr r3, [r3, #16] - 8003a14: f003 0302 and.w r3, r3, #2 - 8003a18: 431a orrs r2, r3 - 8003a1a: 687b ldr r3, [r7, #4] - 8003a1c: 695b ldr r3, [r3, #20] - 8003a1e: f003 0301 and.w r3, r3, #1 - 8003a22: 431a orrs r2, r3 - 8003a24: 687b ldr r3, [r7, #4] - 8003a26: 699b ldr r3, [r3, #24] - 8003a28: f403 7300 and.w r3, r3, #512 ; 0x200 - 8003a2c: 431a orrs r2, r3 - 8003a2e: 687b ldr r3, [r7, #4] - 8003a30: 69db ldr r3, [r3, #28] - 8003a32: f003 0338 and.w r3, r3, #56 ; 0x38 - 8003a36: 431a orrs r2, r3 - 8003a38: 687b ldr r3, [r7, #4] - 8003a3a: 6a1b ldr r3, [r3, #32] - 8003a3c: f003 0380 and.w r3, r3, #128 ; 0x80 - 8003a40: ea42 0103 orr.w r1, r2, r3 - 8003a44: 687b ldr r3, [r7, #4] - 8003a46: 6a9b ldr r3, [r3, #40] ; 0x28 - 8003a48: f403 5200 and.w r2, r3, #8192 ; 0x2000 - 8003a4c: 687b ldr r3, [r7, #4] - 8003a4e: 681b ldr r3, [r3, #0] - 8003a50: 430a orrs r2, r1 - 8003a52: 601a str r2, [r3, #0] + 8003bd8: 687b ldr r3, [r7, #4] + 8003bda: 685b ldr r3, [r3, #4] + 8003bdc: f403 7282 and.w r2, r3, #260 ; 0x104 + 8003be0: 687b ldr r3, [r7, #4] + 8003be2: 689b ldr r3, [r3, #8] + 8003be4: f403 4304 and.w r3, r3, #33792 ; 0x8400 + 8003be8: 431a orrs r2, r3 + 8003bea: 687b ldr r3, [r7, #4] + 8003bec: 68db ldr r3, [r3, #12] + 8003bee: f403 6300 and.w r3, r3, #2048 ; 0x800 + 8003bf2: 431a orrs r2, r3 + 8003bf4: 687b ldr r3, [r7, #4] + 8003bf6: 691b ldr r3, [r3, #16] + 8003bf8: f003 0302 and.w r3, r3, #2 + 8003bfc: 431a orrs r2, r3 + 8003bfe: 687b ldr r3, [r7, #4] + 8003c00: 695b ldr r3, [r3, #20] + 8003c02: f003 0301 and.w r3, r3, #1 + 8003c06: 431a orrs r2, r3 + 8003c08: 687b ldr r3, [r7, #4] + 8003c0a: 699b ldr r3, [r3, #24] + 8003c0c: f403 7300 and.w r3, r3, #512 ; 0x200 + 8003c10: 431a orrs r2, r3 + 8003c12: 687b ldr r3, [r7, #4] + 8003c14: 69db ldr r3, [r3, #28] + 8003c16: f003 0338 and.w r3, r3, #56 ; 0x38 + 8003c1a: 431a orrs r2, r3 + 8003c1c: 687b ldr r3, [r7, #4] + 8003c1e: 6a1b ldr r3, [r3, #32] + 8003c20: f003 0380 and.w r3, r3, #128 ; 0x80 + 8003c24: ea42 0103 orr.w r1, r2, r3 + 8003c28: 687b ldr r3, [r7, #4] + 8003c2a: 6a9b ldr r3, [r3, #40] ; 0x28 + 8003c2c: f403 5200 and.w r2, r3, #8192 ; 0x2000 + 8003c30: 687b ldr r3, [r7, #4] + 8003c32: 681b ldr r3, [r3, #0] + 8003c34: 430a orrs r2, r1 + 8003c36: 601a str r2, [r3, #0] (hspi->Init.BaudRatePrescaler & SPI_CR1_BR_Msk) | (hspi->Init.FirstBit & SPI_CR1_LSBFIRST) | (hspi->Init.CRCCalculation & SPI_CR1_CRCEN))); /* Configure : NSS management */ WRITE_REG(hspi->Instance->CR2, ((hspi->Init.NSS >> 16U) & SPI_CR2_SSOE)); - 8003a54: 687b ldr r3, [r7, #4] - 8003a56: 699b ldr r3, [r3, #24] - 8003a58: 0c1a lsrs r2, r3, #16 - 8003a5a: 687b ldr r3, [r7, #4] - 8003a5c: 681b ldr r3, [r3, #0] - 8003a5e: f002 0204 and.w r2, r2, #4 - 8003a62: 605a str r2, [r3, #4] + 8003c38: 687b ldr r3, [r7, #4] + 8003c3a: 699b ldr r3, [r3, #24] + 8003c3c: 0c1a lsrs r2, r3, #16 + 8003c3e: 687b ldr r3, [r7, #4] + 8003c40: 681b ldr r3, [r3, #0] + 8003c42: f002 0204 and.w r2, r2, #4 + 8003c46: 605a str r2, [r3, #4] } #endif /* USE_SPI_CRC */ #if defined(SPI_I2SCFGR_I2SMOD) /* Activate the SPI mode (Make sure that I2SMOD bit in I2SCFGR register is reset) */ CLEAR_BIT(hspi->Instance->I2SCFGR, SPI_I2SCFGR_I2SMOD); - 8003a64: 687b ldr r3, [r7, #4] - 8003a66: 681b ldr r3, [r3, #0] - 8003a68: 69da ldr r2, [r3, #28] - 8003a6a: 687b ldr r3, [r7, #4] - 8003a6c: 681b ldr r3, [r3, #0] - 8003a6e: f422 6200 bic.w r2, r2, #2048 ; 0x800 - 8003a72: 61da str r2, [r3, #28] + 8003c48: 687b ldr r3, [r7, #4] + 8003c4a: 681b ldr r3, [r3, #0] + 8003c4c: 69da ldr r2, [r3, #28] + 8003c4e: 687b ldr r3, [r7, #4] + 8003c50: 681b ldr r3, [r3, #0] + 8003c52: f422 6200 bic.w r2, r2, #2048 ; 0x800 + 8003c56: 61da str r2, [r3, #28] #endif /* SPI_I2SCFGR_I2SMOD */ hspi->ErrorCode = HAL_SPI_ERROR_NONE; - 8003a74: 687b ldr r3, [r7, #4] - 8003a76: 2200 movs r2, #0 - 8003a78: 655a str r2, [r3, #84] ; 0x54 + 8003c58: 687b ldr r3, [r7, #4] + 8003c5a: 2200 movs r2, #0 + 8003c5c: 655a str r2, [r3, #84] ; 0x54 hspi->State = HAL_SPI_STATE_READY; - 8003a7a: 687b ldr r3, [r7, #4] - 8003a7c: 2201 movs r2, #1 - 8003a7e: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8003c5e: 687b ldr r3, [r7, #4] + 8003c60: 2201 movs r2, #1 + 8003c62: f883 2051 strb.w r2, [r3, #81] ; 0x51 return HAL_OK; - 8003a82: 2300 movs r3, #0 + 8003c66: 2300 movs r3, #0 } - 8003a84: 4618 mov r0, r3 - 8003a86: 3708 adds r7, #8 - 8003a88: 46bd mov sp, r7 - 8003a8a: bd80 pop {r7, pc} + 8003c68: 4618 mov r0, r3 + 8003c6a: 3708 adds r7, #8 + 8003c6c: 46bd mov sp, r7 + 8003c6e: bd80 pop {r7, pc} -08003a8c : +08003c70 : * @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) { - 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] + 8003c70: b580 push {r7, lr} + 8003c72: b084 sub sp, #16 + 8003c74: af00 add r7, sp, #0 + 8003c76: 60f8 str r0, [r7, #12] + 8003c78: 60b9 str r1, [r7, #8] + 8003c7a: 607a str r2, [r7, #4] /* Check the SRAM handle parameter */ if ((hsram == NULL) || (hsram->Init.BurstAccessMode == FSMC_BURST_ACCESS_MODE_ENABLE)) - 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 + 8003c7c: 68fb ldr r3, [r7, #12] + 8003c7e: 2b00 cmp r3, #0 + 8003c80: d004 beq.n 8003c8c + 8003c82: 68fb ldr r3, [r7, #12] + 8003c84: 699b ldr r3, [r3, #24] + 8003c86: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 8003c8a: d101 bne.n 8003c90 { return HAL_ERROR; - 8003aa8: 2301 movs r3, #1 - 8003aaa: e038 b.n 8003b1e + 8003c8c: 2301 movs r3, #1 + 8003c8e: e038 b.n 8003d02 } if (hsram->State == HAL_SRAM_STATE_RESET) - 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 + 8003c90: 68fb ldr r3, [r7, #12] + 8003c92: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 + 8003c96: b2db uxtb r3, r3 + 8003c98: 2b00 cmp r3, #0 + 8003c9a: d106 bne.n 8003caa { /* Allocate lock resource and initialize it */ hsram->Lock = HAL_UNLOCKED; - 8003ab8: 68fb ldr r3, [r7, #12] - 8003aba: 2200 movs r2, #0 - 8003abc: f883 2040 strb.w r2, [r3, #64] ; 0x40 + 8003c9c: 68fb ldr r3, [r7, #12] + 8003c9e: 2200 movs r2, #0 + 8003ca0: 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); - 8003ac0: 68f8 ldr r0, [r7, #12] - 8003ac2: f7fd fef5 bl 80018b0 + 8003ca4: 68f8 ldr r0, [r7, #12] + 8003ca6: f7fd feeb bl 8001a80 #endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */ } /* Initialize SRAM control Interface */ (void)FSMC_NORSRAM_Init(hsram->Instance, &(hsram->Init)); - 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 + 8003caa: 68fb ldr r3, [r7, #12] + 8003cac: 681a ldr r2, [r3, #0] + 8003cae: 68fb ldr r3, [r7, #12] + 8003cb0: 3308 adds r3, #8 + 8003cb2: 4619 mov r1, r3 + 8003cb4: 4610 mov r0, r2 + 8003cb6: f000 ffc3 bl 8004c40 /* Initialize SRAM timing Interface */ (void)FSMC_NORSRAM_Timing_Init(hsram->Instance, Timing, hsram->Init.NSBank); - 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 + 8003cba: 68fb ldr r3, [r7, #12] + 8003cbc: 6818 ldr r0, [r3, #0] + 8003cbe: 68fb ldr r3, [r7, #12] + 8003cc0: 689b ldr r3, [r3, #8] + 8003cc2: 461a mov r2, r3 + 8003cc4: 68b9 ldr r1, [r7, #8] + 8003cc6: f001 f825 bl 8004d14 /* Initialize SRAM extended mode timing Interface */ (void)FSMC_NORSRAM_Extended_Timing_Init(hsram->Extended, ExtTiming, hsram->Init.NSBank, - 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 + 8003cca: 68fb ldr r3, [r7, #12] + 8003ccc: 6858 ldr r0, [r3, #4] + 8003cce: 68fb ldr r3, [r7, #12] + 8003cd0: 689a ldr r2, [r3, #8] + 8003cd2: 68fb ldr r3, [r7, #12] + 8003cd4: 6b1b ldr r3, [r3, #48] ; 0x30 + 8003cd6: 6879 ldr r1, [r7, #4] + 8003cd8: f001 f850 bl 8004d7c hsram->Init.ExtendedMode); /* Enable the NORSRAM device */ __FSMC_NORSRAM_ENABLE(hsram->Instance, hsram->Init.NSBank); - 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] + 8003cdc: 68fb ldr r3, [r7, #12] + 8003cde: 681b ldr r3, [r3, #0] + 8003ce0: 68fa ldr r2, [r7, #12] + 8003ce2: 6892 ldr r2, [r2, #8] + 8003ce4: f853 1022 ldr.w r1, [r3, r2, lsl #2] + 8003ce8: 68fb ldr r3, [r7, #12] + 8003cea: 681b ldr r3, [r3, #0] + 8003cec: 68fa ldr r2, [r7, #12] + 8003cee: 6892 ldr r2, [r2, #8] + 8003cf0: f041 0101 orr.w r1, r1, #1 + 8003cf4: f843 1022 str.w r1, [r3, r2, lsl #2] /* Initialize the SRAM controller state */ hsram->State = HAL_SRAM_STATE_READY; - 8003b14: 68fb ldr r3, [r7, #12] - 8003b16: 2201 movs r2, #1 - 8003b18: f883 2041 strb.w r2, [r3, #65] ; 0x41 + 8003cf8: 68fb ldr r3, [r7, #12] + 8003cfa: 2201 movs r2, #1 + 8003cfc: f883 2041 strb.w r2, [r3, #65] ; 0x41 return HAL_OK; - 8003b1c: 2300 movs r3, #0 + 8003d00: 2300 movs r3, #0 } - 8003b1e: 4618 mov r0, r3 - 8003b20: 3710 adds r7, #16 - 8003b22: 46bd mov sp, r7 - 8003b24: bd80 pop {r7, pc} + 8003d02: 4618 mov r0, r3 + 8003d04: 3710 adds r7, #16 + 8003d06: 46bd mov sp, r7 + 8003d08: bd80 pop {r7, pc} -08003b26 : +08003d0a : * 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) { - 8003b26: b580 push {r7, lr} - 8003b28: b082 sub sp, #8 - 8003b2a: af00 add r7, sp, #0 - 8003b2c: 6078 str r0, [r7, #4] + 8003d0a: b580 push {r7, lr} + 8003d0c: b082 sub sp, #8 + 8003d0e: af00 add r7, sp, #0 + 8003d10: 6078 str r0, [r7, #4] /* Check the TIM handle allocation */ if (htim == NULL) - 8003b2e: 687b ldr r3, [r7, #4] - 8003b30: 2b00 cmp r3, #0 - 8003b32: d101 bne.n 8003b38 + 8003d12: 687b ldr r3, [r7, #4] + 8003d14: 2b00 cmp r3, #0 + 8003d16: d101 bne.n 8003d1c { return HAL_ERROR; - 8003b34: 2301 movs r3, #1 - 8003b36: e041 b.n 8003bbc + 8003d18: 2301 movs r3, #1 + 8003d1a: e041 b.n 8003da0 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) - 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 + 8003d1c: 687b ldr r3, [r7, #4] + 8003d1e: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 8003d22: b2db uxtb r3, r3 + 8003d24: 2b00 cmp r3, #0 + 8003d26: d106 bne.n 8003d36 { /* Allocate lock resource and initialize it */ htim->Lock = HAL_UNLOCKED; - 8003b44: 687b ldr r3, [r7, #4] - 8003b46: 2200 movs r2, #0 - 8003b48: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8003d28: 687b ldr r3, [r7, #4] + 8003d2a: 2200 movs r2, #0 + 8003d2c: 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); - 8003b4c: 6878 ldr r0, [r7, #4] - 8003b4e: f7fd fe35 bl 80017bc + 8003d30: 6878 ldr r0, [r7, #4] + 8003d32: f7fd fddb bl 80018ec #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; - 8003b52: 687b ldr r3, [r7, #4] - 8003b54: 2202 movs r2, #2 - 8003b56: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8003d36: 687b ldr r3, [r7, #4] + 8003d38: 2202 movs r2, #2 + 8003d3a: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Set the Time Base configuration */ TIM_Base_SetConfig(htim->Instance, &htim->Init); - 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 + 8003d3e: 687b ldr r3, [r7, #4] + 8003d40: 681a ldr r2, [r3, #0] + 8003d42: 687b ldr r3, [r7, #4] + 8003d44: 3304 adds r3, #4 + 8003d46: 4619 mov r1, r3 + 8003d48: 4610 mov r0, r2 + 8003d4a: f000 fc1b bl 8004584 /* Initialize the DMA burst operation state */ htim->DMABurstState = HAL_DMA_BURST_STATE_READY; - 8003b6a: 687b ldr r3, [r7, #4] - 8003b6c: 2201 movs r2, #1 - 8003b6e: f883 2046 strb.w r2, [r3, #70] ; 0x46 + 8003d4e: 687b ldr r3, [r7, #4] + 8003d50: 2201 movs r2, #1 + 8003d52: f883 2046 strb.w r2, [r3, #70] ; 0x46 /* Initialize the TIM channels state */ TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); - 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 + 8003d56: 687b ldr r3, [r7, #4] + 8003d58: 2201 movs r2, #1 + 8003d5a: f883 203e strb.w r2, [r3, #62] ; 0x3e + 8003d5e: 687b ldr r3, [r7, #4] + 8003d60: 2201 movs r2, #1 + 8003d62: f883 203f strb.w r2, [r3, #63] ; 0x3f + 8003d66: 687b ldr r3, [r7, #4] + 8003d68: 2201 movs r2, #1 + 8003d6a: f883 2040 strb.w r2, [r3, #64] ; 0x40 + 8003d6e: 687b ldr r3, [r7, #4] + 8003d70: 2201 movs r2, #1 + 8003d72: f883 2041 strb.w r2, [r3, #65] ; 0x41 TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); - 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 + 8003d76: 687b ldr r3, [r7, #4] + 8003d78: 2201 movs r2, #1 + 8003d7a: f883 2042 strb.w r2, [r3, #66] ; 0x42 + 8003d7e: 687b ldr r3, [r7, #4] + 8003d80: 2201 movs r2, #1 + 8003d82: f883 2043 strb.w r2, [r3, #67] ; 0x43 + 8003d86: 687b ldr r3, [r7, #4] + 8003d88: 2201 movs r2, #1 + 8003d8a: f883 2044 strb.w r2, [r3, #68] ; 0x44 + 8003d8e: 687b ldr r3, [r7, #4] + 8003d90: 2201 movs r2, #1 + 8003d92: f883 2045 strb.w r2, [r3, #69] ; 0x45 /* Initialize the TIM state*/ htim->State = HAL_TIM_STATE_READY; - 8003bb2: 687b ldr r3, [r7, #4] - 8003bb4: 2201 movs r2, #1 - 8003bb6: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8003d96: 687b ldr r3, [r7, #4] + 8003d98: 2201 movs r2, #1 + 8003d9a: f883 203d strb.w r2, [r3, #61] ; 0x3d return HAL_OK; - 8003bba: 2300 movs r3, #0 + 8003d9e: 2300 movs r3, #0 } - 8003bbc: 4618 mov r0, r3 - 8003bbe: 3708 adds r7, #8 - 8003bc0: 46bd mov sp, r7 - 8003bc2: bd80 pop {r7, pc} + 8003da0: 4618 mov r0, r3 + 8003da2: 3708 adds r7, #8 + 8003da4: 46bd mov sp, r7 + 8003da6: bd80 pop {r7, pc} -08003bc4 : +08003da8 : * @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) { - 8003bc4: b480 push {r7} - 8003bc6: b083 sub sp, #12 - 8003bc8: af00 add r7, sp, #0 - 8003bca: 6078 str r0, [r7, #4] + 8003da8: b480 push {r7} + 8003daa: b083 sub sp, #12 + 8003dac: af00 add r7, sp, #0 + 8003dae: 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); - 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] + 8003db0: 687b ldr r3, [r7, #4] + 8003db2: 681b ldr r3, [r3, #0] + 8003db4: 68da ldr r2, [r3, #12] + 8003db6: 687b ldr r3, [r7, #4] + 8003db8: 681b ldr r3, [r3, #0] + 8003dba: f022 0201 bic.w r2, r2, #1 + 8003dbe: 60da str r2, [r3, #12] /* Disable the Peripheral */ __HAL_TIM_DISABLE(htim); - 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] + 8003dc0: 687b ldr r3, [r7, #4] + 8003dc2: 681b ldr r3, [r3, #0] + 8003dc4: 6a1a ldr r2, [r3, #32] + 8003dc6: f241 1311 movw r3, #4369 ; 0x1111 + 8003dca: 4013 ands r3, r2 + 8003dcc: 2b00 cmp r3, #0 + 8003dce: d10f bne.n 8003df0 + 8003dd0: 687b ldr r3, [r7, #4] + 8003dd2: 681b ldr r3, [r3, #0] + 8003dd4: 6a1a ldr r2, [r3, #32] + 8003dd6: f240 4344 movw r3, #1092 ; 0x444 + 8003dda: 4013 ands r3, r2 + 8003ddc: 2b00 cmp r3, #0 + 8003dde: d107 bne.n 8003df0 + 8003de0: 687b ldr r3, [r7, #4] + 8003de2: 681b ldr r3, [r3, #0] + 8003de4: 681a ldr r2, [r3, #0] + 8003de6: 687b ldr r3, [r7, #4] + 8003de8: 681b ldr r3, [r3, #0] + 8003dea: f022 0201 bic.w r2, r2, #1 + 8003dee: 601a str r2, [r3, #0] /* Set the TIM state */ htim->State = HAL_TIM_STATE_READY; - 8003c0c: 687b ldr r3, [r7, #4] - 8003c0e: 2201 movs r2, #1 - 8003c10: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8003df0: 687b ldr r3, [r7, #4] + 8003df2: 2201 movs r2, #1 + 8003df4: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Return function status */ return HAL_OK; - 8003c14: 2300 movs r3, #0 + 8003df8: 2300 movs r3, #0 } - 8003c16: 4618 mov r0, r3 - 8003c18: 370c adds r7, #12 - 8003c1a: 46bd mov sp, r7 - 8003c1c: bc80 pop {r7} - 8003c1e: 4770 bx lr + 8003dfa: 4618 mov r0, r3 + 8003dfc: 370c adds r7, #12 + 8003dfe: 46bd mov sp, r7 + 8003e00: bc80 pop {r7} + 8003e02: 4770 bx lr -08003c20 : +08003e04 : + * Ex: call @ref HAL_TIM_PWM_DeInit() before HAL_TIM_PWM_Init() + * @param htim TIM PWM handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim) +{ + 8003e04: b580 push {r7, lr} + 8003e06: b082 sub sp, #8 + 8003e08: af00 add r7, sp, #0 + 8003e0a: 6078 str r0, [r7, #4] + /* Check the TIM handle allocation */ + if (htim == NULL) + 8003e0c: 687b ldr r3, [r7, #4] + 8003e0e: 2b00 cmp r3, #0 + 8003e10: d101 bne.n 8003e16 + { + return HAL_ERROR; + 8003e12: 2301 movs r3, #1 + 8003e14: e041 b.n 8003e9a + 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) + 8003e16: 687b ldr r3, [r7, #4] + 8003e18: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 8003e1c: b2db uxtb r3, r3 + 8003e1e: 2b00 cmp r3, #0 + 8003e20: d106 bne.n 8003e30 + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + 8003e22: 687b ldr r3, [r7, #4] + 8003e24: 2200 movs r2, #0 + 8003e26: f883 203c strb.w r2, [r3, #60] ; 0x3c + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->PWM_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ + HAL_TIM_PWM_MspInit(htim); + 8003e2a: 6878 ldr r0, [r7, #4] + 8003e2c: f000 f839 bl 8003ea2 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + 8003e30: 687b ldr r3, [r7, #4] + 8003e32: 2202 movs r2, #2 + 8003e34: f883 203d strb.w r2, [r3, #61] ; 0x3d + + /* Init the base time for the PWM */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + 8003e38: 687b ldr r3, [r7, #4] + 8003e3a: 681a ldr r2, [r3, #0] + 8003e3c: 687b ldr r3, [r7, #4] + 8003e3e: 3304 adds r3, #4 + 8003e40: 4619 mov r1, r3 + 8003e42: 4610 mov r0, r2 + 8003e44: f000 fb9e bl 8004584 + + /* Initialize the DMA burst operation state */ + htim->DMABurstState = HAL_DMA_BURST_STATE_READY; + 8003e48: 687b ldr r3, [r7, #4] + 8003e4a: 2201 movs r2, #1 + 8003e4c: f883 2046 strb.w r2, [r3, #70] ; 0x46 + + /* Initialize the TIM channels state */ + TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 8003e50: 687b ldr r3, [r7, #4] + 8003e52: 2201 movs r2, #1 + 8003e54: f883 203e strb.w r2, [r3, #62] ; 0x3e + 8003e58: 687b ldr r3, [r7, #4] + 8003e5a: 2201 movs r2, #1 + 8003e5c: f883 203f strb.w r2, [r3, #63] ; 0x3f + 8003e60: 687b ldr r3, [r7, #4] + 8003e62: 2201 movs r2, #1 + 8003e64: f883 2040 strb.w r2, [r3, #64] ; 0x40 + 8003e68: 687b ldr r3, [r7, #4] + 8003e6a: 2201 movs r2, #1 + 8003e6c: f883 2041 strb.w r2, [r3, #65] ; 0x41 + TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); + 8003e70: 687b ldr r3, [r7, #4] + 8003e72: 2201 movs r2, #1 + 8003e74: f883 2042 strb.w r2, [r3, #66] ; 0x42 + 8003e78: 687b ldr r3, [r7, #4] + 8003e7a: 2201 movs r2, #1 + 8003e7c: f883 2043 strb.w r2, [r3, #67] ; 0x43 + 8003e80: 687b ldr r3, [r7, #4] + 8003e82: 2201 movs r2, #1 + 8003e84: f883 2044 strb.w r2, [r3, #68] ; 0x44 + 8003e88: 687b ldr r3, [r7, #4] + 8003e8a: 2201 movs r2, #1 + 8003e8c: f883 2045 strb.w r2, [r3, #69] ; 0x45 + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + 8003e90: 687b ldr r3, [r7, #4] + 8003e92: 2201 movs r2, #1 + 8003e94: f883 203d strb.w r2, [r3, #61] ; 0x3d + + return HAL_OK; + 8003e98: 2300 movs r3, #0 +} + 8003e9a: 4618 mov r0, r3 + 8003e9c: 3708 adds r7, #8 + 8003e9e: 46bd mov sp, r7 + 8003ea0: bd80 pop {r7, pc} + +08003ea2 : + * @brief Initializes the TIM PWM MSP. + * @param htim TIM PWM handle + * @retval None + */ +__weak void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim) +{ + 8003ea2: b480 push {r7} + 8003ea4: b083 sub sp, #12 + 8003ea6: af00 add r7, sp, #0 + 8003ea8: 6078 str r0, [r7, #4] + UNUSED(htim); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_TIM_PWM_MspInit could be implemented in the user file + */ +} + 8003eaa: bf00 nop + 8003eac: 370c adds r7, #12 + 8003eae: 46bd mov sp, r7 + 8003eb0: bc80 pop {r7} + 8003eb2: 4770 bx lr + +08003eb4 : + * @arg TIM_CHANNEL_3: TIM Channel 3 selected + * @arg TIM_CHANNEL_4: TIM Channel 4 selected + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel) +{ + 8003eb4: b580 push {r7, lr} + 8003eb6: b084 sub sp, #16 + 8003eb8: af00 add r7, sp, #0 + 8003eba: 6078 str r0, [r7, #4] + 8003ebc: 6039 str r1, [r7, #0] + + /* Check the parameters */ + assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel)); + + /* Check the TIM channel state */ + if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY) + 8003ebe: 683b ldr r3, [r7, #0] + 8003ec0: 2b00 cmp r3, #0 + 8003ec2: d109 bne.n 8003ed8 + 8003ec4: 687b ldr r3, [r7, #4] + 8003ec6: f893 303e ldrb.w r3, [r3, #62] ; 0x3e + 8003eca: b2db uxtb r3, r3 + 8003ecc: 2b01 cmp r3, #1 + 8003ece: bf14 ite ne + 8003ed0: 2301 movne r3, #1 + 8003ed2: 2300 moveq r3, #0 + 8003ed4: b2db uxtb r3, r3 + 8003ed6: e022 b.n 8003f1e + 8003ed8: 683b ldr r3, [r7, #0] + 8003eda: 2b04 cmp r3, #4 + 8003edc: d109 bne.n 8003ef2 + 8003ede: 687b ldr r3, [r7, #4] + 8003ee0: f893 303f ldrb.w r3, [r3, #63] ; 0x3f + 8003ee4: b2db uxtb r3, r3 + 8003ee6: 2b01 cmp r3, #1 + 8003ee8: bf14 ite ne + 8003eea: 2301 movne r3, #1 + 8003eec: 2300 moveq r3, #0 + 8003eee: b2db uxtb r3, r3 + 8003ef0: e015 b.n 8003f1e + 8003ef2: 683b ldr r3, [r7, #0] + 8003ef4: 2b08 cmp r3, #8 + 8003ef6: d109 bne.n 8003f0c + 8003ef8: 687b ldr r3, [r7, #4] + 8003efa: f893 3040 ldrb.w r3, [r3, #64] ; 0x40 + 8003efe: b2db uxtb r3, r3 + 8003f00: 2b01 cmp r3, #1 + 8003f02: bf14 ite ne + 8003f04: 2301 movne r3, #1 + 8003f06: 2300 moveq r3, #0 + 8003f08: b2db uxtb r3, r3 + 8003f0a: e008 b.n 8003f1e + 8003f0c: 687b ldr r3, [r7, #4] + 8003f0e: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 + 8003f12: b2db uxtb r3, r3 + 8003f14: 2b01 cmp r3, #1 + 8003f16: bf14 ite ne + 8003f18: 2301 movne r3, #1 + 8003f1a: 2300 moveq r3, #0 + 8003f1c: b2db uxtb r3, r3 + 8003f1e: 2b00 cmp r3, #0 + 8003f20: d001 beq.n 8003f26 + { + return HAL_ERROR; + 8003f22: 2301 movs r3, #1 + 8003f24: e072 b.n 800400c + } + + /* Set the TIM channel state */ + TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY); + 8003f26: 683b ldr r3, [r7, #0] + 8003f28: 2b00 cmp r3, #0 + 8003f2a: d104 bne.n 8003f36 + 8003f2c: 687b ldr r3, [r7, #4] + 8003f2e: 2202 movs r2, #2 + 8003f30: f883 203e strb.w r2, [r3, #62] ; 0x3e + 8003f34: e013 b.n 8003f5e + 8003f36: 683b ldr r3, [r7, #0] + 8003f38: 2b04 cmp r3, #4 + 8003f3a: d104 bne.n 8003f46 + 8003f3c: 687b ldr r3, [r7, #4] + 8003f3e: 2202 movs r2, #2 + 8003f40: f883 203f strb.w r2, [r3, #63] ; 0x3f + 8003f44: e00b b.n 8003f5e + 8003f46: 683b ldr r3, [r7, #0] + 8003f48: 2b08 cmp r3, #8 + 8003f4a: d104 bne.n 8003f56 + 8003f4c: 687b ldr r3, [r7, #4] + 8003f4e: 2202 movs r2, #2 + 8003f50: f883 2040 strb.w r2, [r3, #64] ; 0x40 + 8003f54: e003 b.n 8003f5e + 8003f56: 687b ldr r3, [r7, #4] + 8003f58: 2202 movs r2, #2 + 8003f5a: f883 2041 strb.w r2, [r3, #65] ; 0x41 + + /* Enable the Capture compare channel */ + TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE); + 8003f5e: 687b ldr r3, [r7, #4] + 8003f60: 681b ldr r3, [r3, #0] + 8003f62: 2201 movs r2, #1 + 8003f64: 6839 ldr r1, [r7, #0] + 8003f66: 4618 mov r0, r3 + 8003f68: f000 fdc8 bl 8004afc + + if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) + 8003f6c: 687b ldr r3, [r7, #4] + 8003f6e: 681b ldr r3, [r3, #0] + 8003f70: 4a28 ldr r2, [pc, #160] ; (8004014 ) + 8003f72: 4293 cmp r3, r2 + 8003f74: d004 beq.n 8003f80 + 8003f76: 687b ldr r3, [r7, #4] + 8003f78: 681b ldr r3, [r3, #0] + 8003f7a: 4a27 ldr r2, [pc, #156] ; (8004018 ) + 8003f7c: 4293 cmp r3, r2 + 8003f7e: d101 bne.n 8003f84 + 8003f80: 2301 movs r3, #1 + 8003f82: e000 b.n 8003f86 + 8003f84: 2300 movs r3, #0 + 8003f86: 2b00 cmp r3, #0 + 8003f88: d007 beq.n 8003f9a + { + /* Enable the main output */ + __HAL_TIM_MOE_ENABLE(htim); + 8003f8a: 687b ldr r3, [r7, #4] + 8003f8c: 681b ldr r3, [r3, #0] + 8003f8e: 6c5a ldr r2, [r3, #68] ; 0x44 + 8003f90: 687b ldr r3, [r7, #4] + 8003f92: 681b ldr r3, [r3, #0] + 8003f94: f442 4200 orr.w r2, r2, #32768 ; 0x8000 + 8003f98: 645a str r2, [r3, #68] ; 0x44 + } + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) + 8003f9a: 687b ldr r3, [r7, #4] + 8003f9c: 681b ldr r3, [r3, #0] + 8003f9e: 4a1d ldr r2, [pc, #116] ; (8004014 ) + 8003fa0: 4293 cmp r3, r2 + 8003fa2: d018 beq.n 8003fd6 + 8003fa4: 687b ldr r3, [r7, #4] + 8003fa6: 681b ldr r3, [r3, #0] + 8003fa8: 4a1b ldr r2, [pc, #108] ; (8004018 ) + 8003faa: 4293 cmp r3, r2 + 8003fac: d013 beq.n 8003fd6 + 8003fae: 687b ldr r3, [r7, #4] + 8003fb0: 681b ldr r3, [r3, #0] + 8003fb2: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 8003fb6: d00e beq.n 8003fd6 + 8003fb8: 687b ldr r3, [r7, #4] + 8003fba: 681b ldr r3, [r3, #0] + 8003fbc: 4a17 ldr r2, [pc, #92] ; (800401c ) + 8003fbe: 4293 cmp r3, r2 + 8003fc0: d009 beq.n 8003fd6 + 8003fc2: 687b ldr r3, [r7, #4] + 8003fc4: 681b ldr r3, [r3, #0] + 8003fc6: 4a16 ldr r2, [pc, #88] ; (8004020 ) + 8003fc8: 4293 cmp r3, r2 + 8003fca: d004 beq.n 8003fd6 + 8003fcc: 687b ldr r3, [r7, #4] + 8003fce: 681b ldr r3, [r3, #0] + 8003fd0: 4a14 ldr r2, [pc, #80] ; (8004024 ) + 8003fd2: 4293 cmp r3, r2 + 8003fd4: d111 bne.n 8003ffa + { + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 8003fd6: 687b ldr r3, [r7, #4] + 8003fd8: 681b ldr r3, [r3, #0] + 8003fda: 689b ldr r3, [r3, #8] + 8003fdc: f003 0307 and.w r3, r3, #7 + 8003fe0: 60fb str r3, [r7, #12] + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 8003fe2: 68fb ldr r3, [r7, #12] + 8003fe4: 2b06 cmp r3, #6 + 8003fe6: d010 beq.n 800400a + { + __HAL_TIM_ENABLE(htim); + 8003fe8: 687b ldr r3, [r7, #4] + 8003fea: 681b ldr r3, [r3, #0] + 8003fec: 681a ldr r2, [r3, #0] + 8003fee: 687b ldr r3, [r7, #4] + 8003ff0: 681b ldr r3, [r3, #0] + 8003ff2: f042 0201 orr.w r2, r2, #1 + 8003ff6: 601a str r2, [r3, #0] + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 8003ff8: e007 b.n 800400a + } + } + else + { + __HAL_TIM_ENABLE(htim); + 8003ffa: 687b ldr r3, [r7, #4] + 8003ffc: 681b ldr r3, [r3, #0] + 8003ffe: 681a ldr r2, [r3, #0] + 8004000: 687b ldr r3, [r7, #4] + 8004002: 681b ldr r3, [r3, #0] + 8004004: f042 0201 orr.w r2, r2, #1 + 8004008: 601a str r2, [r3, #0] + } + + /* Return function status */ + return HAL_OK; + 800400a: 2300 movs r3, #0 +} + 800400c: 4618 mov r0, r3 + 800400e: 3710 adds r7, #16 + 8004010: 46bd mov sp, r7 + 8004012: bd80 pop {r7, pc} + 8004014: 40012c00 .word 0x40012c00 + 8004018: 40013400 .word 0x40013400 + 800401c: 40000400 .word 0x40000400 + 8004020: 40000800 .word 0x40000800 + 8004024: 40000c00 .word 0x40000c00 + +08004028 : * @brief This function handles TIM interrupts requests. * @param htim TIM handle * @retval None */ void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) { - 8003c20: b580 push {r7, lr} - 8003c22: b082 sub sp, #8 - 8003c24: af00 add r7, sp, #0 - 8003c26: 6078 str r0, [r7, #4] + 8004028: b580 push {r7, lr} + 800402a: b082 sub sp, #8 + 800402c: af00 add r7, sp, #0 + 800402e: 6078 str r0, [r7, #4] /* Capture compare 1 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET) - 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 + 8004030: 687b ldr r3, [r7, #4] + 8004032: 681b ldr r3, [r3, #0] + 8004034: 691b ldr r3, [r3, #16] + 8004036: f003 0302 and.w r3, r3, #2 + 800403a: 2b02 cmp r3, #2 + 800403c: d122 bne.n 8004084 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET) - 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 + 800403e: 687b ldr r3, [r7, #4] + 8004040: 681b ldr r3, [r3, #0] + 8004042: 68db ldr r3, [r3, #12] + 8004044: f003 0302 and.w r3, r3, #2 + 8004048: 2b02 cmp r3, #2 + 800404a: d11b bne.n 8004084 { { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1); - 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] + 800404c: 687b ldr r3, [r7, #4] + 800404e: 681b ldr r3, [r3, #0] + 8004050: f06f 0202 mvn.w r2, #2 + 8004054: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; - 8003c4e: 687b ldr r3, [r7, #4] - 8003c50: 2201 movs r2, #1 - 8003c52: 771a strb r2, [r3, #28] + 8004056: 687b ldr r3, [r7, #4] + 8004058: 2201 movs r2, #1 + 800405a: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U) - 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 + 800405c: 687b ldr r3, [r7, #4] + 800405e: 681b ldr r3, [r3, #0] + 8004060: 699b ldr r3, [r3, #24] + 8004062: f003 0303 and.w r3, r3, #3 + 8004066: 2b00 cmp r3, #0 + 8004068: d003 beq.n 8004072 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8003c62: 6878 ldr r0, [r7, #4] - 8003c64: f000 f8ed bl 8003e42 - 8003c68: e005 b.n 8003c76 + 800406a: 6878 ldr r0, [r7, #4] + 800406c: f000 fa6f bl 800454e + 8004070: e005 b.n 800407e { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8003c6a: 6878 ldr r0, [r7, #4] - 8003c6c: f000 f8e0 bl 8003e30 + 8004072: 6878 ldr r0, [r7, #4] + 8004074: f000 fa62 bl 800453c HAL_TIM_PWM_PulseFinishedCallback(htim); - 8003c70: 6878 ldr r0, [r7, #4] - 8003c72: f000 f8ef bl 8003e54 + 8004078: 6878 ldr r0, [r7, #4] + 800407a: f000 fa71 bl 8004560 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8003c76: 687b ldr r3, [r7, #4] - 8003c78: 2200 movs r2, #0 - 8003c7a: 771a strb r2, [r3, #28] + 800407e: 687b ldr r3, [r7, #4] + 8004080: 2200 movs r2, #0 + 8004082: 771a strb r2, [r3, #28] } } } /* Capture compare 2 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET) - 8003c7c: 687b ldr r3, [r7, #4] - 8003c7e: 681b ldr r3, [r3, #0] - 8003c80: 691b ldr r3, [r3, #16] - 8003c82: f003 0304 and.w r3, r3, #4 - 8003c86: 2b04 cmp r3, #4 - 8003c88: d122 bne.n 8003cd0 + 8004084: 687b ldr r3, [r7, #4] + 8004086: 681b ldr r3, [r3, #0] + 8004088: 691b ldr r3, [r3, #16] + 800408a: f003 0304 and.w r3, r3, #4 + 800408e: 2b04 cmp r3, #4 + 8004090: d122 bne.n 80040d8 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET) - 8003c8a: 687b ldr r3, [r7, #4] - 8003c8c: 681b ldr r3, [r3, #0] - 8003c8e: 68db ldr r3, [r3, #12] - 8003c90: f003 0304 and.w r3, r3, #4 - 8003c94: 2b04 cmp r3, #4 - 8003c96: d11b bne.n 8003cd0 + 8004092: 687b ldr r3, [r7, #4] + 8004094: 681b ldr r3, [r3, #0] + 8004096: 68db ldr r3, [r3, #12] + 8004098: f003 0304 and.w r3, r3, #4 + 800409c: 2b04 cmp r3, #4 + 800409e: d11b bne.n 80040d8 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2); - 8003c98: 687b ldr r3, [r7, #4] - 8003c9a: 681b ldr r3, [r3, #0] - 8003c9c: f06f 0204 mvn.w r2, #4 - 8003ca0: 611a str r2, [r3, #16] + 80040a0: 687b ldr r3, [r7, #4] + 80040a2: 681b ldr r3, [r3, #0] + 80040a4: f06f 0204 mvn.w r2, #4 + 80040a8: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; - 8003ca2: 687b ldr r3, [r7, #4] - 8003ca4: 2202 movs r2, #2 - 8003ca6: 771a strb r2, [r3, #28] + 80040aa: 687b ldr r3, [r7, #4] + 80040ac: 2202 movs r2, #2 + 80040ae: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) - 8003ca8: 687b ldr r3, [r7, #4] - 8003caa: 681b ldr r3, [r3, #0] - 8003cac: 699b ldr r3, [r3, #24] - 8003cae: f403 7340 and.w r3, r3, #768 ; 0x300 - 8003cb2: 2b00 cmp r3, #0 - 8003cb4: d003 beq.n 8003cbe + 80040b0: 687b ldr r3, [r7, #4] + 80040b2: 681b ldr r3, [r3, #0] + 80040b4: 699b ldr r3, [r3, #24] + 80040b6: f403 7340 and.w r3, r3, #768 ; 0x300 + 80040ba: 2b00 cmp r3, #0 + 80040bc: d003 beq.n 80040c6 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8003cb6: 6878 ldr r0, [r7, #4] - 8003cb8: f000 f8c3 bl 8003e42 - 8003cbc: e005 b.n 8003cca + 80040be: 6878 ldr r0, [r7, #4] + 80040c0: f000 fa45 bl 800454e + 80040c4: e005 b.n 80040d2 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8003cbe: 6878 ldr r0, [r7, #4] - 8003cc0: f000 f8b6 bl 8003e30 + 80040c6: 6878 ldr r0, [r7, #4] + 80040c8: f000 fa38 bl 800453c HAL_TIM_PWM_PulseFinishedCallback(htim); - 8003cc4: 6878 ldr r0, [r7, #4] - 8003cc6: f000 f8c5 bl 8003e54 + 80040cc: 6878 ldr r0, [r7, #4] + 80040ce: f000 fa47 bl 8004560 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8003cca: 687b ldr r3, [r7, #4] - 8003ccc: 2200 movs r2, #0 - 8003cce: 771a strb r2, [r3, #28] + 80040d2: 687b ldr r3, [r7, #4] + 80040d4: 2200 movs r2, #0 + 80040d6: 771a strb r2, [r3, #28] } } /* Capture compare 3 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET) - 8003cd0: 687b ldr r3, [r7, #4] - 8003cd2: 681b ldr r3, [r3, #0] - 8003cd4: 691b ldr r3, [r3, #16] - 8003cd6: f003 0308 and.w r3, r3, #8 - 8003cda: 2b08 cmp r3, #8 - 8003cdc: d122 bne.n 8003d24 + 80040d8: 687b ldr r3, [r7, #4] + 80040da: 681b ldr r3, [r3, #0] + 80040dc: 691b ldr r3, [r3, #16] + 80040de: f003 0308 and.w r3, r3, #8 + 80040e2: 2b08 cmp r3, #8 + 80040e4: d122 bne.n 800412c { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET) - 8003cde: 687b ldr r3, [r7, #4] - 8003ce0: 681b ldr r3, [r3, #0] - 8003ce2: 68db ldr r3, [r3, #12] - 8003ce4: f003 0308 and.w r3, r3, #8 - 8003ce8: 2b08 cmp r3, #8 - 8003cea: d11b bne.n 8003d24 + 80040e6: 687b ldr r3, [r7, #4] + 80040e8: 681b ldr r3, [r3, #0] + 80040ea: 68db ldr r3, [r3, #12] + 80040ec: f003 0308 and.w r3, r3, #8 + 80040f0: 2b08 cmp r3, #8 + 80040f2: d11b bne.n 800412c { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3); - 8003cec: 687b ldr r3, [r7, #4] - 8003cee: 681b ldr r3, [r3, #0] - 8003cf0: f06f 0208 mvn.w r2, #8 - 8003cf4: 611a str r2, [r3, #16] + 80040f4: 687b ldr r3, [r7, #4] + 80040f6: 681b ldr r3, [r3, #0] + 80040f8: f06f 0208 mvn.w r2, #8 + 80040fc: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; - 8003cf6: 687b ldr r3, [r7, #4] - 8003cf8: 2204 movs r2, #4 - 8003cfa: 771a strb r2, [r3, #28] + 80040fe: 687b ldr r3, [r7, #4] + 8004100: 2204 movs r2, #4 + 8004102: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U) - 8003cfc: 687b ldr r3, [r7, #4] - 8003cfe: 681b ldr r3, [r3, #0] - 8003d00: 69db ldr r3, [r3, #28] - 8003d02: f003 0303 and.w r3, r3, #3 - 8003d06: 2b00 cmp r3, #0 - 8003d08: d003 beq.n 8003d12 + 8004104: 687b ldr r3, [r7, #4] + 8004106: 681b ldr r3, [r3, #0] + 8004108: 69db ldr r3, [r3, #28] + 800410a: f003 0303 and.w r3, r3, #3 + 800410e: 2b00 cmp r3, #0 + 8004110: d003 beq.n 800411a { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8003d0a: 6878 ldr r0, [r7, #4] - 8003d0c: f000 f899 bl 8003e42 - 8003d10: e005 b.n 8003d1e + 8004112: 6878 ldr r0, [r7, #4] + 8004114: f000 fa1b bl 800454e + 8004118: e005 b.n 8004126 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8003d12: 6878 ldr r0, [r7, #4] - 8003d14: f000 f88c bl 8003e30 + 800411a: 6878 ldr r0, [r7, #4] + 800411c: f000 fa0e bl 800453c HAL_TIM_PWM_PulseFinishedCallback(htim); - 8003d18: 6878 ldr r0, [r7, #4] - 8003d1a: f000 f89b bl 8003e54 + 8004120: 6878 ldr r0, [r7, #4] + 8004122: f000 fa1d bl 8004560 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8003d1e: 687b ldr r3, [r7, #4] - 8003d20: 2200 movs r2, #0 - 8003d22: 771a strb r2, [r3, #28] + 8004126: 687b ldr r3, [r7, #4] + 8004128: 2200 movs r2, #0 + 800412a: 771a strb r2, [r3, #28] } } /* Capture compare 4 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET) - 8003d24: 687b ldr r3, [r7, #4] - 8003d26: 681b ldr r3, [r3, #0] - 8003d28: 691b ldr r3, [r3, #16] - 8003d2a: f003 0310 and.w r3, r3, #16 - 8003d2e: 2b10 cmp r3, #16 - 8003d30: d122 bne.n 8003d78 + 800412c: 687b ldr r3, [r7, #4] + 800412e: 681b ldr r3, [r3, #0] + 8004130: 691b ldr r3, [r3, #16] + 8004132: f003 0310 and.w r3, r3, #16 + 8004136: 2b10 cmp r3, #16 + 8004138: d122 bne.n 8004180 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET) - 8003d32: 687b ldr r3, [r7, #4] - 8003d34: 681b ldr r3, [r3, #0] - 8003d36: 68db ldr r3, [r3, #12] - 8003d38: f003 0310 and.w r3, r3, #16 - 8003d3c: 2b10 cmp r3, #16 - 8003d3e: d11b bne.n 8003d78 + 800413a: 687b ldr r3, [r7, #4] + 800413c: 681b ldr r3, [r3, #0] + 800413e: 68db ldr r3, [r3, #12] + 8004140: f003 0310 and.w r3, r3, #16 + 8004144: 2b10 cmp r3, #16 + 8004146: d11b bne.n 8004180 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4); - 8003d40: 687b ldr r3, [r7, #4] - 8003d42: 681b ldr r3, [r3, #0] - 8003d44: f06f 0210 mvn.w r2, #16 - 8003d48: 611a str r2, [r3, #16] + 8004148: 687b ldr r3, [r7, #4] + 800414a: 681b ldr r3, [r3, #0] + 800414c: f06f 0210 mvn.w r2, #16 + 8004150: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; - 8003d4a: 687b ldr r3, [r7, #4] - 8003d4c: 2208 movs r2, #8 - 8003d4e: 771a strb r2, [r3, #28] + 8004152: 687b ldr r3, [r7, #4] + 8004154: 2208 movs r2, #8 + 8004156: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U) - 8003d50: 687b ldr r3, [r7, #4] - 8003d52: 681b ldr r3, [r3, #0] - 8003d54: 69db ldr r3, [r3, #28] - 8003d56: f403 7340 and.w r3, r3, #768 ; 0x300 - 8003d5a: 2b00 cmp r3, #0 - 8003d5c: d003 beq.n 8003d66 + 8004158: 687b ldr r3, [r7, #4] + 800415a: 681b ldr r3, [r3, #0] + 800415c: 69db ldr r3, [r3, #28] + 800415e: f403 7340 and.w r3, r3, #768 ; 0x300 + 8004162: 2b00 cmp r3, #0 + 8004164: d003 beq.n 800416e { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8003d5e: 6878 ldr r0, [r7, #4] - 8003d60: f000 f86f bl 8003e42 - 8003d64: e005 b.n 8003d72 + 8004166: 6878 ldr r0, [r7, #4] + 8004168: f000 f9f1 bl 800454e + 800416c: e005 b.n 800417a { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8003d66: 6878 ldr r0, [r7, #4] - 8003d68: f000 f862 bl 8003e30 + 800416e: 6878 ldr r0, [r7, #4] + 8004170: f000 f9e4 bl 800453c HAL_TIM_PWM_PulseFinishedCallback(htim); - 8003d6c: 6878 ldr r0, [r7, #4] - 8003d6e: f000 f871 bl 8003e54 + 8004174: 6878 ldr r0, [r7, #4] + 8004176: f000 f9f3 bl 8004560 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8003d72: 687b ldr r3, [r7, #4] - 8003d74: 2200 movs r2, #0 - 8003d76: 771a strb r2, [r3, #28] + 800417a: 687b ldr r3, [r7, #4] + 800417c: 2200 movs r2, #0 + 800417e: 771a strb r2, [r3, #28] } } /* TIM Update event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET) - 8003d78: 687b ldr r3, [r7, #4] - 8003d7a: 681b ldr r3, [r3, #0] - 8003d7c: 691b ldr r3, [r3, #16] - 8003d7e: f003 0301 and.w r3, r3, #1 - 8003d82: 2b01 cmp r3, #1 - 8003d84: d10e bne.n 8003da4 + 8004180: 687b ldr r3, [r7, #4] + 8004182: 681b ldr r3, [r3, #0] + 8004184: 691b ldr r3, [r3, #16] + 8004186: f003 0301 and.w r3, r3, #1 + 800418a: 2b01 cmp r3, #1 + 800418c: d10e bne.n 80041ac { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET) - 8003d86: 687b ldr r3, [r7, #4] - 8003d88: 681b ldr r3, [r3, #0] - 8003d8a: 68db ldr r3, [r3, #12] - 8003d8c: f003 0301 and.w r3, r3, #1 - 8003d90: 2b01 cmp r3, #1 - 8003d92: d107 bne.n 8003da4 + 800418e: 687b ldr r3, [r7, #4] + 8004190: 681b ldr r3, [r3, #0] + 8004192: 68db ldr r3, [r3, #12] + 8004194: f003 0301 and.w r3, r3, #1 + 8004198: 2b01 cmp r3, #1 + 800419a: d107 bne.n 80041ac { __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); - 8003d94: 687b ldr r3, [r7, #4] - 8003d96: 681b ldr r3, [r3, #0] - 8003d98: f06f 0201 mvn.w r2, #1 - 8003d9c: 611a str r2, [r3, #16] + 800419c: 687b ldr r3, [r7, #4] + 800419e: 681b ldr r3, [r3, #0] + 80041a0: f06f 0201 mvn.w r2, #1 + 80041a4: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->PeriodElapsedCallback(htim); #else HAL_TIM_PeriodElapsedCallback(htim); - 8003d9e: 6878 ldr r0, [r7, #4] - 8003da0: f001 ffba bl 8005d18 + 80041a6: 6878 ldr r0, [r7, #4] + 80041a8: f002 fc76 bl 8006a98 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Break input event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET) - 8003da4: 687b ldr r3, [r7, #4] - 8003da6: 681b ldr r3, [r3, #0] - 8003da8: 691b ldr r3, [r3, #16] - 8003daa: f003 0380 and.w r3, r3, #128 ; 0x80 - 8003dae: 2b80 cmp r3, #128 ; 0x80 - 8003db0: d10e bne.n 8003dd0 + 80041ac: 687b ldr r3, [r7, #4] + 80041ae: 681b ldr r3, [r3, #0] + 80041b0: 691b ldr r3, [r3, #16] + 80041b2: f003 0380 and.w r3, r3, #128 ; 0x80 + 80041b6: 2b80 cmp r3, #128 ; 0x80 + 80041b8: d10e bne.n 80041d8 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) - 8003db2: 687b ldr r3, [r7, #4] - 8003db4: 681b ldr r3, [r3, #0] - 8003db6: 68db ldr r3, [r3, #12] - 8003db8: f003 0380 and.w r3, r3, #128 ; 0x80 - 8003dbc: 2b80 cmp r3, #128 ; 0x80 - 8003dbe: d107 bne.n 8003dd0 + 80041ba: 687b ldr r3, [r7, #4] + 80041bc: 681b ldr r3, [r3, #0] + 80041be: 68db ldr r3, [r3, #12] + 80041c0: f003 0380 and.w r3, r3, #128 ; 0x80 + 80041c4: 2b80 cmp r3, #128 ; 0x80 + 80041c6: d107 bne.n 80041d8 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK); - 8003dc0: 687b ldr r3, [r7, #4] - 8003dc2: 681b ldr r3, [r3, #0] - 8003dc4: f06f 0280 mvn.w r2, #128 ; 0x80 - 8003dc8: 611a str r2, [r3, #16] + 80041c8: 687b ldr r3, [r7, #4] + 80041ca: 681b ldr r3, [r3, #0] + 80041cc: f06f 0280 mvn.w r2, #128 ; 0x80 + 80041d0: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->BreakCallback(htim); #else HAL_TIMEx_BreakCallback(htim); - 8003dca: 6878 ldr r0, [r7, #4] - 8003dcc: f000 f943 bl 8004056 + 80041d2: 6878 ldr r0, [r7, #4] + 80041d4: f000 fd2b bl 8004c2e #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Trigger detection event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET) - 8003dd0: 687b ldr r3, [r7, #4] - 8003dd2: 681b ldr r3, [r3, #0] - 8003dd4: 691b ldr r3, [r3, #16] - 8003dd6: f003 0340 and.w r3, r3, #64 ; 0x40 - 8003dda: 2b40 cmp r3, #64 ; 0x40 - 8003ddc: d10e bne.n 8003dfc + 80041d8: 687b ldr r3, [r7, #4] + 80041da: 681b ldr r3, [r3, #0] + 80041dc: 691b ldr r3, [r3, #16] + 80041de: f003 0340 and.w r3, r3, #64 ; 0x40 + 80041e2: 2b40 cmp r3, #64 ; 0x40 + 80041e4: d10e bne.n 8004204 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET) - 8003dde: 687b ldr r3, [r7, #4] - 8003de0: 681b ldr r3, [r3, #0] - 8003de2: 68db ldr r3, [r3, #12] - 8003de4: f003 0340 and.w r3, r3, #64 ; 0x40 - 8003de8: 2b40 cmp r3, #64 ; 0x40 - 8003dea: d107 bne.n 8003dfc + 80041e6: 687b ldr r3, [r7, #4] + 80041e8: 681b ldr r3, [r3, #0] + 80041ea: 68db ldr r3, [r3, #12] + 80041ec: f003 0340 and.w r3, r3, #64 ; 0x40 + 80041f0: 2b40 cmp r3, #64 ; 0x40 + 80041f2: d107 bne.n 8004204 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER); - 8003dec: 687b ldr r3, [r7, #4] - 8003dee: 681b ldr r3, [r3, #0] - 8003df0: f06f 0240 mvn.w r2, #64 ; 0x40 - 8003df4: 611a str r2, [r3, #16] + 80041f4: 687b ldr r3, [r7, #4] + 80041f6: 681b ldr r3, [r3, #0] + 80041f8: f06f 0240 mvn.w r2, #64 ; 0x40 + 80041fc: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->TriggerCallback(htim); #else HAL_TIM_TriggerCallback(htim); - 8003df6: 6878 ldr r0, [r7, #4] - 8003df8: f000 f835 bl 8003e66 + 80041fe: 6878 ldr r0, [r7, #4] + 8004200: f000 f9b7 bl 8004572 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM commutation event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET) - 8003dfc: 687b ldr r3, [r7, #4] - 8003dfe: 681b ldr r3, [r3, #0] - 8003e00: 691b ldr r3, [r3, #16] - 8003e02: f003 0320 and.w r3, r3, #32 - 8003e06: 2b20 cmp r3, #32 - 8003e08: d10e bne.n 8003e28 + 8004204: 687b ldr r3, [r7, #4] + 8004206: 681b ldr r3, [r3, #0] + 8004208: 691b ldr r3, [r3, #16] + 800420a: f003 0320 and.w r3, r3, #32 + 800420e: 2b20 cmp r3, #32 + 8004210: d10e bne.n 8004230 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET) - 8003e0a: 687b ldr r3, [r7, #4] - 8003e0c: 681b ldr r3, [r3, #0] - 8003e0e: 68db ldr r3, [r3, #12] - 8003e10: f003 0320 and.w r3, r3, #32 - 8003e14: 2b20 cmp r3, #32 - 8003e16: d107 bne.n 8003e28 + 8004212: 687b ldr r3, [r7, #4] + 8004214: 681b ldr r3, [r3, #0] + 8004216: 68db ldr r3, [r3, #12] + 8004218: f003 0320 and.w r3, r3, #32 + 800421c: 2b20 cmp r3, #32 + 800421e: d107 bne.n 8004230 { __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM); - 8003e18: 687b ldr r3, [r7, #4] - 8003e1a: 681b ldr r3, [r3, #0] - 8003e1c: f06f 0220 mvn.w r2, #32 - 8003e20: 611a str r2, [r3, #16] + 8004220: 687b ldr r3, [r7, #4] + 8004222: 681b ldr r3, [r3, #0] + 8004224: f06f 0220 mvn.w r2, #32 + 8004228: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->CommutationCallback(htim); #else HAL_TIMEx_CommutCallback(htim); - 8003e22: 6878 ldr r0, [r7, #4] - 8003e24: f000 f90e bl 8004044 + 800422a: 6878 ldr r0, [r7, #4] + 800422c: f000 fcf6 bl 8004c1c #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } } - 8003e28: bf00 nop - 8003e2a: 3708 adds r7, #8 - 8003e2c: 46bd mov sp, r7 - 8003e2e: bd80 pop {r7, pc} + 8004230: bf00 nop + 8004232: 3708 adds r7, #8 + 8004234: 46bd mov sp, r7 + 8004236: bd80 pop {r7, pc} -08003e30 : +08004238 : + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, + TIM_OC_InitTypeDef *sConfig, + uint32_t Channel) +{ + 8004238: b580 push {r7, lr} + 800423a: b084 sub sp, #16 + 800423c: af00 add r7, sp, #0 + 800423e: 60f8 str r0, [r7, #12] + 8004240: 60b9 str r1, [r7, #8] + 8004242: 607a str r2, [r7, #4] + assert_param(IS_TIM_PWM_MODE(sConfig->OCMode)); + assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity)); + assert_param(IS_TIM_FAST_STATE(sConfig->OCFastMode)); + + /* Process Locked */ + __HAL_LOCK(htim); + 8004244: 68fb ldr r3, [r7, #12] + 8004246: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 800424a: 2b01 cmp r3, #1 + 800424c: d101 bne.n 8004252 + 800424e: 2302 movs r3, #2 + 8004250: e0ac b.n 80043ac + 8004252: 68fb ldr r3, [r7, #12] + 8004254: 2201 movs r2, #1 + 8004256: f883 203c strb.w r2, [r3, #60] ; 0x3c + 800425a: 687b ldr r3, [r7, #4] + 800425c: 2b0c cmp r3, #12 + 800425e: f200 809f bhi.w 80043a0 + 8004262: a201 add r2, pc, #4 ; (adr r2, 8004268 ) + 8004264: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8004268: 0800429d .word 0x0800429d + 800426c: 080043a1 .word 0x080043a1 + 8004270: 080043a1 .word 0x080043a1 + 8004274: 080043a1 .word 0x080043a1 + 8004278: 080042dd .word 0x080042dd + 800427c: 080043a1 .word 0x080043a1 + 8004280: 080043a1 .word 0x080043a1 + 8004284: 080043a1 .word 0x080043a1 + 8004288: 0800431f .word 0x0800431f + 800428c: 080043a1 .word 0x080043a1 + 8004290: 080043a1 .word 0x080043a1 + 8004294: 080043a1 .word 0x080043a1 + 8004298: 0800435f .word 0x0800435f + { + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(htim->Instance)); + + /* Configure the Channel 1 in PWM mode */ + TIM_OC1_SetConfig(htim->Instance, sConfig); + 800429c: 68fb ldr r3, [r7, #12] + 800429e: 681b ldr r3, [r3, #0] + 80042a0: 68b9 ldr r1, [r7, #8] + 80042a2: 4618 mov r0, r3 + 80042a4: f000 f9e8 bl 8004678 + + /* Set the Preload enable bit for channel1 */ + htim->Instance->CCMR1 |= TIM_CCMR1_OC1PE; + 80042a8: 68fb ldr r3, [r7, #12] + 80042aa: 681b ldr r3, [r3, #0] + 80042ac: 699a ldr r2, [r3, #24] + 80042ae: 68fb ldr r3, [r7, #12] + 80042b0: 681b ldr r3, [r3, #0] + 80042b2: f042 0208 orr.w r2, r2, #8 + 80042b6: 619a str r2, [r3, #24] + + /* Configure the Output Fast mode */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE; + 80042b8: 68fb ldr r3, [r7, #12] + 80042ba: 681b ldr r3, [r3, #0] + 80042bc: 699a ldr r2, [r3, #24] + 80042be: 68fb ldr r3, [r7, #12] + 80042c0: 681b ldr r3, [r3, #0] + 80042c2: f022 0204 bic.w r2, r2, #4 + 80042c6: 619a str r2, [r3, #24] + htim->Instance->CCMR1 |= sConfig->OCFastMode; + 80042c8: 68fb ldr r3, [r7, #12] + 80042ca: 681b ldr r3, [r3, #0] + 80042cc: 6999 ldr r1, [r3, #24] + 80042ce: 68bb ldr r3, [r7, #8] + 80042d0: 691a ldr r2, [r3, #16] + 80042d2: 68fb ldr r3, [r7, #12] + 80042d4: 681b ldr r3, [r3, #0] + 80042d6: 430a orrs r2, r1 + 80042d8: 619a str r2, [r3, #24] + break; + 80042da: e062 b.n 80043a2 + { + /* Check the parameters */ + assert_param(IS_TIM_CC2_INSTANCE(htim->Instance)); + + /* Configure the Channel 2 in PWM mode */ + TIM_OC2_SetConfig(htim->Instance, sConfig); + 80042dc: 68fb ldr r3, [r7, #12] + 80042de: 681b ldr r3, [r3, #0] + 80042e0: 68b9 ldr r1, [r7, #8] + 80042e2: 4618 mov r0, r3 + 80042e4: f000 fa38 bl 8004758 + + /* Set the Preload enable bit for channel2 */ + htim->Instance->CCMR1 |= TIM_CCMR1_OC2PE; + 80042e8: 68fb ldr r3, [r7, #12] + 80042ea: 681b ldr r3, [r3, #0] + 80042ec: 699a ldr r2, [r3, #24] + 80042ee: 68fb ldr r3, [r7, #12] + 80042f0: 681b ldr r3, [r3, #0] + 80042f2: f442 6200 orr.w r2, r2, #2048 ; 0x800 + 80042f6: 619a str r2, [r3, #24] + + /* Configure the Output Fast mode */ + htim->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE; + 80042f8: 68fb ldr r3, [r7, #12] + 80042fa: 681b ldr r3, [r3, #0] + 80042fc: 699a ldr r2, [r3, #24] + 80042fe: 68fb ldr r3, [r7, #12] + 8004300: 681b ldr r3, [r3, #0] + 8004302: f422 6280 bic.w r2, r2, #1024 ; 0x400 + 8004306: 619a str r2, [r3, #24] + htim->Instance->CCMR1 |= sConfig->OCFastMode << 8U; + 8004308: 68fb ldr r3, [r7, #12] + 800430a: 681b ldr r3, [r3, #0] + 800430c: 6999 ldr r1, [r3, #24] + 800430e: 68bb ldr r3, [r7, #8] + 8004310: 691b ldr r3, [r3, #16] + 8004312: 021a lsls r2, r3, #8 + 8004314: 68fb ldr r3, [r7, #12] + 8004316: 681b ldr r3, [r3, #0] + 8004318: 430a orrs r2, r1 + 800431a: 619a str r2, [r3, #24] + break; + 800431c: e041 b.n 80043a2 + { + /* Check the parameters */ + assert_param(IS_TIM_CC3_INSTANCE(htim->Instance)); + + /* Configure the Channel 3 in PWM mode */ + TIM_OC3_SetConfig(htim->Instance, sConfig); + 800431e: 68fb ldr r3, [r7, #12] + 8004320: 681b ldr r3, [r3, #0] + 8004322: 68b9 ldr r1, [r7, #8] + 8004324: 4618 mov r0, r3 + 8004326: f000 fa8b bl 8004840 + + /* Set the Preload enable bit for channel3 */ + htim->Instance->CCMR2 |= TIM_CCMR2_OC3PE; + 800432a: 68fb ldr r3, [r7, #12] + 800432c: 681b ldr r3, [r3, #0] + 800432e: 69da ldr r2, [r3, #28] + 8004330: 68fb ldr r3, [r7, #12] + 8004332: 681b ldr r3, [r3, #0] + 8004334: f042 0208 orr.w r2, r2, #8 + 8004338: 61da str r2, [r3, #28] + + /* Configure the Output Fast mode */ + htim->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE; + 800433a: 68fb ldr r3, [r7, #12] + 800433c: 681b ldr r3, [r3, #0] + 800433e: 69da ldr r2, [r3, #28] + 8004340: 68fb ldr r3, [r7, #12] + 8004342: 681b ldr r3, [r3, #0] + 8004344: f022 0204 bic.w r2, r2, #4 + 8004348: 61da str r2, [r3, #28] + htim->Instance->CCMR2 |= sConfig->OCFastMode; + 800434a: 68fb ldr r3, [r7, #12] + 800434c: 681b ldr r3, [r3, #0] + 800434e: 69d9 ldr r1, [r3, #28] + 8004350: 68bb ldr r3, [r7, #8] + 8004352: 691a ldr r2, [r3, #16] + 8004354: 68fb ldr r3, [r7, #12] + 8004356: 681b ldr r3, [r3, #0] + 8004358: 430a orrs r2, r1 + 800435a: 61da str r2, [r3, #28] + break; + 800435c: e021 b.n 80043a2 + { + /* Check the parameters */ + assert_param(IS_TIM_CC4_INSTANCE(htim->Instance)); + + /* Configure the Channel 4 in PWM mode */ + TIM_OC4_SetConfig(htim->Instance, sConfig); + 800435e: 68fb ldr r3, [r7, #12] + 8004360: 681b ldr r3, [r3, #0] + 8004362: 68b9 ldr r1, [r7, #8] + 8004364: 4618 mov r0, r3 + 8004366: f000 fadf bl 8004928 + + /* Set the Preload enable bit for channel4 */ + htim->Instance->CCMR2 |= TIM_CCMR2_OC4PE; + 800436a: 68fb ldr r3, [r7, #12] + 800436c: 681b ldr r3, [r3, #0] + 800436e: 69da ldr r2, [r3, #28] + 8004370: 68fb ldr r3, [r7, #12] + 8004372: 681b ldr r3, [r3, #0] + 8004374: f442 6200 orr.w r2, r2, #2048 ; 0x800 + 8004378: 61da str r2, [r3, #28] + + /* Configure the Output Fast mode */ + htim->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE; + 800437a: 68fb ldr r3, [r7, #12] + 800437c: 681b ldr r3, [r3, #0] + 800437e: 69da ldr r2, [r3, #28] + 8004380: 68fb ldr r3, [r7, #12] + 8004382: 681b ldr r3, [r3, #0] + 8004384: f422 6280 bic.w r2, r2, #1024 ; 0x400 + 8004388: 61da str r2, [r3, #28] + htim->Instance->CCMR2 |= sConfig->OCFastMode << 8U; + 800438a: 68fb ldr r3, [r7, #12] + 800438c: 681b ldr r3, [r3, #0] + 800438e: 69d9 ldr r1, [r3, #28] + 8004390: 68bb ldr r3, [r7, #8] + 8004392: 691b ldr r3, [r3, #16] + 8004394: 021a lsls r2, r3, #8 + 8004396: 68fb ldr r3, [r7, #12] + 8004398: 681b ldr r3, [r3, #0] + 800439a: 430a orrs r2, r1 + 800439c: 61da str r2, [r3, #28] + break; + 800439e: e000 b.n 80043a2 + } + + default: + break; + 80043a0: bf00 nop + } + + __HAL_UNLOCK(htim); + 80043a2: 68fb ldr r3, [r7, #12] + 80043a4: 2200 movs r2, #0 + 80043a6: f883 203c strb.w r2, [r3, #60] ; 0x3c + + return HAL_OK; + 80043aa: 2300 movs r3, #0 +} + 80043ac: 4618 mov r0, r3 + 80043ae: 3710 adds r7, #16 + 80043b0: 46bd mov sp, r7 + 80043b2: bd80 pop {r7, pc} + +080043b4 : + * @param sClockSourceConfig pointer to a TIM_ClockConfigTypeDef structure that + * contains the clock source information for the TIM peripheral. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, TIM_ClockConfigTypeDef *sClockSourceConfig) +{ + 80043b4: b580 push {r7, lr} + 80043b6: b084 sub sp, #16 + 80043b8: af00 add r7, sp, #0 + 80043ba: 6078 str r0, [r7, #4] + 80043bc: 6039 str r1, [r7, #0] + uint32_t tmpsmcr; + + /* Process Locked */ + __HAL_LOCK(htim); + 80043be: 687b ldr r3, [r7, #4] + 80043c0: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 80043c4: 2b01 cmp r3, #1 + 80043c6: d101 bne.n 80043cc + 80043c8: 2302 movs r3, #2 + 80043ca: e0b3 b.n 8004534 + 80043cc: 687b ldr r3, [r7, #4] + 80043ce: 2201 movs r2, #1 + 80043d0: f883 203c strb.w r2, [r3, #60] ; 0x3c + + htim->State = HAL_TIM_STATE_BUSY; + 80043d4: 687b ldr r3, [r7, #4] + 80043d6: 2202 movs r2, #2 + 80043d8: f883 203d strb.w r2, [r3, #61] ; 0x3d + + /* Check the parameters */ + assert_param(IS_TIM_CLOCKSOURCE(sClockSourceConfig->ClockSource)); + + /* Reset the SMS, TS, ECE, ETPS and ETRF bits */ + tmpsmcr = htim->Instance->SMCR; + 80043dc: 687b ldr r3, [r7, #4] + 80043de: 681b ldr r3, [r3, #0] + 80043e0: 689b ldr r3, [r3, #8] + 80043e2: 60fb str r3, [r7, #12] + tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS); + 80043e4: 68fb ldr r3, [r7, #12] + 80043e6: f023 0377 bic.w r3, r3, #119 ; 0x77 + 80043ea: 60fb str r3, [r7, #12] + tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); + 80043ec: 68fb ldr r3, [r7, #12] + 80043ee: f423 437f bic.w r3, r3, #65280 ; 0xff00 + 80043f2: 60fb str r3, [r7, #12] + htim->Instance->SMCR = tmpsmcr; + 80043f4: 687b ldr r3, [r7, #4] + 80043f6: 681b ldr r3, [r3, #0] + 80043f8: 68fa ldr r2, [r7, #12] + 80043fa: 609a str r2, [r3, #8] + + switch (sClockSourceConfig->ClockSource) + 80043fc: 683b ldr r3, [r7, #0] + 80043fe: 681b ldr r3, [r3, #0] + 8004400: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 8004404: d03e beq.n 8004484 + 8004406: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 800440a: f200 8087 bhi.w 800451c + 800440e: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 + 8004412: f000 8085 beq.w 8004520 + 8004416: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 + 800441a: d87f bhi.n 800451c + 800441c: 2b70 cmp r3, #112 ; 0x70 + 800441e: d01a beq.n 8004456 + 8004420: 2b70 cmp r3, #112 ; 0x70 + 8004422: d87b bhi.n 800451c + 8004424: 2b60 cmp r3, #96 ; 0x60 + 8004426: d050 beq.n 80044ca + 8004428: 2b60 cmp r3, #96 ; 0x60 + 800442a: d877 bhi.n 800451c + 800442c: 2b50 cmp r3, #80 ; 0x50 + 800442e: d03c beq.n 80044aa + 8004430: 2b50 cmp r3, #80 ; 0x50 + 8004432: d873 bhi.n 800451c + 8004434: 2b40 cmp r3, #64 ; 0x40 + 8004436: d058 beq.n 80044ea + 8004438: 2b40 cmp r3, #64 ; 0x40 + 800443a: d86f bhi.n 800451c + 800443c: 2b30 cmp r3, #48 ; 0x30 + 800443e: d064 beq.n 800450a + 8004440: 2b30 cmp r3, #48 ; 0x30 + 8004442: d86b bhi.n 800451c + 8004444: 2b20 cmp r3, #32 + 8004446: d060 beq.n 800450a + 8004448: 2b20 cmp r3, #32 + 800444a: d867 bhi.n 800451c + 800444c: 2b00 cmp r3, #0 + 800444e: d05c beq.n 800450a + 8004450: 2b10 cmp r3, #16 + 8004452: d05a beq.n 800450a + TIM_ITRx_SetConfig(htim->Instance, sClockSourceConfig->ClockSource); + break; + } + + default: + break; + 8004454: e062 b.n 800451c + TIM_ETR_SetConfig(htim->Instance, + 8004456: 687b ldr r3, [r7, #4] + 8004458: 6818 ldr r0, [r3, #0] + 800445a: 683b ldr r3, [r7, #0] + 800445c: 6899 ldr r1, [r3, #8] + 800445e: 683b ldr r3, [r7, #0] + 8004460: 685a ldr r2, [r3, #4] + 8004462: 683b ldr r3, [r7, #0] + 8004464: 68db ldr r3, [r3, #12] + 8004466: f000 fb2a bl 8004abe + tmpsmcr = htim->Instance->SMCR; + 800446a: 687b ldr r3, [r7, #4] + 800446c: 681b ldr r3, [r3, #0] + 800446e: 689b ldr r3, [r3, #8] + 8004470: 60fb str r3, [r7, #12] + tmpsmcr |= (TIM_SLAVEMODE_EXTERNAL1 | TIM_CLOCKSOURCE_ETRMODE1); + 8004472: 68fb ldr r3, [r7, #12] + 8004474: f043 0377 orr.w r3, r3, #119 ; 0x77 + 8004478: 60fb str r3, [r7, #12] + htim->Instance->SMCR = tmpsmcr; + 800447a: 687b ldr r3, [r7, #4] + 800447c: 681b ldr r3, [r3, #0] + 800447e: 68fa ldr r2, [r7, #12] + 8004480: 609a str r2, [r3, #8] + break; + 8004482: e04e b.n 8004522 + TIM_ETR_SetConfig(htim->Instance, + 8004484: 687b ldr r3, [r7, #4] + 8004486: 6818 ldr r0, [r3, #0] + 8004488: 683b ldr r3, [r7, #0] + 800448a: 6899 ldr r1, [r3, #8] + 800448c: 683b ldr r3, [r7, #0] + 800448e: 685a ldr r2, [r3, #4] + 8004490: 683b ldr r3, [r7, #0] + 8004492: 68db ldr r3, [r3, #12] + 8004494: f000 fb13 bl 8004abe + htim->Instance->SMCR |= TIM_SMCR_ECE; + 8004498: 687b ldr r3, [r7, #4] + 800449a: 681b ldr r3, [r3, #0] + 800449c: 689a ldr r2, [r3, #8] + 800449e: 687b ldr r3, [r7, #4] + 80044a0: 681b ldr r3, [r3, #0] + 80044a2: f442 4280 orr.w r2, r2, #16384 ; 0x4000 + 80044a6: 609a str r2, [r3, #8] + break; + 80044a8: e03b b.n 8004522 + TIM_TI1_ConfigInputStage(htim->Instance, + 80044aa: 687b ldr r3, [r7, #4] + 80044ac: 6818 ldr r0, [r3, #0] + 80044ae: 683b ldr r3, [r7, #0] + 80044b0: 6859 ldr r1, [r3, #4] + 80044b2: 683b ldr r3, [r7, #0] + 80044b4: 68db ldr r3, [r3, #12] + 80044b6: 461a mov r2, r3 + 80044b8: f000 fa8a bl 80049d0 + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1); + 80044bc: 687b ldr r3, [r7, #4] + 80044be: 681b ldr r3, [r3, #0] + 80044c0: 2150 movs r1, #80 ; 0x50 + 80044c2: 4618 mov r0, r3 + 80044c4: f000 fae1 bl 8004a8a + break; + 80044c8: e02b b.n 8004522 + TIM_TI2_ConfigInputStage(htim->Instance, + 80044ca: 687b ldr r3, [r7, #4] + 80044cc: 6818 ldr r0, [r3, #0] + 80044ce: 683b ldr r3, [r7, #0] + 80044d0: 6859 ldr r1, [r3, #4] + 80044d2: 683b ldr r3, [r7, #0] + 80044d4: 68db ldr r3, [r3, #12] + 80044d6: 461a mov r2, r3 + 80044d8: f000 faa8 bl 8004a2c + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI2); + 80044dc: 687b ldr r3, [r7, #4] + 80044de: 681b ldr r3, [r3, #0] + 80044e0: 2160 movs r1, #96 ; 0x60 + 80044e2: 4618 mov r0, r3 + 80044e4: f000 fad1 bl 8004a8a + break; + 80044e8: e01b b.n 8004522 + TIM_TI1_ConfigInputStage(htim->Instance, + 80044ea: 687b ldr r3, [r7, #4] + 80044ec: 6818 ldr r0, [r3, #0] + 80044ee: 683b ldr r3, [r7, #0] + 80044f0: 6859 ldr r1, [r3, #4] + 80044f2: 683b ldr r3, [r7, #0] + 80044f4: 68db ldr r3, [r3, #12] + 80044f6: 461a mov r2, r3 + 80044f8: f000 fa6a bl 80049d0 + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1ED); + 80044fc: 687b ldr r3, [r7, #4] + 80044fe: 681b ldr r3, [r3, #0] + 8004500: 2140 movs r1, #64 ; 0x40 + 8004502: 4618 mov r0, r3 + 8004504: f000 fac1 bl 8004a8a + break; + 8004508: e00b b.n 8004522 + TIM_ITRx_SetConfig(htim->Instance, sClockSourceConfig->ClockSource); + 800450a: 687b ldr r3, [r7, #4] + 800450c: 681a ldr r2, [r3, #0] + 800450e: 683b ldr r3, [r7, #0] + 8004510: 681b ldr r3, [r3, #0] + 8004512: 4619 mov r1, r3 + 8004514: 4610 mov r0, r2 + 8004516: f000 fab8 bl 8004a8a + break; + 800451a: e002 b.n 8004522 + break; + 800451c: bf00 nop + 800451e: e000 b.n 8004522 + break; + 8004520: bf00 nop + } + htim->State = HAL_TIM_STATE_READY; + 8004522: 687b ldr r3, [r7, #4] + 8004524: 2201 movs r2, #1 + 8004526: f883 203d strb.w r2, [r3, #61] ; 0x3d + + __HAL_UNLOCK(htim); + 800452a: 687b ldr r3, [r7, #4] + 800452c: 2200 movs r2, #0 + 800452e: f883 203c strb.w r2, [r3, #60] ; 0x3c + + return HAL_OK; + 8004532: 2300 movs r3, #0 +} + 8004534: 4618 mov r0, r3 + 8004536: 3710 adds r7, #16 + 8004538: 46bd mov sp, r7 + 800453a: bd80 pop {r7, pc} + +0800453c : * @brief Output Compare callback in non-blocking mode * @param htim TIM OC handle * @retval None */ __weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) { - 8003e30: b480 push {r7} - 8003e32: b083 sub sp, #12 - 8003e34: af00 add r7, sp, #0 - 8003e36: 6078 str r0, [r7, #4] + 800453c: b480 push {r7} + 800453e: b083 sub sp, #12 + 8004540: af00 add r7, sp, #0 + 8004542: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file */ } - 8003e38: bf00 nop - 8003e3a: 370c adds r7, #12 - 8003e3c: 46bd mov sp, r7 - 8003e3e: bc80 pop {r7} - 8003e40: 4770 bx lr + 8004544: bf00 nop + 8004546: 370c adds r7, #12 + 8004548: 46bd mov sp, r7 + 800454a: bc80 pop {r7} + 800454c: 4770 bx lr -08003e42 : +0800454e : * @brief Input Capture callback in non-blocking mode * @param htim TIM IC handle * @retval None */ __weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { - 8003e42: b480 push {r7} - 8003e44: b083 sub sp, #12 - 8003e46: af00 add r7, sp, #0 - 8003e48: 6078 str r0, [r7, #4] + 800454e: b480 push {r7} + 8004550: b083 sub sp, #12 + 8004552: af00 add r7, sp, #0 + 8004554: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_IC_CaptureCallback could be implemented in the user file */ } - 8003e4a: bf00 nop - 8003e4c: 370c adds r7, #12 - 8003e4e: 46bd mov sp, r7 - 8003e50: bc80 pop {r7} - 8003e52: 4770 bx lr + 8004556: bf00 nop + 8004558: 370c adds r7, #12 + 800455a: 46bd mov sp, r7 + 800455c: bc80 pop {r7} + 800455e: 4770 bx lr -08003e54 : +08004560 : * @brief PWM Pulse finished callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) { - 8003e54: b480 push {r7} - 8003e56: b083 sub sp, #12 - 8003e58: af00 add r7, sp, #0 - 8003e5a: 6078 str r0, [r7, #4] + 8004560: b480 push {r7} + 8004562: b083 sub sp, #12 + 8004564: af00 add r7, sp, #0 + 8004566: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file */ } - 8003e5c: bf00 nop - 8003e5e: 370c adds r7, #12 - 8003e60: 46bd mov sp, r7 - 8003e62: bc80 pop {r7} - 8003e64: 4770 bx lr + 8004568: bf00 nop + 800456a: 370c adds r7, #12 + 800456c: 46bd mov sp, r7 + 800456e: bc80 pop {r7} + 8004570: 4770 bx lr -08003e66 : +08004572 : * @brief Hall Trigger detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) { - 8003e66: b480 push {r7} - 8003e68: b083 sub sp, #12 - 8003e6a: af00 add r7, sp, #0 - 8003e6c: 6078 str r0, [r7, #4] + 8004572: b480 push {r7} + 8004574: b083 sub sp, #12 + 8004576: af00 add r7, sp, #0 + 8004578: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_TriggerCallback could be implemented in the user file */ } - 8003e6e: bf00 nop - 8003e70: 370c adds r7, #12 - 8003e72: 46bd mov sp, r7 - 8003e74: bc80 pop {r7} - 8003e76: 4770 bx lr + 800457a: bf00 nop + 800457c: 370c adds r7, #12 + 800457e: 46bd mov sp, r7 + 8004580: bc80 pop {r7} + 8004582: 4770 bx lr -08003e78 : +08004584 : * @param TIMx TIM peripheral * @param Structure TIM Base configuration structure * @retval None */ void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure) { - 8003e78: b480 push {r7} - 8003e7a: b085 sub sp, #20 - 8003e7c: af00 add r7, sp, #0 - 8003e7e: 6078 str r0, [r7, #4] - 8003e80: 6039 str r1, [r7, #0] + 8004584: b480 push {r7} + 8004586: b085 sub sp, #20 + 8004588: af00 add r7, sp, #0 + 800458a: 6078 str r0, [r7, #4] + 800458c: 6039 str r1, [r7, #0] uint32_t tmpcr1; tmpcr1 = TIMx->CR1; - 8003e82: 687b ldr r3, [r7, #4] - 8003e84: 681b ldr r3, [r3, #0] - 8003e86: 60fb str r3, [r7, #12] + 800458e: 687b ldr r3, [r7, #4] + 8004590: 681b ldr r3, [r3, #0] + 8004592: 60fb str r3, [r7, #12] /* Set TIM Time Base Unit parameters ---------------------------------------*/ if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) - 8003e88: 687b ldr r3, [r7, #4] - 8003e8a: 4a33 ldr r2, [pc, #204] ; (8003f58 ) - 8003e8c: 4293 cmp r3, r2 - 8003e8e: d013 beq.n 8003eb8 - 8003e90: 687b ldr r3, [r7, #4] - 8003e92: 4a32 ldr r2, [pc, #200] ; (8003f5c ) - 8003e94: 4293 cmp r3, r2 - 8003e96: d00f beq.n 8003eb8 - 8003e98: 687b ldr r3, [r7, #4] - 8003e9a: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 8003e9e: d00b beq.n 8003eb8 - 8003ea0: 687b ldr r3, [r7, #4] - 8003ea2: 4a2f ldr r2, [pc, #188] ; (8003f60 ) - 8003ea4: 4293 cmp r3, r2 - 8003ea6: d007 beq.n 8003eb8 - 8003ea8: 687b ldr r3, [r7, #4] - 8003eaa: 4a2e ldr r2, [pc, #184] ; (8003f64 ) - 8003eac: 4293 cmp r3, r2 - 8003eae: d003 beq.n 8003eb8 - 8003eb0: 687b ldr r3, [r7, #4] - 8003eb2: 4a2d ldr r2, [pc, #180] ; (8003f68 ) - 8003eb4: 4293 cmp r3, r2 - 8003eb6: d108 bne.n 8003eca + 8004594: 687b ldr r3, [r7, #4] + 8004596: 4a33 ldr r2, [pc, #204] ; (8004664 ) + 8004598: 4293 cmp r3, r2 + 800459a: d013 beq.n 80045c4 + 800459c: 687b ldr r3, [r7, #4] + 800459e: 4a32 ldr r2, [pc, #200] ; (8004668 ) + 80045a0: 4293 cmp r3, r2 + 80045a2: d00f beq.n 80045c4 + 80045a4: 687b ldr r3, [r7, #4] + 80045a6: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 80045aa: d00b beq.n 80045c4 + 80045ac: 687b ldr r3, [r7, #4] + 80045ae: 4a2f ldr r2, [pc, #188] ; (800466c ) + 80045b0: 4293 cmp r3, r2 + 80045b2: d007 beq.n 80045c4 + 80045b4: 687b ldr r3, [r7, #4] + 80045b6: 4a2e ldr r2, [pc, #184] ; (8004670 ) + 80045b8: 4293 cmp r3, r2 + 80045ba: d003 beq.n 80045c4 + 80045bc: 687b ldr r3, [r7, #4] + 80045be: 4a2d ldr r2, [pc, #180] ; (8004674 ) + 80045c0: 4293 cmp r3, r2 + 80045c2: d108 bne.n 80045d6 { /* Select the Counter Mode */ tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); - 8003eb8: 68fb ldr r3, [r7, #12] - 8003eba: f023 0370 bic.w r3, r3, #112 ; 0x70 - 8003ebe: 60fb str r3, [r7, #12] + 80045c4: 68fb ldr r3, [r7, #12] + 80045c6: f023 0370 bic.w r3, r3, #112 ; 0x70 + 80045ca: 60fb str r3, [r7, #12] tmpcr1 |= Structure->CounterMode; - 8003ec0: 683b ldr r3, [r7, #0] - 8003ec2: 685b ldr r3, [r3, #4] - 8003ec4: 68fa ldr r2, [r7, #12] - 8003ec6: 4313 orrs r3, r2 - 8003ec8: 60fb str r3, [r7, #12] + 80045cc: 683b ldr r3, [r7, #0] + 80045ce: 685b ldr r3, [r3, #4] + 80045d0: 68fa ldr r2, [r7, #12] + 80045d2: 4313 orrs r3, r2 + 80045d4: 60fb str r3, [r7, #12] } if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) - 8003eca: 687b ldr r3, [r7, #4] - 8003ecc: 4a22 ldr r2, [pc, #136] ; (8003f58 ) - 8003ece: 4293 cmp r3, r2 - 8003ed0: d013 beq.n 8003efa - 8003ed2: 687b ldr r3, [r7, #4] - 8003ed4: 4a21 ldr r2, [pc, #132] ; (8003f5c ) - 8003ed6: 4293 cmp r3, r2 - 8003ed8: d00f beq.n 8003efa - 8003eda: 687b ldr r3, [r7, #4] - 8003edc: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 8003ee0: d00b beq.n 8003efa - 8003ee2: 687b ldr r3, [r7, #4] - 8003ee4: 4a1e ldr r2, [pc, #120] ; (8003f60 ) - 8003ee6: 4293 cmp r3, r2 - 8003ee8: d007 beq.n 8003efa - 8003eea: 687b ldr r3, [r7, #4] - 8003eec: 4a1d ldr r2, [pc, #116] ; (8003f64 ) - 8003eee: 4293 cmp r3, r2 - 8003ef0: d003 beq.n 8003efa - 8003ef2: 687b ldr r3, [r7, #4] - 8003ef4: 4a1c ldr r2, [pc, #112] ; (8003f68 ) - 8003ef6: 4293 cmp r3, r2 - 8003ef8: d108 bne.n 8003f0c + 80045d6: 687b ldr r3, [r7, #4] + 80045d8: 4a22 ldr r2, [pc, #136] ; (8004664 ) + 80045da: 4293 cmp r3, r2 + 80045dc: d013 beq.n 8004606 + 80045de: 687b ldr r3, [r7, #4] + 80045e0: 4a21 ldr r2, [pc, #132] ; (8004668 ) + 80045e2: 4293 cmp r3, r2 + 80045e4: d00f beq.n 8004606 + 80045e6: 687b ldr r3, [r7, #4] + 80045e8: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 80045ec: d00b beq.n 8004606 + 80045ee: 687b ldr r3, [r7, #4] + 80045f0: 4a1e ldr r2, [pc, #120] ; (800466c ) + 80045f2: 4293 cmp r3, r2 + 80045f4: d007 beq.n 8004606 + 80045f6: 687b ldr r3, [r7, #4] + 80045f8: 4a1d ldr r2, [pc, #116] ; (8004670 ) + 80045fa: 4293 cmp r3, r2 + 80045fc: d003 beq.n 8004606 + 80045fe: 687b ldr r3, [r7, #4] + 8004600: 4a1c ldr r2, [pc, #112] ; (8004674 ) + 8004602: 4293 cmp r3, r2 + 8004604: d108 bne.n 8004618 { /* Set the clock division */ tmpcr1 &= ~TIM_CR1_CKD; - 8003efa: 68fb ldr r3, [r7, #12] - 8003efc: f423 7340 bic.w r3, r3, #768 ; 0x300 - 8003f00: 60fb str r3, [r7, #12] + 8004606: 68fb ldr r3, [r7, #12] + 8004608: f423 7340 bic.w r3, r3, #768 ; 0x300 + 800460c: 60fb str r3, [r7, #12] tmpcr1 |= (uint32_t)Structure->ClockDivision; - 8003f02: 683b ldr r3, [r7, #0] - 8003f04: 68db ldr r3, [r3, #12] - 8003f06: 68fa ldr r2, [r7, #12] - 8003f08: 4313 orrs r3, r2 - 8003f0a: 60fb str r3, [r7, #12] + 800460e: 683b ldr r3, [r7, #0] + 8004610: 68db ldr r3, [r3, #12] + 8004612: 68fa ldr r2, [r7, #12] + 8004614: 4313 orrs r3, r2 + 8004616: 60fb str r3, [r7, #12] } /* Set the auto-reload preload */ MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); - 8003f0c: 68fb ldr r3, [r7, #12] - 8003f0e: f023 0280 bic.w r2, r3, #128 ; 0x80 - 8003f12: 683b ldr r3, [r7, #0] - 8003f14: 695b ldr r3, [r3, #20] - 8003f16: 4313 orrs r3, r2 - 8003f18: 60fb str r3, [r7, #12] + 8004618: 68fb ldr r3, [r7, #12] + 800461a: f023 0280 bic.w r2, r3, #128 ; 0x80 + 800461e: 683b ldr r3, [r7, #0] + 8004620: 695b ldr r3, [r3, #20] + 8004622: 4313 orrs r3, r2 + 8004624: 60fb str r3, [r7, #12] TIMx->CR1 = tmpcr1; - 8003f1a: 687b ldr r3, [r7, #4] - 8003f1c: 68fa ldr r2, [r7, #12] - 8003f1e: 601a str r2, [r3, #0] + 8004626: 687b ldr r3, [r7, #4] + 8004628: 68fa ldr r2, [r7, #12] + 800462a: 601a str r2, [r3, #0] /* Set the Autoreload value */ TIMx->ARR = (uint32_t)Structure->Period ; - 8003f20: 683b ldr r3, [r7, #0] - 8003f22: 689a ldr r2, [r3, #8] - 8003f24: 687b ldr r3, [r7, #4] - 8003f26: 62da str r2, [r3, #44] ; 0x2c + 800462c: 683b ldr r3, [r7, #0] + 800462e: 689a ldr r2, [r3, #8] + 8004630: 687b ldr r3, [r7, #4] + 8004632: 62da str r2, [r3, #44] ; 0x2c /* Set the Prescaler value */ TIMx->PSC = Structure->Prescaler; - 8003f28: 683b ldr r3, [r7, #0] - 8003f2a: 681a ldr r2, [r3, #0] - 8003f2c: 687b ldr r3, [r7, #4] - 8003f2e: 629a str r2, [r3, #40] ; 0x28 + 8004634: 683b ldr r3, [r7, #0] + 8004636: 681a ldr r2, [r3, #0] + 8004638: 687b ldr r3, [r7, #4] + 800463a: 629a str r2, [r3, #40] ; 0x28 if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) - 8003f30: 687b ldr r3, [r7, #4] - 8003f32: 4a09 ldr r2, [pc, #36] ; (8003f58 ) - 8003f34: 4293 cmp r3, r2 - 8003f36: d003 beq.n 8003f40 - 8003f38: 687b ldr r3, [r7, #4] - 8003f3a: 4a08 ldr r2, [pc, #32] ; (8003f5c ) - 8003f3c: 4293 cmp r3, r2 - 8003f3e: d103 bne.n 8003f48 + 800463c: 687b ldr r3, [r7, #4] + 800463e: 4a09 ldr r2, [pc, #36] ; (8004664 ) + 8004640: 4293 cmp r3, r2 + 8004642: d003 beq.n 800464c + 8004644: 687b ldr r3, [r7, #4] + 8004646: 4a08 ldr r2, [pc, #32] ; (8004668 ) + 8004648: 4293 cmp r3, r2 + 800464a: d103 bne.n 8004654 { /* Set the Repetition Counter value */ TIMx->RCR = Structure->RepetitionCounter; - 8003f40: 683b ldr r3, [r7, #0] - 8003f42: 691a ldr r2, [r3, #16] - 8003f44: 687b ldr r3, [r7, #4] - 8003f46: 631a str r2, [r3, #48] ; 0x30 + 800464c: 683b ldr r3, [r7, #0] + 800464e: 691a ldr r2, [r3, #16] + 8004650: 687b ldr r3, [r7, #4] + 8004652: 631a str r2, [r3, #48] ; 0x30 } /* Generate an update event to reload the Prescaler and the repetition counter (only for advanced timer) value immediately */ TIMx->EGR = TIM_EGR_UG; - 8003f48: 687b ldr r3, [r7, #4] - 8003f4a: 2201 movs r2, #1 - 8003f4c: 615a str r2, [r3, #20] + 8004654: 687b ldr r3, [r7, #4] + 8004656: 2201 movs r2, #1 + 8004658: 615a str r2, [r3, #20] } - 8003f4e: bf00 nop - 8003f50: 3714 adds r7, #20 - 8003f52: 46bd mov sp, r7 - 8003f54: bc80 pop {r7} - 8003f56: 4770 bx lr - 8003f58: 40012c00 .word 0x40012c00 - 8003f5c: 40013400 .word 0x40013400 - 8003f60: 40000400 .word 0x40000400 - 8003f64: 40000800 .word 0x40000800 - 8003f68: 40000c00 .word 0x40000c00 + 800465a: bf00 nop + 800465c: 3714 adds r7, #20 + 800465e: 46bd mov sp, r7 + 8004660: bc80 pop {r7} + 8004662: 4770 bx lr + 8004664: 40012c00 .word 0x40012c00 + 8004668: 40013400 .word 0x40013400 + 800466c: 40000400 .word 0x40000400 + 8004670: 40000800 .word 0x40000800 + 8004674: 40000c00 .word 0x40000c00 -08003f6c : +08004678 : + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC1_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) +{ + 8004678: b480 push {r7} + 800467a: b087 sub sp, #28 + 800467c: af00 add r7, sp, #0 + 800467e: 6078 str r0, [r7, #4] + 8004680: 6039 str r1, [r7, #0] + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Disable the Channel 1: Reset the CC1E Bit */ + TIMx->CCER &= ~TIM_CCER_CC1E; + 8004682: 687b ldr r3, [r7, #4] + 8004684: 6a1b ldr r3, [r3, #32] + 8004686: f023 0201 bic.w r2, r3, #1 + 800468a: 687b ldr r3, [r7, #4] + 800468c: 621a str r2, [r3, #32] + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + 800468e: 687b ldr r3, [r7, #4] + 8004690: 6a1b ldr r3, [r3, #32] + 8004692: 617b str r3, [r7, #20] + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + 8004694: 687b ldr r3, [r7, #4] + 8004696: 685b ldr r3, [r3, #4] + 8004698: 613b str r3, [r7, #16] + + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR1; + 800469a: 687b ldr r3, [r7, #4] + 800469c: 699b ldr r3, [r3, #24] + 800469e: 60fb str r3, [r7, #12] + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= ~TIM_CCMR1_OC1M; + 80046a0: 68fb ldr r3, [r7, #12] + 80046a2: f023 0370 bic.w r3, r3, #112 ; 0x70 + 80046a6: 60fb str r3, [r7, #12] + tmpccmrx &= ~TIM_CCMR1_CC1S; + 80046a8: 68fb ldr r3, [r7, #12] + 80046aa: f023 0303 bic.w r3, r3, #3 + 80046ae: 60fb str r3, [r7, #12] + /* Select the Output Compare Mode */ + tmpccmrx |= OC_Config->OCMode; + 80046b0: 683b ldr r3, [r7, #0] + 80046b2: 681b ldr r3, [r3, #0] + 80046b4: 68fa ldr r2, [r7, #12] + 80046b6: 4313 orrs r3, r2 + 80046b8: 60fb str r3, [r7, #12] + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC1P; + 80046ba: 697b ldr r3, [r7, #20] + 80046bc: f023 0302 bic.w r3, r3, #2 + 80046c0: 617b str r3, [r7, #20] + /* Set the Output Compare Polarity */ + tmpccer |= OC_Config->OCPolarity; + 80046c2: 683b ldr r3, [r7, #0] + 80046c4: 689b ldr r3, [r3, #8] + 80046c6: 697a ldr r2, [r7, #20] + 80046c8: 4313 orrs r3, r2 + 80046ca: 617b str r3, [r7, #20] + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_1)) + 80046cc: 687b ldr r3, [r7, #4] + 80046ce: 4a20 ldr r2, [pc, #128] ; (8004750 ) + 80046d0: 4293 cmp r3, r2 + 80046d2: d003 beq.n 80046dc + 80046d4: 687b ldr r3, [r7, #4] + 80046d6: 4a1f ldr r2, [pc, #124] ; (8004754 ) + 80046d8: 4293 cmp r3, r2 + 80046da: d10c bne.n 80046f6 + { + /* Check parameters */ + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC1NP; + 80046dc: 697b ldr r3, [r7, #20] + 80046de: f023 0308 bic.w r3, r3, #8 + 80046e2: 617b str r3, [r7, #20] + /* Set the Output N Polarity */ + tmpccer |= OC_Config->OCNPolarity; + 80046e4: 683b ldr r3, [r7, #0] + 80046e6: 68db ldr r3, [r3, #12] + 80046e8: 697a ldr r2, [r7, #20] + 80046ea: 4313 orrs r3, r2 + 80046ec: 617b str r3, [r7, #20] + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC1NE; + 80046ee: 697b ldr r3, [r7, #20] + 80046f0: f023 0304 bic.w r3, r3, #4 + 80046f4: 617b str r3, [r7, #20] + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + 80046f6: 687b ldr r3, [r7, #4] + 80046f8: 4a15 ldr r2, [pc, #84] ; (8004750 ) + 80046fa: 4293 cmp r3, r2 + 80046fc: d003 beq.n 8004706 + 80046fe: 687b ldr r3, [r7, #4] + 8004700: 4a14 ldr r2, [pc, #80] ; (8004754 ) + 8004702: 4293 cmp r3, r2 + 8004704: d111 bne.n 800472a + /* Check parameters */ + assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare and Output Compare N IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS1; + 8004706: 693b ldr r3, [r7, #16] + 8004708: f423 7380 bic.w r3, r3, #256 ; 0x100 + 800470c: 613b str r3, [r7, #16] + tmpcr2 &= ~TIM_CR2_OIS1N; + 800470e: 693b ldr r3, [r7, #16] + 8004710: f423 7300 bic.w r3, r3, #512 ; 0x200 + 8004714: 613b str r3, [r7, #16] + /* Set the Output Idle state */ + tmpcr2 |= OC_Config->OCIdleState; + 8004716: 683b ldr r3, [r7, #0] + 8004718: 695b ldr r3, [r3, #20] + 800471a: 693a ldr r2, [r7, #16] + 800471c: 4313 orrs r3, r2 + 800471e: 613b str r3, [r7, #16] + /* Set the Output N Idle state */ + tmpcr2 |= OC_Config->OCNIdleState; + 8004720: 683b ldr r3, [r7, #0] + 8004722: 699b ldr r3, [r3, #24] + 8004724: 693a ldr r2, [r7, #16] + 8004726: 4313 orrs r3, r2 + 8004728: 613b str r3, [r7, #16] + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + 800472a: 687b ldr r3, [r7, #4] + 800472c: 693a ldr r2, [r7, #16] + 800472e: 605a str r2, [r3, #4] + + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmrx; + 8004730: 687b ldr r3, [r7, #4] + 8004732: 68fa ldr r2, [r7, #12] + 8004734: 619a str r2, [r3, #24] + + /* Set the Capture Compare Register value */ + TIMx->CCR1 = OC_Config->Pulse; + 8004736: 683b ldr r3, [r7, #0] + 8004738: 685a ldr r2, [r3, #4] + 800473a: 687b ldr r3, [r7, #4] + 800473c: 635a str r2, [r3, #52] ; 0x34 + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; + 800473e: 687b ldr r3, [r7, #4] + 8004740: 697a ldr r2, [r7, #20] + 8004742: 621a str r2, [r3, #32] +} + 8004744: bf00 nop + 8004746: 371c adds r7, #28 + 8004748: 46bd mov sp, r7 + 800474a: bc80 pop {r7} + 800474c: 4770 bx lr + 800474e: bf00 nop + 8004750: 40012c00 .word 0x40012c00 + 8004754: 40013400 .word 0x40013400 + +08004758 : + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) +{ + 8004758: b480 push {r7} + 800475a: b087 sub sp, #28 + 800475c: af00 add r7, sp, #0 + 800475e: 6078 str r0, [r7, #4] + 8004760: 6039 str r1, [r7, #0] + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Disable the Channel 2: Reset the CC2E Bit */ + TIMx->CCER &= ~TIM_CCER_CC2E; + 8004762: 687b ldr r3, [r7, #4] + 8004764: 6a1b ldr r3, [r3, #32] + 8004766: f023 0210 bic.w r2, r3, #16 + 800476a: 687b ldr r3, [r7, #4] + 800476c: 621a str r2, [r3, #32] + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + 800476e: 687b ldr r3, [r7, #4] + 8004770: 6a1b ldr r3, [r3, #32] + 8004772: 617b str r3, [r7, #20] + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + 8004774: 687b ldr r3, [r7, #4] + 8004776: 685b ldr r3, [r3, #4] + 8004778: 613b str r3, [r7, #16] + + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR1; + 800477a: 687b ldr r3, [r7, #4] + 800477c: 699b ldr r3, [r3, #24] + 800477e: 60fb str r3, [r7, #12] + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR1_OC2M; + 8004780: 68fb ldr r3, [r7, #12] + 8004782: f423 43e0 bic.w r3, r3, #28672 ; 0x7000 + 8004786: 60fb str r3, [r7, #12] + tmpccmrx &= ~TIM_CCMR1_CC2S; + 8004788: 68fb ldr r3, [r7, #12] + 800478a: f423 7340 bic.w r3, r3, #768 ; 0x300 + 800478e: 60fb str r3, [r7, #12] + + /* Select the Output Compare Mode */ + tmpccmrx |= (OC_Config->OCMode << 8U); + 8004790: 683b ldr r3, [r7, #0] + 8004792: 681b ldr r3, [r3, #0] + 8004794: 021b lsls r3, r3, #8 + 8004796: 68fa ldr r2, [r7, #12] + 8004798: 4313 orrs r3, r2 + 800479a: 60fb str r3, [r7, #12] + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC2P; + 800479c: 697b ldr r3, [r7, #20] + 800479e: f023 0320 bic.w r3, r3, #32 + 80047a2: 617b str r3, [r7, #20] + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 4U); + 80047a4: 683b ldr r3, [r7, #0] + 80047a6: 689b ldr r3, [r3, #8] + 80047a8: 011b lsls r3, r3, #4 + 80047aa: 697a ldr r2, [r7, #20] + 80047ac: 4313 orrs r3, r2 + 80047ae: 617b str r3, [r7, #20] + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_2)) + 80047b0: 687b ldr r3, [r7, #4] + 80047b2: 4a21 ldr r2, [pc, #132] ; (8004838 ) + 80047b4: 4293 cmp r3, r2 + 80047b6: d003 beq.n 80047c0 + 80047b8: 687b ldr r3, [r7, #4] + 80047ba: 4a20 ldr r2, [pc, #128] ; (800483c ) + 80047bc: 4293 cmp r3, r2 + 80047be: d10d bne.n 80047dc + { + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC2NP; + 80047c0: 697b ldr r3, [r7, #20] + 80047c2: f023 0380 bic.w r3, r3, #128 ; 0x80 + 80047c6: 617b str r3, [r7, #20] + /* Set the Output N Polarity */ + tmpccer |= (OC_Config->OCNPolarity << 4U); + 80047c8: 683b ldr r3, [r7, #0] + 80047ca: 68db ldr r3, [r3, #12] + 80047cc: 011b lsls r3, r3, #4 + 80047ce: 697a ldr r2, [r7, #20] + 80047d0: 4313 orrs r3, r2 + 80047d2: 617b str r3, [r7, #20] + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC2NE; + 80047d4: 697b ldr r3, [r7, #20] + 80047d6: f023 0340 bic.w r3, r3, #64 ; 0x40 + 80047da: 617b str r3, [r7, #20] + + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + 80047dc: 687b ldr r3, [r7, #4] + 80047de: 4a16 ldr r2, [pc, #88] ; (8004838 ) + 80047e0: 4293 cmp r3, r2 + 80047e2: d003 beq.n 80047ec + 80047e4: 687b ldr r3, [r7, #4] + 80047e6: 4a15 ldr r2, [pc, #84] ; (800483c ) + 80047e8: 4293 cmp r3, r2 + 80047ea: d113 bne.n 8004814 + /* Check parameters */ + assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare and Output Compare N IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS2; + 80047ec: 693b ldr r3, [r7, #16] + 80047ee: f423 6380 bic.w r3, r3, #1024 ; 0x400 + 80047f2: 613b str r3, [r7, #16] + tmpcr2 &= ~TIM_CR2_OIS2N; + 80047f4: 693b ldr r3, [r7, #16] + 80047f6: f423 6300 bic.w r3, r3, #2048 ; 0x800 + 80047fa: 613b str r3, [r7, #16] + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 2U); + 80047fc: 683b ldr r3, [r7, #0] + 80047fe: 695b ldr r3, [r3, #20] + 8004800: 009b lsls r3, r3, #2 + 8004802: 693a ldr r2, [r7, #16] + 8004804: 4313 orrs r3, r2 + 8004806: 613b str r3, [r7, #16] + /* Set the Output N Idle state */ + tmpcr2 |= (OC_Config->OCNIdleState << 2U); + 8004808: 683b ldr r3, [r7, #0] + 800480a: 699b ldr r3, [r3, #24] + 800480c: 009b lsls r3, r3, #2 + 800480e: 693a ldr r2, [r7, #16] + 8004810: 4313 orrs r3, r2 + 8004812: 613b str r3, [r7, #16] + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + 8004814: 687b ldr r3, [r7, #4] + 8004816: 693a ldr r2, [r7, #16] + 8004818: 605a str r2, [r3, #4] + + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmrx; + 800481a: 687b ldr r3, [r7, #4] + 800481c: 68fa ldr r2, [r7, #12] + 800481e: 619a str r2, [r3, #24] + + /* Set the Capture Compare Register value */ + TIMx->CCR2 = OC_Config->Pulse; + 8004820: 683b ldr r3, [r7, #0] + 8004822: 685a ldr r2, [r3, #4] + 8004824: 687b ldr r3, [r7, #4] + 8004826: 639a str r2, [r3, #56] ; 0x38 + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; + 8004828: 687b ldr r3, [r7, #4] + 800482a: 697a ldr r2, [r7, #20] + 800482c: 621a str r2, [r3, #32] +} + 800482e: bf00 nop + 8004830: 371c adds r7, #28 + 8004832: 46bd mov sp, r7 + 8004834: bc80 pop {r7} + 8004836: 4770 bx lr + 8004838: 40012c00 .word 0x40012c00 + 800483c: 40013400 .word 0x40013400 + +08004840 : + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) +{ + 8004840: b480 push {r7} + 8004842: b087 sub sp, #28 + 8004844: af00 add r7, sp, #0 + 8004846: 6078 str r0, [r7, #4] + 8004848: 6039 str r1, [r7, #0] + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Disable the Channel 3: Reset the CC2E Bit */ + TIMx->CCER &= ~TIM_CCER_CC3E; + 800484a: 687b ldr r3, [r7, #4] + 800484c: 6a1b ldr r3, [r3, #32] + 800484e: f423 7280 bic.w r2, r3, #256 ; 0x100 + 8004852: 687b ldr r3, [r7, #4] + 8004854: 621a str r2, [r3, #32] + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + 8004856: 687b ldr r3, [r7, #4] + 8004858: 6a1b ldr r3, [r3, #32] + 800485a: 617b str r3, [r7, #20] + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + 800485c: 687b ldr r3, [r7, #4] + 800485e: 685b ldr r3, [r3, #4] + 8004860: 613b str r3, [r7, #16] + + /* Get the TIMx CCMR2 register value */ + tmpccmrx = TIMx->CCMR2; + 8004862: 687b ldr r3, [r7, #4] + 8004864: 69db ldr r3, [r3, #28] + 8004866: 60fb str r3, [r7, #12] + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR2_OC3M; + 8004868: 68fb ldr r3, [r7, #12] + 800486a: f023 0370 bic.w r3, r3, #112 ; 0x70 + 800486e: 60fb str r3, [r7, #12] + tmpccmrx &= ~TIM_CCMR2_CC3S; + 8004870: 68fb ldr r3, [r7, #12] + 8004872: f023 0303 bic.w r3, r3, #3 + 8004876: 60fb str r3, [r7, #12] + /* Select the Output Compare Mode */ + tmpccmrx |= OC_Config->OCMode; + 8004878: 683b ldr r3, [r7, #0] + 800487a: 681b ldr r3, [r3, #0] + 800487c: 68fa ldr r2, [r7, #12] + 800487e: 4313 orrs r3, r2 + 8004880: 60fb str r3, [r7, #12] + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC3P; + 8004882: 697b ldr r3, [r7, #20] + 8004884: f423 7300 bic.w r3, r3, #512 ; 0x200 + 8004888: 617b str r3, [r7, #20] + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 8U); + 800488a: 683b ldr r3, [r7, #0] + 800488c: 689b ldr r3, [r3, #8] + 800488e: 021b lsls r3, r3, #8 + 8004890: 697a ldr r2, [r7, #20] + 8004892: 4313 orrs r3, r2 + 8004894: 617b str r3, [r7, #20] + + if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_3)) + 8004896: 687b ldr r3, [r7, #4] + 8004898: 4a21 ldr r2, [pc, #132] ; (8004920 ) + 800489a: 4293 cmp r3, r2 + 800489c: d003 beq.n 80048a6 + 800489e: 687b ldr r3, [r7, #4] + 80048a0: 4a20 ldr r2, [pc, #128] ; (8004924 ) + 80048a2: 4293 cmp r3, r2 + 80048a4: d10d bne.n 80048c2 + { + assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity)); + + /* Reset the Output N Polarity level */ + tmpccer &= ~TIM_CCER_CC3NP; + 80048a6: 697b ldr r3, [r7, #20] + 80048a8: f423 6300 bic.w r3, r3, #2048 ; 0x800 + 80048ac: 617b str r3, [r7, #20] + /* Set the Output N Polarity */ + tmpccer |= (OC_Config->OCNPolarity << 8U); + 80048ae: 683b ldr r3, [r7, #0] + 80048b0: 68db ldr r3, [r3, #12] + 80048b2: 021b lsls r3, r3, #8 + 80048b4: 697a ldr r2, [r7, #20] + 80048b6: 4313 orrs r3, r2 + 80048b8: 617b str r3, [r7, #20] + /* Reset the Output N State */ + tmpccer &= ~TIM_CCER_CC3NE; + 80048ba: 697b ldr r3, [r7, #20] + 80048bc: f423 6380 bic.w r3, r3, #1024 ; 0x400 + 80048c0: 617b str r3, [r7, #20] + } + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + 80048c2: 687b ldr r3, [r7, #4] + 80048c4: 4a16 ldr r2, [pc, #88] ; (8004920 ) + 80048c6: 4293 cmp r3, r2 + 80048c8: d003 beq.n 80048d2 + 80048ca: 687b ldr r3, [r7, #4] + 80048cc: 4a15 ldr r2, [pc, #84] ; (8004924 ) + 80048ce: 4293 cmp r3, r2 + 80048d0: d113 bne.n 80048fa + /* Check parameters */ + assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare and Output Compare N IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS3; + 80048d2: 693b ldr r3, [r7, #16] + 80048d4: f423 5380 bic.w r3, r3, #4096 ; 0x1000 + 80048d8: 613b str r3, [r7, #16] + tmpcr2 &= ~TIM_CR2_OIS3N; + 80048da: 693b ldr r3, [r7, #16] + 80048dc: f423 5300 bic.w r3, r3, #8192 ; 0x2000 + 80048e0: 613b str r3, [r7, #16] + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 4U); + 80048e2: 683b ldr r3, [r7, #0] + 80048e4: 695b ldr r3, [r3, #20] + 80048e6: 011b lsls r3, r3, #4 + 80048e8: 693a ldr r2, [r7, #16] + 80048ea: 4313 orrs r3, r2 + 80048ec: 613b str r3, [r7, #16] + /* Set the Output N Idle state */ + tmpcr2 |= (OC_Config->OCNIdleState << 4U); + 80048ee: 683b ldr r3, [r7, #0] + 80048f0: 699b ldr r3, [r3, #24] + 80048f2: 011b lsls r3, r3, #4 + 80048f4: 693a ldr r2, [r7, #16] + 80048f6: 4313 orrs r3, r2 + 80048f8: 613b str r3, [r7, #16] + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + 80048fa: 687b ldr r3, [r7, #4] + 80048fc: 693a ldr r2, [r7, #16] + 80048fe: 605a str r2, [r3, #4] + + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmrx; + 8004900: 687b ldr r3, [r7, #4] + 8004902: 68fa ldr r2, [r7, #12] + 8004904: 61da str r2, [r3, #28] + + /* Set the Capture Compare Register value */ + TIMx->CCR3 = OC_Config->Pulse; + 8004906: 683b ldr r3, [r7, #0] + 8004908: 685a ldr r2, [r3, #4] + 800490a: 687b ldr r3, [r7, #4] + 800490c: 63da str r2, [r3, #60] ; 0x3c + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; + 800490e: 687b ldr r3, [r7, #4] + 8004910: 697a ldr r2, [r7, #20] + 8004912: 621a str r2, [r3, #32] +} + 8004914: bf00 nop + 8004916: 371c adds r7, #28 + 8004918: 46bd mov sp, r7 + 800491a: bc80 pop {r7} + 800491c: 4770 bx lr + 800491e: bf00 nop + 8004920: 40012c00 .word 0x40012c00 + 8004924: 40013400 .word 0x40013400 + +08004928 : + * @param TIMx to select the TIM peripheral + * @param OC_Config The output configuration structure + * @retval None + */ +static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) +{ + 8004928: b480 push {r7} + 800492a: b087 sub sp, #28 + 800492c: af00 add r7, sp, #0 + 800492e: 6078 str r0, [r7, #4] + 8004930: 6039 str r1, [r7, #0] + uint32_t tmpccmrx; + uint32_t tmpccer; + uint32_t tmpcr2; + + /* Disable the Channel 4: Reset the CC4E Bit */ + TIMx->CCER &= ~TIM_CCER_CC4E; + 8004932: 687b ldr r3, [r7, #4] + 8004934: 6a1b ldr r3, [r3, #32] + 8004936: f423 5280 bic.w r2, r3, #4096 ; 0x1000 + 800493a: 687b ldr r3, [r7, #4] + 800493c: 621a str r2, [r3, #32] + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + 800493e: 687b ldr r3, [r7, #4] + 8004940: 6a1b ldr r3, [r3, #32] + 8004942: 613b str r3, [r7, #16] + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + 8004944: 687b ldr r3, [r7, #4] + 8004946: 685b ldr r3, [r3, #4] + 8004948: 617b str r3, [r7, #20] + + /* Get the TIMx CCMR2 register value */ + tmpccmrx = TIMx->CCMR2; + 800494a: 687b ldr r3, [r7, #4] + 800494c: 69db ldr r3, [r3, #28] + 800494e: 60fb str r3, [r7, #12] + + /* Reset the Output Compare mode and Capture/Compare selection Bits */ + tmpccmrx &= ~TIM_CCMR2_OC4M; + 8004950: 68fb ldr r3, [r7, #12] + 8004952: f423 43e0 bic.w r3, r3, #28672 ; 0x7000 + 8004956: 60fb str r3, [r7, #12] + tmpccmrx &= ~TIM_CCMR2_CC4S; + 8004958: 68fb ldr r3, [r7, #12] + 800495a: f423 7340 bic.w r3, r3, #768 ; 0x300 + 800495e: 60fb str r3, [r7, #12] + + /* Select the Output Compare Mode */ + tmpccmrx |= (OC_Config->OCMode << 8U); + 8004960: 683b ldr r3, [r7, #0] + 8004962: 681b ldr r3, [r3, #0] + 8004964: 021b lsls r3, r3, #8 + 8004966: 68fa ldr r2, [r7, #12] + 8004968: 4313 orrs r3, r2 + 800496a: 60fb str r3, [r7, #12] + + /* Reset the Output Polarity level */ + tmpccer &= ~TIM_CCER_CC4P; + 800496c: 693b ldr r3, [r7, #16] + 800496e: f423 5300 bic.w r3, r3, #8192 ; 0x2000 + 8004972: 613b str r3, [r7, #16] + /* Set the Output Compare Polarity */ + tmpccer |= (OC_Config->OCPolarity << 12U); + 8004974: 683b ldr r3, [r7, #0] + 8004976: 689b ldr r3, [r3, #8] + 8004978: 031b lsls r3, r3, #12 + 800497a: 693a ldr r2, [r7, #16] + 800497c: 4313 orrs r3, r2 + 800497e: 613b str r3, [r7, #16] + + if (IS_TIM_BREAK_INSTANCE(TIMx)) + 8004980: 687b ldr r3, [r7, #4] + 8004982: 4a11 ldr r2, [pc, #68] ; (80049c8 ) + 8004984: 4293 cmp r3, r2 + 8004986: d003 beq.n 8004990 + 8004988: 687b ldr r3, [r7, #4] + 800498a: 4a10 ldr r2, [pc, #64] ; (80049cc ) + 800498c: 4293 cmp r3, r2 + 800498e: d109 bne.n 80049a4 + { + /* Check parameters */ + assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState)); + + /* Reset the Output Compare IDLE State */ + tmpcr2 &= ~TIM_CR2_OIS4; + 8004990: 697b ldr r3, [r7, #20] + 8004992: f423 4380 bic.w r3, r3, #16384 ; 0x4000 + 8004996: 617b str r3, [r7, #20] + + /* Set the Output Idle state */ + tmpcr2 |= (OC_Config->OCIdleState << 6U); + 8004998: 683b ldr r3, [r7, #0] + 800499a: 695b ldr r3, [r3, #20] + 800499c: 019b lsls r3, r3, #6 + 800499e: 697a ldr r2, [r7, #20] + 80049a0: 4313 orrs r3, r2 + 80049a2: 617b str r3, [r7, #20] + } + + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + 80049a4: 687b ldr r3, [r7, #4] + 80049a6: 697a ldr r2, [r7, #20] + 80049a8: 605a str r2, [r3, #4] + + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmrx; + 80049aa: 687b ldr r3, [r7, #4] + 80049ac: 68fa ldr r2, [r7, #12] + 80049ae: 61da str r2, [r3, #28] + + /* Set the Capture Compare Register value */ + TIMx->CCR4 = OC_Config->Pulse; + 80049b0: 683b ldr r3, [r7, #0] + 80049b2: 685a ldr r2, [r3, #4] + 80049b4: 687b ldr r3, [r7, #4] + 80049b6: 641a str r2, [r3, #64] ; 0x40 + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; + 80049b8: 687b ldr r3, [r7, #4] + 80049ba: 693a ldr r2, [r7, #16] + 80049bc: 621a str r2, [r3, #32] +} + 80049be: bf00 nop + 80049c0: 371c adds r7, #28 + 80049c2: 46bd mov sp, r7 + 80049c4: bc80 pop {r7} + 80049c6: 4770 bx lr + 80049c8: 40012c00 .word 0x40012c00 + 80049cc: 40013400 .word 0x40013400 + +080049d0 : + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + */ +static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter) +{ + 80049d0: b480 push {r7} + 80049d2: b087 sub sp, #28 + 80049d4: af00 add r7, sp, #0 + 80049d6: 60f8 str r0, [r7, #12] + 80049d8: 60b9 str r1, [r7, #8] + 80049da: 607a str r2, [r7, #4] + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Disable the Channel 1: Reset the CC1E Bit */ + tmpccer = TIMx->CCER; + 80049dc: 68fb ldr r3, [r7, #12] + 80049de: 6a1b ldr r3, [r3, #32] + 80049e0: 617b str r3, [r7, #20] + TIMx->CCER &= ~TIM_CCER_CC1E; + 80049e2: 68fb ldr r3, [r7, #12] + 80049e4: 6a1b ldr r3, [r3, #32] + 80049e6: f023 0201 bic.w r2, r3, #1 + 80049ea: 68fb ldr r3, [r7, #12] + 80049ec: 621a str r2, [r3, #32] + tmpccmr1 = TIMx->CCMR1; + 80049ee: 68fb ldr r3, [r7, #12] + 80049f0: 699b ldr r3, [r3, #24] + 80049f2: 613b str r3, [r7, #16] + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC1F; + 80049f4: 693b ldr r3, [r7, #16] + 80049f6: f023 03f0 bic.w r3, r3, #240 ; 0xf0 + 80049fa: 613b str r3, [r7, #16] + tmpccmr1 |= (TIM_ICFilter << 4U); + 80049fc: 687b ldr r3, [r7, #4] + 80049fe: 011b lsls r3, r3, #4 + 8004a00: 693a ldr r2, [r7, #16] + 8004a02: 4313 orrs r3, r2 + 8004a04: 613b str r3, [r7, #16] + + /* Select the Polarity and set the CC1E Bit */ + tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP); + 8004a06: 697b ldr r3, [r7, #20] + 8004a08: f023 030a bic.w r3, r3, #10 + 8004a0c: 617b str r3, [r7, #20] + tmpccer |= TIM_ICPolarity; + 8004a0e: 697a ldr r2, [r7, #20] + 8004a10: 68bb ldr r3, [r7, #8] + 8004a12: 4313 orrs r3, r2 + 8004a14: 617b str r3, [r7, #20] + + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1; + 8004a16: 68fb ldr r3, [r7, #12] + 8004a18: 693a ldr r2, [r7, #16] + 8004a1a: 619a str r2, [r3, #24] + TIMx->CCER = tmpccer; + 8004a1c: 68fb ldr r3, [r7, #12] + 8004a1e: 697a ldr r2, [r7, #20] + 8004a20: 621a str r2, [r3, #32] +} + 8004a22: bf00 nop + 8004a24: 371c adds r7, #28 + 8004a26: 46bd mov sp, r7 + 8004a28: bc80 pop {r7} + 8004a2a: 4770 bx lr + +08004a2c : + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + */ +static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter) +{ + 8004a2c: b480 push {r7} + 8004a2e: b087 sub sp, #28 + 8004a30: af00 add r7, sp, #0 + 8004a32: 60f8 str r0, [r7, #12] + 8004a34: 60b9 str r1, [r7, #8] + 8004a36: 607a str r2, [r7, #4] + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Disable the Channel 2: Reset the CC2E Bit */ + TIMx->CCER &= ~TIM_CCER_CC2E; + 8004a38: 68fb ldr r3, [r7, #12] + 8004a3a: 6a1b ldr r3, [r3, #32] + 8004a3c: f023 0210 bic.w r2, r3, #16 + 8004a40: 68fb ldr r3, [r7, #12] + 8004a42: 621a str r2, [r3, #32] + tmpccmr1 = TIMx->CCMR1; + 8004a44: 68fb ldr r3, [r7, #12] + 8004a46: 699b ldr r3, [r3, #24] + 8004a48: 617b str r3, [r7, #20] + tmpccer = TIMx->CCER; + 8004a4a: 68fb ldr r3, [r7, #12] + 8004a4c: 6a1b ldr r3, [r3, #32] + 8004a4e: 613b str r3, [r7, #16] + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC2F; + 8004a50: 697b ldr r3, [r7, #20] + 8004a52: f423 4370 bic.w r3, r3, #61440 ; 0xf000 + 8004a56: 617b str r3, [r7, #20] + tmpccmr1 |= (TIM_ICFilter << 12U); + 8004a58: 687b ldr r3, [r7, #4] + 8004a5a: 031b lsls r3, r3, #12 + 8004a5c: 697a ldr r2, [r7, #20] + 8004a5e: 4313 orrs r3, r2 + 8004a60: 617b str r3, [r7, #20] + + /* Select the Polarity and set the CC2E Bit */ + tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP); + 8004a62: 693b ldr r3, [r7, #16] + 8004a64: f023 03a0 bic.w r3, r3, #160 ; 0xa0 + 8004a68: 613b str r3, [r7, #16] + tmpccer |= (TIM_ICPolarity << 4U); + 8004a6a: 68bb ldr r3, [r7, #8] + 8004a6c: 011b lsls r3, r3, #4 + 8004a6e: 693a ldr r2, [r7, #16] + 8004a70: 4313 orrs r3, r2 + 8004a72: 613b str r3, [r7, #16] + + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1 ; + 8004a74: 68fb ldr r3, [r7, #12] + 8004a76: 697a ldr r2, [r7, #20] + 8004a78: 619a str r2, [r3, #24] + TIMx->CCER = tmpccer; + 8004a7a: 68fb ldr r3, [r7, #12] + 8004a7c: 693a ldr r2, [r7, #16] + 8004a7e: 621a str r2, [r3, #32] +} + 8004a80: bf00 nop + 8004a82: 371c adds r7, #28 + 8004a84: 46bd mov sp, r7 + 8004a86: bc80 pop {r7} + 8004a88: 4770 bx lr + +08004a8a : + * @arg TIM_TS_TI2FP2: Filtered Timer Input 2 + * @arg TIM_TS_ETRF: External Trigger input + * @retval None + */ +static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource) +{ + 8004a8a: b480 push {r7} + 8004a8c: b085 sub sp, #20 + 8004a8e: af00 add r7, sp, #0 + 8004a90: 6078 str r0, [r7, #4] + 8004a92: 6039 str r1, [r7, #0] + uint32_t tmpsmcr; + + /* Get the TIMx SMCR register value */ + tmpsmcr = TIMx->SMCR; + 8004a94: 687b ldr r3, [r7, #4] + 8004a96: 689b ldr r3, [r3, #8] + 8004a98: 60fb str r3, [r7, #12] + /* Reset the TS Bits */ + tmpsmcr &= ~TIM_SMCR_TS; + 8004a9a: 68fb ldr r3, [r7, #12] + 8004a9c: f023 0370 bic.w r3, r3, #112 ; 0x70 + 8004aa0: 60fb str r3, [r7, #12] + /* Set the Input Trigger source and the slave mode*/ + tmpsmcr |= (InputTriggerSource | TIM_SLAVEMODE_EXTERNAL1); + 8004aa2: 683a ldr r2, [r7, #0] + 8004aa4: 68fb ldr r3, [r7, #12] + 8004aa6: 4313 orrs r3, r2 + 8004aa8: f043 0307 orr.w r3, r3, #7 + 8004aac: 60fb str r3, [r7, #12] + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; + 8004aae: 687b ldr r3, [r7, #4] + 8004ab0: 68fa ldr r2, [r7, #12] + 8004ab2: 609a str r2, [r3, #8] +} + 8004ab4: bf00 nop + 8004ab6: 3714 adds r7, #20 + 8004ab8: 46bd mov sp, r7 + 8004aba: bc80 pop {r7} + 8004abc: 4770 bx lr + +08004abe : + * This parameter must be a value between 0x00 and 0x0F + * @retval None + */ +void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, + uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter) +{ + 8004abe: b480 push {r7} + 8004ac0: b087 sub sp, #28 + 8004ac2: af00 add r7, sp, #0 + 8004ac4: 60f8 str r0, [r7, #12] + 8004ac6: 60b9 str r1, [r7, #8] + 8004ac8: 607a str r2, [r7, #4] + 8004aca: 603b str r3, [r7, #0] + uint32_t tmpsmcr; + + tmpsmcr = TIMx->SMCR; + 8004acc: 68fb ldr r3, [r7, #12] + 8004ace: 689b ldr r3, [r3, #8] + 8004ad0: 617b str r3, [r7, #20] + + /* Reset the ETR Bits */ + tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); + 8004ad2: 697b ldr r3, [r7, #20] + 8004ad4: f423 437f bic.w r3, r3, #65280 ; 0xff00 + 8004ad8: 617b str r3, [r7, #20] + + /* Set the Prescaler, the Filter value and the Polarity */ + tmpsmcr |= (uint32_t)(TIM_ExtTRGPrescaler | (TIM_ExtTRGPolarity | (ExtTRGFilter << 8U))); + 8004ada: 683b ldr r3, [r7, #0] + 8004adc: 021a lsls r2, r3, #8 + 8004ade: 687b ldr r3, [r7, #4] + 8004ae0: 431a orrs r2, r3 + 8004ae2: 68bb ldr r3, [r7, #8] + 8004ae4: 4313 orrs r3, r2 + 8004ae6: 697a ldr r2, [r7, #20] + 8004ae8: 4313 orrs r3, r2 + 8004aea: 617b str r3, [r7, #20] + + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; + 8004aec: 68fb ldr r3, [r7, #12] + 8004aee: 697a ldr r2, [r7, #20] + 8004af0: 609a str r2, [r3, #8] +} + 8004af2: bf00 nop + 8004af4: 371c adds r7, #28 + 8004af6: 46bd mov sp, r7 + 8004af8: bc80 pop {r7} + 8004afa: 4770 bx lr + +08004afc : + * @param ChannelState specifies the TIM Channel CCxE bit new state. + * This parameter can be: TIM_CCx_ENABLE or TIM_CCx_DISABLE. + * @retval None + */ +void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState) +{ + 8004afc: b480 push {r7} + 8004afe: b087 sub sp, #28 + 8004b00: af00 add r7, sp, #0 + 8004b02: 60f8 str r0, [r7, #12] + 8004b04: 60b9 str r1, [r7, #8] + 8004b06: 607a str r2, [r7, #4] + + /* Check the parameters */ + assert_param(IS_TIM_CC1_INSTANCE(TIMx)); + assert_param(IS_TIM_CHANNELS(Channel)); + + tmp = TIM_CCER_CC1E << (Channel & 0x1FU); /* 0x1FU = 31 bits max shift */ + 8004b08: 68bb ldr r3, [r7, #8] + 8004b0a: f003 031f and.w r3, r3, #31 + 8004b0e: 2201 movs r2, #1 + 8004b10: fa02 f303 lsl.w r3, r2, r3 + 8004b14: 617b str r3, [r7, #20] + + /* Reset the CCxE Bit */ + TIMx->CCER &= ~tmp; + 8004b16: 68fb ldr r3, [r7, #12] + 8004b18: 6a1a ldr r2, [r3, #32] + 8004b1a: 697b ldr r3, [r7, #20] + 8004b1c: 43db mvns r3, r3 + 8004b1e: 401a ands r2, r3 + 8004b20: 68fb ldr r3, [r7, #12] + 8004b22: 621a str r2, [r3, #32] + + /* Set or reset the CCxE Bit */ + TIMx->CCER |= (uint32_t)(ChannelState << (Channel & 0x1FU)); /* 0x1FU = 31 bits max shift */ + 8004b24: 68fb ldr r3, [r7, #12] + 8004b26: 6a1a ldr r2, [r3, #32] + 8004b28: 68bb ldr r3, [r7, #8] + 8004b2a: f003 031f and.w r3, r3, #31 + 8004b2e: 6879 ldr r1, [r7, #4] + 8004b30: fa01 f303 lsl.w r3, r1, r3 + 8004b34: 431a orrs r2, r3 + 8004b36: 68fb ldr r3, [r7, #12] + 8004b38: 621a str r2, [r3, #32] +} + 8004b3a: bf00 nop + 8004b3c: 371c adds r7, #28 + 8004b3e: 46bd mov sp, r7 + 8004b40: bc80 pop {r7} + 8004b42: 4770 bx lr + +08004b44 : * mode. * @retval HAL status */ HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, TIM_MasterConfigTypeDef *sMasterConfig) { - 8003f6c: b480 push {r7} - 8003f6e: b085 sub sp, #20 - 8003f70: af00 add r7, sp, #0 - 8003f72: 6078 str r0, [r7, #4] - 8003f74: 6039 str r1, [r7, #0] + 8004b44: b480 push {r7} + 8004b46: b085 sub sp, #20 + 8004b48: af00 add r7, sp, #0 + 8004b4a: 6078 str r0, [r7, #4] + 8004b4c: 6039 str r1, [r7, #0] assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance)); assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); /* Check input state */ __HAL_LOCK(htim); - 8003f76: 687b ldr r3, [r7, #4] - 8003f78: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 8003f7c: 2b01 cmp r3, #1 - 8003f7e: d101 bne.n 8003f84 - 8003f80: 2302 movs r3, #2 - 8003f82: e050 b.n 8004026 - 8003f84: 687b ldr r3, [r7, #4] - 8003f86: 2201 movs r2, #1 - 8003f88: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8004b4e: 687b ldr r3, [r7, #4] + 8004b50: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8004b54: 2b01 cmp r3, #1 + 8004b56: d101 bne.n 8004b5c + 8004b58: 2302 movs r3, #2 + 8004b5a: e050 b.n 8004bfe + 8004b5c: 687b ldr r3, [r7, #4] + 8004b5e: 2201 movs r2, #1 + 8004b60: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Change the handler state */ htim->State = HAL_TIM_STATE_BUSY; - 8003f8c: 687b ldr r3, [r7, #4] - 8003f8e: 2202 movs r2, #2 - 8003f90: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8004b64: 687b ldr r3, [r7, #4] + 8004b66: 2202 movs r2, #2 + 8004b68: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Get the TIMx CR2 register value */ tmpcr2 = htim->Instance->CR2; - 8003f94: 687b ldr r3, [r7, #4] - 8003f96: 681b ldr r3, [r3, #0] - 8003f98: 685b ldr r3, [r3, #4] - 8003f9a: 60fb str r3, [r7, #12] + 8004b6c: 687b ldr r3, [r7, #4] + 8004b6e: 681b ldr r3, [r3, #0] + 8004b70: 685b ldr r3, [r3, #4] + 8004b72: 60fb str r3, [r7, #12] /* Get the TIMx SMCR register value */ tmpsmcr = htim->Instance->SMCR; - 8003f9c: 687b ldr r3, [r7, #4] - 8003f9e: 681b ldr r3, [r3, #0] - 8003fa0: 689b ldr r3, [r3, #8] - 8003fa2: 60bb str r3, [r7, #8] + 8004b74: 687b ldr r3, [r7, #4] + 8004b76: 681b ldr r3, [r3, #0] + 8004b78: 689b ldr r3, [r3, #8] + 8004b7a: 60bb str r3, [r7, #8] /* Reset the MMS Bits */ tmpcr2 &= ~TIM_CR2_MMS; - 8003fa4: 68fb ldr r3, [r7, #12] - 8003fa6: f023 0370 bic.w r3, r3, #112 ; 0x70 - 8003faa: 60fb str r3, [r7, #12] + 8004b7c: 68fb ldr r3, [r7, #12] + 8004b7e: f023 0370 bic.w r3, r3, #112 ; 0x70 + 8004b82: 60fb str r3, [r7, #12] /* Select the TRGO source */ tmpcr2 |= sMasterConfig->MasterOutputTrigger; - 8003fac: 683b ldr r3, [r7, #0] - 8003fae: 681b ldr r3, [r3, #0] - 8003fb0: 68fa ldr r2, [r7, #12] - 8003fb2: 4313 orrs r3, r2 - 8003fb4: 60fb str r3, [r7, #12] + 8004b84: 683b ldr r3, [r7, #0] + 8004b86: 681b ldr r3, [r3, #0] + 8004b88: 68fa ldr r2, [r7, #12] + 8004b8a: 4313 orrs r3, r2 + 8004b8c: 60fb str r3, [r7, #12] /* Update TIMx CR2 */ htim->Instance->CR2 = tmpcr2; - 8003fb6: 687b ldr r3, [r7, #4] - 8003fb8: 681b ldr r3, [r3, #0] - 8003fba: 68fa ldr r2, [r7, #12] - 8003fbc: 605a str r2, [r3, #4] + 8004b8e: 687b ldr r3, [r7, #4] + 8004b90: 681b ldr r3, [r3, #0] + 8004b92: 68fa ldr r2, [r7, #12] + 8004b94: 605a str r2, [r3, #4] if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) - 8003fbe: 687b ldr r3, [r7, #4] - 8003fc0: 681b ldr r3, [r3, #0] - 8003fc2: 4a1b ldr r2, [pc, #108] ; (8004030 ) - 8003fc4: 4293 cmp r3, r2 - 8003fc6: d018 beq.n 8003ffa - 8003fc8: 687b ldr r3, [r7, #4] - 8003fca: 681b ldr r3, [r3, #0] - 8003fcc: 4a19 ldr r2, [pc, #100] ; (8004034 ) - 8003fce: 4293 cmp r3, r2 - 8003fd0: d013 beq.n 8003ffa - 8003fd2: 687b ldr r3, [r7, #4] - 8003fd4: 681b ldr r3, [r3, #0] - 8003fd6: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 8003fda: d00e beq.n 8003ffa - 8003fdc: 687b ldr r3, [r7, #4] - 8003fde: 681b ldr r3, [r3, #0] - 8003fe0: 4a15 ldr r2, [pc, #84] ; (8004038 ) - 8003fe2: 4293 cmp r3, r2 - 8003fe4: d009 beq.n 8003ffa - 8003fe6: 687b ldr r3, [r7, #4] - 8003fe8: 681b ldr r3, [r3, #0] - 8003fea: 4a14 ldr r2, [pc, #80] ; (800403c ) - 8003fec: 4293 cmp r3, r2 - 8003fee: d004 beq.n 8003ffa - 8003ff0: 687b ldr r3, [r7, #4] - 8003ff2: 681b ldr r3, [r3, #0] - 8003ff4: 4a12 ldr r2, [pc, #72] ; (8004040 ) - 8003ff6: 4293 cmp r3, r2 - 8003ff8: d10c bne.n 8004014 + 8004b96: 687b ldr r3, [r7, #4] + 8004b98: 681b ldr r3, [r3, #0] + 8004b9a: 4a1b ldr r2, [pc, #108] ; (8004c08 ) + 8004b9c: 4293 cmp r3, r2 + 8004b9e: d018 beq.n 8004bd2 + 8004ba0: 687b ldr r3, [r7, #4] + 8004ba2: 681b ldr r3, [r3, #0] + 8004ba4: 4a19 ldr r2, [pc, #100] ; (8004c0c ) + 8004ba6: 4293 cmp r3, r2 + 8004ba8: d013 beq.n 8004bd2 + 8004baa: 687b ldr r3, [r7, #4] + 8004bac: 681b ldr r3, [r3, #0] + 8004bae: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 8004bb2: d00e beq.n 8004bd2 + 8004bb4: 687b ldr r3, [r7, #4] + 8004bb6: 681b ldr r3, [r3, #0] + 8004bb8: 4a15 ldr r2, [pc, #84] ; (8004c10 ) + 8004bba: 4293 cmp r3, r2 + 8004bbc: d009 beq.n 8004bd2 + 8004bbe: 687b ldr r3, [r7, #4] + 8004bc0: 681b ldr r3, [r3, #0] + 8004bc2: 4a14 ldr r2, [pc, #80] ; (8004c14 ) + 8004bc4: 4293 cmp r3, r2 + 8004bc6: d004 beq.n 8004bd2 + 8004bc8: 687b ldr r3, [r7, #4] + 8004bca: 681b ldr r3, [r3, #0] + 8004bcc: 4a12 ldr r2, [pc, #72] ; (8004c18 ) + 8004bce: 4293 cmp r3, r2 + 8004bd0: d10c bne.n 8004bec { /* Reset the MSM Bit */ tmpsmcr &= ~TIM_SMCR_MSM; - 8003ffa: 68bb ldr r3, [r7, #8] - 8003ffc: f023 0380 bic.w r3, r3, #128 ; 0x80 - 8004000: 60bb str r3, [r7, #8] + 8004bd2: 68bb ldr r3, [r7, #8] + 8004bd4: f023 0380 bic.w r3, r3, #128 ; 0x80 + 8004bd8: 60bb str r3, [r7, #8] /* Set master mode */ tmpsmcr |= sMasterConfig->MasterSlaveMode; - 8004002: 683b ldr r3, [r7, #0] - 8004004: 685b ldr r3, [r3, #4] - 8004006: 68ba ldr r2, [r7, #8] - 8004008: 4313 orrs r3, r2 - 800400a: 60bb str r3, [r7, #8] + 8004bda: 683b ldr r3, [r7, #0] + 8004bdc: 685b ldr r3, [r3, #4] + 8004bde: 68ba ldr r2, [r7, #8] + 8004be0: 4313 orrs r3, r2 + 8004be2: 60bb str r3, [r7, #8] /* Update TIMx SMCR */ htim->Instance->SMCR = tmpsmcr; - 800400c: 687b ldr r3, [r7, #4] - 800400e: 681b ldr r3, [r3, #0] - 8004010: 68ba ldr r2, [r7, #8] - 8004012: 609a str r2, [r3, #8] + 8004be4: 687b ldr r3, [r7, #4] + 8004be6: 681b ldr r3, [r3, #0] + 8004be8: 68ba ldr r2, [r7, #8] + 8004bea: 609a str r2, [r3, #8] } /* Change the htim state */ htim->State = HAL_TIM_STATE_READY; - 8004014: 687b ldr r3, [r7, #4] - 8004016: 2201 movs r2, #1 - 8004018: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8004bec: 687b ldr r3, [r7, #4] + 8004bee: 2201 movs r2, #1 + 8004bf0: f883 203d strb.w r2, [r3, #61] ; 0x3d __HAL_UNLOCK(htim); - 800401c: 687b ldr r3, [r7, #4] - 800401e: 2200 movs r2, #0 - 8004020: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8004bf4: 687b ldr r3, [r7, #4] + 8004bf6: 2200 movs r2, #0 + 8004bf8: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_OK; - 8004024: 2300 movs r3, #0 + 8004bfc: 2300 movs r3, #0 } - 8004026: 4618 mov r0, r3 - 8004028: 3714 adds r7, #20 - 800402a: 46bd mov sp, r7 - 800402c: bc80 pop {r7} - 800402e: 4770 bx lr - 8004030: 40012c00 .word 0x40012c00 - 8004034: 40013400 .word 0x40013400 - 8004038: 40000400 .word 0x40000400 - 800403c: 40000800 .word 0x40000800 - 8004040: 40000c00 .word 0x40000c00 + 8004bfe: 4618 mov r0, r3 + 8004c00: 3714 adds r7, #20 + 8004c02: 46bd mov sp, r7 + 8004c04: bc80 pop {r7} + 8004c06: 4770 bx lr + 8004c08: 40012c00 .word 0x40012c00 + 8004c0c: 40013400 .word 0x40013400 + 8004c10: 40000400 .word 0x40000400 + 8004c14: 40000800 .word 0x40000800 + 8004c18: 40000c00 .word 0x40000c00 -08004044 : +08004c1c : * @brief Hall commutation changed callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim) { - 8004044: b480 push {r7} - 8004046: b083 sub sp, #12 - 8004048: af00 add r7, sp, #0 - 800404a: 6078 str r0, [r7, #4] + 8004c1c: b480 push {r7} + 8004c1e: b083 sub sp, #12 + 8004c20: af00 add r7, sp, #0 + 8004c22: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_CommutCallback could be implemented in the user file */ } - 800404c: bf00 nop - 800404e: 370c adds r7, #12 - 8004050: 46bd mov sp, r7 - 8004052: bc80 pop {r7} - 8004054: 4770 bx lr + 8004c24: bf00 nop + 8004c26: 370c adds r7, #12 + 8004c28: 46bd mov sp, r7 + 8004c2a: bc80 pop {r7} + 8004c2c: 4770 bx lr -08004056 : +08004c2e : * @brief Hall Break detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) { - 8004056: b480 push {r7} - 8004058: b083 sub sp, #12 - 800405a: af00 add r7, sp, #0 - 800405c: 6078 str r0, [r7, #4] + 8004c2e: b480 push {r7} + 8004c30: b083 sub sp, #12 + 8004c32: af00 add r7, sp, #0 + 8004c34: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_BreakCallback could be implemented in the user file */ } - 800405e: bf00 nop - 8004060: 370c adds r7, #12 - 8004062: 46bd mov sp, r7 - 8004064: bc80 pop {r7} - 8004066: 4770 bx lr + 8004c36: bf00 nop + 8004c38: 370c adds r7, #12 + 8004c3a: 46bd mov sp, r7 + 8004c3c: bc80 pop {r7} + 8004c3e: 4770 bx lr -08004068 : +08004c40 : * @param Init Pointer to NORSRAM Initialization structure * @retval HAL status */ HAL_StatusTypeDef FSMC_NORSRAM_Init(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_InitTypeDef *Init) { - 8004068: b480 push {r7} - 800406a: b087 sub sp, #28 - 800406c: af00 add r7, sp, #0 - 800406e: 6078 str r0, [r7, #4] - 8004070: 6039 str r1, [r7, #0] + 8004c40: b480 push {r7} + 8004c42: b087 sub sp, #28 + 8004c44: af00 add r7, sp, #0 + 8004c46: 6078 str r0, [r7, #4] + 8004c48: 6039 str r1, [r7, #0] assert_param(IS_FSMC_ASYNWAIT(Init->AsynchronousWait)); assert_param(IS_FSMC_WRITE_BURST(Init->WriteBurst)); assert_param(IS_FSMC_PAGESIZE(Init->PageSize)); /* Disable NORSRAM Device */ __FSMC_NORSRAM_DISABLE(Device, Init->NSBank); - 8004072: 683b ldr r3, [r7, #0] - 8004074: 681a ldr r2, [r3, #0] - 8004076: 687b ldr r3, [r7, #4] - 8004078: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800407c: 683a ldr r2, [r7, #0] - 800407e: 6812 ldr r2, [r2, #0] - 8004080: f023 0101 bic.w r1, r3, #1 - 8004084: 687b ldr r3, [r7, #4] - 8004086: f843 1022 str.w r1, [r3, r2, lsl #2] + 8004c4a: 683b ldr r3, [r7, #0] + 8004c4c: 681a ldr r2, [r3, #0] + 8004c4e: 687b ldr r3, [r7, #4] + 8004c50: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8004c54: 683a ldr r2, [r7, #0] + 8004c56: 6812 ldr r2, [r2, #0] + 8004c58: f023 0101 bic.w r1, r3, #1 + 8004c5c: 687b ldr r3, [r7, #4] + 8004c5e: f843 1022 str.w r1, [r3, r2, lsl #2] /* Set NORSRAM device control parameters */ if (Init->MemoryType == FSMC_MEMORY_TYPE_NOR) - 800408a: 683b ldr r3, [r7, #0] - 800408c: 689b ldr r3, [r3, #8] - 800408e: 2b08 cmp r3, #8 - 8004090: d102 bne.n 8004098 + 8004c62: 683b ldr r3, [r7, #0] + 8004c64: 689b ldr r3, [r3, #8] + 8004c66: 2b08 cmp r3, #8 + 8004c68: d102 bne.n 8004c70 { flashaccess = FSMC_NORSRAM_FLASH_ACCESS_ENABLE; - 8004092: 2340 movs r3, #64 ; 0x40 - 8004094: 617b str r3, [r7, #20] - 8004096: e001 b.n 800409c + 8004c6a: 2340 movs r3, #64 ; 0x40 + 8004c6c: 617b str r3, [r7, #20] + 8004c6e: e001 b.n 8004c74 } else { flashaccess = FSMC_NORSRAM_FLASH_ACCESS_DISABLE; - 8004098: 2300 movs r3, #0 - 800409a: 617b str r3, [r7, #20] + 8004c70: 2300 movs r3, #0 + 8004c72: 617b str r3, [r7, #20] } btcr_reg = (flashaccess | \ Init->DataAddressMux | \ - 800409c: 683b ldr r3, [r7, #0] - 800409e: 685a ldr r2, [r3, #4] + 8004c74: 683b ldr r3, [r7, #0] + 8004c76: 685a ldr r2, [r3, #4] btcr_reg = (flashaccess | \ - 80040a0: 697b ldr r3, [r7, #20] - 80040a2: 431a orrs r2, r3 + 8004c78: 697b ldr r3, [r7, #20] + 8004c7a: 431a orrs r2, r3 Init->MemoryType | \ - 80040a4: 683b ldr r3, [r7, #0] - 80040a6: 689b ldr r3, [r3, #8] + 8004c7c: 683b ldr r3, [r7, #0] + 8004c7e: 689b ldr r3, [r3, #8] Init->DataAddressMux | \ - 80040a8: 431a orrs r2, r3 + 8004c80: 431a orrs r2, r3 Init->MemoryDataWidth | \ - 80040aa: 683b ldr r3, [r7, #0] - 80040ac: 68db ldr r3, [r3, #12] + 8004c82: 683b ldr r3, [r7, #0] + 8004c84: 68db ldr r3, [r3, #12] Init->MemoryType | \ - 80040ae: 431a orrs r2, r3 + 8004c86: 431a orrs r2, r3 Init->BurstAccessMode | \ - 80040b0: 683b ldr r3, [r7, #0] - 80040b2: 691b ldr r3, [r3, #16] + 8004c88: 683b ldr r3, [r7, #0] + 8004c8a: 691b ldr r3, [r3, #16] Init->MemoryDataWidth | \ - 80040b4: 431a orrs r2, r3 + 8004c8c: 431a orrs r2, r3 Init->WaitSignalPolarity | \ - 80040b6: 683b ldr r3, [r7, #0] - 80040b8: 695b ldr r3, [r3, #20] + 8004c8e: 683b ldr r3, [r7, #0] + 8004c90: 695b ldr r3, [r3, #20] Init->BurstAccessMode | \ - 80040ba: 431a orrs r2, r3 + 8004c92: 431a orrs r2, r3 Init->WaitSignalActive | \ - 80040bc: 683b ldr r3, [r7, #0] - 80040be: 69db ldr r3, [r3, #28] + 8004c94: 683b ldr r3, [r7, #0] + 8004c96: 69db ldr r3, [r3, #28] Init->WaitSignalPolarity | \ - 80040c0: 431a orrs r2, r3 + 8004c98: 431a orrs r2, r3 Init->WriteOperation | \ - 80040c2: 683b ldr r3, [r7, #0] - 80040c4: 6a1b ldr r3, [r3, #32] + 8004c9a: 683b ldr r3, [r7, #0] + 8004c9c: 6a1b ldr r3, [r3, #32] Init->WaitSignalActive | \ - 80040c6: 431a orrs r2, r3 + 8004c9e: 431a orrs r2, r3 Init->WaitSignal | \ - 80040c8: 683b ldr r3, [r7, #0] - 80040ca: 6a5b ldr r3, [r3, #36] ; 0x24 + 8004ca0: 683b ldr r3, [r7, #0] + 8004ca2: 6a5b ldr r3, [r3, #36] ; 0x24 Init->WriteOperation | \ - 80040cc: 431a orrs r2, r3 + 8004ca4: 431a orrs r2, r3 Init->ExtendedMode | \ - 80040ce: 683b ldr r3, [r7, #0] - 80040d0: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004ca6: 683b ldr r3, [r7, #0] + 8004ca8: 6a9b ldr r3, [r3, #40] ; 0x28 Init->WaitSignal | \ - 80040d2: 431a orrs r2, r3 + 8004caa: 431a orrs r2, r3 Init->AsynchronousWait | \ - 80040d4: 683b ldr r3, [r7, #0] - 80040d6: 6adb ldr r3, [r3, #44] ; 0x2c + 8004cac: 683b ldr r3, [r7, #0] + 8004cae: 6adb ldr r3, [r3, #44] ; 0x2c Init->ExtendedMode | \ - 80040d8: 431a orrs r2, r3 + 8004cb0: 431a orrs r2, r3 Init->WriteBurst); - 80040da: 683b ldr r3, [r7, #0] - 80040dc: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004cb2: 683b ldr r3, [r7, #0] + 8004cb4: 6b1b ldr r3, [r3, #48] ; 0x30 btcr_reg = (flashaccess | \ - 80040de: 4313 orrs r3, r2 - 80040e0: 613b str r3, [r7, #16] + 8004cb6: 4313 orrs r3, r2 + 8004cb8: 613b str r3, [r7, #16] btcr_reg |= Init->WrapMode; - 80040e2: 683b ldr r3, [r7, #0] - 80040e4: 699b ldr r3, [r3, #24] - 80040e6: 693a ldr r2, [r7, #16] - 80040e8: 4313 orrs r3, r2 - 80040ea: 613b str r3, [r7, #16] + 8004cba: 683b ldr r3, [r7, #0] + 8004cbc: 699b ldr r3, [r3, #24] + 8004cbe: 693a ldr r2, [r7, #16] + 8004cc0: 4313 orrs r3, r2 + 8004cc2: 613b str r3, [r7, #16] btcr_reg |= Init->PageSize; - 80040ec: 683b ldr r3, [r7, #0] - 80040ee: 6b5b ldr r3, [r3, #52] ; 0x34 - 80040f0: 693a ldr r2, [r7, #16] - 80040f2: 4313 orrs r3, r2 - 80040f4: 613b str r3, [r7, #16] + 8004cc4: 683b ldr r3, [r7, #0] + 8004cc6: 6b5b ldr r3, [r3, #52] ; 0x34 + 8004cc8: 693a ldr r2, [r7, #16] + 8004cca: 4313 orrs r3, r2 + 8004ccc: 613b str r3, [r7, #16] mask = (FSMC_BCRx_MBKEN | - 80040f6: 4b10 ldr r3, [pc, #64] ; (8004138 ) - 80040f8: 60fb str r3, [r7, #12] + 8004cce: 4b10 ldr r3, [pc, #64] ; (8004d10 ) + 8004cd0: 60fb str r3, [r7, #12] FSMC_BCRx_WAITEN | FSMC_BCRx_EXTMOD | FSMC_BCRx_ASYNCWAIT | FSMC_BCRx_CBURSTRW); mask |= FSMC_BCRx_WRAPMOD; - 80040fa: 68fb ldr r3, [r7, #12] - 80040fc: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 8004100: 60fb str r3, [r7, #12] + 8004cd2: 68fb ldr r3, [r7, #12] + 8004cd4: f443 6380 orr.w r3, r3, #1024 ; 0x400 + 8004cd8: 60fb str r3, [r7, #12] mask |= 0x00070000U; /* CPSIZE to be defined in CMSIS file */ - 8004102: 68fb ldr r3, [r7, #12] - 8004104: f443 23e0 orr.w r3, r3, #458752 ; 0x70000 - 8004108: 60fb str r3, [r7, #12] + 8004cda: 68fb ldr r3, [r7, #12] + 8004cdc: f443 23e0 orr.w r3, r3, #458752 ; 0x70000 + 8004ce0: 60fb str r3, [r7, #12] MODIFY_REG(Device->BTCR[Init->NSBank], mask, btcr_reg); - 800410a: 683b ldr r3, [r7, #0] - 800410c: 681a ldr r2, [r3, #0] - 800410e: 687b ldr r3, [r7, #4] - 8004110: f853 2022 ldr.w r2, [r3, r2, lsl #2] - 8004114: 68fb ldr r3, [r7, #12] - 8004116: 43db mvns r3, r3 - 8004118: ea02 0103 and.w r1, r2, r3 - 800411c: 683b ldr r3, [r7, #0] - 800411e: 681a ldr r2, [r3, #0] - 8004120: 693b ldr r3, [r7, #16] - 8004122: 4319 orrs r1, r3 - 8004124: 687b ldr r3, [r7, #4] - 8004126: f843 1022 str.w r1, [r3, r2, lsl #2] + 8004ce2: 683b ldr r3, [r7, #0] + 8004ce4: 681a ldr r2, [r3, #0] + 8004ce6: 687b ldr r3, [r7, #4] + 8004ce8: f853 2022 ldr.w r2, [r3, r2, lsl #2] + 8004cec: 68fb ldr r3, [r7, #12] + 8004cee: 43db mvns r3, r3 + 8004cf0: ea02 0103 and.w r1, r2, r3 + 8004cf4: 683b ldr r3, [r7, #0] + 8004cf6: 681a ldr r2, [r3, #0] + 8004cf8: 693b ldr r3, [r7, #16] + 8004cfa: 4319 orrs r1, r3 + 8004cfc: 687b ldr r3, [r7, #4] + 8004cfe: f843 1022 str.w r1, [r3, r2, lsl #2] return HAL_OK; - 800412a: 2300 movs r3, #0 + 8004d02: 2300 movs r3, #0 } - 800412c: 4618 mov r0, r3 - 800412e: 371c adds r7, #28 - 8004130: 46bd mov sp, r7 - 8004132: bc80 pop {r7} - 8004134: 4770 bx lr - 8004136: bf00 nop - 8004138: 0008fb7f .word 0x0008fb7f + 8004d04: 4618 mov r0, r3 + 8004d06: 371c adds r7, #28 + 8004d08: 46bd mov sp, r7 + 8004d0a: bc80 pop {r7} + 8004d0c: 4770 bx lr + 8004d0e: bf00 nop + 8004d10: 0008fb7f .word 0x0008fb7f -0800413c : +08004d14 : * @param Bank NORSRAM bank number * @retval HAL status */ HAL_StatusTypeDef FSMC_NORSRAM_Timing_Init(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank) { - 800413c: b480 push {r7} - 800413e: b085 sub sp, #20 - 8004140: af00 add r7, sp, #0 - 8004142: 60f8 str r0, [r7, #12] - 8004144: 60b9 str r1, [r7, #8] - 8004146: 607a str r2, [r7, #4] + 8004d14: b480 push {r7} + 8004d16: b085 sub sp, #20 + 8004d18: af00 add r7, sp, #0 + 8004d1a: 60f8 str r0, [r7, #12] + 8004d1c: 60b9 str r1, [r7, #8] + 8004d1e: 607a str r2, [r7, #4] assert_param(IS_FSMC_DATA_LATENCY(Timing->DataLatency)); assert_param(IS_FSMC_ACCESS_MODE(Timing->AccessMode)); assert_param(IS_FSMC_NORSRAM_BANK(Bank)); /* Set FSMC_NORSRAM device timing parameters */ MODIFY_REG(Device->BTCR[Bank + 1U], BTR_CLEAR_MASK, (Timing->AddressSetupTime | - 8004148: 687b ldr r3, [r7, #4] - 800414a: 1c5a adds r2, r3, #1 - 800414c: 68fb ldr r3, [r7, #12] - 800414e: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 8004152: f003 4140 and.w r1, r3, #3221225472 ; 0xc0000000 - 8004156: 68bb ldr r3, [r7, #8] - 8004158: 681a ldr r2, [r3, #0] - 800415a: 68bb ldr r3, [r7, #8] - 800415c: 685b ldr r3, [r3, #4] - 800415e: 011b lsls r3, r3, #4 - 8004160: 431a orrs r2, r3 - 8004162: 68bb ldr r3, [r7, #8] - 8004164: 689b ldr r3, [r3, #8] - 8004166: 021b lsls r3, r3, #8 - 8004168: 431a orrs r2, r3 - 800416a: 68bb ldr r3, [r7, #8] - 800416c: 68db ldr r3, [r3, #12] - 800416e: 041b lsls r3, r3, #16 - 8004170: 431a orrs r2, r3 - 8004172: 68bb ldr r3, [r7, #8] - 8004174: 691b ldr r3, [r3, #16] - 8004176: 3b01 subs r3, #1 - 8004178: 051b lsls r3, r3, #20 - 800417a: 431a orrs r2, r3 - 800417c: 68bb ldr r3, [r7, #8] - 800417e: 695b ldr r3, [r3, #20] - 8004180: 3b02 subs r3, #2 - 8004182: 061b lsls r3, r3, #24 - 8004184: 431a orrs r2, r3 - 8004186: 68bb ldr r3, [r7, #8] - 8004188: 699b ldr r3, [r3, #24] - 800418a: 4313 orrs r3, r2 - 800418c: 687a ldr r2, [r7, #4] - 800418e: 3201 adds r2, #1 - 8004190: 4319 orrs r1, r3 - 8004192: 68fb ldr r3, [r7, #12] - 8004194: f843 1022 str.w r1, [r3, r2, lsl #2] + 8004d20: 687b ldr r3, [r7, #4] + 8004d22: 1c5a adds r2, r3, #1 + 8004d24: 68fb ldr r3, [r7, #12] + 8004d26: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8004d2a: f003 4140 and.w r1, r3, #3221225472 ; 0xc0000000 + 8004d2e: 68bb ldr r3, [r7, #8] + 8004d30: 681a ldr r2, [r3, #0] + 8004d32: 68bb ldr r3, [r7, #8] + 8004d34: 685b ldr r3, [r3, #4] + 8004d36: 011b lsls r3, r3, #4 + 8004d38: 431a orrs r2, r3 + 8004d3a: 68bb ldr r3, [r7, #8] + 8004d3c: 689b ldr r3, [r3, #8] + 8004d3e: 021b lsls r3, r3, #8 + 8004d40: 431a orrs r2, r3 + 8004d42: 68bb ldr r3, [r7, #8] + 8004d44: 68db ldr r3, [r3, #12] + 8004d46: 041b lsls r3, r3, #16 + 8004d48: 431a orrs r2, r3 + 8004d4a: 68bb ldr r3, [r7, #8] + 8004d4c: 691b ldr r3, [r3, #16] + 8004d4e: 3b01 subs r3, #1 + 8004d50: 051b lsls r3, r3, #20 + 8004d52: 431a orrs r2, r3 + 8004d54: 68bb ldr r3, [r7, #8] + 8004d56: 695b ldr r3, [r3, #20] + 8004d58: 3b02 subs r3, #2 + 8004d5a: 061b lsls r3, r3, #24 + 8004d5c: 431a orrs r2, r3 + 8004d5e: 68bb ldr r3, [r7, #8] + 8004d60: 699b ldr r3, [r3, #24] + 8004d62: 4313 orrs r3, r2 + 8004d64: 687a ldr r2, [r7, #4] + 8004d66: 3201 adds r2, #1 + 8004d68: 4319 orrs r1, r3 + 8004d6a: 68fb ldr r3, [r7, #12] + 8004d6c: f843 1022 str.w r1, [r3, r2, lsl #2] ((Timing->BusTurnAroundDuration) << FSMC_BTRx_BUSTURN_Pos) | (((Timing->CLKDivision) - 1U) << FSMC_BTRx_CLKDIV_Pos) | (((Timing->DataLatency) - 2U) << FSMC_BTRx_DATLAT_Pos) | (Timing->AccessMode))); return HAL_OK; - 8004198: 2300 movs r3, #0 + 8004d70: 2300 movs r3, #0 } - 800419a: 4618 mov r0, r3 - 800419c: 3714 adds r7, #20 - 800419e: 46bd mov sp, r7 - 80041a0: bc80 pop {r7} - 80041a2: 4770 bx lr + 8004d72: 4618 mov r0, r3 + 8004d74: 3714 adds r7, #20 + 8004d76: 46bd mov sp, r7 + 8004d78: bc80 pop {r7} + 8004d7a: 4770 bx lr -080041a4 : +08004d7c : * @retval HAL status */ HAL_StatusTypeDef FSMC_NORSRAM_Extended_Timing_Init(FSMC_NORSRAM_EXTENDED_TypeDef *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode) { - 80041a4: b480 push {r7} - 80041a6: b085 sub sp, #20 - 80041a8: af00 add r7, sp, #0 - 80041aa: 60f8 str r0, [r7, #12] - 80041ac: 60b9 str r1, [r7, #8] - 80041ae: 607a str r2, [r7, #4] - 80041b0: 603b str r3, [r7, #0] + 8004d7c: b480 push {r7} + 8004d7e: b085 sub sp, #20 + 8004d80: af00 add r7, sp, #0 + 8004d82: 60f8 str r0, [r7, #12] + 8004d84: 60b9 str r1, [r7, #8] + 8004d86: 607a str r2, [r7, #4] + 8004d88: 603b str r3, [r7, #0] /* Check the parameters */ assert_param(IS_FSMC_EXTENDED_MODE(ExtendedMode)); /* Set NORSRAM device timing register for write configuration, if extended mode is used */ if (ExtendedMode == FSMC_EXTENDED_MODE_ENABLE) - 80041b2: 683b ldr r3, [r7, #0] - 80041b4: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 - 80041b8: d11d bne.n 80041f6 + 8004d8a: 683b ldr r3, [r7, #0] + 8004d8c: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 + 8004d90: d11d bne.n 8004dce assert_param(IS_FSMC_ACCESS_MODE(Timing->AccessMode)); assert_param(IS_FSMC_NORSRAM_BANK(Bank)); /* Set NORSRAM device timing register for write configuration, if extended mode is used */ #if defined(FSMC_BWTRx_BUSTURN) MODIFY_REG(Device->BWTR[Bank], BWTR_CLEAR_MASK, (Timing->AddressSetupTime | - 80041ba: 68fb ldr r3, [r7, #12] - 80041bc: 687a ldr r2, [r7, #4] - 80041be: f853 2022 ldr.w r2, [r3, r2, lsl #2] - 80041c2: 4b13 ldr r3, [pc, #76] ; (8004210 ) - 80041c4: 4013 ands r3, r2 - 80041c6: 68ba ldr r2, [r7, #8] - 80041c8: 6811 ldr r1, [r2, #0] - 80041ca: 68ba ldr r2, [r7, #8] - 80041cc: 6852 ldr r2, [r2, #4] - 80041ce: 0112 lsls r2, r2, #4 - 80041d0: 4311 orrs r1, r2 - 80041d2: 68ba ldr r2, [r7, #8] - 80041d4: 6892 ldr r2, [r2, #8] - 80041d6: 0212 lsls r2, r2, #8 - 80041d8: 4311 orrs r1, r2 - 80041da: 68ba ldr r2, [r7, #8] - 80041dc: 6992 ldr r2, [r2, #24] - 80041de: 4311 orrs r1, r2 - 80041e0: 68ba ldr r2, [r7, #8] - 80041e2: 68d2 ldr r2, [r2, #12] - 80041e4: 0412 lsls r2, r2, #16 - 80041e6: 430a orrs r2, r1 - 80041e8: ea43 0102 orr.w r1, r3, r2 - 80041ec: 68fb ldr r3, [r7, #12] - 80041ee: 687a ldr r2, [r7, #4] - 80041f0: f843 1022 str.w r1, [r3, r2, lsl #2] - 80041f4: e005 b.n 8004202 + 8004d92: 68fb ldr r3, [r7, #12] + 8004d94: 687a ldr r2, [r7, #4] + 8004d96: f853 2022 ldr.w r2, [r3, r2, lsl #2] + 8004d9a: 4b13 ldr r3, [pc, #76] ; (8004de8 ) + 8004d9c: 4013 ands r3, r2 + 8004d9e: 68ba ldr r2, [r7, #8] + 8004da0: 6811 ldr r1, [r2, #0] + 8004da2: 68ba ldr r2, [r7, #8] + 8004da4: 6852 ldr r2, [r2, #4] + 8004da6: 0112 lsls r2, r2, #4 + 8004da8: 4311 orrs r1, r2 + 8004daa: 68ba ldr r2, [r7, #8] + 8004dac: 6892 ldr r2, [r2, #8] + 8004dae: 0212 lsls r2, r2, #8 + 8004db0: 4311 orrs r1, r2 + 8004db2: 68ba ldr r2, [r7, #8] + 8004db4: 6992 ldr r2, [r2, #24] + 8004db6: 4311 orrs r1, r2 + 8004db8: 68ba ldr r2, [r7, #8] + 8004dba: 68d2 ldr r2, [r2, #12] + 8004dbc: 0412 lsls r2, r2, #16 + 8004dbe: 430a orrs r2, r1 + 8004dc0: ea43 0102 orr.w r1, r3, r2 + 8004dc4: 68fb ldr r3, [r7, #12] + 8004dc6: 687a ldr r2, [r7, #4] + 8004dc8: f843 1022 str.w r1, [r3, r2, lsl #2] + 8004dcc: e005 b.n 8004dda (((Timing->DataLatency) - 2U) << FSMC_BWTRx_DATLAT_Pos))); #endif /* FSMC_BWTRx_BUSTURN */ } else { Device->BWTR[Bank] = 0x0FFFFFFFU; - 80041f6: 68fb ldr r3, [r7, #12] - 80041f8: 687a ldr r2, [r7, #4] - 80041fa: f06f 4170 mvn.w r1, #4026531840 ; 0xf0000000 - 80041fe: f843 1022 str.w r1, [r3, r2, lsl #2] + 8004dce: 68fb ldr r3, [r7, #12] + 8004dd0: 687a ldr r2, [r7, #4] + 8004dd2: f06f 4170 mvn.w r1, #4026531840 ; 0xf0000000 + 8004dd6: f843 1022 str.w r1, [r3, r2, lsl #2] } return HAL_OK; - 8004202: 2300 movs r3, #0 + 8004dda: 2300 movs r3, #0 } - 8004204: 4618 mov r0, r3 - 8004206: 3714 adds r7, #20 - 8004208: 46bd mov sp, r7 - 800420a: bc80 pop {r7} - 800420c: 4770 bx lr - 800420e: bf00 nop - 8004210: cff00000 .word 0xcff00000 + 8004ddc: 4618 mov r0, r3 + 8004dde: 3714 adds r7, #20 + 8004de0: 46bd mov sp, r7 + 8004de2: bc80 pop {r7} + 8004de4: 4770 bx lr + 8004de6: bf00 nop + 8004de8: cff00000 .word 0xcff00000 -08004214 : +08004dec : _lcd_dev lcddev; //管理LCD重要参数 //**************************************************几种快速接口 //写寄存器函数 //regval:寄存器值 void LCD_WR_REG(uint16_t regval) { - 8004214: b480 push {r7} - 8004216: b083 sub sp, #12 - 8004218: af00 add r7, sp, #0 - 800421a: 4603 mov r3, r0 - 800421c: 80fb strh r3, [r7, #6] + 8004dec: b480 push {r7} + 8004dee: b083 sub sp, #12 + 8004df0: af00 add r7, sp, #0 + 8004df2: 4603 mov r3, r0 + 8004df4: 80fb strh r3, [r7, #6] LCD_REG_ADDRESS=regval;//写入要写的寄存器序号 - 800421e: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 - 8004222: 88fb ldrh r3, [r7, #6] - 8004224: 8013 strh r3, [r2, #0] + 8004df6: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 + 8004dfa: 88fb ldrh r3, [r7, #6] + 8004dfc: 8013 strh r3, [r2, #0] } - 8004226: bf00 nop - 8004228: 370c adds r7, #12 - 800422a: 46bd mov sp, r7 - 800422c: bc80 pop {r7} - 800422e: 4770 bx lr + 8004dfe: bf00 nop + 8004e00: 370c adds r7, #12 + 8004e02: 46bd mov sp, r7 + 8004e04: bc80 pop {r7} + 8004e06: 4770 bx lr -08004230 : +08004e08 : //写LCD数据 //data:要写入的值 void LCD_WR_DATA(uint16_t data) { - 8004230: b480 push {r7} - 8004232: b083 sub sp, #12 - 8004234: af00 add r7, sp, #0 - 8004236: 4603 mov r3, r0 - 8004238: 80fb strh r3, [r7, #6] + 8004e08: b480 push {r7} + 8004e0a: b083 sub sp, #12 + 8004e0c: af00 add r7, sp, #0 + 8004e0e: 4603 mov r3, r0 + 8004e10: 80fb strh r3, [r7, #6] LCD_DATA_ADDRESS=data; - 800423a: 4a04 ldr r2, [pc, #16] ; (800424c ) - 800423c: 88fb ldrh r3, [r7, #6] - 800423e: 8013 strh r3, [r2, #0] + 8004e12: 4a04 ldr r2, [pc, #16] ; (8004e24 ) + 8004e14: 88fb ldrh r3, [r7, #6] + 8004e16: 8013 strh r3, [r2, #0] } - 8004240: bf00 nop - 8004242: 370c adds r7, #12 - 8004244: 46bd mov sp, r7 - 8004246: bc80 pop {r7} - 8004248: 4770 bx lr - 800424a: bf00 nop - 800424c: 6c000800 .word 0x6c000800 + 8004e18: bf00 nop + 8004e1a: 370c adds r7, #12 + 8004e1c: 46bd mov sp, r7 + 8004e1e: bc80 pop {r7} + 8004e20: 4770 bx lr + 8004e22: bf00 nop + 8004e24: 6c000800 .word 0x6c000800 -08004250 : +08004e28 : } //写寄存器 //LCD_Reg:寄存器地址 //LCD_RegValue:要写入的数据 void LCD_WriteReg(uint16_t LCD_Reg, uint16_t LCD_RegValue) { - 8004250: b480 push {r7} - 8004252: b083 sub sp, #12 - 8004254: af00 add r7, sp, #0 - 8004256: 4603 mov r3, r0 - 8004258: 460a mov r2, r1 - 800425a: 80fb strh r3, [r7, #6] - 800425c: 4613 mov r3, r2 - 800425e: 80bb strh r3, [r7, #4] + 8004e28: b480 push {r7} + 8004e2a: b083 sub sp, #12 + 8004e2c: af00 add r7, sp, #0 + 8004e2e: 4603 mov r3, r0 + 8004e30: 460a mov r2, r1 + 8004e32: 80fb strh r3, [r7, #6] + 8004e34: 4613 mov r3, r2 + 8004e36: 80bb strh r3, [r7, #4] LCD_REG_ADDRESS = LCD_Reg; //写入要写的寄存器序号 - 8004260: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 - 8004264: 88fb ldrh r3, [r7, #6] - 8004266: 8013 strh r3, [r2, #0] + 8004e38: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 + 8004e3c: 88fb ldrh r3, [r7, #6] + 8004e3e: 8013 strh r3, [r2, #0] LCD_DATA_ADDRESS = LCD_RegValue;//写入数据 - 8004268: 4a03 ldr r2, [pc, #12] ; (8004278 ) - 800426a: 88bb ldrh r3, [r7, #4] - 800426c: 8013 strh r3, [r2, #0] + 8004e40: 4a03 ldr r2, [pc, #12] ; (8004e50 ) + 8004e42: 88bb ldrh r3, [r7, #4] + 8004e44: 8013 strh r3, [r2, #0] } - 800426e: bf00 nop - 8004270: 370c adds r7, #12 - 8004272: 46bd mov sp, r7 - 8004274: bc80 pop {r7} - 8004276: 4770 bx lr - 8004278: 6c000800 .word 0x6c000800 + 8004e46: bf00 nop + 8004e48: 370c adds r7, #12 + 8004e4a: 46bd mov sp, r7 + 8004e4c: bc80 pop {r7} + 8004e4e: 4770 bx lr + 8004e50: 6c000800 .word 0x6c000800 -0800427c : +08004e54 : //读寄存器 //LCD_Reg:寄存器地址 //返回值:读到的数据 uint16_t LCD_ReadReg(uint16_t LCD_Reg) { - 800427c: b480 push {r7} - 800427e: b083 sub sp, #12 - 8004280: af00 add r7, sp, #0 - 8004282: 4603 mov r3, r0 - 8004284: 80fb strh r3, [r7, #6] + 8004e54: b480 push {r7} + 8004e56: b083 sub sp, #12 + 8004e58: af00 add r7, sp, #0 + 8004e5a: 4603 mov r3, r0 + 8004e5c: 80fb strh r3, [r7, #6] LCD_REG_ADDRESS=LCD_Reg; //写入要读的寄存器序号 - 8004286: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 - 800428a: 88fb ldrh r3, [r7, #6] - 800428c: 8013 strh r3, [r2, #0] + 8004e5e: f04f 42d8 mov.w r2, #1811939328 ; 0x6c000000 + 8004e62: 88fb ldrh r3, [r7, #6] + 8004e64: 8013 strh r3, [r2, #0] //delay_us(5); return LCD_DATA_ADDRESS; //返回读到的值 - 800428e: 4b04 ldr r3, [pc, #16] ; (80042a0 ) - 8004290: 881b ldrh r3, [r3, #0] - 8004292: b29b uxth r3, r3 + 8004e66: 4b04 ldr r3, [pc, #16] ; (8004e78 ) + 8004e68: 881b ldrh r3, [r3, #0] + 8004e6a: b29b uxth r3, r3 } - 8004294: 4618 mov r0, r3 - 8004296: 370c adds r7, #12 - 8004298: 46bd mov sp, r7 - 800429a: bc80 pop {r7} - 800429c: 4770 bx lr - 800429e: bf00 nop - 80042a0: 6c000800 .word 0x6c000800 + 8004e6c: 4618 mov r0, r3 + 8004e6e: 370c adds r7, #12 + 8004e70: 46bd mov sp, r7 + 8004e72: bc80 pop {r7} + 8004e74: 4770 bx lr + 8004e76: bf00 nop + 8004e78: 6c000800 .word 0x6c000800 -080042a4 : +08004e7c : //注意:其他函数可能会受到此函数设置的影响(尤其是9341/6804这两个奇葩), //所以,一般设置为L2R_U2D即可,如果设置为其他扫描方式,可能导致显示不正常. //dir:0~7,代表8个方向(具体定义见lcd.h) //9320/9325/9328/4531/4535/1505/b505/8989/5408/9341/5310等IC已经实际测试 void LCD_Scan_Dir(uint8_t dir) { - 80042a4: b580 push {r7, lr} - 80042a6: b084 sub sp, #16 - 80042a8: af00 add r7, sp, #0 - 80042aa: 4603 mov r3, r0 - 80042ac: 71fb strb r3, [r7, #7] + 8004e7c: b580 push {r7, lr} + 8004e7e: b084 sub sp, #16 + 8004e80: af00 add r7, sp, #0 + 8004e82: 4603 mov r3, r0 + 8004e84: 71fb strb r3, [r7, #7] uint16_t regval=0; - 80042ae: 2300 movs r3, #0 - 80042b0: 81fb strh r3, [r7, #14] + 8004e86: 2300 movs r3, #0 + 8004e88: 81fb strh r3, [r7, #14] uint8_t dirreg=0; - 80042b2: 2300 movs r3, #0 - 80042b4: 737b strb r3, [r7, #13] + 8004e8a: 2300 movs r3, #0 + 8004e8c: 737b strb r3, [r7, #13] uint16_t temp; if(lcddev.dir==1&&lcddev.id!=0X6804)//横屏时,对6804不改变扫描方向! - 80042b6: 4ba8 ldr r3, [pc, #672] ; (8004558 ) - 80042b8: 799b ldrb r3, [r3, #6] - 80042ba: 2b01 cmp r3, #1 - 80042bc: d134 bne.n 8004328 - 80042be: 4ba6 ldr r3, [pc, #664] ; (8004558 ) - 80042c0: 889b ldrh r3, [r3, #4] - 80042c2: f646 0204 movw r2, #26628 ; 0x6804 - 80042c6: 4293 cmp r3, r2 - 80042c8: d02e beq.n 8004328 + 8004e8e: 4ba8 ldr r3, [pc, #672] ; (8005130 ) + 8004e90: 799b ldrb r3, [r3, #6] + 8004e92: 2b01 cmp r3, #1 + 8004e94: d134 bne.n 8004f00 + 8004e96: 4ba6 ldr r3, [pc, #664] ; (8005130 ) + 8004e98: 889b ldrh r3, [r3, #4] + 8004e9a: f646 0204 movw r2, #26628 ; 0x6804 + 8004e9e: 4293 cmp r3, r2 + 8004ea0: d02e beq.n 8004f00 { switch(dir)//方向转换 - 80042ca: 79fb ldrb r3, [r7, #7] - 80042cc: 2b07 cmp r3, #7 - 80042ce: d82c bhi.n 800432a - 80042d0: a201 add r2, pc, #4 ; (adr r2, 80042d8 ) - 80042d2: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80042d6: bf00 nop - 80042d8: 080042f9 .word 0x080042f9 - 80042dc: 080042ff .word 0x080042ff - 80042e0: 08004305 .word 0x08004305 - 80042e4: 0800430b .word 0x0800430b - 80042e8: 08004311 .word 0x08004311 - 80042ec: 08004317 .word 0x08004317 - 80042f0: 0800431d .word 0x0800431d - 80042f4: 08004323 .word 0x08004323 + 8004ea2: 79fb ldrb r3, [r7, #7] + 8004ea4: 2b07 cmp r3, #7 + 8004ea6: d82c bhi.n 8004f02 + 8004ea8: a201 add r2, pc, #4 ; (adr r2, 8004eb0 ) + 8004eaa: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8004eae: bf00 nop + 8004eb0: 08004ed1 .word 0x08004ed1 + 8004eb4: 08004ed7 .word 0x08004ed7 + 8004eb8: 08004edd .word 0x08004edd + 8004ebc: 08004ee3 .word 0x08004ee3 + 8004ec0: 08004ee9 .word 0x08004ee9 + 8004ec4: 08004eef .word 0x08004eef + 8004ec8: 08004ef5 .word 0x08004ef5 + 8004ecc: 08004efb .word 0x08004efb { case 0:dir=6;break; - 80042f8: 2306 movs r3, #6 - 80042fa: 71fb strb r3, [r7, #7] - 80042fc: e015 b.n 800432a + 8004ed0: 2306 movs r3, #6 + 8004ed2: 71fb strb r3, [r7, #7] + 8004ed4: e015 b.n 8004f02 case 1:dir=7;break; - 80042fe: 2307 movs r3, #7 - 8004300: 71fb strb r3, [r7, #7] - 8004302: e012 b.n 800432a + 8004ed6: 2307 movs r3, #7 + 8004ed8: 71fb strb r3, [r7, #7] + 8004eda: e012 b.n 8004f02 case 2:dir=4;break; - 8004304: 2304 movs r3, #4 - 8004306: 71fb strb r3, [r7, #7] - 8004308: e00f b.n 800432a + 8004edc: 2304 movs r3, #4 + 8004ede: 71fb strb r3, [r7, #7] + 8004ee0: e00f b.n 8004f02 case 3:dir=5;break; - 800430a: 2305 movs r3, #5 - 800430c: 71fb strb r3, [r7, #7] - 800430e: e00c b.n 800432a + 8004ee2: 2305 movs r3, #5 + 8004ee4: 71fb strb r3, [r7, #7] + 8004ee6: e00c b.n 8004f02 case 4:dir=1;break; - 8004310: 2301 movs r3, #1 - 8004312: 71fb strb r3, [r7, #7] - 8004314: e009 b.n 800432a + 8004ee8: 2301 movs r3, #1 + 8004eea: 71fb strb r3, [r7, #7] + 8004eec: e009 b.n 8004f02 case 5:dir=0;break; - 8004316: 2300 movs r3, #0 - 8004318: 71fb strb r3, [r7, #7] - 800431a: e006 b.n 800432a + 8004eee: 2300 movs r3, #0 + 8004ef0: 71fb strb r3, [r7, #7] + 8004ef2: e006 b.n 8004f02 case 6:dir=3;break; - 800431c: 2303 movs r3, #3 - 800431e: 71fb strb r3, [r7, #7] - 8004320: e003 b.n 800432a + 8004ef4: 2303 movs r3, #3 + 8004ef6: 71fb strb r3, [r7, #7] + 8004ef8: e003 b.n 8004f02 case 7:dir=2;break; - 8004322: 2302 movs r3, #2 - 8004324: 71fb strb r3, [r7, #7] - 8004326: e000 b.n 800432a + 8004efa: 2302 movs r3, #2 + 8004efc: 71fb strb r3, [r7, #7] + 8004efe: e000 b.n 8004f02 } } - 8004328: bf00 nop + 8004f00: bf00 nop if(lcddev.id==0x9341||lcddev.id==0X6804||lcddev.id==0X5310)//9341/6804/5310,很特殊 - 800432a: 4b8b ldr r3, [pc, #556] ; (8004558 ) - 800432c: 889b ldrh r3, [r3, #4] - 800432e: f249 3241 movw r2, #37697 ; 0x9341 - 8004332: 4293 cmp r3, r2 - 8004334: d00c beq.n 8004350 - 8004336: 4b88 ldr r3, [pc, #544] ; (8004558 ) - 8004338: 889b ldrh r3, [r3, #4] - 800433a: f646 0204 movw r2, #26628 ; 0x6804 - 800433e: 4293 cmp r3, r2 - 8004340: d006 beq.n 8004350 - 8004342: 4b85 ldr r3, [pc, #532] ; (8004558 ) - 8004344: 889b ldrh r3, [r3, #4] - 8004346: f245 3210 movw r2, #21264 ; 0x5310 - 800434a: 4293 cmp r3, r2 - 800434c: f040 80bb bne.w 80044c6 + 8004f02: 4b8b ldr r3, [pc, #556] ; (8005130 ) + 8004f04: 889b ldrh r3, [r3, #4] + 8004f06: f249 3241 movw r2, #37697 ; 0x9341 + 8004f0a: 4293 cmp r3, r2 + 8004f0c: d00c beq.n 8004f28 + 8004f0e: 4b88 ldr r3, [pc, #544] ; (8005130 ) + 8004f10: 889b ldrh r3, [r3, #4] + 8004f12: f646 0204 movw r2, #26628 ; 0x6804 + 8004f16: 4293 cmp r3, r2 + 8004f18: d006 beq.n 8004f28 + 8004f1a: 4b85 ldr r3, [pc, #532] ; (8005130 ) + 8004f1c: 889b ldrh r3, [r3, #4] + 8004f1e: f245 3210 movw r2, #21264 ; 0x5310 + 8004f22: 4293 cmp r3, r2 + 8004f24: f040 80bb bne.w 800509e { switch(dir) - 8004350: 79fb ldrb r3, [r7, #7] - 8004352: 2b07 cmp r3, #7 - 8004354: d835 bhi.n 80043c2 - 8004356: a201 add r2, pc, #4 ; (adr r2, 800435c ) - 8004358: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800435c: 080043c3 .word 0x080043c3 - 8004360: 0800437d .word 0x0800437d - 8004364: 08004387 .word 0x08004387 - 8004368: 08004391 .word 0x08004391 - 800436c: 0800439b .word 0x0800439b - 8004370: 080043a5 .word 0x080043a5 - 8004374: 080043af .word 0x080043af - 8004378: 080043b9 .word 0x080043b9 + 8004f28: 79fb ldrb r3, [r7, #7] + 8004f2a: 2b07 cmp r3, #7 + 8004f2c: d835 bhi.n 8004f9a + 8004f2e: a201 add r2, pc, #4 ; (adr r2, 8004f34 ) + 8004f30: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8004f34: 08004f9b .word 0x08004f9b + 8004f38: 08004f55 .word 0x08004f55 + 8004f3c: 08004f5f .word 0x08004f5f + 8004f40: 08004f69 .word 0x08004f69 + 8004f44: 08004f73 .word 0x08004f73 + 8004f48: 08004f7d .word 0x08004f7d + 8004f4c: 08004f87 .word 0x08004f87 + 8004f50: 08004f91 .word 0x08004f91 { case L2R_U2D://从左到右,从上到下 regval|=(0<<7)|(0<<6)|(0<<5); break; case L2R_D2U://从左到右,从下到上 regval|=(1<<7)|(0<<6)|(0<<5); - 800437c: 89fb ldrh r3, [r7, #14] - 800437e: f043 0380 orr.w r3, r3, #128 ; 0x80 - 8004382: 81fb strh r3, [r7, #14] + 8004f54: 89fb ldrh r3, [r7, #14] + 8004f56: f043 0380 orr.w r3, r3, #128 ; 0x80 + 8004f5a: 81fb strh r3, [r7, #14] break; - 8004384: e01d b.n 80043c2 + 8004f5c: e01d b.n 8004f9a case R2L_U2D://从右到左,从上到下 regval|=(0<<7)|(1<<6)|(0<<5); - 8004386: 89fb ldrh r3, [r7, #14] - 8004388: f043 0340 orr.w r3, r3, #64 ; 0x40 - 800438c: 81fb strh r3, [r7, #14] + 8004f5e: 89fb ldrh r3, [r7, #14] + 8004f60: f043 0340 orr.w r3, r3, #64 ; 0x40 + 8004f64: 81fb strh r3, [r7, #14] break; - 800438e: e018 b.n 80043c2 + 8004f66: e018 b.n 8004f9a case R2L_D2U://从右到左,从下到上 regval|=(1<<7)|(1<<6)|(0<<5); - 8004390: 89fb ldrh r3, [r7, #14] - 8004392: f043 03c0 orr.w r3, r3, #192 ; 0xc0 - 8004396: 81fb strh r3, [r7, #14] + 8004f68: 89fb ldrh r3, [r7, #14] + 8004f6a: f043 03c0 orr.w r3, r3, #192 ; 0xc0 + 8004f6e: 81fb strh r3, [r7, #14] break; - 8004398: e013 b.n 80043c2 + 8004f70: e013 b.n 8004f9a case U2D_L2R://从上到下,从左到右 regval|=(0<<7)|(0<<6)|(1<<5); - 800439a: 89fb ldrh r3, [r7, #14] - 800439c: f043 0320 orr.w r3, r3, #32 - 80043a0: 81fb strh r3, [r7, #14] + 8004f72: 89fb ldrh r3, [r7, #14] + 8004f74: f043 0320 orr.w r3, r3, #32 + 8004f78: 81fb strh r3, [r7, #14] break; - 80043a2: e00e b.n 80043c2 + 8004f7a: e00e b.n 8004f9a case U2D_R2L://从上到下,从右到左 regval|=(0<<7)|(1<<6)|(1<<5); - 80043a4: 89fb ldrh r3, [r7, #14] - 80043a6: f043 0360 orr.w r3, r3, #96 ; 0x60 - 80043aa: 81fb strh r3, [r7, #14] + 8004f7c: 89fb ldrh r3, [r7, #14] + 8004f7e: f043 0360 orr.w r3, r3, #96 ; 0x60 + 8004f82: 81fb strh r3, [r7, #14] break; - 80043ac: e009 b.n 80043c2 + 8004f84: e009 b.n 8004f9a case D2U_L2R://从下到上,从左到右 regval|=(1<<7)|(0<<6)|(1<<5); - 80043ae: 89fb ldrh r3, [r7, #14] - 80043b0: f043 03a0 orr.w r3, r3, #160 ; 0xa0 - 80043b4: 81fb strh r3, [r7, #14] + 8004f86: 89fb ldrh r3, [r7, #14] + 8004f88: f043 03a0 orr.w r3, r3, #160 ; 0xa0 + 8004f8c: 81fb strh r3, [r7, #14] break; - 80043b6: e004 b.n 80043c2 + 8004f8e: e004 b.n 8004f9a case D2U_R2L://从下到上,从右到左 regval|=(1<<7)|(1<<6)|(1<<5); - 80043b8: 89fb ldrh r3, [r7, #14] - 80043ba: f043 03e0 orr.w r3, r3, #224 ; 0xe0 - 80043be: 81fb strh r3, [r7, #14] + 8004f90: 89fb ldrh r3, [r7, #14] + 8004f92: f043 03e0 orr.w r3, r3, #224 ; 0xe0 + 8004f96: 81fb strh r3, [r7, #14] break; - 80043c0: bf00 nop + 8004f98: bf00 nop } dirreg=0X36; - 80043c2: 2336 movs r3, #54 ; 0x36 - 80043c4: 737b strb r3, [r7, #13] + 8004f9a: 2336 movs r3, #54 ; 0x36 + 8004f9c: 737b strb r3, [r7, #13] if(lcddev.id!=0X5310)regval|=0X08;//5310不需要BGR - 80043c6: 4b64 ldr r3, [pc, #400] ; (8004558 ) - 80043c8: 889b ldrh r3, [r3, #4] - 80043ca: f245 3210 movw r2, #21264 ; 0x5310 - 80043ce: 4293 cmp r3, r2 - 80043d0: d003 beq.n 80043da - 80043d2: 89fb ldrh r3, [r7, #14] - 80043d4: f043 0308 orr.w r3, r3, #8 - 80043d8: 81fb strh r3, [r7, #14] + 8004f9e: 4b64 ldr r3, [pc, #400] ; (8005130 ) + 8004fa0: 889b ldrh r3, [r3, #4] + 8004fa2: f245 3210 movw r2, #21264 ; 0x5310 + 8004fa6: 4293 cmp r3, r2 + 8004fa8: d003 beq.n 8004fb2 + 8004faa: 89fb ldrh r3, [r7, #14] + 8004fac: f043 0308 orr.w r3, r3, #8 + 8004fb0: 81fb strh r3, [r7, #14] if(lcddev.id==0X6804)regval|=0x02;//6804的BIT6和9341的反了 - 80043da: 4b5f ldr r3, [pc, #380] ; (8004558 ) - 80043dc: 889b ldrh r3, [r3, #4] - 80043de: f646 0204 movw r2, #26628 ; 0x6804 - 80043e2: 4293 cmp r3, r2 - 80043e4: d103 bne.n 80043ee - 80043e6: 89fb ldrh r3, [r7, #14] - 80043e8: f043 0302 orr.w r3, r3, #2 - 80043ec: 81fb strh r3, [r7, #14] + 8004fb2: 4b5f ldr r3, [pc, #380] ; (8005130 ) + 8004fb4: 889b ldrh r3, [r3, #4] + 8004fb6: f646 0204 movw r2, #26628 ; 0x6804 + 8004fba: 4293 cmp r3, r2 + 8004fbc: d103 bne.n 8004fc6 + 8004fbe: 89fb ldrh r3, [r7, #14] + 8004fc0: f043 0302 orr.w r3, r3, #2 + 8004fc4: 81fb strh r3, [r7, #14] LCD_WriteReg(dirreg,regval); - 80043ee: 7b7b ldrb r3, [r7, #13] - 80043f0: b29b uxth r3, r3 - 80043f2: 89fa ldrh r2, [r7, #14] - 80043f4: 4611 mov r1, r2 - 80043f6: 4618 mov r0, r3 - 80043f8: f7ff ff2a bl 8004250 + 8004fc6: 7b7b ldrb r3, [r7, #13] + 8004fc8: b29b uxth r3, r3 + 8004fca: 89fa ldrh r2, [r7, #14] + 8004fcc: 4611 mov r1, r2 + 8004fce: 4618 mov r0, r3 + 8004fd0: f7ff ff2a bl 8004e28 if((regval&0X20)||lcddev.dir==1) - 80043fc: 89fb ldrh r3, [r7, #14] - 80043fe: f003 0320 and.w r3, r3, #32 - 8004402: 2b00 cmp r3, #0 - 8004404: d103 bne.n 800440e - 8004406: 4b54 ldr r3, [pc, #336] ; (8004558 ) - 8004408: 799b ldrb r3, [r3, #6] - 800440a: 2b01 cmp r3, #1 - 800440c: d110 bne.n 8004430 + 8004fd4: 89fb ldrh r3, [r7, #14] + 8004fd6: f003 0320 and.w r3, r3, #32 + 8004fda: 2b00 cmp r3, #0 + 8004fdc: d103 bne.n 8004fe6 + 8004fde: 4b54 ldr r3, [pc, #336] ; (8005130 ) + 8004fe0: 799b ldrb r3, [r3, #6] + 8004fe2: 2b01 cmp r3, #1 + 8004fe4: d110 bne.n 8005008 { if(lcddev.width) - 8004410: 881a ldrh r2, [r3, #0] - 8004412: 4b51 ldr r3, [pc, #324] ; (8004558 ) - 8004414: 885b ldrh r3, [r3, #2] - 8004416: 429a cmp r2, r3 - 8004418: d21a bcs.n 8004450 + 8004fe6: 4b52 ldr r3, [pc, #328] ; (8005130 ) + 8004fe8: 881a ldrh r2, [r3, #0] + 8004fea: 4b51 ldr r3, [pc, #324] ; (8005130 ) + 8004fec: 885b ldrh r3, [r3, #2] + 8004fee: 429a cmp r2, r3 + 8004ff0: d21a bcs.n 8005028 { temp=lcddev.width; - 800441a: 4b4f ldr r3, [pc, #316] ; (8004558 ) - 800441c: 881b ldrh r3, [r3, #0] - 800441e: 817b strh r3, [r7, #10] + 8004ff2: 4b4f ldr r3, [pc, #316] ; (8005130 ) + 8004ff4: 881b ldrh r3, [r3, #0] + 8004ff6: 817b strh r3, [r7, #10] lcddev.width=lcddev.height; - 8004420: 4b4d ldr r3, [pc, #308] ; (8004558 ) - 8004422: 885a ldrh r2, [r3, #2] - 8004424: 4b4c ldr r3, [pc, #304] ; (8004558 ) - 8004426: 801a strh r2, [r3, #0] + 8004ff8: 4b4d ldr r3, [pc, #308] ; (8005130 ) + 8004ffa: 885a ldrh r2, [r3, #2] + 8004ffc: 4b4c ldr r3, [pc, #304] ; (8005130 ) + 8004ffe: 801a strh r2, [r3, #0] lcddev.height=temp; - 8004428: 4a4b ldr r2, [pc, #300] ; (8004558 ) - 800442a: 897b ldrh r3, [r7, #10] - 800442c: 8053 strh r3, [r2, #2] + 8005000: 4a4b ldr r2, [pc, #300] ; (8005130 ) + 8005002: 897b ldrh r3, [r7, #10] + 8005004: 8053 strh r3, [r2, #2] if(lcddev.width + 8005006: e00f b.n 8005028 } }else { if(lcddev.width>lcddev.height)//交换X,Y - 8004430: 4b49 ldr r3, [pc, #292] ; (8004558 ) - 8004432: 881a ldrh r2, [r3, #0] - 8004434: 4b48 ldr r3, [pc, #288] ; (8004558 ) - 8004436: 885b ldrh r3, [r3, #2] - 8004438: 429a cmp r2, r3 - 800443a: d909 bls.n 8004450 + 8005008: 4b49 ldr r3, [pc, #292] ; (8005130 ) + 800500a: 881a ldrh r2, [r3, #0] + 800500c: 4b48 ldr r3, [pc, #288] ; (8005130 ) + 800500e: 885b ldrh r3, [r3, #2] + 8005010: 429a cmp r2, r3 + 8005012: d909 bls.n 8005028 { temp=lcddev.width; - 800443c: 4b46 ldr r3, [pc, #280] ; (8004558 ) - 800443e: 881b ldrh r3, [r3, #0] - 8004440: 817b strh r3, [r7, #10] + 8005014: 4b46 ldr r3, [pc, #280] ; (8005130 ) + 8005016: 881b ldrh r3, [r3, #0] + 8005018: 817b strh r3, [r7, #10] lcddev.width=lcddev.height; - 8004442: 4b45 ldr r3, [pc, #276] ; (8004558 ) - 8004444: 885a ldrh r2, [r3, #2] - 8004446: 4b44 ldr r3, [pc, #272] ; (8004558 ) - 8004448: 801a strh r2, [r3, #0] + 800501a: 4b45 ldr r3, [pc, #276] ; (8005130 ) + 800501c: 885a ldrh r2, [r3, #2] + 800501e: 4b44 ldr r3, [pc, #272] ; (8005130 ) + 8005020: 801a strh r2, [r3, #0] lcddev.height=temp; - 800444a: 4a43 ldr r2, [pc, #268] ; (8004558 ) - 800444c: 897b ldrh r3, [r7, #10] - 800444e: 8053 strh r3, [r2, #2] + 8005022: 4a43 ldr r2, [pc, #268] ; (8005130 ) + 8005024: 897b ldrh r3, [r7, #10] + 8005026: 8053 strh r3, [r2, #2] } } LCD_WR_REG(lcddev.setxcmd); - 8004450: 4b41 ldr r3, [pc, #260] ; (8004558 ) - 8004452: 7a1b ldrb r3, [r3, #8] - 8004454: b29b uxth r3, r3 - 8004456: 4618 mov r0, r3 - 8004458: f7ff fedc bl 8004214 + 8005028: 4b41 ldr r3, [pc, #260] ; (8005130 ) + 800502a: 7a1b ldrb r3, [r3, #8] + 800502c: b29b uxth r3, r3 + 800502e: 4618 mov r0, r3 + 8005030: f7ff fedc bl 8004dec LCD_WR_DATA(0);LCD_WR_DATA(0); - 800445c: 2000 movs r0, #0 - 800445e: f7ff fee7 bl 8004230 - 8004462: 2000 movs r0, #0 - 8004464: f7ff fee4 bl 8004230 + 8005034: 2000 movs r0, #0 + 8005036: f7ff fee7 bl 8004e08 + 800503a: 2000 movs r0, #0 + 800503c: f7ff fee4 bl 8004e08 LCD_WR_DATA((lcddev.width-1)>>8);LCD_WR_DATA((lcddev.width-1)&0XFF); - 8004468: 4b3b ldr r3, [pc, #236] ; (8004558 ) - 800446a: 881b ldrh r3, [r3, #0] - 800446c: 3b01 subs r3, #1 - 800446e: 121b asrs r3, r3, #8 - 8004470: b29b uxth r3, r3 - 8004472: 4618 mov r0, r3 - 8004474: f7ff fedc bl 8004230 - 8004478: 4b37 ldr r3, [pc, #220] ; (8004558 ) - 800447a: 881b ldrh r3, [r3, #0] - 800447c: 3b01 subs r3, #1 - 800447e: b29b uxth r3, r3 - 8004480: b2db uxtb r3, r3 - 8004482: b29b uxth r3, r3 - 8004484: 4618 mov r0, r3 - 8004486: f7ff fed3 bl 8004230 + 8005040: 4b3b ldr r3, [pc, #236] ; (8005130 ) + 8005042: 881b ldrh r3, [r3, #0] + 8005044: 3b01 subs r3, #1 + 8005046: 121b asrs r3, r3, #8 + 8005048: b29b uxth r3, r3 + 800504a: 4618 mov r0, r3 + 800504c: f7ff fedc bl 8004e08 + 8005050: 4b37 ldr r3, [pc, #220] ; (8005130 ) + 8005052: 881b ldrh r3, [r3, #0] + 8005054: 3b01 subs r3, #1 + 8005056: b29b uxth r3, r3 + 8005058: b2db uxtb r3, r3 + 800505a: b29b uxth r3, r3 + 800505c: 4618 mov r0, r3 + 800505e: f7ff fed3 bl 8004e08 LCD_WR_REG(lcddev.setycmd); - 800448a: 4b33 ldr r3, [pc, #204] ; (8004558 ) - 800448c: 7a5b ldrb r3, [r3, #9] - 800448e: b29b uxth r3, r3 - 8004490: 4618 mov r0, r3 - 8004492: f7ff febf bl 8004214 + 8005062: 4b33 ldr r3, [pc, #204] ; (8005130 ) + 8005064: 7a5b ldrb r3, [r3, #9] + 8005066: b29b uxth r3, r3 + 8005068: 4618 mov r0, r3 + 800506a: f7ff febf bl 8004dec LCD_WR_DATA(0);LCD_WR_DATA(0); - 8004496: 2000 movs r0, #0 - 8004498: f7ff feca bl 8004230 - 800449c: 2000 movs r0, #0 - 800449e: f7ff fec7 bl 8004230 + 800506e: 2000 movs r0, #0 + 8005070: f7ff feca bl 8004e08 + 8005074: 2000 movs r0, #0 + 8005076: f7ff fec7 bl 8004e08 LCD_WR_DATA((lcddev.height-1)>>8);LCD_WR_DATA((lcddev.height-1)&0XFF); - 80044a2: 4b2d ldr r3, [pc, #180] ; (8004558 ) - 80044a4: 885b ldrh r3, [r3, #2] - 80044a6: 3b01 subs r3, #1 - 80044a8: 121b asrs r3, r3, #8 - 80044aa: b29b uxth r3, r3 - 80044ac: 4618 mov r0, r3 - 80044ae: f7ff febf bl 8004230 - 80044b2: 4b29 ldr r3, [pc, #164] ; (8004558 ) - 80044b4: 885b ldrh r3, [r3, #2] - 80044b6: 3b01 subs r3, #1 - 80044b8: b29b uxth r3, r3 - 80044ba: b2db uxtb r3, r3 - 80044bc: b29b uxth r3, r3 - 80044be: 4618 mov r0, r3 - 80044c0: f7ff feb6 bl 8004230 - 80044c4: e058 b.n 8004578 + 800507a: 4b2d ldr r3, [pc, #180] ; (8005130 ) + 800507c: 885b ldrh r3, [r3, #2] + 800507e: 3b01 subs r3, #1 + 8005080: 121b asrs r3, r3, #8 + 8005082: b29b uxth r3, r3 + 8005084: 4618 mov r0, r3 + 8005086: f7ff febf bl 8004e08 + 800508a: 4b29 ldr r3, [pc, #164] ; (8005130 ) + 800508c: 885b ldrh r3, [r3, #2] + 800508e: 3b01 subs r3, #1 + 8005090: b29b uxth r3, r3 + 8005092: b2db uxtb r3, r3 + 8005094: b29b uxth r3, r3 + 8005096: 4618 mov r0, r3 + 8005098: f7ff feb6 bl 8004e08 + 800509c: e058 b.n 8005150 }else { switch(dir) - 80044c6: 79fb ldrb r3, [r7, #7] - 80044c8: 2b07 cmp r3, #7 - 80044ca: d836 bhi.n 800453a - 80044cc: a201 add r2, pc, #4 ; (adr r2, 80044d4 ) - 80044ce: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80044d2: bf00 nop - 80044d4: 080044f5 .word 0x080044f5 - 80044d8: 080044ff .word 0x080044ff - 80044dc: 08004509 .word 0x08004509 - 80044e0: 0800453b .word 0x0800453b - 80044e4: 08004513 .word 0x08004513 - 80044e8: 0800451d .word 0x0800451d - 80044ec: 08004527 .word 0x08004527 - 80044f0: 08004531 .word 0x08004531 + 800509e: 79fb ldrb r3, [r7, #7] + 80050a0: 2b07 cmp r3, #7 + 80050a2: d836 bhi.n 8005112 + 80050a4: a201 add r2, pc, #4 ; (adr r2, 80050ac ) + 80050a6: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80050aa: bf00 nop + 80050ac: 080050cd .word 0x080050cd + 80050b0: 080050d7 .word 0x080050d7 + 80050b4: 080050e1 .word 0x080050e1 + 80050b8: 08005113 .word 0x08005113 + 80050bc: 080050eb .word 0x080050eb + 80050c0: 080050f5 .word 0x080050f5 + 80050c4: 080050ff .word 0x080050ff + 80050c8: 08005109 .word 0x08005109 { case L2R_U2D://从左到右,从上到下 regval|=(1<<5)|(1<<4)|(0<<3); - 80044f4: 89fb ldrh r3, [r7, #14] - 80044f6: f043 0330 orr.w r3, r3, #48 ; 0x30 - 80044fa: 81fb strh r3, [r7, #14] + 80050cc: 89fb ldrh r3, [r7, #14] + 80050ce: f043 0330 orr.w r3, r3, #48 ; 0x30 + 80050d2: 81fb strh r3, [r7, #14] break; - 80044fc: e01d b.n 800453a + 80050d4: e01d b.n 8005112 case L2R_D2U://从左到右,从下到上 regval|=(0<<5)|(1<<4)|(0<<3); - 80044fe: 89fb ldrh r3, [r7, #14] - 8004500: f043 0310 orr.w r3, r3, #16 - 8004504: 81fb strh r3, [r7, #14] + 80050d6: 89fb ldrh r3, [r7, #14] + 80050d8: f043 0310 orr.w r3, r3, #16 + 80050dc: 81fb strh r3, [r7, #14] break; - 8004506: e018 b.n 800453a + 80050de: e018 b.n 8005112 case R2L_U2D://从右到左,从上到下 regval|=(1<<5)|(0<<4)|(0<<3); - 8004508: 89fb ldrh r3, [r7, #14] - 800450a: f043 0320 orr.w r3, r3, #32 - 800450e: 81fb strh r3, [r7, #14] + 80050e0: 89fb ldrh r3, [r7, #14] + 80050e2: f043 0320 orr.w r3, r3, #32 + 80050e6: 81fb strh r3, [r7, #14] break; - 8004510: e013 b.n 800453a + 80050e8: e013 b.n 8005112 case R2L_D2U://从右到左,从下到上 regval|=(0<<5)|(0<<4)|(0<<3); break; case U2D_L2R://从上到下,从左到右 regval|=(1<<5)|(1<<4)|(1<<3); - 8004512: 89fb ldrh r3, [r7, #14] - 8004514: f043 0338 orr.w r3, r3, #56 ; 0x38 - 8004518: 81fb strh r3, [r7, #14] + 80050ea: 89fb ldrh r3, [r7, #14] + 80050ec: f043 0338 orr.w r3, r3, #56 ; 0x38 + 80050f0: 81fb strh r3, [r7, #14] break; - 800451a: e00e b.n 800453a + 80050f2: e00e b.n 8005112 case U2D_R2L://从上到下,从右到左 regval|=(1<<5)|(0<<4)|(1<<3); - 800451c: 89fb ldrh r3, [r7, #14] - 800451e: f043 0328 orr.w r3, r3, #40 ; 0x28 - 8004522: 81fb strh r3, [r7, #14] + 80050f4: 89fb ldrh r3, [r7, #14] + 80050f6: f043 0328 orr.w r3, r3, #40 ; 0x28 + 80050fa: 81fb strh r3, [r7, #14] break; - 8004524: e009 b.n 800453a + 80050fc: e009 b.n 8005112 case D2U_L2R://从下到上,从左到右 regval|=(0<<5)|(1<<4)|(1<<3); - 8004526: 89fb ldrh r3, [r7, #14] - 8004528: f043 0318 orr.w r3, r3, #24 - 800452c: 81fb strh r3, [r7, #14] + 80050fe: 89fb ldrh r3, [r7, #14] + 8005100: f043 0318 orr.w r3, r3, #24 + 8005104: 81fb strh r3, [r7, #14] break; - 800452e: e004 b.n 800453a + 8005106: e004 b.n 8005112 case D2U_R2L://从下到上,从右到左 regval|=(0<<5)|(0<<4)|(1<<3); - 8004530: 89fb ldrh r3, [r7, #14] - 8004532: f043 0308 orr.w r3, r3, #8 - 8004536: 81fb strh r3, [r7, #14] + 8005108: 89fb ldrh r3, [r7, #14] + 800510a: f043 0308 orr.w r3, r3, #8 + 800510e: 81fb strh r3, [r7, #14] break; - 8004538: bf00 nop + 8005110: bf00 nop } if(lcddev.id==0x8989)//8989 IC - 800453a: 4b07 ldr r3, [pc, #28] ; (8004558 ) - 800453c: 889b ldrh r3, [r3, #4] - 800453e: f648 1289 movw r2, #35209 ; 0x8989 - 8004542: 4293 cmp r3, r2 - 8004544: d10a bne.n 800455c + 8005112: 4b07 ldr r3, [pc, #28] ; (8005130 ) + 8005114: 889b ldrh r3, [r3, #4] + 8005116: f648 1289 movw r2, #35209 ; 0x8989 + 800511a: 4293 cmp r3, r2 + 800511c: d10a bne.n 8005134 { dirreg=0X11; - 8004546: 2311 movs r3, #17 - 8004548: 737b strb r3, [r7, #13] + 800511e: 2311 movs r3, #17 + 8005120: 737b strb r3, [r7, #13] regval|=0X6040; //65K - 800454a: 89fb ldrh r3, [r7, #14] - 800454c: f443 43c0 orr.w r3, r3, #24576 ; 0x6000 - 8004550: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8004554: 81fb strh r3, [r7, #14] - 8004556: e007 b.n 8004568 - 8004558: 200003a8 .word 0x200003a8 + 8005122: 89fb ldrh r3, [r7, #14] + 8005124: f443 43c0 orr.w r3, r3, #24576 ; 0x6000 + 8005128: f043 0340 orr.w r3, r3, #64 ; 0x40 + 800512c: 81fb strh r3, [r7, #14] + 800512e: e007 b.n 8005140 + 8005130: 200003b4 .word 0x200003b4 }else//其他驱动IC { dirreg=0X03; - 800455c: 2303 movs r3, #3 - 800455e: 737b strb r3, [r7, #13] + 8005134: 2303 movs r3, #3 + 8005136: 737b strb r3, [r7, #13] regval|=1<<12; - 8004560: 89fb ldrh r3, [r7, #14] - 8004562: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 8004566: 81fb strh r3, [r7, #14] + 8005138: 89fb ldrh r3, [r7, #14] + 800513a: f443 5380 orr.w r3, r3, #4096 ; 0x1000 + 800513e: 81fb strh r3, [r7, #14] } LCD_WriteReg(dirreg,regval); - 8004568: 7b7b ldrb r3, [r7, #13] - 800456a: b29b uxth r3, r3 - 800456c: 89fa ldrh r2, [r7, #14] - 800456e: 4611 mov r1, r2 - 8004570: 4618 mov r0, r3 - 8004572: f7ff fe6d bl 8004250 + 8005140: 7b7b ldrb r3, [r7, #13] + 8005142: b29b uxth r3, r3 + 8005144: 89fa ldrh r2, [r7, #14] + 8005146: 4611 mov r1, r2 + 8005148: 4618 mov r0, r3 + 800514a: f7ff fe6d bl 8004e28 } } - 8004576: bf00 nop - 8004578: bf00 nop - 800457a: 3710 adds r7, #16 - 800457c: 46bd mov sp, r7 - 800457e: bd80 pop {r7, pc} + 800514e: bf00 nop + 8005150: bf00 nop + 8005152: 3710 adds r7, #16 + 8005154: 46bd mov sp, r7 + 8005156: bd80 pop {r7, pc} -08004580 : +08005158 : //设置LCD显示方向 //dir:0,竖屏;1,横屏 void LCD_Display_Dir(uint8_t dir) { - 8004580: b580 push {r7, lr} - 8004582: b082 sub sp, #8 - 8004584: af00 add r7, sp, #0 - 8004586: 4603 mov r3, r0 - 8004588: 71fb strb r3, [r7, #7] + 8005158: b580 push {r7, lr} + 800515a: b082 sub sp, #8 + 800515c: af00 add r7, sp, #0 + 800515e: 4603 mov r3, r0 + 8005160: 71fb strb r3, [r7, #7] if(dir==0) //竖屏 - 800458a: 79fb ldrb r3, [r7, #7] - 800458c: 2b00 cmp r3, #0 - 800458e: d154 bne.n 800463a + 8005162: 79fb ldrb r3, [r7, #7] + 8005164: 2b00 cmp r3, #0 + 8005166: d154 bne.n 8005212 { lcddev.dir=0; //竖屏 - 8004590: 4b5d ldr r3, [pc, #372] ; (8004708 ) - 8004592: 2200 movs r2, #0 - 8004594: 719a strb r2, [r3, #6] + 8005168: 4b5d ldr r3, [pc, #372] ; (80052e0 ) + 800516a: 2200 movs r2, #0 + 800516c: 719a strb r2, [r3, #6] lcddev.width=240; - 8004596: 4b5c ldr r3, [pc, #368] ; (8004708 ) - 8004598: 22f0 movs r2, #240 ; 0xf0 - 800459a: 801a strh r2, [r3, #0] + 800516e: 4b5c ldr r3, [pc, #368] ; (80052e0 ) + 8005170: 22f0 movs r2, #240 ; 0xf0 + 8005172: 801a strh r2, [r3, #0] lcddev.height=320; - 800459c: 4b5a ldr r3, [pc, #360] ; (8004708 ) - 800459e: f44f 72a0 mov.w r2, #320 ; 0x140 - 80045a2: 805a strh r2, [r3, #2] + 8005174: 4b5a ldr r3, [pc, #360] ; (80052e0 ) + 8005176: f44f 72a0 mov.w r2, #320 ; 0x140 + 800517a: 805a strh r2, [r3, #2] if(lcddev.id==0X9341||lcddev.id==0X6804||lcddev.id==0X5310) - 80045a4: 4b58 ldr r3, [pc, #352] ; (8004708 ) - 80045a6: 889b ldrh r3, [r3, #4] - 80045a8: f249 3241 movw r2, #37697 ; 0x9341 - 80045ac: 4293 cmp r3, r2 - 80045ae: d00b beq.n 80045c8 - 80045b0: 4b55 ldr r3, [pc, #340] ; (8004708 ) - 80045b2: 889b ldrh r3, [r3, #4] - 80045b4: f646 0204 movw r2, #26628 ; 0x6804 - 80045b8: 4293 cmp r3, r2 - 80045ba: d005 beq.n 80045c8 - 80045bc: 4b52 ldr r3, [pc, #328] ; (8004708 ) - 80045be: 889b ldrh r3, [r3, #4] - 80045c0: f245 3210 movw r2, #21264 ; 0x5310 - 80045c4: 4293 cmp r3, r2 - 80045c6: d11e bne.n 8004606 + 800517c: 4b58 ldr r3, [pc, #352] ; (80052e0 ) + 800517e: 889b ldrh r3, [r3, #4] + 8005180: f249 3241 movw r2, #37697 ; 0x9341 + 8005184: 4293 cmp r3, r2 + 8005186: d00b beq.n 80051a0 + 8005188: 4b55 ldr r3, [pc, #340] ; (80052e0 ) + 800518a: 889b ldrh r3, [r3, #4] + 800518c: f646 0204 movw r2, #26628 ; 0x6804 + 8005190: 4293 cmp r3, r2 + 8005192: d005 beq.n 80051a0 + 8005194: 4b52 ldr r3, [pc, #328] ; (80052e0 ) + 8005196: 889b ldrh r3, [r3, #4] + 8005198: f245 3210 movw r2, #21264 ; 0x5310 + 800519c: 4293 cmp r3, r2 + 800519e: d11e bne.n 80051de { lcddev.wramcmd=0X2C; - 80045c8: 4b4f ldr r3, [pc, #316] ; (8004708 ) - 80045ca: 222c movs r2, #44 ; 0x2c - 80045cc: 71da strb r2, [r3, #7] + 80051a0: 4b4f ldr r3, [pc, #316] ; (80052e0 ) + 80051a2: 222c movs r2, #44 ; 0x2c + 80051a4: 71da strb r2, [r3, #7] lcddev.setxcmd=0X2A; - 80045ce: 4b4e ldr r3, [pc, #312] ; (8004708 ) - 80045d0: 222a movs r2, #42 ; 0x2a - 80045d2: 721a strb r2, [r3, #8] + 80051a6: 4b4e ldr r3, [pc, #312] ; (80052e0 ) + 80051a8: 222a movs r2, #42 ; 0x2a + 80051aa: 721a strb r2, [r3, #8] lcddev.setycmd=0X2B; - 80045d4: 4b4c ldr r3, [pc, #304] ; (8004708 ) - 80045d6: 222b movs r2, #43 ; 0x2b - 80045d8: 725a strb r2, [r3, #9] + 80051ac: 4b4c ldr r3, [pc, #304] ; (80052e0 ) + 80051ae: 222b movs r2, #43 ; 0x2b + 80051b0: 725a strb r2, [r3, #9] if(lcddev.id==0X6804||lcddev.id==0X5310) - 80045da: 4b4b ldr r3, [pc, #300] ; (8004708 ) - 80045dc: 889b ldrh r3, [r3, #4] - 80045de: f646 0204 movw r2, #26628 ; 0x6804 - 80045e2: 4293 cmp r3, r2 - 80045e4: d006 beq.n 80045f4 - 80045e6: 4b48 ldr r3, [pc, #288] ; (8004708 ) - 80045e8: 889b ldrh r3, [r3, #4] - 80045ea: f245 3210 movw r2, #21264 ; 0x5310 - 80045ee: 4293 cmp r3, r2 - 80045f0: f040 8081 bne.w 80046f6 + 80051b2: 4b4b ldr r3, [pc, #300] ; (80052e0 ) + 80051b4: 889b ldrh r3, [r3, #4] + 80051b6: f646 0204 movw r2, #26628 ; 0x6804 + 80051ba: 4293 cmp r3, r2 + 80051bc: d006 beq.n 80051cc + 80051be: 4b48 ldr r3, [pc, #288] ; (80052e0 ) + 80051c0: 889b ldrh r3, [r3, #4] + 80051c2: f245 3210 movw r2, #21264 ; 0x5310 + 80051c6: 4293 cmp r3, r2 + 80051c8: f040 8081 bne.w 80052ce { lcddev.width=320; - 80045f4: 4b44 ldr r3, [pc, #272] ; (8004708 ) - 80045f6: f44f 72a0 mov.w r2, #320 ; 0x140 - 80045fa: 801a strh r2, [r3, #0] + 80051cc: 4b44 ldr r3, [pc, #272] ; (80052e0 ) + 80051ce: f44f 72a0 mov.w r2, #320 ; 0x140 + 80051d2: 801a strh r2, [r3, #0] lcddev.height=480; - 80045fc: 4b42 ldr r3, [pc, #264] ; (8004708 ) - 80045fe: f44f 72f0 mov.w r2, #480 ; 0x1e0 - 8004602: 805a strh r2, [r3, #2] + 80051d4: 4b42 ldr r3, [pc, #264] ; (80052e0 ) + 80051d6: f44f 72f0 mov.w r2, #480 ; 0x1e0 + 80051da: 805a strh r2, [r3, #2] if(lcddev.id==0X6804||lcddev.id==0X5310) - 8004604: e077 b.n 80046f6 + 80051dc: e077 b.n 80052ce } }else if(lcddev.id==0X8989) - 8004606: 4b40 ldr r3, [pc, #256] ; (8004708 ) - 8004608: 889b ldrh r3, [r3, #4] - 800460a: f648 1289 movw r2, #35209 ; 0x8989 - 800460e: 4293 cmp r3, r2 - 8004610: d109 bne.n 8004626 + 80051de: 4b40 ldr r3, [pc, #256] ; (80052e0 ) + 80051e0: 889b ldrh r3, [r3, #4] + 80051e2: f648 1289 movw r2, #35209 ; 0x8989 + 80051e6: 4293 cmp r3, r2 + 80051e8: d109 bne.n 80051fe { lcddev.wramcmd=R34; - 8004612: 4b3d ldr r3, [pc, #244] ; (8004708 ) - 8004614: 2222 movs r2, #34 ; 0x22 - 8004616: 71da strb r2, [r3, #7] + 80051ea: 4b3d ldr r3, [pc, #244] ; (80052e0 ) + 80051ec: 2222 movs r2, #34 ; 0x22 + 80051ee: 71da strb r2, [r3, #7] lcddev.setxcmd=0X4E; - 8004618: 4b3b ldr r3, [pc, #236] ; (8004708 ) - 800461a: 224e movs r2, #78 ; 0x4e - 800461c: 721a strb r2, [r3, #8] + 80051f0: 4b3b ldr r3, [pc, #236] ; (80052e0 ) + 80051f2: 224e movs r2, #78 ; 0x4e + 80051f4: 721a strb r2, [r3, #8] lcddev.setycmd=0X4F; - 800461e: 4b3a ldr r3, [pc, #232] ; (8004708 ) - 8004620: 224f movs r2, #79 ; 0x4f - 8004622: 725a strb r2, [r3, #9] - 8004624: e068 b.n 80046f8 + 80051f6: 4b3a ldr r3, [pc, #232] ; (80052e0 ) + 80051f8: 224f movs r2, #79 ; 0x4f + 80051fa: 725a strb r2, [r3, #9] + 80051fc: e068 b.n 80052d0 }else { lcddev.wramcmd=R34; - 8004626: 4b38 ldr r3, [pc, #224] ; (8004708 ) - 8004628: 2222 movs r2, #34 ; 0x22 - 800462a: 71da strb r2, [r3, #7] + 80051fe: 4b38 ldr r3, [pc, #224] ; (80052e0 ) + 8005200: 2222 movs r2, #34 ; 0x22 + 8005202: 71da strb r2, [r3, #7] lcddev.setxcmd=R32; - 800462c: 4b36 ldr r3, [pc, #216] ; (8004708 ) - 800462e: 2220 movs r2, #32 - 8004630: 721a strb r2, [r3, #8] + 8005204: 4b36 ldr r3, [pc, #216] ; (80052e0 ) + 8005206: 2220 movs r2, #32 + 8005208: 721a strb r2, [r3, #8] lcddev.setycmd=R33; - 8004632: 4b35 ldr r3, [pc, #212] ; (8004708 ) - 8004634: 2221 movs r2, #33 ; 0x21 - 8004636: 725a strb r2, [r3, #9] - 8004638: e05e b.n 80046f8 + 800520a: 4b35 ldr r3, [pc, #212] ; (80052e0 ) + 800520c: 2221 movs r2, #33 ; 0x21 + 800520e: 725a strb r2, [r3, #9] + 8005210: e05e b.n 80052d0 } }else //横屏 { lcddev.dir=1; //横屏 - 800463a: 4b33 ldr r3, [pc, #204] ; (8004708 ) - 800463c: 2201 movs r2, #1 - 800463e: 719a strb r2, [r3, #6] + 8005212: 4b33 ldr r3, [pc, #204] ; (80052e0 ) + 8005214: 2201 movs r2, #1 + 8005216: 719a strb r2, [r3, #6] lcddev.width=320; - 8004640: 4b31 ldr r3, [pc, #196] ; (8004708 ) - 8004642: f44f 72a0 mov.w r2, #320 ; 0x140 - 8004646: 801a strh r2, [r3, #0] + 8005218: 4b31 ldr r3, [pc, #196] ; (80052e0 ) + 800521a: f44f 72a0 mov.w r2, #320 ; 0x140 + 800521e: 801a strh r2, [r3, #0] lcddev.height=240; - 8004648: 4b2f ldr r3, [pc, #188] ; (8004708 ) - 800464a: 22f0 movs r2, #240 ; 0xf0 - 800464c: 805a strh r2, [r3, #2] + 8005220: 4b2f ldr r3, [pc, #188] ; (80052e0 ) + 8005222: 22f0 movs r2, #240 ; 0xf0 + 8005224: 805a strh r2, [r3, #2] if(lcddev.id==0X9341||lcddev.id==0X5310) - 800464e: 4b2e ldr r3, [pc, #184] ; (8004708 ) - 8004650: 889b ldrh r3, [r3, #4] - 8004652: f249 3241 movw r2, #37697 ; 0x9341 - 8004656: 4293 cmp r3, r2 - 8004658: d005 beq.n 8004666 - 800465a: 4b2b ldr r3, [pc, #172] ; (8004708 ) - 800465c: 889b ldrh r3, [r3, #4] - 800465e: f245 3210 movw r2, #21264 ; 0x5310 - 8004662: 4293 cmp r3, r2 - 8004664: d109 bne.n 800467a + 8005226: 4b2e ldr r3, [pc, #184] ; (80052e0 ) + 8005228: 889b ldrh r3, [r3, #4] + 800522a: f249 3241 movw r2, #37697 ; 0x9341 + 800522e: 4293 cmp r3, r2 + 8005230: d005 beq.n 800523e + 8005232: 4b2b ldr r3, [pc, #172] ; (80052e0 ) + 8005234: 889b ldrh r3, [r3, #4] + 8005236: f245 3210 movw r2, #21264 ; 0x5310 + 800523a: 4293 cmp r3, r2 + 800523c: d109 bne.n 8005252 { lcddev.wramcmd=0X2C; - 8004666: 4b28 ldr r3, [pc, #160] ; (8004708 ) - 8004668: 222c movs r2, #44 ; 0x2c - 800466a: 71da strb r2, [r3, #7] + 800523e: 4b28 ldr r3, [pc, #160] ; (80052e0 ) + 8005240: 222c movs r2, #44 ; 0x2c + 8005242: 71da strb r2, [r3, #7] lcddev.setxcmd=0X2A; - 800466c: 4b26 ldr r3, [pc, #152] ; (8004708 ) - 800466e: 222a movs r2, #42 ; 0x2a - 8004670: 721a strb r2, [r3, #8] + 8005244: 4b26 ldr r3, [pc, #152] ; (80052e0 ) + 8005246: 222a movs r2, #42 ; 0x2a + 8005248: 721a strb r2, [r3, #8] lcddev.setycmd=0X2B; - 8004672: 4b25 ldr r3, [pc, #148] ; (8004708 ) - 8004674: 222b movs r2, #43 ; 0x2b - 8004676: 725a strb r2, [r3, #9] - 8004678: e028 b.n 80046cc + 800524a: 4b25 ldr r3, [pc, #148] ; (80052e0 ) + 800524c: 222b movs r2, #43 ; 0x2b + 800524e: 725a strb r2, [r3, #9] + 8005250: e028 b.n 80052a4 }else if(lcddev.id==0X6804) - 800467a: 4b23 ldr r3, [pc, #140] ; (8004708 ) - 800467c: 889b ldrh r3, [r3, #4] - 800467e: f646 0204 movw r2, #26628 ; 0x6804 - 8004682: 4293 cmp r3, r2 - 8004684: d109 bne.n 800469a + 8005252: 4b23 ldr r3, [pc, #140] ; (80052e0 ) + 8005254: 889b ldrh r3, [r3, #4] + 8005256: f646 0204 movw r2, #26628 ; 0x6804 + 800525a: 4293 cmp r3, r2 + 800525c: d109 bne.n 8005272 { lcddev.wramcmd=0X2C; - 8004686: 4b20 ldr r3, [pc, #128] ; (8004708 ) - 8004688: 222c movs r2, #44 ; 0x2c - 800468a: 71da strb r2, [r3, #7] + 800525e: 4b20 ldr r3, [pc, #128] ; (80052e0 ) + 8005260: 222c movs r2, #44 ; 0x2c + 8005262: 71da strb r2, [r3, #7] lcddev.setxcmd=0X2B; - 800468c: 4b1e ldr r3, [pc, #120] ; (8004708 ) - 800468e: 222b movs r2, #43 ; 0x2b - 8004690: 721a strb r2, [r3, #8] + 8005264: 4b1e ldr r3, [pc, #120] ; (80052e0 ) + 8005266: 222b movs r2, #43 ; 0x2b + 8005268: 721a strb r2, [r3, #8] lcddev.setycmd=0X2A; - 8004692: 4b1d ldr r3, [pc, #116] ; (8004708 ) - 8004694: 222a movs r2, #42 ; 0x2a - 8004696: 725a strb r2, [r3, #9] - 8004698: e018 b.n 80046cc + 800526a: 4b1d ldr r3, [pc, #116] ; (80052e0 ) + 800526c: 222a movs r2, #42 ; 0x2a + 800526e: 725a strb r2, [r3, #9] + 8005270: e018 b.n 80052a4 }else if(lcddev.id==0X8989) - 800469a: 4b1b ldr r3, [pc, #108] ; (8004708 ) - 800469c: 889b ldrh r3, [r3, #4] - 800469e: f648 1289 movw r2, #35209 ; 0x8989 - 80046a2: 4293 cmp r3, r2 - 80046a4: d109 bne.n 80046ba + 8005272: 4b1b ldr r3, [pc, #108] ; (80052e0 ) + 8005274: 889b ldrh r3, [r3, #4] + 8005276: f648 1289 movw r2, #35209 ; 0x8989 + 800527a: 4293 cmp r3, r2 + 800527c: d109 bne.n 8005292 { lcddev.wramcmd=R34; - 80046a6: 4b18 ldr r3, [pc, #96] ; (8004708 ) - 80046a8: 2222 movs r2, #34 ; 0x22 - 80046aa: 71da strb r2, [r3, #7] + 800527e: 4b18 ldr r3, [pc, #96] ; (80052e0 ) + 8005280: 2222 movs r2, #34 ; 0x22 + 8005282: 71da strb r2, [r3, #7] lcddev.setxcmd=0X4F; - 80046ac: 4b16 ldr r3, [pc, #88] ; (8004708 ) - 80046ae: 224f movs r2, #79 ; 0x4f - 80046b0: 721a strb r2, [r3, #8] + 8005284: 4b16 ldr r3, [pc, #88] ; (80052e0 ) + 8005286: 224f movs r2, #79 ; 0x4f + 8005288: 721a strb r2, [r3, #8] lcddev.setycmd=0X4E; - 80046b2: 4b15 ldr r3, [pc, #84] ; (8004708 ) - 80046b4: 224e movs r2, #78 ; 0x4e - 80046b6: 725a strb r2, [r3, #9] - 80046b8: e008 b.n 80046cc + 800528a: 4b15 ldr r3, [pc, #84] ; (80052e0 ) + 800528c: 224e movs r2, #78 ; 0x4e + 800528e: 725a strb r2, [r3, #9] + 8005290: e008 b.n 80052a4 }else { lcddev.wramcmd=R34; - 80046ba: 4b13 ldr r3, [pc, #76] ; (8004708 ) - 80046bc: 2222 movs r2, #34 ; 0x22 - 80046be: 71da strb r2, [r3, #7] + 8005292: 4b13 ldr r3, [pc, #76] ; (80052e0 ) + 8005294: 2222 movs r2, #34 ; 0x22 + 8005296: 71da strb r2, [r3, #7] lcddev.setxcmd=R33; - 80046c0: 4b11 ldr r3, [pc, #68] ; (8004708 ) - 80046c2: 2221 movs r2, #33 ; 0x21 - 80046c4: 721a strb r2, [r3, #8] + 8005298: 4b11 ldr r3, [pc, #68] ; (80052e0 ) + 800529a: 2221 movs r2, #33 ; 0x21 + 800529c: 721a strb r2, [r3, #8] lcddev.setycmd=R32; - 80046c6: 4b10 ldr r3, [pc, #64] ; (8004708 ) - 80046c8: 2220 movs r2, #32 - 80046ca: 725a strb r2, [r3, #9] + 800529e: 4b10 ldr r3, [pc, #64] ; (80052e0 ) + 80052a0: 2220 movs r2, #32 + 80052a2: 725a strb r2, [r3, #9] } if(lcddev.id==0X6804||lcddev.id==0X5310) - 80046cc: 4b0e ldr r3, [pc, #56] ; (8004708 ) - 80046ce: 889b ldrh r3, [r3, #4] - 80046d0: f646 0204 movw r2, #26628 ; 0x6804 - 80046d4: 4293 cmp r3, r2 - 80046d6: d005 beq.n 80046e4 - 80046d8: 4b0b ldr r3, [pc, #44] ; (8004708 ) - 80046da: 889b ldrh r3, [r3, #4] - 80046dc: f245 3210 movw r2, #21264 ; 0x5310 - 80046e0: 4293 cmp r3, r2 - 80046e2: d109 bne.n 80046f8 + 80052a4: 4b0e ldr r3, [pc, #56] ; (80052e0 ) + 80052a6: 889b ldrh r3, [r3, #4] + 80052a8: f646 0204 movw r2, #26628 ; 0x6804 + 80052ac: 4293 cmp r3, r2 + 80052ae: d005 beq.n 80052bc + 80052b0: 4b0b ldr r3, [pc, #44] ; (80052e0 ) + 80052b2: 889b ldrh r3, [r3, #4] + 80052b4: f245 3210 movw r2, #21264 ; 0x5310 + 80052b8: 4293 cmp r3, r2 + 80052ba: d109 bne.n 80052d0 { lcddev.width=480; - 80046e4: 4b08 ldr r3, [pc, #32] ; (8004708 ) - 80046e6: f44f 72f0 mov.w r2, #480 ; 0x1e0 - 80046ea: 801a strh r2, [r3, #0] + 80052bc: 4b08 ldr r3, [pc, #32] ; (80052e0 ) + 80052be: f44f 72f0 mov.w r2, #480 ; 0x1e0 + 80052c2: 801a strh r2, [r3, #0] lcddev.height=320; - 80046ec: 4b06 ldr r3, [pc, #24] ; (8004708 ) - 80046ee: f44f 72a0 mov.w r2, #320 ; 0x140 - 80046f2: 805a strh r2, [r3, #2] - 80046f4: e000 b.n 80046f8 + 80052c4: 4b06 ldr r3, [pc, #24] ; (80052e0 ) + 80052c6: f44f 72a0 mov.w r2, #320 ; 0x140 + 80052ca: 805a strh r2, [r3, #2] + 80052cc: e000 b.n 80052d0 if(lcddev.id==0X6804||lcddev.id==0X5310) - 80046f6: bf00 nop + 80052ce: bf00 nop } } LCD_Scan_Dir(DFT_SCAN_DIR); //默认扫描方向 - 80046f8: 2000 movs r0, #0 - 80046fa: f7ff fdd3 bl 80042a4 + 80052d0: 2000 movs r0, #0 + 80052d2: f7ff fdd3 bl 8004e7c } - 80046fe: bf00 nop - 8004700: 3708 adds r7, #8 - 8004702: 46bd mov sp, r7 - 8004704: bd80 pop {r7, pc} - 8004706: bf00 nop - 8004708: 200003a8 .word 0x200003a8 + 80052d6: bf00 nop + 80052d8: 3708 adds r7, #8 + 80052da: 46bd mov sp, r7 + 80052dc: bd80 pop {r7, pc} + 80052de: bf00 nop + 80052e0: 200003b4 .word 0x200003b4 -0800470c : +080052e4 : //初始化lcd //该初始化函数可以初始化各种液晶! void LCDx_Init(void) { - 800470c: b580 push {r7, lr} - 800470e: af00 add r7, sp, #0 + 80052e4: b580 push {r7, lr} + 80052e6: af00 add r7, sp, #0 HAL_Delay(50); // delay 50 ms - 8004710: 2032 movs r0, #50 ; 0x32 - 8004712: f7fd fa3b bl 8001b8c + 80052e8: 2032 movs r0, #50 ; 0x32 + 80052ea: f7fc fd41 bl 8001d70 LCD_WriteReg(0x0000,0x0001); - 8004716: 2101 movs r1, #1 - 8004718: 2000 movs r0, #0 - 800471a: f7ff fd99 bl 8004250 + 80052ee: 2101 movs r1, #1 + 80052f0: 2000 movs r0, #0 + 80052f2: f7ff fd99 bl 8004e28 HAL_Delay(50); // delay 50 ms - 800471e: 2032 movs r0, #50 ; 0x32 - 8004720: f7fd fa34 bl 8001b8c + 80052f6: 2032 movs r0, #50 ; 0x32 + 80052f8: f7fc fd3a bl 8001d70 lcddev.id = LCD_ReadReg(0x0000); - 8004724: 2000 movs r0, #0 - 8004726: f7ff fda9 bl 800427c - 800472a: 4603 mov r3, r0 - 800472c: 461a mov r2, r3 - 800472e: 4b70 ldr r3, [pc, #448] ; (80048f0 ) - 8004730: 809a strh r2, [r3, #4] + 80052fc: 2000 movs r0, #0 + 80052fe: f7ff fda9 bl 8004e54 + 8005302: 4603 mov r3, r0 + 8005304: 461a mov r2, r3 + 8005306: 4b70 ldr r3, [pc, #448] ; (80054c8 ) + 8005308: 809a strh r2, [r3, #4] LCD_WriteReg(0x00E5,0x78F0); - 8004732: f647 01f0 movw r1, #30960 ; 0x78f0 - 8004736: 20e5 movs r0, #229 ; 0xe5 - 8004738: f7ff fd8a bl 8004250 + 800530a: f647 01f0 movw r1, #30960 ; 0x78f0 + 800530e: 20e5 movs r0, #229 ; 0xe5 + 8005310: f7ff fd8a bl 8004e28 LCD_WriteReg(0x0001,0x0100); - 800473c: f44f 7180 mov.w r1, #256 ; 0x100 - 8004740: 2001 movs r0, #1 - 8004742: f7ff fd85 bl 8004250 + 8005314: f44f 7180 mov.w r1, #256 ; 0x100 + 8005318: 2001 movs r0, #1 + 800531a: f7ff fd85 bl 8004e28 LCD_WriteReg(0x0002,0x0700); - 8004746: f44f 61e0 mov.w r1, #1792 ; 0x700 - 800474a: 2002 movs r0, #2 - 800474c: f7ff fd80 bl 8004250 + 800531e: f44f 61e0 mov.w r1, #1792 ; 0x700 + 8005322: 2002 movs r0, #2 + 8005324: f7ff fd80 bl 8004e28 LCD_WriteReg(0x0003,0x1030); - 8004750: f241 0130 movw r1, #4144 ; 0x1030 - 8004754: 2003 movs r0, #3 - 8004756: f7ff fd7b bl 8004250 + 8005328: f241 0130 movw r1, #4144 ; 0x1030 + 800532c: 2003 movs r0, #3 + 800532e: f7ff fd7b bl 8004e28 LCD_WriteReg(0x0004,0x0000); - 800475a: 2100 movs r1, #0 - 800475c: 2004 movs r0, #4 - 800475e: f7ff fd77 bl 8004250 + 8005332: 2100 movs r1, #0 + 8005334: 2004 movs r0, #4 + 8005336: f7ff fd77 bl 8004e28 LCD_WriteReg(0x0008,0x0202); - 8004762: f240 2102 movw r1, #514 ; 0x202 - 8004766: 2008 movs r0, #8 - 8004768: f7ff fd72 bl 8004250 + 800533a: f240 2102 movw r1, #514 ; 0x202 + 800533e: 2008 movs r0, #8 + 8005340: f7ff fd72 bl 8004e28 LCD_WriteReg(0x0009,0x0000); - 800476c: 2100 movs r1, #0 - 800476e: 2009 movs r0, #9 - 8004770: f7ff fd6e bl 8004250 + 8005344: 2100 movs r1, #0 + 8005346: 2009 movs r0, #9 + 8005348: f7ff fd6e bl 8004e28 LCD_WriteReg(0x000A,0x0000); - 8004774: 2100 movs r1, #0 - 8004776: 200a movs r0, #10 - 8004778: f7ff fd6a bl 8004250 + 800534c: 2100 movs r1, #0 + 800534e: 200a movs r0, #10 + 8005350: f7ff fd6a bl 8004e28 LCD_WriteReg(0x000C,0x0000); - 800477c: 2100 movs r1, #0 - 800477e: 200c movs r0, #12 - 8004780: f7ff fd66 bl 8004250 + 8005354: 2100 movs r1, #0 + 8005356: 200c movs r0, #12 + 8005358: f7ff fd66 bl 8004e28 LCD_WriteReg(0x000D,0x0000); - 8004784: 2100 movs r1, #0 - 8004786: 200d movs r0, #13 - 8004788: f7ff fd62 bl 8004250 + 800535c: 2100 movs r1, #0 + 800535e: 200d movs r0, #13 + 8005360: f7ff fd62 bl 8004e28 LCD_WriteReg(0x000F,0x0000); - 800478c: 2100 movs r1, #0 - 800478e: 200f movs r0, #15 - 8004790: f7ff fd5e bl 8004250 + 8005364: 2100 movs r1, #0 + 8005366: 200f movs r0, #15 + 8005368: f7ff fd5e bl 8004e28 //power on sequence VGHVGL LCD_WriteReg(0x0010,0x0000); - 8004794: 2100 movs r1, #0 - 8004796: 2010 movs r0, #16 - 8004798: f7ff fd5a bl 8004250 + 800536c: 2100 movs r1, #0 + 800536e: 2010 movs r0, #16 + 8005370: f7ff fd5a bl 8004e28 LCD_WriteReg(0x0011,0x0007); - 800479c: 2107 movs r1, #7 - 800479e: 2011 movs r0, #17 - 80047a0: f7ff fd56 bl 8004250 + 8005374: 2107 movs r1, #7 + 8005376: 2011 movs r0, #17 + 8005378: f7ff fd56 bl 8004e28 LCD_WriteReg(0x0012,0x0000); - 80047a4: 2100 movs r1, #0 - 80047a6: 2012 movs r0, #18 - 80047a8: f7ff fd52 bl 8004250 + 800537c: 2100 movs r1, #0 + 800537e: 2012 movs r0, #18 + 8005380: f7ff fd52 bl 8004e28 LCD_WriteReg(0x0013,0x0000); - 80047ac: 2100 movs r1, #0 - 80047ae: 2013 movs r0, #19 - 80047b0: f7ff fd4e bl 8004250 + 8005384: 2100 movs r1, #0 + 8005386: 2013 movs r0, #19 + 8005388: f7ff fd4e bl 8004e28 LCD_WriteReg(0x0007,0x0000); - 80047b4: 2100 movs r1, #0 - 80047b6: 2007 movs r0, #7 - 80047b8: f7ff fd4a bl 8004250 + 800538c: 2100 movs r1, #0 + 800538e: 2007 movs r0, #7 + 8005390: f7ff fd4a bl 8004e28 //vgh LCD_WriteReg(0x0010,0x1690); - 80047bc: f241 6190 movw r1, #5776 ; 0x1690 - 80047c0: 2010 movs r0, #16 - 80047c2: f7ff fd45 bl 8004250 + 8005394: f241 6190 movw r1, #5776 ; 0x1690 + 8005398: 2010 movs r0, #16 + 800539a: f7ff fd45 bl 8004e28 LCD_WriteReg(0x0011,0x0227); - 80047c6: f240 2127 movw r1, #551 ; 0x227 - 80047ca: 2011 movs r0, #17 - 80047cc: f7ff fd40 bl 8004250 + 800539e: f240 2127 movw r1, #551 ; 0x227 + 80053a2: 2011 movs r0, #17 + 80053a4: f7ff fd40 bl 8004e28 //delayms(100); //vregiout LCD_WriteReg(0x0012,0x009D); //0x001b - 80047d0: 219d movs r1, #157 ; 0x9d - 80047d2: 2012 movs r0, #18 - 80047d4: f7ff fd3c bl 8004250 + 80053a8: 219d movs r1, #157 ; 0x9d + 80053aa: 2012 movs r0, #18 + 80053ac: f7ff fd3c bl 8004e28 //delayms(100); //vom amplitude LCD_WriteReg(0x0013,0x1900); - 80047d8: f44f 51c8 mov.w r1, #6400 ; 0x1900 - 80047dc: 2013 movs r0, #19 - 80047de: f7ff fd37 bl 8004250 + 80053b0: f44f 51c8 mov.w r1, #6400 ; 0x1900 + 80053b4: 2013 movs r0, #19 + 80053b6: f7ff fd37 bl 8004e28 //delayms(100); //vom H LCD_WriteReg(0x0029,0x0025); - 80047e2: 2125 movs r1, #37 ; 0x25 - 80047e4: 2029 movs r0, #41 ; 0x29 - 80047e6: f7ff fd33 bl 8004250 + 80053ba: 2125 movs r1, #37 ; 0x25 + 80053bc: 2029 movs r0, #41 ; 0x29 + 80053be: f7ff fd33 bl 8004e28 LCD_WriteReg(0x002B,0x000D); - 80047ea: 210d movs r1, #13 - 80047ec: 202b movs r0, #43 ; 0x2b - 80047ee: f7ff fd2f bl 8004250 + 80053c2: 210d movs r1, #13 + 80053c4: 202b movs r0, #43 ; 0x2b + 80053c6: f7ff fd2f bl 8004e28 //gamma LCD_WriteReg(0x0030,0x0007); - 80047f2: 2107 movs r1, #7 - 80047f4: 2030 movs r0, #48 ; 0x30 - 80047f6: f7ff fd2b bl 8004250 + 80053ca: 2107 movs r1, #7 + 80053cc: 2030 movs r0, #48 ; 0x30 + 80053ce: f7ff fd2b bl 8004e28 LCD_WriteReg(0x0031,0x0303); - 80047fa: f240 3103 movw r1, #771 ; 0x303 - 80047fe: 2031 movs r0, #49 ; 0x31 - 8004800: f7ff fd26 bl 8004250 + 80053d2: f240 3103 movw r1, #771 ; 0x303 + 80053d6: 2031 movs r0, #49 ; 0x31 + 80053d8: f7ff fd26 bl 8004e28 LCD_WriteReg(0x0032,0x0003);// 0006 - 8004804: 2103 movs r1, #3 - 8004806: 2032 movs r0, #50 ; 0x32 - 8004808: f7ff fd22 bl 8004250 + 80053dc: 2103 movs r1, #3 + 80053de: 2032 movs r0, #50 ; 0x32 + 80053e0: f7ff fd22 bl 8004e28 LCD_WriteReg(0x0035,0x0206); - 800480c: f240 2106 movw r1, #518 ; 0x206 - 8004810: 2035 movs r0, #53 ; 0x35 - 8004812: f7ff fd1d bl 8004250 + 80053e4: f240 2106 movw r1, #518 ; 0x206 + 80053e8: 2035 movs r0, #53 ; 0x35 + 80053ea: f7ff fd1d bl 8004e28 LCD_WriteReg(0x0036,0x0008); - 8004816: 2108 movs r1, #8 - 8004818: 2036 movs r0, #54 ; 0x36 - 800481a: f7ff fd19 bl 8004250 + 80053ee: 2108 movs r1, #8 + 80053f0: 2036 movs r0, #54 ; 0x36 + 80053f2: f7ff fd19 bl 8004e28 LCD_WriteReg(0x0037,0x0406); - 800481e: f240 4106 movw r1, #1030 ; 0x406 - 8004822: 2037 movs r0, #55 ; 0x37 - 8004824: f7ff fd14 bl 8004250 + 80053f6: f240 4106 movw r1, #1030 ; 0x406 + 80053fa: 2037 movs r0, #55 ; 0x37 + 80053fc: f7ff fd14 bl 8004e28 LCD_WriteReg(0x0038,0x0304);//0200 - 8004828: f44f 7141 mov.w r1, #772 ; 0x304 - 800482c: 2038 movs r0, #56 ; 0x38 - 800482e: f7ff fd0f bl 8004250 + 8005400: f44f 7141 mov.w r1, #772 ; 0x304 + 8005404: 2038 movs r0, #56 ; 0x38 + 8005406: f7ff fd0f bl 8004e28 LCD_WriteReg(0x0039,0x0007); - 8004832: 2107 movs r1, #7 - 8004834: 2039 movs r0, #57 ; 0x39 - 8004836: f7ff fd0b bl 8004250 + 800540a: 2107 movs r1, #7 + 800540c: 2039 movs r0, #57 ; 0x39 + 800540e: f7ff fd0b bl 8004e28 LCD_WriteReg(0x003C,0x0602);// 0504 - 800483a: f240 6102 movw r1, #1538 ; 0x602 - 800483e: 203c movs r0, #60 ; 0x3c - 8004840: f7ff fd06 bl 8004250 + 8005412: f240 6102 movw r1, #1538 ; 0x602 + 8005416: 203c movs r0, #60 ; 0x3c + 8005418: f7ff fd06 bl 8004e28 LCD_WriteReg(0x003D,0x0008); - 8004844: 2108 movs r1, #8 - 8004846: 203d movs r0, #61 ; 0x3d - 8004848: f7ff fd02 bl 8004250 + 800541c: 2108 movs r1, #8 + 800541e: 203d movs r0, #61 ; 0x3d + 8005420: f7ff fd02 bl 8004e28 //ram LCD_WriteReg(0x0050,0x0000); - 800484c: 2100 movs r1, #0 - 800484e: 2050 movs r0, #80 ; 0x50 - 8004850: f7ff fcfe bl 8004250 + 8005424: 2100 movs r1, #0 + 8005426: 2050 movs r0, #80 ; 0x50 + 8005428: f7ff fcfe bl 8004e28 LCD_WriteReg(0x0051,0x00EF); - 8004854: 21ef movs r1, #239 ; 0xef - 8004856: 2051 movs r0, #81 ; 0x51 - 8004858: f7ff fcfa bl 8004250 + 800542c: 21ef movs r1, #239 ; 0xef + 800542e: 2051 movs r0, #81 ; 0x51 + 8005430: f7ff fcfa bl 8004e28 LCD_WriteReg(0x0052,0x0000); - 800485c: 2100 movs r1, #0 - 800485e: 2052 movs r0, #82 ; 0x52 - 8004860: f7ff fcf6 bl 8004250 + 8005434: 2100 movs r1, #0 + 8005436: 2052 movs r0, #82 ; 0x52 + 8005438: f7ff fcf6 bl 8004e28 LCD_WriteReg(0x0053,0x013F); - 8004864: f240 113f movw r1, #319 ; 0x13f - 8004868: 2053 movs r0, #83 ; 0x53 - 800486a: f7ff fcf1 bl 8004250 + 800543c: f240 113f movw r1, #319 ; 0x13f + 8005440: 2053 movs r0, #83 ; 0x53 + 8005442: f7ff fcf1 bl 8004e28 LCD_WriteReg(0x0060,0xA700); - 800486e: f44f 4127 mov.w r1, #42752 ; 0xa700 - 8004872: 2060 movs r0, #96 ; 0x60 - 8004874: f7ff fcec bl 8004250 + 8005446: f44f 4127 mov.w r1, #42752 ; 0xa700 + 800544a: 2060 movs r0, #96 ; 0x60 + 800544c: f7ff fcec bl 8004e28 LCD_WriteReg(0x0061,0x0001); - 8004878: 2101 movs r1, #1 - 800487a: 2061 movs r0, #97 ; 0x61 - 800487c: f7ff fce8 bl 8004250 + 8005450: 2101 movs r1, #1 + 8005452: 2061 movs r0, #97 ; 0x61 + 8005454: f7ff fce8 bl 8004e28 LCD_WriteReg(0x006A,0x0000); - 8004880: 2100 movs r1, #0 - 8004882: 206a movs r0, #106 ; 0x6a - 8004884: f7ff fce4 bl 8004250 + 8005458: 2100 movs r1, #0 + 800545a: 206a movs r0, #106 ; 0x6a + 800545c: f7ff fce4 bl 8004e28 // LCD_WriteReg(0x0080,0x0000); - 8004888: 2100 movs r1, #0 - 800488a: 2080 movs r0, #128 ; 0x80 - 800488c: f7ff fce0 bl 8004250 + 8005460: 2100 movs r1, #0 + 8005462: 2080 movs r0, #128 ; 0x80 + 8005464: f7ff fce0 bl 8004e28 LCD_WriteReg(0x0081,0x0000); - 8004890: 2100 movs r1, #0 - 8004892: 2081 movs r0, #129 ; 0x81 - 8004894: f7ff fcdc bl 8004250 + 8005468: 2100 movs r1, #0 + 800546a: 2081 movs r0, #129 ; 0x81 + 800546c: f7ff fcdc bl 8004e28 LCD_WriteReg(0x0082,0x0000); - 8004898: 2100 movs r1, #0 - 800489a: 2082 movs r0, #130 ; 0x82 - 800489c: f7ff fcd8 bl 8004250 + 8005470: 2100 movs r1, #0 + 8005472: 2082 movs r0, #130 ; 0x82 + 8005474: f7ff fcd8 bl 8004e28 LCD_WriteReg(0x0083,0x0000); - 80048a0: 2100 movs r1, #0 - 80048a2: 2083 movs r0, #131 ; 0x83 - 80048a4: f7ff fcd4 bl 8004250 + 8005478: 2100 movs r1, #0 + 800547a: 2083 movs r0, #131 ; 0x83 + 800547c: f7ff fcd4 bl 8004e28 LCD_WriteReg(0x0084,0x0000); - 80048a8: 2100 movs r1, #0 - 80048aa: 2084 movs r0, #132 ; 0x84 - 80048ac: f7ff fcd0 bl 8004250 + 8005480: 2100 movs r1, #0 + 8005482: 2084 movs r0, #132 ; 0x84 + 8005484: f7ff fcd0 bl 8004e28 LCD_WriteReg(0x0085,0x0000); - 80048b0: 2100 movs r1, #0 - 80048b2: 2085 movs r0, #133 ; 0x85 - 80048b4: f7ff fccc bl 8004250 + 8005488: 2100 movs r1, #0 + 800548a: 2085 movs r0, #133 ; 0x85 + 800548c: f7ff fccc bl 8004e28 // LCD_WriteReg(0x0090,0x0010); - 80048b8: 2110 movs r1, #16 - 80048ba: 2090 movs r0, #144 ; 0x90 - 80048bc: f7ff fcc8 bl 8004250 + 8005490: 2110 movs r1, #16 + 8005492: 2090 movs r0, #144 ; 0x90 + 8005494: f7ff fcc8 bl 8004e28 LCD_WriteReg(0x0092,0x0600); - 80048c0: f44f 61c0 mov.w r1, #1536 ; 0x600 - 80048c4: 2092 movs r0, #146 ; 0x92 - 80048c6: f7ff fcc3 bl 8004250 + 8005498: f44f 61c0 mov.w r1, #1536 ; 0x600 + 800549c: 2092 movs r0, #146 ; 0x92 + 800549e: f7ff fcc3 bl 8004e28 LCD_WriteReg(0x0007,0x0133); - 80048ca: f240 1133 movw r1, #307 ; 0x133 - 80048ce: 2007 movs r0, #7 - 80048d0: f7ff fcbe bl 8004250 + 80054a2: f240 1133 movw r1, #307 ; 0x133 + 80054a6: 2007 movs r0, #7 + 80054a8: f7ff fcbe bl 8004e28 LCD_WriteReg(0x00,0x0022);// - 80048d4: 2122 movs r1, #34 ; 0x22 - 80048d6: 2000 movs r0, #0 - 80048d8: f7ff fcba bl 8004250 + 80054ac: 2122 movs r1, #34 ; 0x22 + 80054ae: 2000 movs r0, #0 + 80054b0: f7ff fcba bl 8004e28 LCD_Display_Dir(1); //默认为h屏 - 80048dc: 2001 movs r0, #1 - 80048de: f7ff fe4f bl 8004580 + 80054b4: 2001 movs r0, #1 + 80054b6: f7ff fe4f bl 8005158 LCD_BL(0); - 80048e2: 2200 movs r2, #0 - 80048e4: 2101 movs r1, #1 - 80048e6: 4803 ldr r0, [pc, #12] ; (80048f4 ) - 80048e8: f7fd fc2d bl 8002146 + 80054ba: 2200 movs r2, #0 + 80054bc: 2101 movs r1, #1 + 80054be: 4803 ldr r0, [pc, #12] ; (80054cc ) + 80054c0: f7fc ff33 bl 800232a } - 80048ec: bf00 nop - 80048ee: bd80 pop {r7, pc} - 80048f0: 200003a8 .word 0x200003a8 - 80048f4: 40010c00 .word 0x40010c00 + 80054c4: bf00 nop + 80054c6: bd80 pop {r7, pc} + 80054c8: 200003b4 .word 0x200003b4 + 80054cc: 40010c00 .word 0x40010c00 -080048f8 : +080054d0 : //***********************************************************打点 读点 什么的 //设置光标位置 //Xpos:横坐标 //Ypos:纵坐标 void LCD_SetCursor(uint16_t Xpos, uint16_t Ypos) { - 80048f8: b580 push {r7, lr} - 80048fa: b082 sub sp, #8 - 80048fc: af00 add r7, sp, #0 - 80048fe: 4603 mov r3, r0 - 8004900: 460a mov r2, r1 - 8004902: 80fb strh r3, [r7, #6] - 8004904: 4613 mov r3, r2 - 8004906: 80bb strh r3, [r7, #4] + 80054d0: b580 push {r7, lr} + 80054d2: b082 sub sp, #8 + 80054d4: af00 add r7, sp, #0 + 80054d6: 4603 mov r3, r0 + 80054d8: 460a mov r2, r1 + 80054da: 80fb strh r3, [r7, #6] + 80054dc: 4613 mov r3, r2 + 80054de: 80bb strh r3, [r7, #4] if(lcddev.id==0X9341||lcddev.id==0X5310) - 8004908: 4b42 ldr r3, [pc, #264] ; (8004a14 ) - 800490a: 889b ldrh r3, [r3, #4] - 800490c: f249 3241 movw r2, #37697 ; 0x9341 - 8004910: 4293 cmp r3, r2 - 8004912: d005 beq.n 8004920 - 8004914: 4b3f ldr r3, [pc, #252] ; (8004a14 ) - 8004916: 889b ldrh r3, [r3, #4] - 8004918: f245 3210 movw r2, #21264 ; 0x5310 - 800491c: 4293 cmp r3, r2 - 800491e: d124 bne.n 800496a + 80054e0: 4b42 ldr r3, [pc, #264] ; (80055ec ) + 80054e2: 889b ldrh r3, [r3, #4] + 80054e4: f249 3241 movw r2, #37697 ; 0x9341 + 80054e8: 4293 cmp r3, r2 + 80054ea: d005 beq.n 80054f8 + 80054ec: 4b3f ldr r3, [pc, #252] ; (80055ec ) + 80054ee: 889b ldrh r3, [r3, #4] + 80054f0: f245 3210 movw r2, #21264 ; 0x5310 + 80054f4: 4293 cmp r3, r2 + 80054f6: d124 bne.n 8005542 { LCD_WR_REG(lcddev.setxcmd); - 8004920: 4b3c ldr r3, [pc, #240] ; (8004a14 ) - 8004922: 7a1b ldrb r3, [r3, #8] - 8004924: b29b uxth r3, r3 - 8004926: 4618 mov r0, r3 - 8004928: f7ff fc74 bl 8004214 + 80054f8: 4b3c ldr r3, [pc, #240] ; (80055ec ) + 80054fa: 7a1b ldrb r3, [r3, #8] + 80054fc: b29b uxth r3, r3 + 80054fe: 4618 mov r0, r3 + 8005500: f7ff fc74 bl 8004dec LCD_WR_DATA(Xpos>>8); - 800492c: 88fb ldrh r3, [r7, #6] - 800492e: 0a1b lsrs r3, r3, #8 - 8004930: b29b uxth r3, r3 - 8004932: 4618 mov r0, r3 - 8004934: f7ff fc7c bl 8004230 + 8005504: 88fb ldrh r3, [r7, #6] + 8005506: 0a1b lsrs r3, r3, #8 + 8005508: b29b uxth r3, r3 + 800550a: 4618 mov r0, r3 + 800550c: f7ff fc7c bl 8004e08 LCD_WR_DATA(Xpos&0XFF); - 8004938: 88fb ldrh r3, [r7, #6] - 800493a: b2db uxtb r3, r3 - 800493c: b29b uxth r3, r3 - 800493e: 4618 mov r0, r3 - 8004940: f7ff fc76 bl 8004230 + 8005510: 88fb ldrh r3, [r7, #6] + 8005512: b2db uxtb r3, r3 + 8005514: b29b uxth r3, r3 + 8005516: 4618 mov r0, r3 + 8005518: f7ff fc76 bl 8004e08 LCD_WR_REG(lcddev.setycmd); - 8004944: 4b33 ldr r3, [pc, #204] ; (8004a14 ) - 8004946: 7a5b ldrb r3, [r3, #9] - 8004948: b29b uxth r3, r3 - 800494a: 4618 mov r0, r3 - 800494c: f7ff fc62 bl 8004214 + 800551c: 4b33 ldr r3, [pc, #204] ; (80055ec ) + 800551e: 7a5b ldrb r3, [r3, #9] + 8005520: b29b uxth r3, r3 + 8005522: 4618 mov r0, r3 + 8005524: f7ff fc62 bl 8004dec LCD_WR_DATA(Ypos>>8); - 8004950: 88bb ldrh r3, [r7, #4] - 8004952: 0a1b lsrs r3, r3, #8 - 8004954: b29b uxth r3, r3 - 8004956: 4618 mov r0, r3 - 8004958: f7ff fc6a bl 8004230 + 8005528: 88bb ldrh r3, [r7, #4] + 800552a: 0a1b lsrs r3, r3, #8 + 800552c: b29b uxth r3, r3 + 800552e: 4618 mov r0, r3 + 8005530: f7ff fc6a bl 8004e08 LCD_WR_DATA(Ypos&0XFF); - 800495c: 88bb ldrh r3, [r7, #4] - 800495e: b2db uxtb r3, r3 - 8004960: b29b uxth r3, r3 - 8004962: 4618 mov r0, r3 - 8004964: f7ff fc64 bl 8004230 + 8005534: 88bb ldrh r3, [r7, #4] + 8005536: b2db uxtb r3, r3 + 8005538: b29b uxth r3, r3 + 800553a: 4618 mov r0, r3 + 800553c: f7ff fc64 bl 8004e08 { if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//横屏其实就是调转x,y坐标 LCD_WriteReg(lcddev.setxcmd, Xpos); LCD_WriteReg(lcddev.setycmd, Ypos); } } - 8004968: e050 b.n 8004a0c + 8005540: e050 b.n 80055e4 }else if(lcddev.id==0X6804) - 800496a: 4b2a ldr r3, [pc, #168] ; (8004a14 ) - 800496c: 889b ldrh r3, [r3, #4] - 800496e: f646 0204 movw r2, #26628 ; 0x6804 - 8004972: 4293 cmp r3, r2 - 8004974: d12f bne.n 80049d6 + 8005542: 4b2a ldr r3, [pc, #168] ; (80055ec ) + 8005544: 889b ldrh r3, [r3, #4] + 8005546: f646 0204 movw r2, #26628 ; 0x6804 + 800554a: 4293 cmp r3, r2 + 800554c: d12f bne.n 80055ae if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//横屏时处理 - 8004976: 4b27 ldr r3, [pc, #156] ; (8004a14 ) - 8004978: 799b ldrb r3, [r3, #6] - 800497a: 2b01 cmp r3, #1 - 800497c: d106 bne.n 800498c - 800497e: 4b25 ldr r3, [pc, #148] ; (8004a14 ) - 8004980: 881a ldrh r2, [r3, #0] - 8004982: 88fb ldrh r3, [r7, #6] - 8004984: 1ad3 subs r3, r2, r3 - 8004986: b29b uxth r3, r3 - 8004988: 3b01 subs r3, #1 - 800498a: 80fb strh r3, [r7, #6] + 800554e: 4b27 ldr r3, [pc, #156] ; (80055ec ) + 8005550: 799b ldrb r3, [r3, #6] + 8005552: 2b01 cmp r3, #1 + 8005554: d106 bne.n 8005564 + 8005556: 4b25 ldr r3, [pc, #148] ; (80055ec ) + 8005558: 881a ldrh r2, [r3, #0] + 800555a: 88fb ldrh r3, [r7, #6] + 800555c: 1ad3 subs r3, r2, r3 + 800555e: b29b uxth r3, r3 + 8005560: 3b01 subs r3, #1 + 8005562: 80fb strh r3, [r7, #6] LCD_WR_REG(lcddev.setxcmd); - 800498c: 4b21 ldr r3, [pc, #132] ; (8004a14 ) - 800498e: 7a1b ldrb r3, [r3, #8] - 8004990: b29b uxth r3, r3 - 8004992: 4618 mov r0, r3 - 8004994: f7ff fc3e bl 8004214 + 8005564: 4b21 ldr r3, [pc, #132] ; (80055ec ) + 8005566: 7a1b ldrb r3, [r3, #8] + 8005568: b29b uxth r3, r3 + 800556a: 4618 mov r0, r3 + 800556c: f7ff fc3e bl 8004dec LCD_WR_DATA(Xpos>>8); - 8004998: 88fb ldrh r3, [r7, #6] - 800499a: 0a1b lsrs r3, r3, #8 - 800499c: b29b uxth r3, r3 - 800499e: 4618 mov r0, r3 - 80049a0: f7ff fc46 bl 8004230 + 8005570: 88fb ldrh r3, [r7, #6] + 8005572: 0a1b lsrs r3, r3, #8 + 8005574: b29b uxth r3, r3 + 8005576: 4618 mov r0, r3 + 8005578: f7ff fc46 bl 8004e08 LCD_WR_DATA(Xpos&0XFF); - 80049a4: 88fb ldrh r3, [r7, #6] - 80049a6: b2db uxtb r3, r3 - 80049a8: b29b uxth r3, r3 - 80049aa: 4618 mov r0, r3 - 80049ac: f7ff fc40 bl 8004230 + 800557c: 88fb ldrh r3, [r7, #6] + 800557e: b2db uxtb r3, r3 + 8005580: b29b uxth r3, r3 + 8005582: 4618 mov r0, r3 + 8005584: f7ff fc40 bl 8004e08 LCD_WR_REG(lcddev.setycmd); - 80049b0: 4b18 ldr r3, [pc, #96] ; (8004a14 ) - 80049b2: 7a5b ldrb r3, [r3, #9] - 80049b4: b29b uxth r3, r3 - 80049b6: 4618 mov r0, r3 - 80049b8: f7ff fc2c bl 8004214 + 8005588: 4b18 ldr r3, [pc, #96] ; (80055ec ) + 800558a: 7a5b ldrb r3, [r3, #9] + 800558c: b29b uxth r3, r3 + 800558e: 4618 mov r0, r3 + 8005590: f7ff fc2c bl 8004dec LCD_WR_DATA(Ypos>>8); - 80049bc: 88bb ldrh r3, [r7, #4] - 80049be: 0a1b lsrs r3, r3, #8 - 80049c0: b29b uxth r3, r3 - 80049c2: 4618 mov r0, r3 - 80049c4: f7ff fc34 bl 8004230 + 8005594: 88bb ldrh r3, [r7, #4] + 8005596: 0a1b lsrs r3, r3, #8 + 8005598: b29b uxth r3, r3 + 800559a: 4618 mov r0, r3 + 800559c: f7ff fc34 bl 8004e08 LCD_WR_DATA(Ypos&0XFF); - 80049c8: 88bb ldrh r3, [r7, #4] - 80049ca: b2db uxtb r3, r3 - 80049cc: b29b uxth r3, r3 - 80049ce: 4618 mov r0, r3 - 80049d0: f7ff fc2e bl 8004230 + 80055a0: 88bb ldrh r3, [r7, #4] + 80055a2: b2db uxtb r3, r3 + 80055a4: b29b uxth r3, r3 + 80055a6: 4618 mov r0, r3 + 80055a8: f7ff fc2e bl 8004e08 } - 80049d4: e01a b.n 8004a0c + 80055ac: e01a b.n 80055e4 if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//横屏其实就是调转x,y坐标 - 80049d6: 4b0f ldr r3, [pc, #60] ; (8004a14 ) - 80049d8: 799b ldrb r3, [r3, #6] - 80049da: 2b01 cmp r3, #1 - 80049dc: d106 bne.n 80049ec - 80049de: 4b0d ldr r3, [pc, #52] ; (8004a14 ) - 80049e0: 881a ldrh r2, [r3, #0] - 80049e2: 88fb ldrh r3, [r7, #6] - 80049e4: 1ad3 subs r3, r2, r3 - 80049e6: b29b uxth r3, r3 - 80049e8: 3b01 subs r3, #1 - 80049ea: 80fb strh r3, [r7, #6] + 80055ae: 4b0f ldr r3, [pc, #60] ; (80055ec ) + 80055b0: 799b ldrb r3, [r3, #6] + 80055b2: 2b01 cmp r3, #1 + 80055b4: d106 bne.n 80055c4 + 80055b6: 4b0d ldr r3, [pc, #52] ; (80055ec ) + 80055b8: 881a ldrh r2, [r3, #0] + 80055ba: 88fb ldrh r3, [r7, #6] + 80055bc: 1ad3 subs r3, r2, r3 + 80055be: b29b uxth r3, r3 + 80055c0: 3b01 subs r3, #1 + 80055c2: 80fb strh r3, [r7, #6] LCD_WriteReg(lcddev.setxcmd, Xpos); - 80049ec: 4b09 ldr r3, [pc, #36] ; (8004a14 ) - 80049ee: 7a1b ldrb r3, [r3, #8] - 80049f0: b29b uxth r3, r3 - 80049f2: 88fa ldrh r2, [r7, #6] - 80049f4: 4611 mov r1, r2 - 80049f6: 4618 mov r0, r3 - 80049f8: f7ff fc2a bl 8004250 + 80055c4: 4b09 ldr r3, [pc, #36] ; (80055ec ) + 80055c6: 7a1b ldrb r3, [r3, #8] + 80055c8: b29b uxth r3, r3 + 80055ca: 88fa ldrh r2, [r7, #6] + 80055cc: 4611 mov r1, r2 + 80055ce: 4618 mov r0, r3 + 80055d0: f7ff fc2a bl 8004e28 LCD_WriteReg(lcddev.setycmd, Ypos); - 80049fc: 4b05 ldr r3, [pc, #20] ; (8004a14 ) - 80049fe: 7a5b ldrb r3, [r3, #9] - 8004a00: b29b uxth r3, r3 - 8004a02: 88ba ldrh r2, [r7, #4] - 8004a04: 4611 mov r1, r2 - 8004a06: 4618 mov r0, r3 - 8004a08: f7ff fc22 bl 8004250 + 80055d4: 4b05 ldr r3, [pc, #20] ; (80055ec ) + 80055d6: 7a5b ldrb r3, [r3, #9] + 80055d8: b29b uxth r3, r3 + 80055da: 88ba ldrh r2, [r7, #4] + 80055dc: 4611 mov r1, r2 + 80055de: 4618 mov r0, r3 + 80055e0: f7ff fc22 bl 8004e28 } - 8004a0c: bf00 nop - 8004a0e: 3708 adds r7, #8 - 8004a10: 46bd mov sp, r7 - 8004a12: bd80 pop {r7, pc} - 8004a14: 200003a8 .word 0x200003a8 + 80055e4: bf00 nop + 80055e6: 3708 adds r7, #8 + 80055e8: 46bd mov sp, r7 + 80055ea: bd80 pop {r7, pc} + 80055ec: 200003b4 .word 0x200003b4 -08004a18 : +080055f0 : } //画点 //x,y:坐标 //POINT_COLOR:此点的颜色 void LCD_set_dot(uint16_t x,uint16_t y,uint16_t color) { - 8004a18: b580 push {r7, lr} - 8004a1a: b082 sub sp, #8 - 8004a1c: af00 add r7, sp, #0 - 8004a1e: 4603 mov r3, r0 - 8004a20: 80fb strh r3, [r7, #6] - 8004a22: 460b mov r3, r1 - 8004a24: 80bb strh r3, [r7, #4] - 8004a26: 4613 mov r3, r2 - 8004a28: 807b strh r3, [r7, #2] + 80055f0: b580 push {r7, lr} + 80055f2: b082 sub sp, #8 + 80055f4: af00 add r7, sp, #0 + 80055f6: 4603 mov r3, r0 + 80055f8: 80fb strh r3, [r7, #6] + 80055fa: 460b mov r3, r1 + 80055fc: 80bb strh r3, [r7, #4] + 80055fe: 4613 mov r3, r2 + 8005600: 807b strh r3, [r7, #2] LCD_SetCursor(x,y); //设置光标位置 - 8004a2a: 88ba ldrh r2, [r7, #4] - 8004a2c: 88fb ldrh r3, [r7, #6] - 8004a2e: 4611 mov r1, r2 - 8004a30: 4618 mov r0, r3 - 8004a32: f7ff ff61 bl 80048f8 + 8005602: 88ba ldrh r2, [r7, #4] + 8005604: 88fb ldrh r3, [r7, #6] + 8005606: 4611 mov r1, r2 + 8005608: 4618 mov r0, r3 + 800560a: f7ff ff61 bl 80054d0 LCD_REG_ADDRESS=lcddev.wramcmd; //开始写入GRAM - 8004a36: 4b06 ldr r3, [pc, #24] ; (8004a50 ) - 8004a38: 79da ldrb r2, [r3, #7] - 8004a3a: f04f 43d8 mov.w r3, #1811939328 ; 0x6c000000 - 8004a3e: b292 uxth r2, r2 - 8004a40: 801a strh r2, [r3, #0] + 800560e: 4b06 ldr r3, [pc, #24] ; (8005628 ) + 8005610: 79da ldrb r2, [r3, #7] + 8005612: f04f 43d8 mov.w r3, #1811939328 ; 0x6c000000 + 8005616: b292 uxth r2, r2 + 8005618: 801a strh r2, [r3, #0] LCD_DATA_ADDRESS=color; - 8004a42: 4a04 ldr r2, [pc, #16] ; (8004a54 ) - 8004a44: 887b ldrh r3, [r7, #2] - 8004a46: 8013 strh r3, [r2, #0] + 800561a: 4a04 ldr r2, [pc, #16] ; (800562c ) + 800561c: 887b ldrh r3, [r7, #2] + 800561e: 8013 strh r3, [r2, #0] } - 8004a48: bf00 nop - 8004a4a: 3708 adds r7, #8 - 8004a4c: 46bd mov sp, r7 - 8004a4e: bd80 pop {r7, pc} - 8004a50: 200003a8 .word 0x200003a8 - 8004a54: 6c000800 .word 0x6c000800 + 8005620: bf00 nop + 8005622: 3708 adds r7, #8 + 8005624: 46bd mov sp, r7 + 8005626: bd80 pop {r7, pc} + 8005628: 200003b4 .word 0x200003b4 + 800562c: 6c000800 .word 0x6c000800 -08004a58 : +08005630 : //清屏函数 //color:要清屏的填充色 void LCD_Clear(uint16_t color) { - 8004a58: b580 push {r7, lr} - 8004a5a: b084 sub sp, #16 - 8004a5c: af00 add r7, sp, #0 - 8004a5e: 4603 mov r3, r0 - 8004a60: 80fb strh r3, [r7, #6] + 8005630: b580 push {r7, lr} + 8005632: b084 sub sp, #16 + 8005634: af00 add r7, sp, #0 + 8005636: 4603 mov r3, r0 + 8005638: 80fb strh r3, [r7, #6] uint32_t index=0; - 8004a62: 2300 movs r3, #0 - 8004a64: 60fb str r3, [r7, #12] + 800563a: 2300 movs r3, #0 + 800563c: 60fb str r3, [r7, #12] uint32_t totalpoint=lcddev.width; - 8004a66: 4b23 ldr r3, [pc, #140] ; (8004af4 ) - 8004a68: 881b ldrh r3, [r3, #0] - 8004a6a: 60bb str r3, [r7, #8] + 800563e: 4b23 ldr r3, [pc, #140] ; (80056cc ) + 8005640: 881b ldrh r3, [r3, #0] + 8005642: 60bb str r3, [r7, #8] totalpoint*=lcddev.height; //得到总点数 - 8004a6c: 4b21 ldr r3, [pc, #132] ; (8004af4 ) - 8004a6e: 885b ldrh r3, [r3, #2] - 8004a70: 461a mov r2, r3 - 8004a72: 68bb ldr r3, [r7, #8] - 8004a74: fb02 f303 mul.w r3, r2, r3 - 8004a78: 60bb str r3, [r7, #8] + 8005644: 4b21 ldr r3, [pc, #132] ; (80056cc ) + 8005646: 885b ldrh r3, [r3, #2] + 8005648: 461a mov r2, r3 + 800564a: 68bb ldr r3, [r7, #8] + 800564c: fb02 f303 mul.w r3, r2, r3 + 8005650: 60bb str r3, [r7, #8] if((lcddev.id==0X6804)&&(lcddev.dir==1))//6804横屏的时候特殊处理 - 8004a7a: 4b1e ldr r3, [pc, #120] ; (8004af4 ) - 8004a7c: 889b ldrh r3, [r3, #4] - 8004a7e: f646 0204 movw r2, #26628 ; 0x6804 - 8004a82: 4293 cmp r3, r2 - 8004a84: d11a bne.n 8004abc - 8004a86: 4b1b ldr r3, [pc, #108] ; (8004af4 ) - 8004a88: 799b ldrb r3, [r3, #6] - 8004a8a: 2b01 cmp r3, #1 - 8004a8c: d116 bne.n 8004abc + 8005652: 4b1e ldr r3, [pc, #120] ; (80056cc ) + 8005654: 889b ldrh r3, [r3, #4] + 8005656: f646 0204 movw r2, #26628 ; 0x6804 + 800565a: 4293 cmp r3, r2 + 800565c: d11a bne.n 8005694 + 800565e: 4b1b ldr r3, [pc, #108] ; (80056cc ) + 8005660: 799b ldrb r3, [r3, #6] + 8005662: 2b01 cmp r3, #1 + 8005664: d116 bne.n 8005694 { lcddev.dir=0; - 8004a8e: 4b19 ldr r3, [pc, #100] ; (8004af4 ) - 8004a90: 2200 movs r2, #0 - 8004a92: 719a strb r2, [r3, #6] + 8005666: 4b19 ldr r3, [pc, #100] ; (80056cc ) + 8005668: 2200 movs r2, #0 + 800566a: 719a strb r2, [r3, #6] lcddev.setxcmd=0X2A; - 8004a94: 4b17 ldr r3, [pc, #92] ; (8004af4 ) - 8004a96: 222a movs r2, #42 ; 0x2a - 8004a98: 721a strb r2, [r3, #8] + 800566c: 4b17 ldr r3, [pc, #92] ; (80056cc ) + 800566e: 222a movs r2, #42 ; 0x2a + 8005670: 721a strb r2, [r3, #8] lcddev.setycmd=0X2B; - 8004a9a: 4b16 ldr r3, [pc, #88] ; (8004af4 ) - 8004a9c: 222b movs r2, #43 ; 0x2b - 8004a9e: 725a strb r2, [r3, #9] + 8005672: 4b16 ldr r3, [pc, #88] ; (80056cc ) + 8005674: 222b movs r2, #43 ; 0x2b + 8005676: 725a strb r2, [r3, #9] LCD_SetCursor(0x00,0x0000); //设置光标位置 - 8004aa0: 2100 movs r1, #0 - 8004aa2: 2000 movs r0, #0 - 8004aa4: f7ff ff28 bl 80048f8 + 8005678: 2100 movs r1, #0 + 800567a: 2000 movs r0, #0 + 800567c: f7ff ff28 bl 80054d0 lcddev.dir=1; - 8004aa8: 4b12 ldr r3, [pc, #72] ; (8004af4 ) - 8004aaa: 2201 movs r2, #1 - 8004aac: 719a strb r2, [r3, #6] + 8005680: 4b12 ldr r3, [pc, #72] ; (80056cc ) + 8005682: 2201 movs r2, #1 + 8005684: 719a strb r2, [r3, #6] lcddev.setxcmd=0X2B; - 8004aae: 4b11 ldr r3, [pc, #68] ; (8004af4 ) - 8004ab0: 222b movs r2, #43 ; 0x2b - 8004ab2: 721a strb r2, [r3, #8] + 8005686: 4b11 ldr r3, [pc, #68] ; (80056cc ) + 8005688: 222b movs r2, #43 ; 0x2b + 800568a: 721a strb r2, [r3, #8] lcddev.setycmd=0X2A; - 8004ab4: 4b0f ldr r3, [pc, #60] ; (8004af4 ) - 8004ab6: 222a movs r2, #42 ; 0x2a - 8004ab8: 725a strb r2, [r3, #9] - 8004aba: e003 b.n 8004ac4 + 800568c: 4b0f ldr r3, [pc, #60] ; (80056cc ) + 800568e: 222a movs r2, #42 ; 0x2a + 8005690: 725a strb r2, [r3, #9] + 8005692: e003 b.n 800569c }else LCD_SetCursor(0x00,0x0000); //设置光标位置 - 8004abc: 2100 movs r1, #0 - 8004abe: 2000 movs r0, #0 - 8004ac0: f7ff ff1a bl 80048f8 + 8005694: 2100 movs r1, #0 + 8005696: 2000 movs r0, #0 + 8005698: f7ff ff1a bl 80054d0 LCD_REG_ADDRESS=lcddev.wramcmd; //开始写入GRAM - 8004ac4: 4b0b ldr r3, [pc, #44] ; (8004af4 ) - 8004ac6: 79da ldrb r2, [r3, #7] - 8004ac8: f04f 43d8 mov.w r3, #1811939328 ; 0x6c000000 - 8004acc: b292 uxth r2, r2 - 8004ace: 801a strh r2, [r3, #0] + 800569c: 4b0b ldr r3, [pc, #44] ; (80056cc ) + 800569e: 79da ldrb r2, [r3, #7] + 80056a0: f04f 43d8 mov.w r3, #1811939328 ; 0x6c000000 + 80056a4: b292 uxth r2, r2 + 80056a6: 801a strh r2, [r3, #0] for(index=0;index + 80056a8: 2300 movs r3, #0 + 80056aa: 60fb str r3, [r7, #12] + 80056ac: e005 b.n 80056ba { LCD_DATA_ADDRESS=color; - 8004ad6: 4a08 ldr r2, [pc, #32] ; (8004af8 ) - 8004ad8: 88fb ldrh r3, [r7, #6] - 8004ada: 8013 strh r3, [r2, #0] + 80056ae: 4a08 ldr r2, [pc, #32] ; (80056d0 ) + 80056b0: 88fb ldrh r3, [r7, #6] + 80056b2: 8013 strh r3, [r2, #0] for(index=0;index + 80056b4: 68fb ldr r3, [r7, #12] + 80056b6: 3301 adds r3, #1 + 80056b8: 60fb str r3, [r7, #12] + 80056ba: 68fa ldr r2, [r7, #12] + 80056bc: 68bb ldr r3, [r7, #8] + 80056be: 429a cmp r2, r3 + 80056c0: d3f5 bcc.n 80056ae } } - 8004aea: bf00 nop - 8004aec: bf00 nop - 8004aee: 3710 adds r7, #16 - 8004af0: 46bd mov sp, r7 - 8004af2: bd80 pop {r7, pc} - 8004af4: 200003a8 .word 0x200003a8 - 8004af8: 6c000800 .word 0x6c000800 + 80056c2: bf00 nop + 80056c4: bf00 nop + 80056c6: 3710 adds r7, #16 + 80056c8: 46bd mov sp, r7 + 80056ca: bd80 pop {r7, pc} + 80056cc: 200003b4 .word 0x200003b4 + 80056d0: 6c000800 .word 0x6c000800 -08004afc : +080056d4 : //***********************************2D //画线 //x1,y1:起点坐标 //x2,y2:终点坐标 void LCD_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2,uint16_t color) { - 8004afc: b590 push {r4, r7, lr} - 8004afe: b08d sub sp, #52 ; 0x34 - 8004b00: af00 add r7, sp, #0 - 8004b02: 4604 mov r4, r0 - 8004b04: 4608 mov r0, r1 - 8004b06: 4611 mov r1, r2 - 8004b08: 461a mov r2, r3 - 8004b0a: 4623 mov r3, r4 - 8004b0c: 80fb strh r3, [r7, #6] - 8004b0e: 4603 mov r3, r0 - 8004b10: 80bb strh r3, [r7, #4] - 8004b12: 460b mov r3, r1 - 8004b14: 807b strh r3, [r7, #2] - 8004b16: 4613 mov r3, r2 - 8004b18: 803b strh r3, [r7, #0] + 80056d4: b590 push {r4, r7, lr} + 80056d6: b08d sub sp, #52 ; 0x34 + 80056d8: af00 add r7, sp, #0 + 80056da: 4604 mov r4, r0 + 80056dc: 4608 mov r0, r1 + 80056de: 4611 mov r1, r2 + 80056e0: 461a mov r2, r3 + 80056e2: 4623 mov r3, r4 + 80056e4: 80fb strh r3, [r7, #6] + 80056e6: 4603 mov r3, r0 + 80056e8: 80bb strh r3, [r7, #4] + 80056ea: 460b mov r3, r1 + 80056ec: 807b strh r3, [r7, #2] + 80056ee: 4613 mov r3, r2 + 80056f0: 803b strh r3, [r7, #0] uint16_t t; int xerr=0,yerr=0,delta_x,delta_y,distance; - 8004b1a: 2300 movs r3, #0 - 8004b1c: 62bb str r3, [r7, #40] ; 0x28 - 8004b1e: 2300 movs r3, #0 - 8004b20: 627b str r3, [r7, #36] ; 0x24 + 80056f2: 2300 movs r3, #0 + 80056f4: 62bb str r3, [r7, #40] ; 0x28 + 80056f6: 2300 movs r3, #0 + 80056f8: 627b str r3, [r7, #36] ; 0x24 int incx,incy,uRow,uCol; delta_x=x2-x1; //计算坐标增量 - 8004b22: 887a ldrh r2, [r7, #2] - 8004b24: 88fb ldrh r3, [r7, #6] - 8004b26: 1ad3 subs r3, r2, r3 - 8004b28: 623b str r3, [r7, #32] + 80056fa: 887a ldrh r2, [r7, #2] + 80056fc: 88fb ldrh r3, [r7, #6] + 80056fe: 1ad3 subs r3, r2, r3 + 8005700: 623b str r3, [r7, #32] delta_y=y2-y1; - 8004b2a: 883a ldrh r2, [r7, #0] - 8004b2c: 88bb ldrh r3, [r7, #4] - 8004b2e: 1ad3 subs r3, r2, r3 - 8004b30: 61fb str r3, [r7, #28] + 8005702: 883a ldrh r2, [r7, #0] + 8005704: 88bb ldrh r3, [r7, #4] + 8005706: 1ad3 subs r3, r2, r3 + 8005708: 61fb str r3, [r7, #28] uRow=x1; - 8004b32: 88fb ldrh r3, [r7, #6] - 8004b34: 60fb str r3, [r7, #12] + 800570a: 88fb ldrh r3, [r7, #6] + 800570c: 60fb str r3, [r7, #12] uCol=y1; - 8004b36: 88bb ldrh r3, [r7, #4] - 8004b38: 60bb str r3, [r7, #8] + 800570e: 88bb ldrh r3, [r7, #4] + 8005710: 60bb str r3, [r7, #8] if(delta_x>0)incx=1; //设置单步方向 - 8004b3a: 6a3b ldr r3, [r7, #32] - 8004b3c: 2b00 cmp r3, #0 - 8004b3e: dd02 ble.n 8004b46 - 8004b40: 2301 movs r3, #1 - 8004b42: 617b str r3, [r7, #20] - 8004b44: e00b b.n 8004b5e + 8005712: 6a3b ldr r3, [r7, #32] + 8005714: 2b00 cmp r3, #0 + 8005716: dd02 ble.n 800571e + 8005718: 2301 movs r3, #1 + 800571a: 617b str r3, [r7, #20] + 800571c: e00b b.n 8005736 else if(delta_x==0)incx=0;//垂直线 - 8004b46: 6a3b ldr r3, [r7, #32] - 8004b48: 2b00 cmp r3, #0 - 8004b4a: d102 bne.n 8004b52 - 8004b4c: 2300 movs r3, #0 - 8004b4e: 617b str r3, [r7, #20] - 8004b50: e005 b.n 8004b5e + 800571e: 6a3b ldr r3, [r7, #32] + 8005720: 2b00 cmp r3, #0 + 8005722: d102 bne.n 800572a + 8005724: 2300 movs r3, #0 + 8005726: 617b str r3, [r7, #20] + 8005728: e005 b.n 8005736 else {incx=-1;delta_x=-delta_x;} - 8004b52: f04f 33ff mov.w r3, #4294967295 - 8004b56: 617b str r3, [r7, #20] - 8004b58: 6a3b ldr r3, [r7, #32] - 8004b5a: 425b negs r3, r3 - 8004b5c: 623b str r3, [r7, #32] + 800572a: f04f 33ff mov.w r3, #4294967295 + 800572e: 617b str r3, [r7, #20] + 8005730: 6a3b ldr r3, [r7, #32] + 8005732: 425b negs r3, r3 + 8005734: 623b str r3, [r7, #32] if(delta_y>0)incy=1; - 8004b5e: 69fb ldr r3, [r7, #28] - 8004b60: 2b00 cmp r3, #0 - 8004b62: dd02 ble.n 8004b6a - 8004b64: 2301 movs r3, #1 - 8004b66: 613b str r3, [r7, #16] - 8004b68: e00b b.n 8004b82 + 8005736: 69fb ldr r3, [r7, #28] + 8005738: 2b00 cmp r3, #0 + 800573a: dd02 ble.n 8005742 + 800573c: 2301 movs r3, #1 + 800573e: 613b str r3, [r7, #16] + 8005740: e00b b.n 800575a else if(delta_y==0)incy=0;//水平线 - 8004b6a: 69fb ldr r3, [r7, #28] - 8004b6c: 2b00 cmp r3, #0 - 8004b6e: d102 bne.n 8004b76 - 8004b70: 2300 movs r3, #0 - 8004b72: 613b str r3, [r7, #16] - 8004b74: e005 b.n 8004b82 + 8005742: 69fb ldr r3, [r7, #28] + 8005744: 2b00 cmp r3, #0 + 8005746: d102 bne.n 800574e + 8005748: 2300 movs r3, #0 + 800574a: 613b str r3, [r7, #16] + 800574c: e005 b.n 800575a else{incy=-1;delta_y=-delta_y;} - 8004b76: f04f 33ff mov.w r3, #4294967295 - 8004b7a: 613b str r3, [r7, #16] - 8004b7c: 69fb ldr r3, [r7, #28] - 8004b7e: 425b negs r3, r3 - 8004b80: 61fb str r3, [r7, #28] + 800574e: f04f 33ff mov.w r3, #4294967295 + 8005752: 613b str r3, [r7, #16] + 8005754: 69fb ldr r3, [r7, #28] + 8005756: 425b negs r3, r3 + 8005758: 61fb str r3, [r7, #28] if( delta_x>delta_y)distance=delta_x; //选取基本增量坐标轴 - 8004b82: 6a3a ldr r2, [r7, #32] - 8004b84: 69fb ldr r3, [r7, #28] - 8004b86: 429a cmp r2, r3 - 8004b88: dd02 ble.n 8004b90 - 8004b8a: 6a3b ldr r3, [r7, #32] - 8004b8c: 61bb str r3, [r7, #24] - 8004b8e: e001 b.n 8004b94 + 800575a: 6a3a ldr r2, [r7, #32] + 800575c: 69fb ldr r3, [r7, #28] + 800575e: 429a cmp r2, r3 + 8005760: dd02 ble.n 8005768 + 8005762: 6a3b ldr r3, [r7, #32] + 8005764: 61bb str r3, [r7, #24] + 8005766: e001 b.n 800576c else distance=delta_y; - 8004b90: 69fb ldr r3, [r7, #28] - 8004b92: 61bb str r3, [r7, #24] + 8005768: 69fb ldr r3, [r7, #28] + 800576a: 61bb str r3, [r7, #24] for(t=0;t<=distance+1;t++ )//画线输出 - 8004b94: 2300 movs r3, #0 - 8004b96: 85fb strh r3, [r7, #46] ; 0x2e - 8004b98: e02b b.n 8004bf2 + 800576c: 2300 movs r3, #0 + 800576e: 85fb strh r3, [r7, #46] ; 0x2e + 8005770: e02b b.n 80057ca { LCD_set_dot(uRow,uCol,color);//画点 - 8004b9a: 68fb ldr r3, [r7, #12] - 8004b9c: b29b uxth r3, r3 - 8004b9e: 68ba ldr r2, [r7, #8] - 8004ba0: b291 uxth r1, r2 - 8004ba2: f8b7 2040 ldrh.w r2, [r7, #64] ; 0x40 - 8004ba6: 4618 mov r0, r3 - 8004ba8: f7ff ff36 bl 8004a18 + 8005772: 68fb ldr r3, [r7, #12] + 8005774: b29b uxth r3, r3 + 8005776: 68ba ldr r2, [r7, #8] + 8005778: b291 uxth r1, r2 + 800577a: f8b7 2040 ldrh.w r2, [r7, #64] ; 0x40 + 800577e: 4618 mov r0, r3 + 8005780: f7ff ff36 bl 80055f0 xerr+=delta_x ; - 8004bac: 6aba ldr r2, [r7, #40] ; 0x28 - 8004bae: 6a3b ldr r3, [r7, #32] - 8004bb0: 4413 add r3, r2 - 8004bb2: 62bb str r3, [r7, #40] ; 0x28 + 8005784: 6aba ldr r2, [r7, #40] ; 0x28 + 8005786: 6a3b ldr r3, [r7, #32] + 8005788: 4413 add r3, r2 + 800578a: 62bb str r3, [r7, #40] ; 0x28 yerr+=delta_y ; - 8004bb4: 6a7a ldr r2, [r7, #36] ; 0x24 - 8004bb6: 69fb ldr r3, [r7, #28] - 8004bb8: 4413 add r3, r2 - 8004bba: 627b str r3, [r7, #36] ; 0x24 + 800578c: 6a7a ldr r2, [r7, #36] ; 0x24 + 800578e: 69fb ldr r3, [r7, #28] + 8005790: 4413 add r3, r2 + 8005792: 627b str r3, [r7, #36] ; 0x24 if(xerr>distance) - 8004bbc: 6aba ldr r2, [r7, #40] ; 0x28 - 8004bbe: 69bb ldr r3, [r7, #24] - 8004bc0: 429a cmp r2, r3 - 8004bc2: dd07 ble.n 8004bd4 + 8005794: 6aba ldr r2, [r7, #40] ; 0x28 + 8005796: 69bb ldr r3, [r7, #24] + 8005798: 429a cmp r2, r3 + 800579a: dd07 ble.n 80057ac { xerr-=distance; - 8004bc4: 6aba ldr r2, [r7, #40] ; 0x28 - 8004bc6: 69bb ldr r3, [r7, #24] - 8004bc8: 1ad3 subs r3, r2, r3 - 8004bca: 62bb str r3, [r7, #40] ; 0x28 + 800579c: 6aba ldr r2, [r7, #40] ; 0x28 + 800579e: 69bb ldr r3, [r7, #24] + 80057a0: 1ad3 subs r3, r2, r3 + 80057a2: 62bb str r3, [r7, #40] ; 0x28 uRow+=incx; - 8004bcc: 68fa ldr r2, [r7, #12] - 8004bce: 697b ldr r3, [r7, #20] - 8004bd0: 4413 add r3, r2 - 8004bd2: 60fb str r3, [r7, #12] + 80057a4: 68fa ldr r2, [r7, #12] + 80057a6: 697b ldr r3, [r7, #20] + 80057a8: 4413 add r3, r2 + 80057aa: 60fb str r3, [r7, #12] } if(yerr>distance) - 8004bd4: 6a7a ldr r2, [r7, #36] ; 0x24 - 8004bd6: 69bb ldr r3, [r7, #24] - 8004bd8: 429a cmp r2, r3 - 8004bda: dd07 ble.n 8004bec + 80057ac: 6a7a ldr r2, [r7, #36] ; 0x24 + 80057ae: 69bb ldr r3, [r7, #24] + 80057b0: 429a cmp r2, r3 + 80057b2: dd07 ble.n 80057c4 { yerr-=distance; - 8004bdc: 6a7a ldr r2, [r7, #36] ; 0x24 - 8004bde: 69bb ldr r3, [r7, #24] - 8004be0: 1ad3 subs r3, r2, r3 - 8004be2: 627b str r3, [r7, #36] ; 0x24 + 80057b4: 6a7a ldr r2, [r7, #36] ; 0x24 + 80057b6: 69bb ldr r3, [r7, #24] + 80057b8: 1ad3 subs r3, r2, r3 + 80057ba: 627b str r3, [r7, #36] ; 0x24 uCol+=incy; - 8004be4: 68ba ldr r2, [r7, #8] - 8004be6: 693b ldr r3, [r7, #16] - 8004be8: 4413 add r3, r2 - 8004bea: 60bb str r3, [r7, #8] + 80057bc: 68ba ldr r2, [r7, #8] + 80057be: 693b ldr r3, [r7, #16] + 80057c0: 4413 add r3, r2 + 80057c2: 60bb str r3, [r7, #8] for(t=0;t<=distance+1;t++ )//画线输出 - 8004bec: 8dfb ldrh r3, [r7, #46] ; 0x2e - 8004bee: 3301 adds r3, #1 - 8004bf0: 85fb strh r3, [r7, #46] ; 0x2e - 8004bf2: 8dfa ldrh r2, [r7, #46] ; 0x2e - 8004bf4: 69bb ldr r3, [r7, #24] - 8004bf6: 3301 adds r3, #1 - 8004bf8: 429a cmp r2, r3 - 8004bfa: ddce ble.n 8004b9a + 80057c4: 8dfb ldrh r3, [r7, #46] ; 0x2e + 80057c6: 3301 adds r3, #1 + 80057c8: 85fb strh r3, [r7, #46] ; 0x2e + 80057ca: 8dfa ldrh r2, [r7, #46] ; 0x2e + 80057cc: 69bb ldr r3, [r7, #24] + 80057ce: 3301 adds r3, #1 + 80057d0: 429a cmp r2, r3 + 80057d2: ddce ble.n 8005772 } } } - 8004bfc: bf00 nop - 8004bfe: bf00 nop - 8004c00: 3734 adds r7, #52 ; 0x34 - 8004c02: 46bd mov sp, r7 - 8004c04: bd90 pop {r4, r7, pc} + 80057d4: bf00 nop + 80057d6: bf00 nop + 80057d8: 3734 adds r7, #52 ; 0x34 + 80057da: 46bd mov sp, r7 + 80057dc: bd90 pop {r4, r7, pc} -08004c06 : +080057de : //在指定位置画一个指定大小的圆 //(x,y):中心点 //r :半径 void Draw_Circle(uint16_t x0,uint16_t y0,uint16_t r,uint16_t color) { - 8004c06: b590 push {r4, r7, lr} - 8004c08: b087 sub sp, #28 - 8004c0a: af00 add r7, sp, #0 - 8004c0c: 4604 mov r4, r0 - 8004c0e: 4608 mov r0, r1 - 8004c10: 4611 mov r1, r2 - 8004c12: 461a mov r2, r3 - 8004c14: 4623 mov r3, r4 - 8004c16: 80fb strh r3, [r7, #6] - 8004c18: 4603 mov r3, r0 - 8004c1a: 80bb strh r3, [r7, #4] - 8004c1c: 460b mov r3, r1 - 8004c1e: 807b strh r3, [r7, #2] - 8004c20: 4613 mov r3, r2 - 8004c22: 803b strh r3, [r7, #0] + 80057de: b590 push {r4, r7, lr} + 80057e0: b087 sub sp, #28 + 80057e2: af00 add r7, sp, #0 + 80057e4: 4604 mov r4, r0 + 80057e6: 4608 mov r0, r1 + 80057e8: 4611 mov r1, r2 + 80057ea: 461a mov r2, r3 + 80057ec: 4623 mov r3, r4 + 80057ee: 80fb strh r3, [r7, #6] + 80057f0: 4603 mov r3, r0 + 80057f2: 80bb strh r3, [r7, #4] + 80057f4: 460b mov r3, r1 + 80057f6: 807b strh r3, [r7, #2] + 80057f8: 4613 mov r3, r2 + 80057fa: 803b strh r3, [r7, #0] int a,b; int di; a=0;b=r; - 8004c24: 2300 movs r3, #0 - 8004c26: 617b str r3, [r7, #20] - 8004c28: 887b ldrh r3, [r7, #2] - 8004c2a: 613b str r3, [r7, #16] + 80057fc: 2300 movs r3, #0 + 80057fe: 617b str r3, [r7, #20] + 8005800: 887b ldrh r3, [r7, #2] + 8005802: 613b str r3, [r7, #16] di=3-(r<<1); //判断下个点位置的标志 - 8004c2c: 887b ldrh r3, [r7, #2] - 8004c2e: 005b lsls r3, r3, #1 - 8004c30: f1c3 0303 rsb r3, r3, #3 - 8004c34: 60fb str r3, [r7, #12] + 8005804: 887b ldrh r3, [r7, #2] + 8005806: 005b lsls r3, r3, #1 + 8005808: f1c3 0303 rsb r3, r3, #3 + 800580c: 60fb str r3, [r7, #12] while(a<=b) - 8004c36: e087 b.n 8004d48 + 800580e: e087 b.n 8005920 { LCD_set_dot(x0+a,y0-b,color); //5 - 8004c38: 697b ldr r3, [r7, #20] - 8004c3a: b29a uxth r2, r3 - 8004c3c: 88fb ldrh r3, [r7, #6] - 8004c3e: 4413 add r3, r2 - 8004c40: b298 uxth r0, r3 - 8004c42: 693b ldr r3, [r7, #16] - 8004c44: b29b uxth r3, r3 - 8004c46: 88ba ldrh r2, [r7, #4] - 8004c48: 1ad3 subs r3, r2, r3 - 8004c4a: b29b uxth r3, r3 - 8004c4c: 883a ldrh r2, [r7, #0] - 8004c4e: 4619 mov r1, r3 - 8004c50: f7ff fee2 bl 8004a18 + 8005810: 697b ldr r3, [r7, #20] + 8005812: b29a uxth r2, r3 + 8005814: 88fb ldrh r3, [r7, #6] + 8005816: 4413 add r3, r2 + 8005818: b298 uxth r0, r3 + 800581a: 693b ldr r3, [r7, #16] + 800581c: b29b uxth r3, r3 + 800581e: 88ba ldrh r2, [r7, #4] + 8005820: 1ad3 subs r3, r2, r3 + 8005822: b29b uxth r3, r3 + 8005824: 883a ldrh r2, [r7, #0] + 8005826: 4619 mov r1, r3 + 8005828: f7ff fee2 bl 80055f0 LCD_set_dot(x0+b,y0-a,color); //0 - 8004c54: 693b ldr r3, [r7, #16] - 8004c56: b29a uxth r2, r3 - 8004c58: 88fb ldrh r3, [r7, #6] - 8004c5a: 4413 add r3, r2 - 8004c5c: b298 uxth r0, r3 - 8004c5e: 697b ldr r3, [r7, #20] - 8004c60: b29b uxth r3, r3 - 8004c62: 88ba ldrh r2, [r7, #4] - 8004c64: 1ad3 subs r3, r2, r3 - 8004c66: b29b uxth r3, r3 - 8004c68: 883a ldrh r2, [r7, #0] - 8004c6a: 4619 mov r1, r3 - 8004c6c: f7ff fed4 bl 8004a18 + 800582c: 693b ldr r3, [r7, #16] + 800582e: b29a uxth r2, r3 + 8005830: 88fb ldrh r3, [r7, #6] + 8005832: 4413 add r3, r2 + 8005834: b298 uxth r0, r3 + 8005836: 697b ldr r3, [r7, #20] + 8005838: b29b uxth r3, r3 + 800583a: 88ba ldrh r2, [r7, #4] + 800583c: 1ad3 subs r3, r2, r3 + 800583e: b29b uxth r3, r3 + 8005840: 883a ldrh r2, [r7, #0] + 8005842: 4619 mov r1, r3 + 8005844: f7ff fed4 bl 80055f0 LCD_set_dot(x0+b,y0+a,color); //4 - 8004c70: 693b ldr r3, [r7, #16] - 8004c72: b29a uxth r2, r3 - 8004c74: 88fb ldrh r3, [r7, #6] - 8004c76: 4413 add r3, r2 - 8004c78: b298 uxth r0, r3 - 8004c7a: 697b ldr r3, [r7, #20] - 8004c7c: b29a uxth r2, r3 - 8004c7e: 88bb ldrh r3, [r7, #4] - 8004c80: 4413 add r3, r2 - 8004c82: b29b uxth r3, r3 - 8004c84: 883a ldrh r2, [r7, #0] - 8004c86: 4619 mov r1, r3 - 8004c88: f7ff fec6 bl 8004a18 + 8005848: 693b ldr r3, [r7, #16] + 800584a: b29a uxth r2, r3 + 800584c: 88fb ldrh r3, [r7, #6] + 800584e: 4413 add r3, r2 + 8005850: b298 uxth r0, r3 + 8005852: 697b ldr r3, [r7, #20] + 8005854: b29a uxth r2, r3 + 8005856: 88bb ldrh r3, [r7, #4] + 8005858: 4413 add r3, r2 + 800585a: b29b uxth r3, r3 + 800585c: 883a ldrh r2, [r7, #0] + 800585e: 4619 mov r1, r3 + 8005860: f7ff fec6 bl 80055f0 LCD_set_dot(x0+a,y0+b,color); //6 - 8004c8c: 697b ldr r3, [r7, #20] - 8004c8e: b29a uxth r2, r3 - 8004c90: 88fb ldrh r3, [r7, #6] - 8004c92: 4413 add r3, r2 - 8004c94: b298 uxth r0, r3 - 8004c96: 693b ldr r3, [r7, #16] - 8004c98: b29a uxth r2, r3 - 8004c9a: 88bb ldrh r3, [r7, #4] - 8004c9c: 4413 add r3, r2 - 8004c9e: b29b uxth r3, r3 - 8004ca0: 883a ldrh r2, [r7, #0] - 8004ca2: 4619 mov r1, r3 - 8004ca4: f7ff feb8 bl 8004a18 + 8005864: 697b ldr r3, [r7, #20] + 8005866: b29a uxth r2, r3 + 8005868: 88fb ldrh r3, [r7, #6] + 800586a: 4413 add r3, r2 + 800586c: b298 uxth r0, r3 + 800586e: 693b ldr r3, [r7, #16] + 8005870: b29a uxth r2, r3 + 8005872: 88bb ldrh r3, [r7, #4] + 8005874: 4413 add r3, r2 + 8005876: b29b uxth r3, r3 + 8005878: 883a ldrh r2, [r7, #0] + 800587a: 4619 mov r1, r3 + 800587c: f7ff feb8 bl 80055f0 LCD_set_dot(x0-a,y0+b,color); //1 - 8004ca8: 697b ldr r3, [r7, #20] - 8004caa: b29b uxth r3, r3 - 8004cac: 88fa ldrh r2, [r7, #6] - 8004cae: 1ad3 subs r3, r2, r3 - 8004cb0: b298 uxth r0, r3 - 8004cb2: 693b ldr r3, [r7, #16] - 8004cb4: b29a uxth r2, r3 - 8004cb6: 88bb ldrh r3, [r7, #4] - 8004cb8: 4413 add r3, r2 - 8004cba: b29b uxth r3, r3 - 8004cbc: 883a ldrh r2, [r7, #0] - 8004cbe: 4619 mov r1, r3 - 8004cc0: f7ff feaa bl 8004a18 + 8005880: 697b ldr r3, [r7, #20] + 8005882: b29b uxth r3, r3 + 8005884: 88fa ldrh r2, [r7, #6] + 8005886: 1ad3 subs r3, r2, r3 + 8005888: b298 uxth r0, r3 + 800588a: 693b ldr r3, [r7, #16] + 800588c: b29a uxth r2, r3 + 800588e: 88bb ldrh r3, [r7, #4] + 8005890: 4413 add r3, r2 + 8005892: b29b uxth r3, r3 + 8005894: 883a ldrh r2, [r7, #0] + 8005896: 4619 mov r1, r3 + 8005898: f7ff feaa bl 80055f0 LCD_set_dot(x0-b,y0+a,color); - 8004cc4: 693b ldr r3, [r7, #16] - 8004cc6: b29b uxth r3, r3 - 8004cc8: 88fa ldrh r2, [r7, #6] - 8004cca: 1ad3 subs r3, r2, r3 - 8004ccc: b298 uxth r0, r3 - 8004cce: 697b ldr r3, [r7, #20] - 8004cd0: b29a uxth r2, r3 - 8004cd2: 88bb ldrh r3, [r7, #4] - 8004cd4: 4413 add r3, r2 - 8004cd6: b29b uxth r3, r3 - 8004cd8: 883a ldrh r2, [r7, #0] - 8004cda: 4619 mov r1, r3 - 8004cdc: f7ff fe9c bl 8004a18 + 800589c: 693b ldr r3, [r7, #16] + 800589e: b29b uxth r3, r3 + 80058a0: 88fa ldrh r2, [r7, #6] + 80058a2: 1ad3 subs r3, r2, r3 + 80058a4: b298 uxth r0, r3 + 80058a6: 697b ldr r3, [r7, #20] + 80058a8: b29a uxth r2, r3 + 80058aa: 88bb ldrh r3, [r7, #4] + 80058ac: 4413 add r3, r2 + 80058ae: b29b uxth r3, r3 + 80058b0: 883a ldrh r2, [r7, #0] + 80058b2: 4619 mov r1, r3 + 80058b4: f7ff fe9c bl 80055f0 LCD_set_dot(x0-a,y0-b,color); //2 - 8004ce0: 697b ldr r3, [r7, #20] - 8004ce2: b29b uxth r3, r3 - 8004ce4: 88fa ldrh r2, [r7, #6] - 8004ce6: 1ad3 subs r3, r2, r3 - 8004ce8: b298 uxth r0, r3 - 8004cea: 693b ldr r3, [r7, #16] - 8004cec: b29b uxth r3, r3 - 8004cee: 88ba ldrh r2, [r7, #4] - 8004cf0: 1ad3 subs r3, r2, r3 - 8004cf2: b29b uxth r3, r3 - 8004cf4: 883a ldrh r2, [r7, #0] - 8004cf6: 4619 mov r1, r3 - 8004cf8: f7ff fe8e bl 8004a18 + 80058b8: 697b ldr r3, [r7, #20] + 80058ba: b29b uxth r3, r3 + 80058bc: 88fa ldrh r2, [r7, #6] + 80058be: 1ad3 subs r3, r2, r3 + 80058c0: b298 uxth r0, r3 + 80058c2: 693b ldr r3, [r7, #16] + 80058c4: b29b uxth r3, r3 + 80058c6: 88ba ldrh r2, [r7, #4] + 80058c8: 1ad3 subs r3, r2, r3 + 80058ca: b29b uxth r3, r3 + 80058cc: 883a ldrh r2, [r7, #0] + 80058ce: 4619 mov r1, r3 + 80058d0: f7ff fe8e bl 80055f0 LCD_set_dot(x0-b,y0-a,color); //7 - 8004cfc: 693b ldr r3, [r7, #16] - 8004cfe: b29b uxth r3, r3 - 8004d00: 88fa ldrh r2, [r7, #6] - 8004d02: 1ad3 subs r3, r2, r3 - 8004d04: b298 uxth r0, r3 - 8004d06: 697b ldr r3, [r7, #20] - 8004d08: b29b uxth r3, r3 - 8004d0a: 88ba ldrh r2, [r7, #4] - 8004d0c: 1ad3 subs r3, r2, r3 - 8004d0e: b29b uxth r3, r3 - 8004d10: 883a ldrh r2, [r7, #0] - 8004d12: 4619 mov r1, r3 - 8004d14: f7ff fe80 bl 8004a18 + 80058d4: 693b ldr r3, [r7, #16] + 80058d6: b29b uxth r3, r3 + 80058d8: 88fa ldrh r2, [r7, #6] + 80058da: 1ad3 subs r3, r2, r3 + 80058dc: b298 uxth r0, r3 + 80058de: 697b ldr r3, [r7, #20] + 80058e0: b29b uxth r3, r3 + 80058e2: 88ba ldrh r2, [r7, #4] + 80058e4: 1ad3 subs r3, r2, r3 + 80058e6: b29b uxth r3, r3 + 80058e8: 883a ldrh r2, [r7, #0] + 80058ea: 4619 mov r1, r3 + 80058ec: f7ff fe80 bl 80055f0 a++; - 8004d18: 697b ldr r3, [r7, #20] - 8004d1a: 3301 adds r3, #1 - 8004d1c: 617b str r3, [r7, #20] + 80058f0: 697b ldr r3, [r7, #20] + 80058f2: 3301 adds r3, #1 + 80058f4: 617b str r3, [r7, #20] //使用Bresenham算法画圆 if(di<0)di +=4*a+6; - 8004d1e: 68fb ldr r3, [r7, #12] - 8004d20: 2b00 cmp r3, #0 - 8004d22: da06 bge.n 8004d32 - 8004d24: 697b ldr r3, [r7, #20] - 8004d26: 009b lsls r3, r3, #2 - 8004d28: 3306 adds r3, #6 - 8004d2a: 68fa ldr r2, [r7, #12] - 8004d2c: 4413 add r3, r2 - 8004d2e: 60fb str r3, [r7, #12] - 8004d30: e00a b.n 8004d48 + 80058f6: 68fb ldr r3, [r7, #12] + 80058f8: 2b00 cmp r3, #0 + 80058fa: da06 bge.n 800590a + 80058fc: 697b ldr r3, [r7, #20] + 80058fe: 009b lsls r3, r3, #2 + 8005900: 3306 adds r3, #6 + 8005902: 68fa ldr r2, [r7, #12] + 8005904: 4413 add r3, r2 + 8005906: 60fb str r3, [r7, #12] + 8005908: e00a b.n 8005920 else { di+=10+4*(a-b); - 8004d32: 697a ldr r2, [r7, #20] - 8004d34: 693b ldr r3, [r7, #16] - 8004d36: 1ad3 subs r3, r2, r3 - 8004d38: 009b lsls r3, r3, #2 - 8004d3a: 330a adds r3, #10 - 8004d3c: 68fa ldr r2, [r7, #12] - 8004d3e: 4413 add r3, r2 - 8004d40: 60fb str r3, [r7, #12] + 800590a: 697a ldr r2, [r7, #20] + 800590c: 693b ldr r3, [r7, #16] + 800590e: 1ad3 subs r3, r2, r3 + 8005910: 009b lsls r3, r3, #2 + 8005912: 330a adds r3, #10 + 8005914: 68fa ldr r2, [r7, #12] + 8005916: 4413 add r3, r2 + 8005918: 60fb str r3, [r7, #12] b--; - 8004d42: 693b ldr r3, [r7, #16] - 8004d44: 3b01 subs r3, #1 - 8004d46: 613b str r3, [r7, #16] + 800591a: 693b ldr r3, [r7, #16] + 800591c: 3b01 subs r3, #1 + 800591e: 613b str r3, [r7, #16] while(a<=b) - 8004d48: 697a ldr r2, [r7, #20] - 8004d4a: 693b ldr r3, [r7, #16] - 8004d4c: 429a cmp r2, r3 - 8004d4e: f77f af73 ble.w 8004c38 + 8005920: 697a ldr r2, [r7, #20] + 8005922: 693b ldr r3, [r7, #16] + 8005924: 429a cmp r2, r3 + 8005926: f77f af73 ble.w 8005810 } } } - 8004d52: bf00 nop - 8004d54: bf00 nop - 8004d56: 371c adds r7, #28 - 8004d58: 46bd mov sp, r7 - 8004d5a: bd90 pop {r4, r7, pc} + 800592a: bf00 nop + 800592c: bf00 nop + 800592e: 371c adds r7, #28 + 8005930: 46bd mov sp, r7 + 8005932: bd90 pop {r4, r7, pc} -08004d5c : +08005934 : //num:要显示的字符:" "--->"~" //size:字体大小 12/16 //mode:叠加方式(1)还是非叠加方式(0) void LCD_ShowChar(uint16_t x,uint16_t y,uint8_t num,uint8_t size,uint16_t bg,uint16_t color) { - 8004d5c: b590 push {r4, r7, lr} - 8004d5e: b085 sub sp, #20 - 8004d60: af00 add r7, sp, #0 - 8004d62: 4604 mov r4, r0 - 8004d64: 4608 mov r0, r1 - 8004d66: 4611 mov r1, r2 - 8004d68: 461a mov r2, r3 - 8004d6a: 4623 mov r3, r4 - 8004d6c: 80fb strh r3, [r7, #6] - 8004d6e: 4603 mov r3, r0 - 8004d70: 80bb strh r3, [r7, #4] - 8004d72: 460b mov r3, r1 - 8004d74: 70fb strb r3, [r7, #3] - 8004d76: 4613 mov r3, r2 - 8004d78: 70bb strb r3, [r7, #2] + 8005934: b590 push {r4, r7, lr} + 8005936: b085 sub sp, #20 + 8005938: af00 add r7, sp, #0 + 800593a: 4604 mov r4, r0 + 800593c: 4608 mov r0, r1 + 800593e: 4611 mov r1, r2 + 8005940: 461a mov r2, r3 + 8005942: 4623 mov r3, r4 + 8005944: 80fb strh r3, [r7, #6] + 8005946: 4603 mov r3, r0 + 8005948: 80bb strh r3, [r7, #4] + 800594a: 460b mov r3, r1 + 800594c: 70fb strb r3, [r7, #3] + 800594e: 4613 mov r3, r2 + 8005950: 70bb strb r3, [r7, #2] uint8_t temp,t1,t; uint16_t y0=y; - 8004d7a: 88bb ldrh r3, [r7, #4] - 8004d7c: 817b strh r3, [r7, #10] + 8005952: 88bb ldrh r3, [r7, #4] + 8005954: 817b strh r3, [r7, #10] //设置窗口 num=num-' ';//得到偏移后的值 - 8004d7e: 78fb ldrb r3, [r7, #3] - 8004d80: 3b20 subs r3, #32 - 8004d82: 70fb strb r3, [r7, #3] + 8005956: 78fb ldrb r3, [r7, #3] + 8005958: 3b20 subs r3, #32 + 800595a: 70fb strb r3, [r7, #3] for(t=0;t + 800595c: 2300 movs r3, #0 + 800595e: 737b strb r3, [r7, #13] + 8005960: e055 b.n 8005a0e { if(size==12){temp=asc2_1206[num][t];} //调用1206字体 - 8004d8a: 78bb ldrb r3, [r7, #2] - 8004d8c: 2b0c cmp r3, #12 - 8004d8e: d10b bne.n 8004da8 - 8004d90: 78fa ldrb r2, [r7, #3] - 8004d92: 7b79 ldrb r1, [r7, #13] - 8004d94: 482c ldr r0, [pc, #176] ; (8004e48 ) - 8004d96: 4613 mov r3, r2 - 8004d98: 005b lsls r3, r3, #1 - 8004d9a: 4413 add r3, r2 - 8004d9c: 009b lsls r3, r3, #2 - 8004d9e: 4403 add r3, r0 - 8004da0: 440b add r3, r1 - 8004da2: 781b ldrb r3, [r3, #0] - 8004da4: 73fb strb r3, [r7, #15] - 8004da6: e007 b.n 8004db8 + 8005962: 78bb ldrb r3, [r7, #2] + 8005964: 2b0c cmp r3, #12 + 8005966: d10b bne.n 8005980 + 8005968: 78fa ldrb r2, [r7, #3] + 800596a: 7b79 ldrb r1, [r7, #13] + 800596c: 482c ldr r0, [pc, #176] ; (8005a20 ) + 800596e: 4613 mov r3, r2 + 8005970: 005b lsls r3, r3, #1 + 8005972: 4413 add r3, r2 + 8005974: 009b lsls r3, r3, #2 + 8005976: 4403 add r3, r0 + 8005978: 440b add r3, r1 + 800597a: 781b ldrb r3, [r3, #0] + 800597c: 73fb strb r3, [r7, #15] + 800597e: e007 b.n 8005990 else{ temp=asc2_1608[num][t]; } //调用1608字体 - 8004da8: 78fa ldrb r2, [r7, #3] - 8004daa: 7b7b ldrb r3, [r7, #13] - 8004dac: 4927 ldr r1, [pc, #156] ; (8004e4c ) - 8004dae: 0112 lsls r2, r2, #4 - 8004db0: 440a add r2, r1 - 8004db2: 4413 add r3, r2 - 8004db4: 781b ldrb r3, [r3, #0] - 8004db6: 73fb strb r3, [r7, #15] + 8005980: 78fa ldrb r2, [r7, #3] + 8005982: 7b7b ldrb r3, [r7, #13] + 8005984: 4927 ldr r1, [pc, #156] ; (8005a24 ) + 8005986: 0112 lsls r2, r2, #4 + 8005988: 440a add r2, r1 + 800598a: 4413 add r3, r2 + 800598c: 781b ldrb r3, [r3, #0] + 800598e: 73fb strb r3, [r7, #15] for(t1=0;t1<8;t1++) - 8004db8: 2300 movs r3, #0 - 8004dba: 73bb strb r3, [r7, #14] - 8004dbc: e033 b.n 8004e26 + 8005990: 2300 movs r3, #0 + 8005992: 73bb strb r3, [r7, #14] + 8005994: e033 b.n 80059fe { if(temp&0x80){LCD_set_dot(x,y,color);}else{if(bg!=color){LCD_set_dot(x,y,bg);}} - 8004dbe: f997 300f ldrsb.w r3, [r7, #15] - 8004dc2: 2b00 cmp r3, #0 - 8004dc4: da06 bge.n 8004dd4 - 8004dc6: 8cba ldrh r2, [r7, #36] ; 0x24 - 8004dc8: 88b9 ldrh r1, [r7, #4] - 8004dca: 88fb ldrh r3, [r7, #6] - 8004dcc: 4618 mov r0, r3 - 8004dce: f7ff fe23 bl 8004a18 - 8004dd2: e009 b.n 8004de8 - 8004dd4: 8c3a ldrh r2, [r7, #32] - 8004dd6: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8004dd8: 429a cmp r2, r3 - 8004dda: d005 beq.n 8004de8 - 8004ddc: 8c3a ldrh r2, [r7, #32] - 8004dde: 88b9 ldrh r1, [r7, #4] - 8004de0: 88fb ldrh r3, [r7, #6] - 8004de2: 4618 mov r0, r3 - 8004de4: f7ff fe18 bl 8004a18 + 8005996: f997 300f ldrsb.w r3, [r7, #15] + 800599a: 2b00 cmp r3, #0 + 800599c: da06 bge.n 80059ac + 800599e: 8cba ldrh r2, [r7, #36] ; 0x24 + 80059a0: 88b9 ldrh r1, [r7, #4] + 80059a2: 88fb ldrh r3, [r7, #6] + 80059a4: 4618 mov r0, r3 + 80059a6: f7ff fe23 bl 80055f0 + 80059aa: e009 b.n 80059c0 + 80059ac: 8c3a ldrh r2, [r7, #32] + 80059ae: 8cbb ldrh r3, [r7, #36] ; 0x24 + 80059b0: 429a cmp r2, r3 + 80059b2: d005 beq.n 80059c0 + 80059b4: 8c3a ldrh r2, [r7, #32] + 80059b6: 88b9 ldrh r1, [r7, #4] + 80059b8: 88fb ldrh r3, [r7, #6] + 80059ba: 4618 mov r0, r3 + 80059bc: f7ff fe18 bl 80055f0 temp<<=1; - 8004de8: 7bfb ldrb r3, [r7, #15] - 8004dea: 005b lsls r3, r3, #1 - 8004dec: 73fb strb r3, [r7, #15] + 80059c0: 7bfb ldrb r3, [r7, #15] + 80059c2: 005b lsls r3, r3, #1 + 80059c4: 73fb strb r3, [r7, #15] y++; - 8004dee: 88bb ldrh r3, [r7, #4] - 8004df0: 3301 adds r3, #1 - 8004df2: 80bb strh r3, [r7, #4] + 80059c6: 88bb ldrh r3, [r7, #4] + 80059c8: 3301 adds r3, #1 + 80059ca: 80bb strh r3, [r7, #4] if(x>=lcddev.width){return;}//超区域了 - 8004df4: 4b16 ldr r3, [pc, #88] ; (8004e50 ) - 8004df6: 881b ldrh r3, [r3, #0] - 8004df8: 88fa ldrh r2, [r7, #6] - 8004dfa: 429a cmp r2, r3 - 8004dfc: d220 bcs.n 8004e40 + 80059cc: 4b16 ldr r3, [pc, #88] ; (8005a28 ) + 80059ce: 881b ldrh r3, [r3, #0] + 80059d0: 88fa ldrh r2, [r7, #6] + 80059d2: 429a cmp r2, r3 + 80059d4: d220 bcs.n 8005a18 if((y-y0)==size) - 8004dfe: 88ba ldrh r2, [r7, #4] - 8004e00: 897b ldrh r3, [r7, #10] - 8004e02: 1ad2 subs r2, r2, r3 - 8004e04: 78bb ldrb r3, [r7, #2] - 8004e06: 429a cmp r2, r3 - 8004e08: d10a bne.n 8004e20 + 80059d6: 88ba ldrh r2, [r7, #4] + 80059d8: 897b ldrh r3, [r7, #10] + 80059da: 1ad2 subs r2, r2, r3 + 80059dc: 78bb ldrb r3, [r7, #2] + 80059de: 429a cmp r2, r3 + 80059e0: d10a bne.n 80059f8 { y=y0; - 8004e0a: 897b ldrh r3, [r7, #10] - 8004e0c: 80bb strh r3, [r7, #4] + 80059e2: 897b ldrh r3, [r7, #10] + 80059e4: 80bb strh r3, [r7, #4] x++; - 8004e0e: 88fb ldrh r3, [r7, #6] - 8004e10: 3301 adds r3, #1 - 8004e12: 80fb strh r3, [r7, #6] + 80059e6: 88fb ldrh r3, [r7, #6] + 80059e8: 3301 adds r3, #1 + 80059ea: 80fb strh r3, [r7, #6] if(x>=lcddev.width){return;}//超区域了 - 8004e14: 4b0e ldr r3, [pc, #56] ; (8004e50 ) - 8004e16: 881b ldrh r3, [r3, #0] - 8004e18: 88fa ldrh r2, [r7, #6] - 8004e1a: 429a cmp r2, r3 - 8004e1c: d307 bcc.n 8004e2e - 8004e1e: e010 b.n 8004e42 + 80059ec: 4b0e ldr r3, [pc, #56] ; (8005a28 ) + 80059ee: 881b ldrh r3, [r3, #0] + 80059f0: 88fa ldrh r2, [r7, #6] + 80059f2: 429a cmp r2, r3 + 80059f4: d307 bcc.n 8005a06 + 80059f6: e010 b.n 8005a1a for(t1=0;t1<8;t1++) - 8004e20: 7bbb ldrb r3, [r7, #14] - 8004e22: 3301 adds r3, #1 - 8004e24: 73bb strb r3, [r7, #14] - 8004e26: 7bbb ldrb r3, [r7, #14] - 8004e28: 2b07 cmp r3, #7 - 8004e2a: d9c8 bls.n 8004dbe - 8004e2c: e000 b.n 8004e30 + 80059f8: 7bbb ldrb r3, [r7, #14] + 80059fa: 3301 adds r3, #1 + 80059fc: 73bb strb r3, [r7, #14] + 80059fe: 7bbb ldrb r3, [r7, #14] + 8005a00: 2b07 cmp r3, #7 + 8005a02: d9c8 bls.n 8005996 + 8005a04: e000 b.n 8005a08 break; - 8004e2e: bf00 nop + 8005a06: bf00 nop for(t=0;t - 8004e3e: e000 b.n 8004e42 + 8005a08: 7b7b ldrb r3, [r7, #13] + 8005a0a: 3301 adds r3, #1 + 8005a0c: 737b strb r3, [r7, #13] + 8005a0e: 7b7a ldrb r2, [r7, #13] + 8005a10: 78bb ldrb r3, [r7, #2] + 8005a12: 429a cmp r2, r3 + 8005a14: d3a5 bcc.n 8005962 + 8005a16: e000 b.n 8005a1a if(x>=lcddev.width){return;}//超区域了 - 8004e40: bf00 nop + 8005a18: bf00 nop } } } - 8004e42: 3714 adds r7, #20 - 8004e44: 46bd mov sp, r7 - 8004e46: bd90 pop {r4, r7, pc} - 8004e48: 08009984 .word 0x08009984 - 8004e4c: 08009df8 .word 0x08009df8 - 8004e50: 200003a8 .word 0x200003a8 + 8005a1a: 3714 adds r7, #20 + 8005a1c: 46bd mov sp, r7 + 8005a1e: bd90 pop {r4, r7, pc} + 8005a20: 0800a88c .word 0x0800a88c + 8005a24: 0800ad00 .word 0x0800ad00 + 8005a28: 200003b4 .word 0x200003b4 -08004e54 : +08005a2c : //width,height:区域大小 //size:字体大小 //*p:字符串起始地址 void LCD_ShowString(uint16_t x,uint16_t y,uint8_t *p,uint8_t size,uint16_t bg,uint16_t color) { - 8004e54: b590 push {r4, r7, lr} - 8004e56: b087 sub sp, #28 - 8004e58: af02 add r7, sp, #8 - 8004e5a: 60ba str r2, [r7, #8] - 8004e5c: 461a mov r2, r3 - 8004e5e: 4603 mov r3, r0 - 8004e60: 81fb strh r3, [r7, #14] - 8004e62: 460b mov r3, r1 - 8004e64: 81bb strh r3, [r7, #12] - 8004e66: 4613 mov r3, r2 - 8004e68: 71fb strb r3, [r7, #7] + 8005a2c: b590 push {r4, r7, lr} + 8005a2e: b087 sub sp, #28 + 8005a30: af02 add r7, sp, #8 + 8005a32: 60ba str r2, [r7, #8] + 8005a34: 461a mov r2, r3 + 8005a36: 4603 mov r3, r0 + 8005a38: 81fb strh r3, [r7, #14] + 8005a3a: 460b mov r3, r1 + 8005a3c: 81bb strh r3, [r7, #12] + 8005a3e: 4613 mov r3, r2 + 8005a40: 71fb strb r3, [r7, #7] while(*p!='\0') - 8004e6a: e026 b.n 8004eba + 8005a42: e026 b.n 8005a92 { if(x>=lcddev.width||*p=='\n') - 8004e6c: 4b17 ldr r3, [pc, #92] ; (8004ecc ) - 8004e6e: 881b ldrh r3, [r3, #0] - 8004e70: 89fa ldrh r2, [r7, #14] - 8004e72: 429a cmp r2, r3 - 8004e74: d203 bcs.n 8004e7e - 8004e76: 68bb ldr r3, [r7, #8] - 8004e78: 781b ldrb r3, [r3, #0] - 8004e7a: 2b0a cmp r3, #10 - 8004e7c: d107 bne.n 8004e8e + 8005a44: 4b17 ldr r3, [pc, #92] ; (8005aa4 ) + 8005a46: 881b ldrh r3, [r3, #0] + 8005a48: 89fa ldrh r2, [r7, #14] + 8005a4a: 429a cmp r2, r3 + 8005a4c: d203 bcs.n 8005a56 + 8005a4e: 68bb ldr r3, [r7, #8] + 8005a50: 781b ldrb r3, [r3, #0] + 8005a52: 2b0a cmp r3, #10 + 8005a54: d107 bne.n 8005a66 { x=0; - 8004e7e: 2300 movs r3, #0 - 8004e80: 81fb strh r3, [r7, #14] + 8005a56: 2300 movs r3, #0 + 8005a58: 81fb strh r3, [r7, #14] y+=size; - 8004e82: 79fb ldrb r3, [r7, #7] - 8004e84: b29a uxth r2, r3 - 8004e86: 89bb ldrh r3, [r7, #12] - 8004e88: 4413 add r3, r2 - 8004e8a: 81bb strh r3, [r7, #12] - 8004e8c: e012 b.n 8004eb4 + 8005a5a: 79fb ldrb r3, [r7, #7] + 8005a5c: b29a uxth r2, r3 + 8005a5e: 89bb ldrh r3, [r7, #12] + 8005a60: 4413 add r3, r2 + 8005a62: 81bb strh r3, [r7, #12] + 8005a64: e012 b.n 8005a8c }else { LCD_ShowChar(x,y,*p,size,bg,color); - 8004e8e: 68bb ldr r3, [r7, #8] - 8004e90: 781a ldrb r2, [r3, #0] - 8004e92: 79fc ldrb r4, [r7, #7] - 8004e94: 89b9 ldrh r1, [r7, #12] - 8004e96: 89f8 ldrh r0, [r7, #14] - 8004e98: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8004e9a: 9301 str r3, [sp, #4] - 8004e9c: 8c3b ldrh r3, [r7, #32] - 8004e9e: 9300 str r3, [sp, #0] - 8004ea0: 4623 mov r3, r4 - 8004ea2: f7ff ff5b bl 8004d5c + 8005a66: 68bb ldr r3, [r7, #8] + 8005a68: 781a ldrb r2, [r3, #0] + 8005a6a: 79fc ldrb r4, [r7, #7] + 8005a6c: 89b9 ldrh r1, [r7, #12] + 8005a6e: 89f8 ldrh r0, [r7, #14] + 8005a70: 8cbb ldrh r3, [r7, #36] ; 0x24 + 8005a72: 9301 str r3, [sp, #4] + 8005a74: 8c3b ldrh r3, [r7, #32] + 8005a76: 9300 str r3, [sp, #0] + 8005a78: 4623 mov r3, r4 + 8005a7a: f7ff ff5b bl 8005934 x+=(size/2); - 8004ea6: 79fb ldrb r3, [r7, #7] - 8004ea8: 085b lsrs r3, r3, #1 - 8004eaa: b2db uxtb r3, r3 - 8004eac: b29a uxth r2, r3 - 8004eae: 89fb ldrh r3, [r7, #14] - 8004eb0: 4413 add r3, r2 - 8004eb2: 81fb strh r3, [r7, #14] + 8005a7e: 79fb ldrb r3, [r7, #7] + 8005a80: 085b lsrs r3, r3, #1 + 8005a82: b2db uxtb r3, r3 + 8005a84: b29a uxth r2, r3 + 8005a86: 89fb ldrh r3, [r7, #14] + 8005a88: 4413 add r3, r2 + 8005a8a: 81fb strh r3, [r7, #14] } p++; - 8004eb4: 68bb ldr r3, [r7, #8] - 8004eb6: 3301 adds r3, #1 - 8004eb8: 60bb str r3, [r7, #8] + 8005a8c: 68bb ldr r3, [r7, #8] + 8005a8e: 3301 adds r3, #1 + 8005a90: 60bb str r3, [r7, #8] while(*p!='\0') - 8004eba: 68bb ldr r3, [r7, #8] - 8004ebc: 781b ldrb r3, [r3, #0] - 8004ebe: 2b00 cmp r3, #0 - 8004ec0: d1d4 bne.n 8004e6c + 8005a92: 68bb ldr r3, [r7, #8] + 8005a94: 781b ldrb r3, [r3, #0] + 8005a96: 2b00 cmp r3, #0 + 8005a98: d1d4 bne.n 8005a44 } } - 8004ec2: bf00 nop - 8004ec4: bf00 nop - 8004ec6: 3714 adds r7, #20 - 8004ec8: 46bd mov sp, r7 - 8004eca: bd90 pop {r4, r7, pc} - 8004ecc: 200003a8 .word 0x200003a8 + 8005a9a: bf00 nop + 8005a9c: bf00 nop + 8005a9e: 3714 adds r7, #20 + 8005aa0: 46bd mov sp, r7 + 8005aa2: bd90 pop {r4, r7, pc} + 8005aa4: 200003b4 .word 0x200003b4 -08004ed0 : +08005aa8 : +#include "buzzer.h" + +struct notes *notes; + +void play_ones(uint16_t freq,uint8_t dutya) +{ + 8005aa8: b590 push {r4, r7, lr} + 8005aaa: b083 sub sp, #12 + 8005aac: af00 add r7, sp, #0 + 8005aae: 4603 mov r3, r0 + 8005ab0: 460a mov r2, r1 + 8005ab2: 80fb strh r3, [r7, #6] + 8005ab4: 4613 mov r3, r2 + 8005ab6: 717b strb r3, [r7, #5] +//寄存器写法 需要根据单片机的时钟来写。 +TIM4->ARR = (uint32_t)((72000000/freq)-1);TIM4->CCR3 = (uint32_t)(((72000000/freq)-1)*((float)dutya/100)); + 8005ab8: 88fb ldrh r3, [r7, #6] + 8005aba: 4a14 ldr r2, [pc, #80] ; (8005b0c ) + 8005abc: fb92 f3f3 sdiv r3, r2, r3 + 8005ac0: 1e5a subs r2, r3, #1 + 8005ac2: 4b13 ldr r3, [pc, #76] ; (8005b10 ) + 8005ac4: 62da str r2, [r3, #44] ; 0x2c + 8005ac6: 88fb ldrh r3, [r7, #6] + 8005ac8: 4a10 ldr r2, [pc, #64] ; (8005b0c ) + 8005aca: fb92 f3f3 sdiv r3, r2, r3 + 8005ace: 3b01 subs r3, #1 + 8005ad0: 4618 mov r0, r3 + 8005ad2: f7fb f94f bl 8000d74 <__aeabi_i2f> + 8005ad6: 4604 mov r4, r0 + 8005ad8: 797b ldrb r3, [r7, #5] + 8005ada: 4618 mov r0, r3 + 8005adc: f7fb f946 bl 8000d6c <__aeabi_ui2f> + 8005ae0: 4603 mov r3, r0 + 8005ae2: 490c ldr r1, [pc, #48] ; (8005b14 ) + 8005ae4: 4618 mov r0, r3 + 8005ae6: f7fb fa4d bl 8000f84 <__aeabi_fdiv> + 8005aea: 4603 mov r3, r0 + 8005aec: 4619 mov r1, r3 + 8005aee: 4620 mov r0, r4 + 8005af0: f7fb f994 bl 8000e1c <__aeabi_fmul> + 8005af4: 4603 mov r3, r0 + 8005af6: 4c06 ldr r4, [pc, #24] ; (8005b10 ) + 8005af8: 4618 mov r0, r3 + 8005afa: f7fb fb05 bl 8001108 <__aeabi_f2uiz> + 8005afe: 4603 mov r3, r0 + 8005b00: 63e3 str r3, [r4, #60] ; 0x3c +} + 8005b02: bf00 nop + 8005b04: 370c adds r7, #12 + 8005b06: 46bd mov sp, r7 + 8005b08: bd90 pop {r4, r7, pc} + 8005b0a: bf00 nop + 8005b0c: 044aa200 .word 0x044aa200 + 8005b10: 40000800 .word 0x40000800 + 8005b14: 42c80000 .word 0x42c80000 + +08005b18 : + + + +void add_a_note(uint16_t freq,uint8_t duty,uint16_t deley)//添加一个音符 +{ + 8005b18: b580 push {r7, lr} + 8005b1a: b084 sub sp, #16 + 8005b1c: af00 add r7, sp, #0 + 8005b1e: 4603 mov r3, r0 + 8005b20: 80fb strh r3, [r7, #6] + 8005b22: 460b mov r3, r1 + 8005b24: 717b strb r3, [r7, #5] + 8005b26: 4613 mov r3, r2 + 8005b28: 807b strh r3, [r7, #2] +struct notes* buff; +buff = (struct notes*)malloc(sizeof(struct notes)); + 8005b2a: 200c movs r0, #12 + 8005b2c: f001 ff74 bl 8007a18 + 8005b30: 4603 mov r3, r0 + 8005b32: 60bb str r3, [r7, #8] +if (buff != NULL) + 8005b34: 68bb ldr r3, [r7, #8] + 8005b36: 2b00 cmp r3, #0 + 8005b38: d021 beq.n 8005b7e +{ +buff->freq = freq; + 8005b3a: 68bb ldr r3, [r7, #8] + 8005b3c: 88fa ldrh r2, [r7, #6] + 8005b3e: 801a strh r2, [r3, #0] +buff->duty = duty; + 8005b40: 68bb ldr r3, [r7, #8] + 8005b42: 797a ldrb r2, [r7, #5] + 8005b44: 709a strb r2, [r3, #2] +buff->deley = deley; + 8005b46: 68bb ldr r3, [r7, #8] + 8005b48: 887a ldrh r2, [r7, #2] + 8005b4a: 809a strh r2, [r3, #4] +buff->next_note = NULL; + 8005b4c: 68bb ldr r3, [r7, #8] + 8005b4e: 2200 movs r2, #0 + 8005b50: 609a str r2, [r3, #8] + +if (notes == NULL) + 8005b52: 4b0d ldr r3, [pc, #52] ; (8005b88 ) + 8005b54: 681b ldr r3, [r3, #0] + 8005b56: 2b00 cmp r3, #0 + 8005b58: d103 bne.n 8005b62 +{ +notes = buff; + 8005b5a: 4a0b ldr r2, [pc, #44] ; (8005b88 ) + 8005b5c: 68bb ldr r3, [r7, #8] + 8005b5e: 6013 str r3, [r2, #0] +} +t->next_note = buff; +} +} + +} + 8005b60: e00d b.n 8005b7e +struct notes *t = notes; + 8005b62: 4b09 ldr r3, [pc, #36] ; (8005b88 ) + 8005b64: 681b ldr r3, [r3, #0] + 8005b66: 60fb str r3, [r7, #12] +while (t->next_note != NULL) + 8005b68: e002 b.n 8005b70 +t = t->next_note; + 8005b6a: 68fb ldr r3, [r7, #12] + 8005b6c: 689b ldr r3, [r3, #8] + 8005b6e: 60fb str r3, [r7, #12] +while (t->next_note != NULL) + 8005b70: 68fb ldr r3, [r7, #12] + 8005b72: 689b ldr r3, [r3, #8] + 8005b74: 2b00 cmp r3, #0 + 8005b76: d1f8 bne.n 8005b6a +t->next_note = buff; + 8005b78: 68fb ldr r3, [r7, #12] + 8005b7a: 68ba ldr r2, [r7, #8] + 8005b7c: 609a str r2, [r3, #8] +} + 8005b7e: bf00 nop + 8005b80: 3710 adds r7, #16 + 8005b82: 46bd mov sp, r7 + 8005b84: bd80 pop {r7, pc} + 8005b86: bf00 nop + 8005b88: 200003c0 .word 0x200003c0 + +08005b8c : + +void delhead() //删除第一个音符 一般用户不需要调用 +{ + 8005b8c: b580 push {r7, lr} + 8005b8e: b082 sub sp, #8 + 8005b90: af00 add r7, sp, #0 +if (notes == NULL) + 8005b92: 4b11 ldr r3, [pc, #68] ; (8005bd8 ) + 8005b94: 681b ldr r3, [r3, #0] + 8005b96: 2b00 cmp r3, #0 + 8005b98: d019 beq.n 8005bce +{ +return; +} + + +if (notes->next_note == NULL) + 8005b9a: 4b0f ldr r3, [pc, #60] ; (8005bd8 ) + 8005b9c: 681b ldr r3, [r3, #0] + 8005b9e: 689b ldr r3, [r3, #8] + 8005ba0: 2b00 cmp r3, #0 + 8005ba2: d108 bne.n 8005bb6 +{ +free(notes); + 8005ba4: 4b0c ldr r3, [pc, #48] ; (8005bd8 ) + 8005ba6: 681b ldr r3, [r3, #0] + 8005ba8: 4618 mov r0, r3 + 8005baa: f001 ff3d bl 8007a28 +notes = NULL; + 8005bae: 4b0a ldr r3, [pc, #40] ; (8005bd8 ) + 8005bb0: 2200 movs r2, #0 + 8005bb2: 601a str r2, [r3, #0] + 8005bb4: e00c b.n 8005bd0 +} +else +{ +struct notes *t = notes; + 8005bb6: 4b08 ldr r3, [pc, #32] ; (8005bd8 ) + 8005bb8: 681b ldr r3, [r3, #0] + 8005bba: 607b str r3, [r7, #4] +notes = notes->next_note; + 8005bbc: 4b06 ldr r3, [pc, #24] ; (8005bd8 ) + 8005bbe: 681b ldr r3, [r3, #0] + 8005bc0: 689b ldr r3, [r3, #8] + 8005bc2: 4a05 ldr r2, [pc, #20] ; (8005bd8 ) + 8005bc4: 6013 str r3, [r2, #0] +free(t); + 8005bc6: 6878 ldr r0, [r7, #4] + 8005bc8: f001 ff2e bl 8007a28 + 8005bcc: e000 b.n 8005bd0 +return; + 8005bce: bf00 nop + +} + + + +} + 8005bd0: 3708 adds r7, #8 + 8005bd2: 46bd mov sp, r7 + 8005bd4: bd80 pop {r7, pc} + 8005bd6: bf00 nop + 8005bd8: 200003c0 .word 0x200003c0 + +08005bdc : + +char buzzer_play_server() //放在主循环 只有有音符添加进来就会播放,播放完自动释放 +{ + 8005bdc: b580 push {r7, lr} + 8005bde: af00 add r7, sp, #0 + + +static char busy_flag=0; +static uint32_t play_delay; + +if(notes == NULL) + 8005be0: 4b18 ldr r3, [pc, #96] ; (8005c44 ) + 8005be2: 681b ldr r3, [r3, #0] + 8005be4: 2b00 cmp r3, #0 + 8005be6: d029 beq.n 8005c3c +{ + //play_ones(0,0); +}else +{ + if(busy_flag==0) + 8005be8: 4b17 ldr r3, [pc, #92] ; (8005c48 ) + 8005bea: 781b ldrb r3, [r3, #0] + 8005bec: 2b00 cmp r3, #0 + 8005bee: d115 bne.n 8005c1c + { + busy_flag=1; + 8005bf0: 4b15 ldr r3, [pc, #84] ; (8005c48 ) + 8005bf2: 2201 movs r2, #1 + 8005bf4: 701a strb r2, [r3, #0] + play_delay=HAL_GetTick()+notes->deley; + 8005bf6: f7fc f8b1 bl 8001d5c + 8005bfa: 4602 mov r2, r0 + 8005bfc: 4b11 ldr r3, [pc, #68] ; (8005c44 ) + 8005bfe: 681b ldr r3, [r3, #0] + 8005c00: 889b ldrh r3, [r3, #4] + 8005c02: 4413 add r3, r2 + 8005c04: 4a11 ldr r2, [pc, #68] ; (8005c4c ) + 8005c06: 6013 str r3, [r2, #0] + play_ones(notes->freq,notes->duty); + 8005c08: 4b0e ldr r3, [pc, #56] ; (8005c44 ) + 8005c0a: 681b ldr r3, [r3, #0] + 8005c0c: 881a ldrh r2, [r3, #0] + 8005c0e: 4b0d ldr r3, [pc, #52] ; (8005c44 ) + 8005c10: 681b ldr r3, [r3, #0] + 8005c12: 789b ldrb r3, [r3, #2] + 8005c14: 4619 mov r1, r3 + 8005c16: 4610 mov r0, r2 + 8005c18: f7ff ff46 bl 8005aa8 + } + if(busy_flag==1) + 8005c1c: 4b0a ldr r3, [pc, #40] ; (8005c48 ) + 8005c1e: 781b ldrb r3, [r3, #0] + 8005c20: 2b01 cmp r3, #1 + 8005c22: d10b bne.n 8005c3c + { + if(HAL_GetTick()>play_delay) + 8005c24: f7fc f89a bl 8001d5c + 8005c28: 4602 mov r2, r0 + 8005c2a: 4b08 ldr r3, [pc, #32] ; (8005c4c ) + 8005c2c: 681b ldr r3, [r3, #0] + 8005c2e: 429a cmp r2, r3 + 8005c30: d904 bls.n 8005c3c + { + busy_flag=0; + 8005c32: 4b05 ldr r3, [pc, #20] ; (8005c48 ) + 8005c34: 2200 movs r2, #0 + 8005c36: 701a strb r2, [r3, #0] + delhead(); + 8005c38: f7ff ffa8 bl 8005b8c + } +} + + + +return busy_flag; + 8005c3c: 4b02 ldr r3, [pc, #8] ; (8005c48 ) + 8005c3e: 781b ldrb r3, [r3, #0] +} + 8005c40: 4618 mov r0, r3 + 8005c42: bd80 pop {r7, pc} + 8005c44: 200003c0 .word 0x200003c0 + 8005c48: 20000200 .word 0x20000200 + 8005c4c: 20000204 .word 0x20000204 + +08005c50 : //因为eeprom芯片的写入速度有限,每写入一个字符都需要等待一段时间才能完成写入 //整个系统不可能等它一个的,传统的解决方法可以使用定时器中断或者多线程开辟子任务在后台保存, //这里的解决方法是使用状态机,通过一个链表将要保存的数据串起来,再通过状态循环一个个保存,保存延时等于循环用时。 eeprom_write_buff_info eeprom_write_buffer; //创建链表 void EPPROM_SLOWWRITE_INIT() //初始化链表 { - 8004ed0: b480 push {r7} - 8004ed2: af00 add r7, sp, #0 + 8005c50: b480 push {r7} + 8005c52: af00 add r7, sp, #0 eeprom_write_buffer.buff=NULL; - 8004ed4: 4b0a ldr r3, [pc, #40] ; (8004f00 ) - 8004ed6: 2200 movs r2, #0 - 8004ed8: 601a str r2, [r3, #0] + 8005c54: 4b0a ldr r3, [pc, #40] ; (8005c80 ) + 8005c56: 2200 movs r2, #0 + 8005c58: 601a str r2, [r3, #0] eeprom_write_buffer.end=NULL; - 8004eda: 4b09 ldr r3, [pc, #36] ; (8004f00 ) - 8004edc: 2200 movs r2, #0 - 8004ede: 609a str r2, [r3, #8] + 8005c5a: 4b09 ldr r3, [pc, #36] ; (8005c80 ) + 8005c5c: 2200 movs r2, #0 + 8005c5e: 609a str r2, [r3, #8] eeprom_write_buffer.head=NULL; - 8004ee0: 4b07 ldr r3, [pc, #28] ; (8004f00 ) - 8004ee2: 2200 movs r2, #0 - 8004ee4: 605a str r2, [r3, #4] + 8005c60: 4b07 ldr r3, [pc, #28] ; (8005c80 ) + 8005c62: 2200 movs r2, #0 + 8005c64: 605a str r2, [r3, #4] eeprom_write_buffer.save_timeout=5; //避免状态机循环过快导致的保存失败,这个是最少延时。(感觉没必要写在这里,太浪费空间了) - 8004ee6: 4b06 ldr r3, [pc, #24] ; (8004f00 ) - 8004ee8: 2205 movs r2, #5 - 8004eea: 741a strb r2, [r3, #16] + 8005c66: 4b06 ldr r3, [pc, #24] ; (8005c80 ) + 8005c68: 2205 movs r2, #5 + 8005c6a: 741a strb r2, [r3, #16] eeprom_write_buffer.save_busy=0; //最小延时内为忙状态 - 8004eec: 4a04 ldr r2, [pc, #16] ; (8004f00 ) - 8004eee: 7c53 ldrb r3, [r2, #17] - 8004ef0: f36f 0300 bfc r3, #0, #1 - 8004ef4: 7453 strb r3, [r2, #17] + 8005c6c: 4a04 ldr r2, [pc, #16] ; (8005c80 ) + 8005c6e: 7c53 ldrb r3, [r2, #17] + 8005c70: f36f 0300 bfc r3, #0, #1 + 8005c74: 7453 strb r3, [r2, #17] } - 8004ef6: bf00 nop - 8004ef8: 46bd mov sp, r7 - 8004efa: bc80 pop {r7} - 8004efc: 4770 bx lr - 8004efe: bf00 nop - 8004f00: 200003b4 .word 0x200003b4 + 8005c76: bf00 nop + 8005c78: 46bd mov sp, r7 + 8005c7a: bc80 pop {r7} + 8005c7c: 4770 bx lr + 8005c7e: bf00 nop + 8005c80: 200003c4 .word 0x200003c4 -08004f04 : +08005c84 : //循环保存服务,检查链表头是否有数据是否忙。 void EEPROM_SLOWWRITE_SERVER() { - 8004f04: b580 push {r7, lr} - 8004f06: b082 sub sp, #8 - 8004f08: af00 add r7, sp, #0 + 8005c84: b580 push {r7, lr} + 8005c86: b082 sub sp, #8 + 8005c88: af00 add r7, sp, #0 eeprom_write_buff *buff; char data; if(eeprom_write_buffer.save_busy) - 8004f0a: 4b20 ldr r3, [pc, #128] ; (8004f8c ) - 8004f0c: 7c5b ldrb r3, [r3, #17] - 8004f0e: f003 0301 and.w r3, r3, #1 - 8004f12: b2db uxtb r3, r3 - 8004f14: 2b00 cmp r3, #0 - 8004f16: d00c beq.n 8004f32 + 8005c8a: 4b20 ldr r3, [pc, #128] ; (8005d0c ) + 8005c8c: 7c5b ldrb r3, [r3, #17] + 8005c8e: f003 0301 and.w r3, r3, #1 + 8005c92: b2db uxtb r3, r3 + 8005c94: 2b00 cmp r3, #0 + 8005c96: d00c beq.n 8005cb2 { if(HAL_GetTick()>eeprom_write_buffer.save_time) - 8004f18: f7fc fe2e bl 8001b78 - 8004f1c: 4602 mov r2, r0 - 8004f1e: 4b1b ldr r3, [pc, #108] ; (8004f8c ) - 8004f20: 68db ldr r3, [r3, #12] - 8004f22: 429a cmp r2, r3 - 8004f24: d92e bls.n 8004f84 + 8005c98: f7fc f860 bl 8001d5c + 8005c9c: 4602 mov r2, r0 + 8005c9e: 4b1b ldr r3, [pc, #108] ; (8005d0c ) + 8005ca0: 68db ldr r3, [r3, #12] + 8005ca2: 429a cmp r2, r3 + 8005ca4: d92e bls.n 8005d04 { eeprom_write_buffer.save_busy=0; - 8004f26: 4a19 ldr r2, [pc, #100] ; (8004f8c ) - 8004f28: 7c53 ldrb r3, [r2, #17] - 8004f2a: f36f 0300 bfc r3, #0, #1 - 8004f2e: 7453 strb r3, [r2, #17] + 8005ca6: 4a19 ldr r2, [pc, #100] ; (8005d0c ) + 8005ca8: 7c53 ldrb r3, [r2, #17] + 8005caa: f36f 0300 bfc r3, #0, #1 + 8005cae: 7453 strb r3, [r2, #17] free(eeprom_write_buffer.head); eeprom_write_buffer.head=buff; } } } - 8004f30: e028 b.n 8004f84 + 8005cb0: e028 b.n 8005d04 if(eeprom_write_buffer.head!=NULL) - 8004f32: 4b16 ldr r3, [pc, #88] ; (8004f8c ) - 8004f34: 685b ldr r3, [r3, #4] - 8004f36: 2b00 cmp r3, #0 - 8004f38: d024 beq.n 8004f84 + 8005cb2: 4b16 ldr r3, [pc, #88] ; (8005d0c ) + 8005cb4: 685b ldr r3, [r3, #4] + 8005cb6: 2b00 cmp r3, #0 + 8005cb8: d024 beq.n 8005d04 eeprom_write_buffer.save_busy=1; - 8004f3a: 4a14 ldr r2, [pc, #80] ; (8004f8c ) - 8004f3c: 7c53 ldrb r3, [r2, #17] - 8004f3e: f043 0301 orr.w r3, r3, #1 - 8004f42: 7453 strb r3, [r2, #17] + 8005cba: 4a14 ldr r2, [pc, #80] ; (8005d0c ) + 8005cbc: 7c53 ldrb r3, [r2, #17] + 8005cbe: f043 0301 orr.w r3, r3, #1 + 8005cc2: 7453 strb r3, [r2, #17] eeprom_write_buffer.save_time=HAL_GetTick()+eeprom_write_buffer.save_timeout; - 8004f44: f7fc fe18 bl 8001b78 - 8004f48: 4603 mov r3, r0 - 8004f4a: 4a10 ldr r2, [pc, #64] ; (8004f8c ) - 8004f4c: 7c12 ldrb r2, [r2, #16] - 8004f4e: 4413 add r3, r2 - 8004f50: 4a0e ldr r2, [pc, #56] ; (8004f8c ) - 8004f52: 60d3 str r3, [r2, #12] + 8005cc4: f7fc f84a bl 8001d5c + 8005cc8: 4603 mov r3, r0 + 8005cca: 4a10 ldr r2, [pc, #64] ; (8005d0c ) + 8005ccc: 7c12 ldrb r2, [r2, #16] + 8005cce: 4413 add r3, r2 + 8005cd0: 4a0e ldr r2, [pc, #56] ; (8005d0c ) + 8005cd2: 60d3 str r3, [r2, #12] buff=eeprom_write_buffer.head->next; - 8004f54: 4b0d ldr r3, [pc, #52] ; (8004f8c ) - 8004f56: 685b ldr r3, [r3, #4] - 8004f58: 681b ldr r3, [r3, #0] - 8004f5a: 607b str r3, [r7, #4] + 8005cd4: 4b0d ldr r3, [pc, #52] ; (8005d0c ) + 8005cd6: 685b ldr r3, [r3, #4] + 8005cd8: 681b ldr r3, [r3, #0] + 8005cda: 607b str r3, [r7, #4] data=eeprom_write_buffer.head->date; - 8004f5c: 4b0b ldr r3, [pc, #44] ; (8004f8c ) - 8004f5e: 685b ldr r3, [r3, #4] - 8004f60: 799b ldrb r3, [r3, #6] - 8004f62: 70fb strb r3, [r7, #3] + 8005cdc: 4b0b ldr r3, [pc, #44] ; (8005d0c ) + 8005cde: 685b ldr r3, [r3, #4] + 8005ce0: 799b ldrb r3, [r3, #6] + 8005ce2: 70fb strb r3, [r7, #3] IIC_SAND_DATE(EEPROM_ADDRESS,eeprom_write_buffer.head->add,&data,1); - 8004f64: 4b09 ldr r3, [pc, #36] ; (8004f8c ) - 8004f66: 685b ldr r3, [r3, #4] - 8004f68: 8899 ldrh r1, [r3, #4] - 8004f6a: 1cfa adds r2, r7, #3 - 8004f6c: 2301 movs r3, #1 - 8004f6e: 20a0 movs r0, #160 ; 0xa0 - 8004f70: f000 f866 bl 8005040 + 8005ce4: 4b09 ldr r3, [pc, #36] ; (8005d0c ) + 8005ce6: 685b ldr r3, [r3, #4] + 8005ce8: 8899 ldrh r1, [r3, #4] + 8005cea: 1cfa adds r2, r7, #3 + 8005cec: 2301 movs r3, #1 + 8005cee: 20a0 movs r0, #160 ; 0xa0 + 8005cf0: f000 f866 bl 8005dc0 free(eeprom_write_buffer.head); - 8004f74: 4b05 ldr r3, [pc, #20] ; (8004f8c ) - 8004f76: 685b ldr r3, [r3, #4] - 8004f78: 4618 mov r0, r3 - 8004f7a: f001 fddf bl 8006b3c + 8005cf4: 4b05 ldr r3, [pc, #20] ; (8005d0c ) + 8005cf6: 685b ldr r3, [r3, #4] + 8005cf8: 4618 mov r0, r3 + 8005cfa: f001 fe95 bl 8007a28 eeprom_write_buffer.head=buff; - 8004f7e: 4a03 ldr r2, [pc, #12] ; (8004f8c ) - 8004f80: 687b ldr r3, [r7, #4] - 8004f82: 6053 str r3, [r2, #4] + 8005cfe: 4a03 ldr r2, [pc, #12] ; (8005d0c ) + 8005d00: 687b ldr r3, [r7, #4] + 8005d02: 6053 str r3, [r2, #4] } - 8004f84: bf00 nop - 8004f86: 3708 adds r7, #8 - 8004f88: 46bd mov sp, r7 - 8004f8a: bd80 pop {r7, pc} - 8004f8c: 200003b4 .word 0x200003b4 + 8005d04: bf00 nop + 8005d06: 3708 adds r7, #8 + 8005d08: 46bd mov sp, r7 + 8005d0a: bd80 pop {r7, pc} + 8005d0c: 200003c4 .word 0x200003c4 -08004f90 : +08005d10 : //从eeprom读取数据 void EEPROM_READ_BATY(uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG) { - 8004f90: b580 push {r7, lr} - 8004f92: b082 sub sp, #8 - 8004f94: af00 add r7, sp, #0 - 8004f96: 4603 mov r3, r0 - 8004f98: 6039 str r1, [r7, #0] - 8004f9a: 80fb strh r3, [r7, #6] - 8004f9c: 4613 mov r3, r2 - 8004f9e: 80bb strh r3, [r7, #4] + 8005d10: b580 push {r7, lr} + 8005d12: b082 sub sp, #8 + 8005d14: af00 add r7, sp, #0 + 8005d16: 4603 mov r3, r0 + 8005d18: 6039 str r1, [r7, #0] + 8005d1a: 80fb strh r3, [r7, #6] + 8005d1c: 4613 mov r3, r2 + 8005d1e: 80bb strh r3, [r7, #4] IIC_READ_DATE(EEPROM_ADDRESS,IN_DEVICE_ADD,DATAS,LONG); - 8004fa0: 88bb ldrh r3, [r7, #4] - 8004fa2: 88f9 ldrh r1, [r7, #6] - 8004fa4: 683a ldr r2, [r7, #0] - 8004fa6: 20a0 movs r0, #160 ; 0xa0 - 8004fa8: f000 f868 bl 800507c + 8005d20: 88bb ldrh r3, [r7, #4] + 8005d22: 88f9 ldrh r1, [r7, #6] + 8005d24: 683a ldr r2, [r7, #0] + 8005d26: 20a0 movs r0, #160 ; 0xa0 + 8005d28: f000 f868 bl 8005dfc } - 8004fac: bf00 nop - 8004fae: 3708 adds r7, #8 - 8004fb0: 46bd mov sp, r7 - 8004fb2: bd80 pop {r7, pc} + 8005d2c: bf00 nop + 8005d2e: 3708 adds r7, #8 + 8005d30: 46bd mov sp, r7 + 8005d32: bd80 pop {r7, pc} -08004fb4 : +08005d34 : //向eeprom写入数据 void EEPROM_WRITE_BATY(uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG) { - 8004fb4: b580 push {r7, lr} - 8004fb6: b086 sub sp, #24 - 8004fb8: af00 add r7, sp, #0 - 8004fba: 4603 mov r3, r0 - 8004fbc: 6039 str r1, [r7, #0] - 8004fbe: 80fb strh r3, [r7, #6] - 8004fc0: 4613 mov r3, r2 - 8004fc2: 80bb strh r3, [r7, #4] + 8005d34: b580 push {r7, lr} + 8005d36: b086 sub sp, #24 + 8005d38: af00 add r7, sp, #0 + 8005d3a: 4603 mov r3, r0 + 8005d3c: 6039 str r1, [r7, #0] + 8005d3e: 80fb strh r3, [r7, #6] + 8005d40: 4613 mov r3, r2 + 8005d42: 80bb strh r3, [r7, #4] //IIC_SAND_DATE(EEPROM_ADDRESS,IN_DEVICE_ADD,DATAS,LONG); uint16_t addoffset=0; - 8004fc4: 2300 movs r3, #0 - 8004fc6: 82fb strh r3, [r7, #22] + 8005d44: 2300 movs r3, #0 + 8005d46: 82fb strh r3, [r7, #22] eeprom_write_buff *buff; eeprom_write_buff *buff2; while(LONG--) - 8004fc8: e02d b.n 8005026 + 8005d48: e02d b.n 8005da6 { buff =(eeprom_write_buff*)malloc(sizeof(eeprom_write_buff)); - 8004fca: 2008 movs r0, #8 - 8004fcc: f001 fdae bl 8006b2c - 8004fd0: 4603 mov r3, r0 - 8004fd2: 613b str r3, [r7, #16] + 8005d4a: 2008 movs r0, #8 + 8005d4c: f001 fe64 bl 8007a18 + 8005d50: 4603 mov r3, r0 + 8005d52: 613b str r3, [r7, #16] if(buff!=NULL) - 8004fd4: 693b ldr r3, [r7, #16] - 8004fd6: 2b00 cmp r3, #0 - 8004fd8: d02b beq.n 8005032 + 8005d54: 693b ldr r3, [r7, #16] + 8005d56: 2b00 cmp r3, #0 + 8005d58: d02b beq.n 8005db2 { buff->add=IN_DEVICE_ADD+addoffset; - 8004fda: 88fa ldrh r2, [r7, #6] - 8004fdc: 8afb ldrh r3, [r7, #22] - 8004fde: 4413 add r3, r2 - 8004fe0: b29a uxth r2, r3 - 8004fe2: 693b ldr r3, [r7, #16] - 8004fe4: 809a strh r2, [r3, #4] + 8005d5a: 88fa ldrh r2, [r7, #6] + 8005d5c: 8afb ldrh r3, [r7, #22] + 8005d5e: 4413 add r3, r2 + 8005d60: b29a uxth r2, r3 + 8005d62: 693b ldr r3, [r7, #16] + 8005d64: 809a strh r2, [r3, #4] buff->date=DATAS[addoffset]; - 8004fe6: 8afb ldrh r3, [r7, #22] - 8004fe8: 683a ldr r2, [r7, #0] - 8004fea: 4413 add r3, r2 - 8004fec: 781a ldrb r2, [r3, #0] - 8004fee: 693b ldr r3, [r7, #16] - 8004ff0: 719a strb r2, [r3, #6] + 8005d66: 8afb ldrh r3, [r7, #22] + 8005d68: 683a ldr r2, [r7, #0] + 8005d6a: 4413 add r3, r2 + 8005d6c: 781a ldrb r2, [r3, #0] + 8005d6e: 693b ldr r3, [r7, #16] + 8005d70: 719a strb r2, [r3, #6] buff->next=NULL; - 8004ff2: 693b ldr r3, [r7, #16] - 8004ff4: 2200 movs r2, #0 - 8004ff6: 601a str r2, [r3, #0] + 8005d72: 693b ldr r3, [r7, #16] + 8005d74: 2200 movs r2, #0 + 8005d76: 601a str r2, [r3, #0] }else{return ;} if(eeprom_write_buffer.head==NULL) - 8004ff8: 4b10 ldr r3, [pc, #64] ; (800503c ) - 8004ffa: 685b ldr r3, [r3, #4] - 8004ffc: 2b00 cmp r3, #0 - 8004ffe: d106 bne.n 800500e + 8005d78: 4b10 ldr r3, [pc, #64] ; (8005dbc ) + 8005d7a: 685b ldr r3, [r3, #4] + 8005d7c: 2b00 cmp r3, #0 + 8005d7e: d106 bne.n 8005d8e { eeprom_write_buffer.head=buff; - 8005000: 4a0e ldr r2, [pc, #56] ; (800503c ) - 8005002: 693b ldr r3, [r7, #16] - 8005004: 6053 str r3, [r2, #4] + 8005d80: 4a0e ldr r2, [pc, #56] ; (8005dbc ) + 8005d82: 693b ldr r3, [r7, #16] + 8005d84: 6053 str r3, [r2, #4] eeprom_write_buffer.end=buff; - 8005006: 4a0d ldr r2, [pc, #52] ; (800503c ) - 8005008: 693b ldr r3, [r7, #16] - 800500a: 6093 str r3, [r2, #8] - 800500c: e008 b.n 8005020 + 8005d86: 4a0d ldr r2, [pc, #52] ; (8005dbc ) + 8005d88: 693b ldr r3, [r7, #16] + 8005d8a: 6093 str r3, [r2, #8] + 8005d8c: e008 b.n 8005da0 }else { buff2=eeprom_write_buffer.end; - 800500e: 4b0b ldr r3, [pc, #44] ; (800503c ) - 8005010: 689b ldr r3, [r3, #8] - 8005012: 60fb str r3, [r7, #12] + 8005d8e: 4b0b ldr r3, [pc, #44] ; (8005dbc ) + 8005d90: 689b ldr r3, [r3, #8] + 8005d92: 60fb str r3, [r7, #12] buff2->next=buff; - 8005014: 68fb ldr r3, [r7, #12] - 8005016: 693a ldr r2, [r7, #16] - 8005018: 601a str r2, [r3, #0] + 8005d94: 68fb ldr r3, [r7, #12] + 8005d96: 693a ldr r2, [r7, #16] + 8005d98: 601a str r2, [r3, #0] eeprom_write_buffer.end=buff; - 800501a: 4a08 ldr r2, [pc, #32] ; (800503c ) - 800501c: 693b ldr r3, [r7, #16] - 800501e: 6093 str r3, [r2, #8] + 8005d9a: 4a08 ldr r2, [pc, #32] ; (8005dbc ) + 8005d9c: 693b ldr r3, [r7, #16] + 8005d9e: 6093 str r3, [r2, #8] } addoffset++; - 8005020: 8afb ldrh r3, [r7, #22] - 8005022: 3301 adds r3, #1 - 8005024: 82fb strh r3, [r7, #22] + 8005da0: 8afb ldrh r3, [r7, #22] + 8005da2: 3301 adds r3, #1 + 8005da4: 82fb strh r3, [r7, #22] while(LONG--) - 8005026: 88bb ldrh r3, [r7, #4] - 8005028: 1e5a subs r2, r3, #1 - 800502a: 80ba strh r2, [r7, #4] - 800502c: 2b00 cmp r3, #0 - 800502e: d1cc bne.n 8004fca - 8005030: e000 b.n 8005034 + 8005da6: 88bb ldrh r3, [r7, #4] + 8005da8: 1e5a subs r2, r3, #1 + 8005daa: 80ba strh r2, [r7, #4] + 8005dac: 2b00 cmp r3, #0 + 8005dae: d1cc bne.n 8005d4a + 8005db0: e000 b.n 8005db4 }else{return ;} - 8005032: bf00 nop + 8005db2: bf00 nop } } - 8005034: 3718 adds r7, #24 - 8005036: 46bd mov sp, r7 - 8005038: bd80 pop {r7, pc} - 800503a: bf00 nop - 800503c: 200003b4 .word 0x200003b4 + 8005db4: 3718 adds r7, #24 + 8005db6: 46bd mov sp, r7 + 8005db8: bd80 pop {r7, pc} + 8005dba: bf00 nop + 8005dbc: 200003c4 .word 0x200003c4 -08005040 : +08005dc0 : //iic硬件接口 extern I2C_HandleTypeDef hi2c2; void IIC_SAND_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG) { - 8005040: b580 push {r7, lr} - 8005042: b088 sub sp, #32 - 8005044: af04 add r7, sp, #16 - 8005046: 60ba str r2, [r7, #8] - 8005048: 461a mov r2, r3 - 800504a: 4603 mov r3, r0 - 800504c: 81fb strh r3, [r7, #14] - 800504e: 460b mov r3, r1 - 8005050: 81bb strh r3, [r7, #12] - 8005052: 4613 mov r3, r2 - 8005054: 80fb strh r3, [r7, #6] + 8005dc0: b580 push {r7, lr} + 8005dc2: b088 sub sp, #32 + 8005dc4: af04 add r7, sp, #16 + 8005dc6: 60ba str r2, [r7, #8] + 8005dc8: 461a mov r2, r3 + 8005dca: 4603 mov r3, r0 + 8005dcc: 81fb strh r3, [r7, #14] + 8005dce: 460b mov r3, r1 + 8005dd0: 81bb strh r3, [r7, #12] + 8005dd2: 4613 mov r3, r2 + 8005dd4: 80fb strh r3, [r7, #6] HAL_I2C_Mem_Write(&hi2c2,DEVICE_ADD,IN_DEVICE_ADD,I2C_MEMADD_SIZE_8BIT,DATAS,LONG,100); - 8005056: 89ba ldrh r2, [r7, #12] - 8005058: 89f9 ldrh r1, [r7, #14] - 800505a: 2364 movs r3, #100 ; 0x64 - 800505c: 9302 str r3, [sp, #8] - 800505e: 88fb ldrh r3, [r7, #6] - 8005060: 9301 str r3, [sp, #4] - 8005062: 68bb ldr r3, [r7, #8] - 8005064: 9300 str r3, [sp, #0] - 8005066: 2301 movs r3, #1 - 8005068: 4803 ldr r0, [pc, #12] ; (8005078 ) - 800506a: f7fd f9c9 bl 8002400 + 8005dd6: 89ba ldrh r2, [r7, #12] + 8005dd8: 89f9 ldrh r1, [r7, #14] + 8005dda: 2364 movs r3, #100 ; 0x64 + 8005ddc: 9302 str r3, [sp, #8] + 8005dde: 88fb ldrh r3, [r7, #6] + 8005de0: 9301 str r3, [sp, #4] + 8005de2: 68bb ldr r3, [r7, #8] + 8005de4: 9300 str r3, [sp, #0] + 8005de6: 2301 movs r3, #1 + 8005de8: 4803 ldr r0, [pc, #12] ; (8005df8 ) + 8005dea: f7fc fbfb bl 80025e4 } - 800506e: bf00 nop - 8005070: 3710 adds r7, #16 - 8005072: 46bd mov sp, r7 - 8005074: bd80 pop {r7, pc} - 8005076: bf00 nop - 8005078: 20000268 .word 0x20000268 + 8005dee: bf00 nop + 8005df0: 3710 adds r7, #16 + 8005df2: 46bd mov sp, r7 + 8005df4: bd80 pop {r7, pc} + 8005df6: bf00 nop + 8005df8: 20000274 .word 0x20000274 -0800507c : +08005dfc : void IIC_READ_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG) { - 800507c: b580 push {r7, lr} - 800507e: b088 sub sp, #32 - 8005080: af04 add r7, sp, #16 - 8005082: 60ba str r2, [r7, #8] - 8005084: 461a mov r2, r3 - 8005086: 4603 mov r3, r0 - 8005088: 81fb strh r3, [r7, #14] - 800508a: 460b mov r3, r1 - 800508c: 81bb strh r3, [r7, #12] - 800508e: 4613 mov r3, r2 - 8005090: 80fb strh r3, [r7, #6] + 8005dfc: b580 push {r7, lr} + 8005dfe: b088 sub sp, #32 + 8005e00: af04 add r7, sp, #16 + 8005e02: 60ba str r2, [r7, #8] + 8005e04: 461a mov r2, r3 + 8005e06: 4603 mov r3, r0 + 8005e08: 81fb strh r3, [r7, #14] + 8005e0a: 460b mov r3, r1 + 8005e0c: 81bb strh r3, [r7, #12] + 8005e0e: 4613 mov r3, r2 + 8005e10: 80fb strh r3, [r7, #6] HAL_I2C_Mem_Read(&hi2c2,DEVICE_ADD,IN_DEVICE_ADD,I2C_MEMADD_SIZE_8BIT,DATAS,LONG,100); - 8005092: 89ba ldrh r2, [r7, #12] - 8005094: 89f9 ldrh r1, [r7, #14] - 8005096: 2364 movs r3, #100 ; 0x64 - 8005098: 9302 str r3, [sp, #8] - 800509a: 88fb ldrh r3, [r7, #6] - 800509c: 9301 str r3, [sp, #4] - 800509e: 68bb ldr r3, [r7, #8] - 80050a0: 9300 str r3, [sp, #0] - 80050a2: 2301 movs r3, #1 - 80050a4: 4803 ldr r0, [pc, #12] ; (80050b4 ) - 80050a6: f7fd faa5 bl 80025f4 + 8005e12: 89ba ldrh r2, [r7, #12] + 8005e14: 89f9 ldrh r1, [r7, #14] + 8005e16: 2364 movs r3, #100 ; 0x64 + 8005e18: 9302 str r3, [sp, #8] + 8005e1a: 88fb ldrh r3, [r7, #6] + 8005e1c: 9301 str r3, [sp, #4] + 8005e1e: 68bb ldr r3, [r7, #8] + 8005e20: 9300 str r3, [sp, #0] + 8005e22: 2301 movs r3, #1 + 8005e24: 4803 ldr r0, [pc, #12] ; (8005e34 ) + 8005e26: f7fc fcd7 bl 80027d8 } - 80050aa: bf00 nop - 80050ac: 3710 adds r7, #16 - 80050ae: 46bd mov sp, r7 - 80050b0: bd80 pop {r7, pc} - 80050b2: bf00 nop - 80050b4: 20000268 .word 0x20000268 + 8005e2a: bf00 nop + 8005e2c: 3710 adds r7, #16 + 8005e2e: 46bd mov sp, r7 + 8005e30: bd80 pop {r7, pc} + 8005e32: bf00 nop + 8005e34: 20000274 .word 0x20000274 -080050b8 : +08005e38 : #include "key.h" struct button k1,k2,k3; void GEI_BUTTON_CODE(struct button *bt,uint8_t in) { - 80050b8: b580 push {r7, lr} - 80050ba: b082 sub sp, #8 - 80050bc: af00 add r7, sp, #0 - 80050be: 6078 str r0, [r7, #4] - 80050c0: 460b mov r3, r1 - 80050c2: 70fb strb r3, [r7, #3] + 8005e38: b580 push {r7, lr} + 8005e3a: b082 sub sp, #8 + 8005e3c: af00 add r7, sp, #0 + 8005e3e: 6078 str r0, [r7, #4] + 8005e40: 460b mov r3, r1 + 8005e42: 70fb strb r3, [r7, #3] #define t 250 bt->code=0; - 80050c4: 687b ldr r3, [r7, #4] - 80050c6: 2200 movs r2, #0 - 80050c8: 601a str r2, [r3, #0] + 8005e44: 687b ldr r3, [r7, #4] + 8005e46: 2200 movs r2, #0 + 8005e48: 601a str r2, [r3, #0] if(in==0) - 80050ca: 78fb ldrb r3, [r7, #3] - 80050cc: 2b00 cmp r3, #0 - 80050ce: d138 bne.n 8005142 + 8005e4a: 78fb ldrb r3, [r7, #3] + 8005e4c: 2b00 cmp r3, #0 + 8005e4e: d138 bne.n 8005ec2 { if(bt->lock==0) - 80050d0: 687b ldr r3, [r7, #4] - 80050d2: 791b ldrb r3, [r3, #4] - 80050d4: 2b00 cmp r3, #0 - 80050d6: d120 bne.n 800511a + 8005e50: 687b ldr r3, [r7, #4] + 8005e52: 791b ldrb r3, [r3, #4] + 8005e54: 2b00 cmp r3, #0 + 8005e56: d120 bne.n 8005e9a { if(HAL_GetTick()time+t) - 80050d8: f7fc fd4e bl 8001b78 - 80050dc: 4602 mov r2, r0 - 80050de: 687b ldr r3, [r7, #4] - 80050e0: 689b ldr r3, [r3, #8] - 80050e2: 33fa adds r3, #250 ; 0xfa - 80050e4: 429a cmp r2, r3 - 80050e6: d20d bcs.n 8005104 + 8005e58: f7fb ff80 bl 8001d5c + 8005e5c: 4602 mov r2, r0 + 8005e5e: 687b ldr r3, [r7, #4] + 8005e60: 689b ldr r3, [r3, #8] + 8005e62: 33fa adds r3, #250 ; 0xfa + 8005e64: 429a cmp r2, r3 + 8005e66: d20d bcs.n 8005e84 { bt->times++; - 80050e8: 687b ldr r3, [r7, #4] - 80050ea: 68db ldr r3, [r3, #12] - 80050ec: 1c5a adds r2, r3, #1 - 80050ee: 687b ldr r3, [r7, #4] - 80050f0: 60da str r2, [r3, #12] + 8005e68: 687b ldr r3, [r7, #4] + 8005e6a: 68db ldr r3, [r3, #12] + 8005e6c: 1c5a adds r2, r3, #1 + 8005e6e: 687b ldr r3, [r7, #4] + 8005e70: 60da str r2, [r3, #12] bt->time=HAL_GetTick(); - 80050f2: f7fc fd41 bl 8001b78 - 80050f6: 4602 mov r2, r0 - 80050f8: 687b ldr r3, [r7, #4] - 80050fa: 609a str r2, [r3, #8] + 8005e72: f7fb ff73 bl 8001d5c + 8005e76: 4602 mov r2, r0 + 8005e78: 687b ldr r3, [r7, #4] + 8005e7a: 609a str r2, [r3, #8] bt->lock=1; - 80050fc: 687b ldr r3, [r7, #4] - 80050fe: 2201 movs r2, #1 - 8005100: 711a strb r2, [r3, #4] - 8005102: e00a b.n 800511a + 8005e7c: 687b ldr r3, [r7, #4] + 8005e7e: 2201 movs r2, #1 + 8005e80: 711a strb r2, [r3, #4] + 8005e82: e00a b.n 8005e9a }else { bt->times=1; - 8005104: 687b ldr r3, [r7, #4] - 8005106: 2201 movs r2, #1 - 8005108: 60da str r2, [r3, #12] + 8005e84: 687b ldr r3, [r7, #4] + 8005e86: 2201 movs r2, #1 + 8005e88: 60da str r2, [r3, #12] bt->time=HAL_GetTick(); - 800510a: f7fc fd35 bl 8001b78 - 800510e: 4602 mov r2, r0 - 8005110: 687b ldr r3, [r7, #4] - 8005112: 609a str r2, [r3, #8] + 8005e8a: f7fb ff67 bl 8001d5c + 8005e8e: 4602 mov r2, r0 + 8005e90: 687b ldr r3, [r7, #4] + 8005e92: 609a str r2, [r3, #8] bt->lock=1; - 8005114: 687b ldr r3, [r7, #4] - 8005116: 2201 movs r2, #1 - 8005118: 711a strb r2, [r3, #4] + 8005e94: 687b ldr r3, [r7, #4] + 8005e96: 2201 movs r2, #1 + 8005e98: 711a strb r2, [r3, #4] } } if(bt->lock==1) - 800511a: 687b ldr r3, [r7, #4] - 800511c: 791b ldrb r3, [r3, #4] - 800511e: 2b01 cmp r3, #1 - 8005120: d10f bne.n 8005142 + 8005e9a: 687b ldr r3, [r7, #4] + 8005e9c: 791b ldrb r3, [r3, #4] + 8005e9e: 2b01 cmp r3, #1 + 8005ea0: d10f bne.n 8005ec2 { if(HAL_GetTick()>bt->time+t) - 8005122: f7fc fd29 bl 8001b78 - 8005126: 4602 mov r2, r0 - 8005128: 687b ldr r3, [r7, #4] - 800512a: 689b ldr r3, [r3, #8] - 800512c: 33fa adds r3, #250 ; 0xfa - 800512e: 429a cmp r2, r3 - 8005130: d907 bls.n 8005142 + 8005ea2: f7fb ff5b bl 8001d5c + 8005ea6: 4602 mov r2, r0 + 8005ea8: 687b ldr r3, [r7, #4] + 8005eaa: 689b ldr r3, [r3, #8] + 8005eac: 33fa adds r3, #250 ; 0xfa + 8005eae: 429a cmp r2, r3 + 8005eb0: d907 bls.n 8005ec2 { bt->code=-1; - 8005132: 687b ldr r3, [r7, #4] - 8005134: f04f 32ff mov.w r2, #4294967295 - 8005138: 601a str r2, [r3, #0] + 8005eb2: 687b ldr r3, [r7, #4] + 8005eb4: f04f 32ff mov.w r2, #4294967295 + 8005eb8: 601a str r2, [r3, #0] bt->times=-1; - 800513a: 687b ldr r3, [r7, #4] - 800513c: f04f 32ff mov.w r2, #4294967295 - 8005140: 60da str r2, [r3, #12] + 8005eba: 687b ldr r3, [r7, #4] + 8005ebc: f04f 32ff mov.w r2, #4294967295 + 8005ec0: 60da str r2, [r3, #12] } } } if(in==1) - 8005142: 78fb ldrb r3, [r7, #3] - 8005144: 2b01 cmp r3, #1 - 8005146: d10f bne.n 8005168 + 8005ec2: 78fb ldrb r3, [r7, #3] + 8005ec4: 2b01 cmp r3, #1 + 8005ec6: d10f bne.n 8005ee8 { if(bt->lock==1) - 8005148: 687b ldr r3, [r7, #4] - 800514a: 791b ldrb r3, [r3, #4] - 800514c: 2b01 cmp r3, #1 - 800514e: d10b bne.n 8005168 + 8005ec8: 687b ldr r3, [r7, #4] + 8005eca: 791b ldrb r3, [r3, #4] + 8005ecc: 2b01 cmp r3, #1 + 8005ece: d10b bne.n 8005ee8 { if(bt->code==-1) - 8005150: 687b ldr r3, [r7, #4] - 8005152: 681b ldr r3, [r3, #0] - 8005154: f1b3 3fff cmp.w r3, #4294967295 - 8005158: d003 beq.n 8005162 + 8005ed0: 687b ldr r3, [r7, #4] + 8005ed2: 681b ldr r3, [r3, #0] + 8005ed4: f1b3 3fff cmp.w r3, #4294967295 + 8005ed8: d003 beq.n 8005ee2 { }else { bt->code=bt->times; - 800515a: 687b ldr r3, [r7, #4] - 800515c: 68da ldr r2, [r3, #12] - 800515e: 687b ldr r3, [r7, #4] - 8005160: 601a str r2, [r3, #0] + 8005eda: 687b ldr r3, [r7, #4] + 8005edc: 68da ldr r2, [r3, #12] + 8005ede: 687b ldr r3, [r7, #4] + 8005ee0: 601a str r2, [r3, #0] } bt->lock=0; - 8005162: 687b ldr r3, [r7, #4] - 8005164: 2200 movs r2, #0 - 8005166: 711a strb r2, [r3, #4] + 8005ee2: 687b ldr r3, [r7, #4] + 8005ee4: 2200 movs r2, #0 + 8005ee6: 711a strb r2, [r3, #4] } } } - 8005168: bf00 nop - 800516a: 3708 adds r7, #8 - 800516c: 46bd mov sp, r7 - 800516e: bd80 pop {r7, pc} + 8005ee8: bf00 nop + 8005eea: 3708 adds r7, #8 + 8005eec: 46bd mov sp, r7 + 8005eee: bd80 pop {r7, pc} -08005170 : +08005ef0 : //SPI写数据 //向触摸屏IC写入1byte数据 //num:要写入的数据 void TP_Write_Byte(char num) { - 8005170: b580 push {r7, lr} - 8005172: b084 sub sp, #16 - 8005174: af00 add r7, sp, #0 - 8005176: 4603 mov r3, r0 - 8005178: 71fb strb r3, [r7, #7] + 8005ef0: b580 push {r7, lr} + 8005ef2: b084 sub sp, #16 + 8005ef4: af00 add r7, sp, #0 + 8005ef6: 4603 mov r3, r0 + 8005ef8: 71fb strb r3, [r7, #7] for(uint8_t count=0;count<8;count++) - 800517a: 2300 movs r3, #0 - 800517c: 73fb strb r3, [r7, #15] - 800517e: e020 b.n 80051c2 + 8005efa: 2300 movs r3, #0 + 8005efc: 73fb strb r3, [r7, #15] + 8005efe: e020 b.n 8005f42 { if(num&0x80){TDIN(1);} - 8005180: f997 3007 ldrsb.w r3, [r7, #7] - 8005184: 2b00 cmp r3, #0 - 8005186: da06 bge.n 8005196 - 8005188: 2201 movs r2, #1 - 800518a: f44f 7100 mov.w r1, #512 ; 0x200 - 800518e: 4811 ldr r0, [pc, #68] ; (80051d4 ) - 8005190: f7fc ffd9 bl 8002146 - 8005194: e005 b.n 80051a2 + 8005f00: f997 3007 ldrsb.w r3, [r7, #7] + 8005f04: 2b00 cmp r3, #0 + 8005f06: da06 bge.n 8005f16 + 8005f08: 2201 movs r2, #1 + 8005f0a: f44f 7100 mov.w r1, #512 ; 0x200 + 8005f0e: 4811 ldr r0, [pc, #68] ; (8005f54 ) + 8005f10: f7fc fa0b bl 800232a + 8005f14: e005 b.n 8005f22 else {TDIN(0);} - 8005196: 2200 movs r2, #0 - 8005198: f44f 7100 mov.w r1, #512 ; 0x200 - 800519c: 480d ldr r0, [pc, #52] ; (80051d4 ) - 800519e: f7fc ffd2 bl 8002146 + 8005f16: 2200 movs r2, #0 + 8005f18: f44f 7100 mov.w r1, #512 ; 0x200 + 8005f1c: 480d ldr r0, [pc, #52] ; (8005f54 ) + 8005f1e: f7fc fa04 bl 800232a num<<=1; - 80051a2: 79fb ldrb r3, [r7, #7] - 80051a4: 005b lsls r3, r3, #1 - 80051a6: 71fb strb r3, [r7, #7] + 8005f22: 79fb ldrb r3, [r7, #7] + 8005f24: 005b lsls r3, r3, #1 + 8005f26: 71fb strb r3, [r7, #7] TCLK(0); - 80051a8: 2200 movs r2, #0 - 80051aa: 2102 movs r1, #2 - 80051ac: 480a ldr r0, [pc, #40] ; (80051d8 ) - 80051ae: f7fc ffca bl 8002146 + 8005f28: 2200 movs r2, #0 + 8005f2a: 2102 movs r1, #2 + 8005f2c: 480a ldr r0, [pc, #40] ; (8005f58 ) + 8005f2e: f7fc f9fc bl 800232a TCLK(1); //上升沿有效 - 80051b2: 2201 movs r2, #1 - 80051b4: 2102 movs r1, #2 - 80051b6: 4808 ldr r0, [pc, #32] ; (80051d8 ) - 80051b8: f7fc ffc5 bl 8002146 + 8005f32: 2201 movs r2, #1 + 8005f34: 2102 movs r1, #2 + 8005f36: 4808 ldr r0, [pc, #32] ; (8005f58 ) + 8005f38: f7fc f9f7 bl 800232a for(uint8_t count=0;count<8;count++) - 80051bc: 7bfb ldrb r3, [r7, #15] - 80051be: 3301 adds r3, #1 - 80051c0: 73fb strb r3, [r7, #15] - 80051c2: 7bfb ldrb r3, [r7, #15] - 80051c4: 2b07 cmp r3, #7 - 80051c6: d9db bls.n 8005180 + 8005f3c: 7bfb ldrb r3, [r7, #15] + 8005f3e: 3301 adds r3, #1 + 8005f40: 73fb strb r3, [r7, #15] + 8005f42: 7bfb ldrb r3, [r7, #15] + 8005f44: 2b07 cmp r3, #7 + 8005f46: d9db bls.n 8005f00 } } - 80051c8: bf00 nop - 80051ca: bf00 nop - 80051cc: 3710 adds r7, #16 - 80051ce: 46bd mov sp, r7 - 80051d0: bd80 pop {r7, pc} - 80051d2: bf00 nop - 80051d4: 40011c00 .word 0x40011c00 - 80051d8: 40010c00 .word 0x40010c00 + 8005f48: bf00 nop + 8005f4a: bf00 nop + 8005f4c: 3710 adds r7, #16 + 8005f4e: 46bd mov sp, r7 + 8005f50: bd80 pop {r7, pc} + 8005f52: bf00 nop + 8005f54: 40011c00 .word 0x40011c00 + 8005f58: 40010c00 .word 0x40010c00 -080051dc : +08005f5c : //SPI读数据 //从触摸屏IC读取adc值 //CMD:指令 //返回值:读到的数据 uint16_t TP_Read_AD(char CMD) { - 80051dc: b580 push {r7, lr} - 80051de: b084 sub sp, #16 - 80051e0: af00 add r7, sp, #0 - 80051e2: 4603 mov r3, r0 - 80051e4: 71fb strb r3, [r7, #7] + 8005f5c: b580 push {r7, lr} + 8005f5e: b084 sub sp, #16 + 8005f60: af00 add r7, sp, #0 + 8005f62: 4603 mov r3, r0 + 8005f64: 71fb strb r3, [r7, #7] uint16_t Num=0; - 80051e6: 2300 movs r3, #0 - 80051e8: 81fb strh r3, [r7, #14] + 8005f66: 2300 movs r3, #0 + 8005f68: 81fb strh r3, [r7, #14] TCLK(0); //先拉低时钟 - 80051ea: 2200 movs r2, #0 - 80051ec: 2102 movs r1, #2 - 80051ee: 482b ldr r0, [pc, #172] ; (800529c ) - 80051f0: f7fc ffa9 bl 8002146 + 8005f6a: 2200 movs r2, #0 + 8005f6c: 2102 movs r1, #2 + 8005f6e: 482b ldr r0, [pc, #172] ; (800601c ) + 8005f70: f7fc f9db bl 800232a TDIN(0); //拉低数据线 - 80051f4: 2200 movs r2, #0 - 80051f6: f44f 7100 mov.w r1, #512 ; 0x200 - 80051fa: 4829 ldr r0, [pc, #164] ; (80052a0 ) - 80051fc: f7fc ffa3 bl 8002146 + 8005f74: 2200 movs r2, #0 + 8005f76: f44f 7100 mov.w r1, #512 ; 0x200 + 8005f7a: 4829 ldr r0, [pc, #164] ; (8006020 ) + 8005f7c: f7fc f9d5 bl 800232a TCS(0); //选中触摸屏IC - 8005200: 2200 movs r2, #0 - 8005202: 2104 movs r1, #4 - 8005204: 4825 ldr r0, [pc, #148] ; (800529c ) - 8005206: f7fc ff9e bl 8002146 + 8005f80: 2200 movs r2, #0 + 8005f82: 2104 movs r1, #4 + 8005f84: 4825 ldr r0, [pc, #148] ; (800601c ) + 8005f86: f7fc f9d0 bl 800232a TP_Write_Byte(CMD);//发送命令字 - 800520a: 79fb ldrb r3, [r7, #7] - 800520c: 4618 mov r0, r3 - 800520e: f7ff ffaf bl 8005170 + 8005f8a: 79fb ldrb r3, [r7, #7] + 8005f8c: 4618 mov r0, r3 + 8005f8e: f7ff ffaf bl 8005ef0 HAL_GetTick(); //稍微延时,ad转换需要时间 - 8005212: f7fc fcb1 bl 8001b78 + 8005f92: f7fb fee3 bl 8001d5c HAL_GetTick(); - 8005216: f7fc fcaf bl 8001b78 + 8005f96: f7fb fee1 bl 8001d5c HAL_GetTick(); - 800521a: f7fc fcad bl 8001b78 + 8005f9a: f7fb fedf bl 8001d5c HAL_GetTick(); - 800521e: f7fc fcab bl 8001b78 + 8005f9e: f7fb fedd bl 8001d5c HAL_GetTick(); - 8005222: f7fc fca9 bl 8001b78 + 8005fa2: f7fb fedb bl 8001d5c HAL_GetTick(); - 8005226: f7fc fca7 bl 8001b78 + 8005fa6: f7fb fed9 bl 8001d5c TCLK(1); //给1个时钟,清除BUSY - 800522a: 2201 movs r2, #1 - 800522c: 2102 movs r1, #2 - 800522e: 481b ldr r0, [pc, #108] ; (800529c ) - 8005230: f7fc ff89 bl 8002146 + 8005faa: 2201 movs r2, #1 + 8005fac: 2102 movs r1, #2 + 8005fae: 481b ldr r0, [pc, #108] ; (800601c ) + 8005fb0: f7fc f9bb bl 800232a TCLK(0); - 8005234: 2200 movs r2, #0 - 8005236: 2102 movs r1, #2 - 8005238: 4818 ldr r0, [pc, #96] ; (800529c ) - 800523a: f7fc ff84 bl 8002146 + 8005fb4: 2200 movs r2, #0 + 8005fb6: 2102 movs r1, #2 + 8005fb8: 4818 ldr r0, [pc, #96] ; (800601c ) + 8005fba: f7fc f9b6 bl 800232a for(uint8_t count=0;count<16;count++)//读出16位数据,只有高12位有效 - 800523e: 2300 movs r3, #0 - 8005240: 737b strb r3, [r7, #13] - 8005242: e01a b.n 800527a + 8005fbe: 2300 movs r3, #0 + 8005fc0: 737b strb r3, [r7, #13] + 8005fc2: e01a b.n 8005ffa { Num<<=1; - 8005244: 89fb ldrh r3, [r7, #14] - 8005246: 005b lsls r3, r3, #1 - 8005248: 81fb strh r3, [r7, #14] + 8005fc4: 89fb ldrh r3, [r7, #14] + 8005fc6: 005b lsls r3, r3, #1 + 8005fc8: 81fb strh r3, [r7, #14] TCLK(0); //下降沿有效 - 800524a: 2200 movs r2, #0 - 800524c: 2102 movs r1, #2 - 800524e: 4813 ldr r0, [pc, #76] ; (800529c ) - 8005250: f7fc ff79 bl 8002146 + 8005fca: 2200 movs r2, #0 + 8005fcc: 2102 movs r1, #2 + 8005fce: 4813 ldr r0, [pc, #76] ; (800601c ) + 8005fd0: f7fc f9ab bl 800232a TCLK(1);; - 8005254: 2201 movs r2, #1 - 8005256: 2102 movs r1, #2 - 8005258: 4810 ldr r0, [pc, #64] ; (800529c ) - 800525a: f7fc ff74 bl 8002146 + 8005fd4: 2201 movs r2, #1 + 8005fd6: 2102 movs r1, #2 + 8005fd8: 4810 ldr r0, [pc, #64] ; (800601c ) + 8005fda: f7fc f9a6 bl 800232a if(TDOUT){Num++;} - 800525e: f44f 7180 mov.w r1, #256 ; 0x100 - 8005262: 480f ldr r0, [pc, #60] ; (80052a0 ) - 8005264: f7fc ff58 bl 8002118 - 8005268: 4603 mov r3, r0 - 800526a: 2b00 cmp r3, #0 - 800526c: d002 beq.n 8005274 - 800526e: 89fb ldrh r3, [r7, #14] - 8005270: 3301 adds r3, #1 - 8005272: 81fb strh r3, [r7, #14] + 8005fde: f44f 7180 mov.w r1, #256 ; 0x100 + 8005fe2: 480f ldr r0, [pc, #60] ; (8006020 ) + 8005fe4: f7fc f98a bl 80022fc + 8005fe8: 4603 mov r3, r0 + 8005fea: 2b00 cmp r3, #0 + 8005fec: d002 beq.n 8005ff4 + 8005fee: 89fb ldrh r3, [r7, #14] + 8005ff0: 3301 adds r3, #1 + 8005ff2: 81fb strh r3, [r7, #14] for(uint8_t count=0;count<16;count++)//读出16位数据,只有高12位有效 - 8005274: 7b7b ldrb r3, [r7, #13] - 8005276: 3301 adds r3, #1 - 8005278: 737b strb r3, [r7, #13] - 800527a: 7b7b ldrb r3, [r7, #13] - 800527c: 2b0f cmp r3, #15 - 800527e: d9e1 bls.n 8005244 + 8005ff4: 7b7b ldrb r3, [r7, #13] + 8005ff6: 3301 adds r3, #1 + 8005ff8: 737b strb r3, [r7, #13] + 8005ffa: 7b7b ldrb r3, [r7, #13] + 8005ffc: 2b0f cmp r3, #15 + 8005ffe: d9e1 bls.n 8005fc4 } Num>>=4; //只有高12位有效. - 8005280: 89fb ldrh r3, [r7, #14] - 8005282: 091b lsrs r3, r3, #4 - 8005284: 81fb strh r3, [r7, #14] + 8006000: 89fb ldrh r3, [r7, #14] + 8006002: 091b lsrs r3, r3, #4 + 8006004: 81fb strh r3, [r7, #14] TCS(1); //释放片选 - 8005286: 2201 movs r2, #1 - 8005288: 2104 movs r1, #4 - 800528a: 4804 ldr r0, [pc, #16] ; (800529c ) - 800528c: f7fc ff5b bl 8002146 + 8006006: 2201 movs r2, #1 + 8006008: 2104 movs r1, #4 + 800600a: 4804 ldr r0, [pc, #16] ; (800601c ) + 800600c: f7fc f98d bl 800232a return(Num); - 8005290: 89fb ldrh r3, [r7, #14] + 8006010: 89fb ldrh r3, [r7, #14] } - 8005292: 4618 mov r0, r3 - 8005294: 3710 adds r7, #16 - 8005296: 46bd mov sp, r7 - 8005298: bd80 pop {r7, pc} - 800529a: bf00 nop - 800529c: 40010c00 .word 0x40010c00 - 80052a0: 40011c00 .word 0x40011c00 + 8006012: 4618 mov r0, r3 + 8006014: 3710 adds r7, #16 + 8006016: 46bd mov sp, r7 + 8006018: bd80 pop {r7, pc} + 800601a: bf00 nop + 800601c: 40010c00 .word 0x40010c00 + 8006020: 40011c00 .word 0x40011c00 -080052a4 : +08006024 : //xy:指令(CMD_RDX/CMD_RDY) //返回值:读到的数据 #define READ_TIMES 5 //读取次数 #define LOST_VAL 1 //丢弃值 uint16_t TP_Read_XOY(uint8_t xy) { - 80052a4: b590 push {r4, r7, lr} - 80052a6: b089 sub sp, #36 ; 0x24 - 80052a8: af00 add r7, sp, #0 - 80052aa: 4603 mov r3, r0 - 80052ac: 71fb strb r3, [r7, #7] + 8006024: b590 push {r4, r7, lr} + 8006026: b089 sub sp, #36 ; 0x24 + 8006028: af00 add r7, sp, #0 + 800602a: 4603 mov r3, r0 + 800602c: 71fb strb r3, [r7, #7] uint16_t i, j; uint16_t buf[READ_TIMES]; uint16_t sum=0; - 80052ae: 2300 movs r3, #0 - 80052b0: 837b strh r3, [r7, #26] + 800602e: 2300 movs r3, #0 + 8006030: 837b strh r3, [r7, #26] uint16_t temp; for(i=0;i - 80052b8: 8bfc ldrh r4, [r7, #30] - 80052ba: 79fb ldrb r3, [r7, #7] - 80052bc: 4618 mov r0, r3 - 80052be: f7ff ff8d bl 80051dc - 80052c2: 4603 mov r3, r0 - 80052c4: 461a mov r2, r3 - 80052c6: 0063 lsls r3, r4, #1 - 80052c8: f107 0120 add.w r1, r7, #32 - 80052cc: 440b add r3, r1 - 80052ce: f823 2c14 strh.w r2, [r3, #-20] - 80052d2: 8bfb ldrh r3, [r7, #30] - 80052d4: 3301 adds r3, #1 - 80052d6: 83fb strh r3, [r7, #30] - 80052d8: 8bfb ldrh r3, [r7, #30] - 80052da: 2b04 cmp r3, #4 - 80052dc: d9ec bls.n 80052b8 + 8006032: 2300 movs r3, #0 + 8006034: 83fb strh r3, [r7, #30] + 8006036: e00f b.n 8006058 + 8006038: 8bfc ldrh r4, [r7, #30] + 800603a: 79fb ldrb r3, [r7, #7] + 800603c: 4618 mov r0, r3 + 800603e: f7ff ff8d bl 8005f5c + 8006042: 4603 mov r3, r0 + 8006044: 461a mov r2, r3 + 8006046: 0063 lsls r3, r4, #1 + 8006048: f107 0120 add.w r1, r7, #32 + 800604c: 440b add r3, r1 + 800604e: f823 2c14 strh.w r2, [r3, #-20] + 8006052: 8bfb ldrh r3, [r7, #30] + 8006054: 3301 adds r3, #1 + 8006056: 83fb strh r3, [r7, #30] + 8006058: 8bfb ldrh r3, [r7, #30] + 800605a: 2b04 cmp r3, #4 + 800605c: d9ec bls.n 8006038 for(i=0;i + 800605e: 2300 movs r3, #0 + 8006060: 83fb strh r3, [r7, #30] + 8006062: e03b b.n 80060dc { for(j=i+1;j + 8006064: 8bfb ldrh r3, [r7, #30] + 8006066: 3301 adds r3, #1 + 8006068: 83bb strh r3, [r7, #28] + 800606a: e031 b.n 80060d0 { if(buf[i]>buf[j])//升序排列 - 80052ec: 8bfb ldrh r3, [r7, #30] - 80052ee: 005b lsls r3, r3, #1 - 80052f0: f107 0220 add.w r2, r7, #32 - 80052f4: 4413 add r3, r2 - 80052f6: f833 2c14 ldrh.w r2, [r3, #-20] - 80052fa: 8bbb ldrh r3, [r7, #28] - 80052fc: 005b lsls r3, r3, #1 - 80052fe: f107 0120 add.w r1, r7, #32 - 8005302: 440b add r3, r1 - 8005304: f833 3c14 ldrh.w r3, [r3, #-20] - 8005308: 429a cmp r2, r3 - 800530a: d91e bls.n 800534a + 800606c: 8bfb ldrh r3, [r7, #30] + 800606e: 005b lsls r3, r3, #1 + 8006070: f107 0220 add.w r2, r7, #32 + 8006074: 4413 add r3, r2 + 8006076: f833 2c14 ldrh.w r2, [r3, #-20] + 800607a: 8bbb ldrh r3, [r7, #28] + 800607c: 005b lsls r3, r3, #1 + 800607e: f107 0120 add.w r1, r7, #32 + 8006082: 440b add r3, r1 + 8006084: f833 3c14 ldrh.w r3, [r3, #-20] + 8006088: 429a cmp r2, r3 + 800608a: d91e bls.n 80060ca { temp=buf[i]; - 800530c: 8bfb ldrh r3, [r7, #30] - 800530e: 005b lsls r3, r3, #1 - 8005310: f107 0220 add.w r2, r7, #32 - 8005314: 4413 add r3, r2 - 8005316: f833 3c14 ldrh.w r3, [r3, #-20] - 800531a: 833b strh r3, [r7, #24] + 800608c: 8bfb ldrh r3, [r7, #30] + 800608e: 005b lsls r3, r3, #1 + 8006090: f107 0220 add.w r2, r7, #32 + 8006094: 4413 add r3, r2 + 8006096: f833 3c14 ldrh.w r3, [r3, #-20] + 800609a: 833b strh r3, [r7, #24] buf[i]=buf[j]; - 800531c: 8bbb ldrh r3, [r7, #28] - 800531e: 8bfa ldrh r2, [r7, #30] - 8005320: 005b lsls r3, r3, #1 - 8005322: f107 0120 add.w r1, r7, #32 - 8005326: 440b add r3, r1 - 8005328: f833 1c14 ldrh.w r1, [r3, #-20] - 800532c: 0053 lsls r3, r2, #1 - 800532e: f107 0220 add.w r2, r7, #32 - 8005332: 4413 add r3, r2 - 8005334: 460a mov r2, r1 - 8005336: f823 2c14 strh.w r2, [r3, #-20] + 800609c: 8bbb ldrh r3, [r7, #28] + 800609e: 8bfa ldrh r2, [r7, #30] + 80060a0: 005b lsls r3, r3, #1 + 80060a2: f107 0120 add.w r1, r7, #32 + 80060a6: 440b add r3, r1 + 80060a8: f833 1c14 ldrh.w r1, [r3, #-20] + 80060ac: 0053 lsls r3, r2, #1 + 80060ae: f107 0220 add.w r2, r7, #32 + 80060b2: 4413 add r3, r2 + 80060b4: 460a mov r2, r1 + 80060b6: f823 2c14 strh.w r2, [r3, #-20] buf[j]=temp; - 800533a: 8bbb ldrh r3, [r7, #28] - 800533c: 005b lsls r3, r3, #1 - 800533e: f107 0220 add.w r2, r7, #32 - 8005342: 4413 add r3, r2 - 8005344: 8b3a ldrh r2, [r7, #24] - 8005346: f823 2c14 strh.w r2, [r3, #-20] + 80060ba: 8bbb ldrh r3, [r7, #28] + 80060bc: 005b lsls r3, r3, #1 + 80060be: f107 0220 add.w r2, r7, #32 + 80060c2: 4413 add r3, r2 + 80060c4: 8b3a ldrh r2, [r7, #24] + 80060c6: f823 2c14 strh.w r2, [r3, #-20] for(j=i+1;j + 80060ca: 8bbb ldrh r3, [r7, #28] + 80060cc: 3301 adds r3, #1 + 80060ce: 83bb strh r3, [r7, #28] + 80060d0: 8bbb ldrh r3, [r7, #28] + 80060d2: 2b04 cmp r3, #4 + 80060d4: d9ca bls.n 800606c for(i=0;i + 80060d6: 8bfb ldrh r3, [r7, #30] + 80060d8: 3301 adds r3, #1 + 80060da: 83fb strh r3, [r7, #30] + 80060dc: 8bfb ldrh r3, [r7, #30] + 80060de: 2b03 cmp r3, #3 + 80060e0: d9c0 bls.n 8006064 } } } sum=0; - 8005362: 2300 movs r3, #0 - 8005364: 837b strh r3, [r7, #26] + 80060e2: 2300 movs r3, #0 + 80060e4: 837b strh r3, [r7, #26] for(i=LOST_VAL;i - 800536c: 8bfb ldrh r3, [r7, #30] - 800536e: 005b lsls r3, r3, #1 - 8005370: f107 0220 add.w r2, r7, #32 - 8005374: 4413 add r3, r2 - 8005376: f833 2c14 ldrh.w r2, [r3, #-20] - 800537a: 8b7b ldrh r3, [r7, #26] - 800537c: 4413 add r3, r2 - 800537e: 837b strh r3, [r7, #26] - 8005380: 8bfb ldrh r3, [r7, #30] - 8005382: 3301 adds r3, #1 - 8005384: 83fb strh r3, [r7, #30] - 8005386: 8bfb ldrh r3, [r7, #30] - 8005388: 2b03 cmp r3, #3 - 800538a: d9ef bls.n 800536c + 80060e6: 2301 movs r3, #1 + 80060e8: 83fb strh r3, [r7, #30] + 80060ea: e00c b.n 8006106 + 80060ec: 8bfb ldrh r3, [r7, #30] + 80060ee: 005b lsls r3, r3, #1 + 80060f0: f107 0220 add.w r2, r7, #32 + 80060f4: 4413 add r3, r2 + 80060f6: f833 2c14 ldrh.w r2, [r3, #-20] + 80060fa: 8b7b ldrh r3, [r7, #26] + 80060fc: 4413 add r3, r2 + 80060fe: 837b strh r3, [r7, #26] + 8006100: 8bfb ldrh r3, [r7, #30] + 8006102: 3301 adds r3, #1 + 8006104: 83fb strh r3, [r7, #30] + 8006106: 8bfb ldrh r3, [r7, #30] + 8006108: 2b03 cmp r3, #3 + 800610a: d9ef bls.n 80060ec temp=sum/(READ_TIMES-2*LOST_VAL); - 800538c: 8b7b ldrh r3, [r7, #26] - 800538e: 4a05 ldr r2, [pc, #20] ; (80053a4 ) - 8005390: fba2 2303 umull r2, r3, r2, r3 - 8005394: 085b lsrs r3, r3, #1 - 8005396: 833b strh r3, [r7, #24] + 800610c: 8b7b ldrh r3, [r7, #26] + 800610e: 4a05 ldr r2, [pc, #20] ; (8006124 ) + 8006110: fba2 2303 umull r2, r3, r2, r3 + 8006114: 085b lsrs r3, r3, #1 + 8006116: 833b strh r3, [r7, #24] return temp; - 8005398: 8b3b ldrh r3, [r7, #24] + 8006118: 8b3b ldrh r3, [r7, #24] } - 800539a: 4618 mov r0, r3 - 800539c: 3724 adds r7, #36 ; 0x24 - 800539e: 46bd mov sp, r7 - 80053a0: bd90 pop {r4, r7, pc} - 80053a2: bf00 nop - 80053a4: aaaaaaab .word 0xaaaaaaab + 800611a: 4618 mov r0, r3 + 800611c: 3724 adds r7, #36 ; 0x24 + 800611e: 46bd mov sp, r7 + 8006120: bd90 pop {r4, r7, pc} + 8006122: bf00 nop + 8006124: aaaaaaab .word 0xaaaaaaab -080053a8 : +08006128 : //读取x,y坐标 //x,y:读取到的坐标ADC值 void TP_Read_XY_ADC(int16_t *x,int16_t *y) { - 80053a8: b580 push {r7, lr} - 80053aa: b084 sub sp, #16 - 80053ac: af00 add r7, sp, #0 - 80053ae: 6078 str r0, [r7, #4] - 80053b0: 6039 str r1, [r7, #0] + 8006128: b580 push {r7, lr} + 800612a: b084 sub sp, #16 + 800612c: af00 add r7, sp, #0 + 800612e: 6078 str r0, [r7, #4] + 8006130: 6039 str r1, [r7, #0] int16_t xtemp,ytemp; xtemp=TP_Read_XOY(CMD_RDX); - 80053b2: 2090 movs r0, #144 ; 0x90 - 80053b4: f7ff ff76 bl 80052a4 - 80053b8: 4603 mov r3, r0 - 80053ba: 81fb strh r3, [r7, #14] + 8006132: 2090 movs r0, #144 ; 0x90 + 8006134: f7ff ff76 bl 8006024 + 8006138: 4603 mov r3, r0 + 800613a: 81fb strh r3, [r7, #14] ytemp=TP_Read_XOY(CMD_RDY); - 80053bc: 20d0 movs r0, #208 ; 0xd0 - 80053be: f7ff ff71 bl 80052a4 - 80053c2: 4603 mov r3, r0 - 80053c4: 81bb strh r3, [r7, #12] + 800613c: 20d0 movs r0, #208 ; 0xd0 + 800613e: f7ff ff71 bl 8006024 + 8006142: 4603 mov r3, r0 + 8006144: 81bb strh r3, [r7, #12] *x=xtemp; - 80053c6: 687b ldr r3, [r7, #4] - 80053c8: 89fa ldrh r2, [r7, #14] - 80053ca: 801a strh r2, [r3, #0] + 8006146: 687b ldr r3, [r7, #4] + 8006148: 89fa ldrh r2, [r7, #14] + 800614a: 801a strh r2, [r3, #0] *y=ytemp; - 80053cc: 683b ldr r3, [r7, #0] - 80053ce: 89ba ldrh r2, [r7, #12] - 80053d0: 801a strh r2, [r3, #0] + 800614c: 683b ldr r3, [r7, #0] + 800614e: 89ba ldrh r2, [r7, #12] + 8006150: 801a strh r2, [r3, #0] } - 80053d2: bf00 nop - 80053d4: 3710 adds r7, #16 - 80053d6: 46bd mov sp, r7 - 80053d8: bd80 pop {r7, pc} + 8006152: bf00 nop + 8006154: 3710 adds r7, #16 + 8006156: 46bd mov sp, r7 + 8006158: bd80 pop {r7, pc} -080053da : +0800615a : //该函数能大大提高准确度 //x,y:读取到的坐标值 //返回值:0,失败;1,成功。 #define ERR_RANGE 10 //误差范围 uint8_t TP_Read_XY2(int16_t *x,int16_t *y) { - 80053da: b580 push {r7, lr} - 80053dc: b084 sub sp, #16 - 80053de: af00 add r7, sp, #0 - 80053e0: 6078 str r0, [r7, #4] - 80053e2: 6039 str r1, [r7, #0] + 800615a: b580 push {r7, lr} + 800615c: b084 sub sp, #16 + 800615e: af00 add r7, sp, #0 + 8006160: 6078 str r0, [r7, #4] + 8006162: 6039 str r1, [r7, #0] int16_t x1,y1; int16_t x2,y2; TP_Read_XY_ADC(&x1,&y1); - 80053e4: f107 020c add.w r2, r7, #12 - 80053e8: f107 030e add.w r3, r7, #14 - 80053ec: 4611 mov r1, r2 - 80053ee: 4618 mov r0, r3 - 80053f0: f7ff ffda bl 80053a8 + 8006164: f107 020c add.w r2, r7, #12 + 8006168: f107 030e add.w r3, r7, #14 + 800616c: 4611 mov r1, r2 + 800616e: 4618 mov r0, r3 + 8006170: f7ff ffda bl 8006128 TP_Read_XY_ADC(&x2,&y2); - 80053f4: f107 0208 add.w r2, r7, #8 - 80053f8: f107 030a add.w r3, r7, #10 - 80053fc: 4611 mov r1, r2 - 80053fe: 4618 mov r0, r3 - 8005400: f7ff ffd2 bl 80053a8 + 8006174: f107 0208 add.w r2, r7, #8 + 8006178: f107 030a add.w r3, r7, #10 + 800617c: 4611 mov r1, r2 + 800617e: 4618 mov r0, r3 + 8006180: f7ff ffd2 bl 8006128 if(((x2<=x1&&x1 - 8005410: f9b7 300a ldrsh.w r3, [r7, #10] - 8005414: 3309 adds r3, #9 - 8005416: f9b7 200e ldrsh.w r2, [r7, #14] - 800541a: 4293 cmp r3, r2 - 800541c: da0c bge.n 8005438 - 800541e: f9b7 200e ldrsh.w r2, [r7, #14] - 8005422: f9b7 300a ldrsh.w r3, [r7, #10] - 8005426: 429a cmp r2, r3 - 8005428: dc3a bgt.n 80054a0 - 800542a: f9b7 300e ldrsh.w r3, [r7, #14] - 800542e: 3309 adds r3, #9 - 8005430: f9b7 200a ldrsh.w r2, [r7, #10] - 8005434: 4293 cmp r3, r2 - 8005436: db33 blt.n 80054a0 + 8006184: f9b7 200a ldrsh.w r2, [r7, #10] + 8006188: f9b7 300e ldrsh.w r3, [r7, #14] + 800618c: 429a cmp r2, r3 + 800618e: dc06 bgt.n 800619e + 8006190: f9b7 300a ldrsh.w r3, [r7, #10] + 8006194: 3309 adds r3, #9 + 8006196: f9b7 200e ldrsh.w r2, [r7, #14] + 800619a: 4293 cmp r3, r2 + 800619c: da0c bge.n 80061b8 + 800619e: f9b7 200e ldrsh.w r2, [r7, #14] + 80061a2: f9b7 300a ldrsh.w r3, [r7, #10] + 80061a6: 429a cmp r2, r3 + 80061a8: dc3a bgt.n 8006220 + 80061aa: f9b7 300e ldrsh.w r3, [r7, #14] + 80061ae: 3309 adds r3, #9 + 80061b0: f9b7 200a ldrsh.w r2, [r7, #10] + 80061b4: 4293 cmp r3, r2 + 80061b6: db33 blt.n 8006220 &&((y2<=y1&&y1 - 8005444: f9b7 3008 ldrsh.w r3, [r7, #8] - 8005448: 3309 adds r3, #9 - 800544a: f9b7 200c ldrsh.w r2, [r7, #12] - 800544e: 4293 cmp r3, r2 - 8005450: da0c bge.n 800546c - 8005452: f9b7 200c ldrsh.w r2, [r7, #12] - 8005456: f9b7 3008 ldrsh.w r3, [r7, #8] - 800545a: 429a cmp r2, r3 - 800545c: dc20 bgt.n 80054a0 - 800545e: f9b7 300c ldrsh.w r3, [r7, #12] - 8005462: 3309 adds r3, #9 - 8005464: f9b7 2008 ldrsh.w r2, [r7, #8] - 8005468: 4293 cmp r3, r2 - 800546a: db19 blt.n 80054a0 + 80061b8: f9b7 2008 ldrsh.w r2, [r7, #8] + 80061bc: f9b7 300c ldrsh.w r3, [r7, #12] + 80061c0: 429a cmp r2, r3 + 80061c2: dc06 bgt.n 80061d2 + 80061c4: f9b7 3008 ldrsh.w r3, [r7, #8] + 80061c8: 3309 adds r3, #9 + 80061ca: f9b7 200c ldrsh.w r2, [r7, #12] + 80061ce: 4293 cmp r3, r2 + 80061d0: da0c bge.n 80061ec + 80061d2: f9b7 200c ldrsh.w r2, [r7, #12] + 80061d6: f9b7 3008 ldrsh.w r3, [r7, #8] + 80061da: 429a cmp r2, r3 + 80061dc: dc20 bgt.n 8006220 + 80061de: f9b7 300c ldrsh.w r3, [r7, #12] + 80061e2: 3309 adds r3, #9 + 80061e4: f9b7 2008 ldrsh.w r2, [r7, #8] + 80061e8: 4293 cmp r3, r2 + 80061ea: db19 blt.n 8006220 { *x=(x1+x2)/2; - 800546c: f9b7 300e ldrsh.w r3, [r7, #14] - 8005470: 461a mov r2, r3 - 8005472: f9b7 300a ldrsh.w r3, [r7, #10] - 8005476: 4413 add r3, r2 - 8005478: 0fda lsrs r2, r3, #31 - 800547a: 4413 add r3, r2 - 800547c: 105b asrs r3, r3, #1 - 800547e: b21a sxth r2, r3 - 8005480: 687b ldr r3, [r7, #4] - 8005482: 801a strh r2, [r3, #0] + 80061ec: f9b7 300e ldrsh.w r3, [r7, #14] + 80061f0: 461a mov r2, r3 + 80061f2: f9b7 300a ldrsh.w r3, [r7, #10] + 80061f6: 4413 add r3, r2 + 80061f8: 0fda lsrs r2, r3, #31 + 80061fa: 4413 add r3, r2 + 80061fc: 105b asrs r3, r3, #1 + 80061fe: b21a sxth r2, r3 + 8006200: 687b ldr r3, [r7, #4] + 8006202: 801a strh r2, [r3, #0] *y=(y1+y2)/2; - 8005484: f9b7 300c ldrsh.w r3, [r7, #12] - 8005488: 461a mov r2, r3 - 800548a: f9b7 3008 ldrsh.w r3, [r7, #8] - 800548e: 4413 add r3, r2 - 8005490: 0fda lsrs r2, r3, #31 - 8005492: 4413 add r3, r2 - 8005494: 105b asrs r3, r3, #1 - 8005496: b21a sxth r2, r3 - 8005498: 683b ldr r3, [r7, #0] - 800549a: 801a strh r2, [r3, #0] + 8006204: f9b7 300c ldrsh.w r3, [r7, #12] + 8006208: 461a mov r2, r3 + 800620a: f9b7 3008 ldrsh.w r3, [r7, #8] + 800620e: 4413 add r3, r2 + 8006210: 0fda lsrs r2, r3, #31 + 8006212: 4413 add r3, r2 + 8006214: 105b asrs r3, r3, #1 + 8006216: b21a sxth r2, r3 + 8006218: 683b ldr r3, [r7, #0] + 800621a: 801a strh r2, [r3, #0] return 1; - 800549c: 2301 movs r3, #1 - 800549e: e000 b.n 80054a2 + 800621c: 2301 movs r3, #1 + 800621e: e000 b.n 8006222 }else return 0; - 80054a0: 2300 movs r3, #0 + 8006220: 2300 movs r3, #0 } - 80054a2: 4618 mov r0, r3 - 80054a4: 3710 adds r7, #16 - 80054a6: 46bd mov sp, r7 - 80054a8: bd80 pop {r7, pc} + 8006222: 4618 mov r0, r3 + 8006224: 3710 adds r7, #16 + 8006226: 46bd mov sp, r7 + 8006228: bd80 pop {r7, pc} ... -080054ac : +0800622c : touch_device t0;// t0 yyds~ touch_config tconfig; //触摸更新服务,状态机写法,循环获取坐标 void TP_Server() { - 80054ac: b598 push {r3, r4, r7, lr} - 80054ae: af00 add r7, sp, #0 + 800622c: b598 push {r3, r4, r7, lr} + 800622e: af00 add r7, sp, #0 if(TPEN==0) //如果有触摸 - 80054b0: f44f 6180 mov.w r1, #1024 ; 0x400 - 80054b4: 4835 ldr r0, [pc, #212] ; (800558c ) - 80054b6: f7fc fe2f bl 8002118 - 80054ba: 4603 mov r3, r0 - 80054bc: 2b00 cmp r3, #0 - 80054be: d155 bne.n 800556c + 8006230: f44f 6180 mov.w r1, #1024 ; 0x400 + 8006234: 4835 ldr r0, [pc, #212] ; (800630c ) + 8006236: f7fc f861 bl 80022fc + 800623a: 4603 mov r3, r0 + 800623c: 2b00 cmp r3, #0 + 800623e: d155 bne.n 80062ec { if(TP_Read_XY2(&t0.adc_x,&t0.adc_y)) - 80054c0: 4933 ldr r1, [pc, #204] ; (8005590 ) - 80054c2: 4834 ldr r0, [pc, #208] ; (8005594 ) - 80054c4: f7ff ff89 bl 80053da - 80054c8: 4603 mov r3, r0 - 80054ca: 2b00 cmp r3, #0 - 80054cc: d043 beq.n 8005556 + 8006240: 4933 ldr r1, [pc, #204] ; (8006310 ) + 8006242: 4834 ldr r0, [pc, #208] ; (8006314 ) + 8006244: f7ff ff89 bl 800615a + 8006248: 4603 mov r3, r0 + 800624a: 2b00 cmp r3, #0 + 800624c: d043 beq.n 80062d6 {//先读取ad值 t0.pix_x=(t0.adc_x/tconfig.x_acc)-tconfig.x_offset;//转换为像素坐标 - 80054ce: 4b31 ldr r3, [pc, #196] ; (8005594 ) - 80054d0: 881b ldrh r3, [r3, #0] - 80054d2: 4618 mov r0, r3 - 80054d4: f7fb fc4e bl 8000d74 <__aeabi_i2f> - 80054d8: 4602 mov r2, r0 - 80054da: 4b2f ldr r3, [pc, #188] ; (8005598 ) - 80054dc: 685b ldr r3, [r3, #4] - 80054de: 4619 mov r1, r3 - 80054e0: 4610 mov r0, r2 - 80054e2: f7fb fd4f bl 8000f84 <__aeabi_fdiv> - 80054e6: 4603 mov r3, r0 - 80054e8: 461c mov r4, r3 - 80054ea: 4b2b ldr r3, [pc, #172] ; (8005598 ) - 80054ec: 68db ldr r3, [r3, #12] - 80054ee: 4618 mov r0, r3 - 80054f0: f7fb fc40 bl 8000d74 <__aeabi_i2f> - 80054f4: 4603 mov r3, r0 - 80054f6: 4619 mov r1, r3 - 80054f8: 4620 mov r0, r4 - 80054fa: f7fb fb85 bl 8000c08 <__aeabi_fsub> - 80054fe: 4603 mov r3, r0 - 8005500: 4618 mov r0, r3 - 8005502: f7fb fddb bl 80010bc <__aeabi_f2iz> - 8005506: 4603 mov r3, r0 - 8005508: 4a22 ldr r2, [pc, #136] ; (8005594 ) - 800550a: 6053 str r3, [r2, #4] + 800624e: 4b31 ldr r3, [pc, #196] ; (8006314 ) + 8006250: 881b ldrh r3, [r3, #0] + 8006252: 4618 mov r0, r3 + 8006254: f7fa fd8e bl 8000d74 <__aeabi_i2f> + 8006258: 4602 mov r2, r0 + 800625a: 4b2f ldr r3, [pc, #188] ; (8006318 ) + 800625c: 685b ldr r3, [r3, #4] + 800625e: 4619 mov r1, r3 + 8006260: 4610 mov r0, r2 + 8006262: f7fa fe8f bl 8000f84 <__aeabi_fdiv> + 8006266: 4603 mov r3, r0 + 8006268: 461c mov r4, r3 + 800626a: 4b2b ldr r3, [pc, #172] ; (8006318 ) + 800626c: 68db ldr r3, [r3, #12] + 800626e: 4618 mov r0, r3 + 8006270: f7fa fd80 bl 8000d74 <__aeabi_i2f> + 8006274: 4603 mov r3, r0 + 8006276: 4619 mov r1, r3 + 8006278: 4620 mov r0, r4 + 800627a: f7fa fcc5 bl 8000c08 <__aeabi_fsub> + 800627e: 4603 mov r3, r0 + 8006280: 4618 mov r0, r3 + 8006282: f7fa ff1b bl 80010bc <__aeabi_f2iz> + 8006286: 4603 mov r3, r0 + 8006288: 4a22 ldr r2, [pc, #136] ; (8006314 ) + 800628a: 6053 str r3, [r2, #4] t0.pix_y=(t0.adc_y/tconfig.y_acc)-tconfig.y_offset; - 800550c: 4b21 ldr r3, [pc, #132] ; (8005594 ) - 800550e: 885b ldrh r3, [r3, #2] - 8005510: 4618 mov r0, r3 - 8005512: f7fb fc2f bl 8000d74 <__aeabi_i2f> - 8005516: 4602 mov r2, r0 - 8005518: 4b1f ldr r3, [pc, #124] ; (8005598 ) - 800551a: 689b ldr r3, [r3, #8] - 800551c: 4619 mov r1, r3 - 800551e: 4610 mov r0, r2 - 8005520: f7fb fd30 bl 8000f84 <__aeabi_fdiv> - 8005524: 4603 mov r3, r0 - 8005526: 461c mov r4, r3 - 8005528: 4b1b ldr r3, [pc, #108] ; (8005598 ) - 800552a: 691b ldr r3, [r3, #16] - 800552c: 4618 mov r0, r3 - 800552e: f7fb fc21 bl 8000d74 <__aeabi_i2f> - 8005532: 4603 mov r3, r0 - 8005534: 4619 mov r1, r3 - 8005536: 4620 mov r0, r4 - 8005538: f7fb fb66 bl 8000c08 <__aeabi_fsub> - 800553c: 4603 mov r3, r0 - 800553e: 4618 mov r0, r3 - 8005540: f7fb fdbc bl 80010bc <__aeabi_f2iz> - 8005544: 4603 mov r3, r0 - 8005546: 4a13 ldr r2, [pc, #76] ; (8005594 ) - 8005548: 6093 str r3, [r2, #8] + 800628c: 4b21 ldr r3, [pc, #132] ; (8006314 ) + 800628e: 885b ldrh r3, [r3, #2] + 8006290: 4618 mov r0, r3 + 8006292: f7fa fd6f bl 8000d74 <__aeabi_i2f> + 8006296: 4602 mov r2, r0 + 8006298: 4b1f ldr r3, [pc, #124] ; (8006318 ) + 800629a: 689b ldr r3, [r3, #8] + 800629c: 4619 mov r1, r3 + 800629e: 4610 mov r0, r2 + 80062a0: f7fa fe70 bl 8000f84 <__aeabi_fdiv> + 80062a4: 4603 mov r3, r0 + 80062a6: 461c mov r4, r3 + 80062a8: 4b1b ldr r3, [pc, #108] ; (8006318 ) + 80062aa: 691b ldr r3, [r3, #16] + 80062ac: 4618 mov r0, r3 + 80062ae: f7fa fd61 bl 8000d74 <__aeabi_i2f> + 80062b2: 4603 mov r3, r0 + 80062b4: 4619 mov r1, r3 + 80062b6: 4620 mov r0, r4 + 80062b8: f7fa fca6 bl 8000c08 <__aeabi_fsub> + 80062bc: 4603 mov r3, r0 + 80062be: 4618 mov r0, r3 + 80062c0: f7fa fefc bl 80010bc <__aeabi_f2iz> + 80062c4: 4603 mov r3, r0 + 80062c6: 4a13 ldr r2, [pc, #76] ; (8006314 ) + 80062c8: 6093 str r3, [r2, #8] t0.d=1; - 800554a: 4a12 ldr r2, [pc, #72] ; (8005594 ) - 800554c: 7b13 ldrb r3, [r2, #12] - 800554e: f043 0304 orr.w r3, r3, #4 - 8005552: 7313 strb r3, [r2, #12] - 8005554: e004 b.n 8005560 + 80062ca: 4a12 ldr r2, [pc, #72] ; (8006314 ) + 80062cc: 7b13 ldrb r3, [r2, #12] + 80062ce: f043 0304 orr.w r3, r3, #4 + 80062d2: 7313 strb r3, [r2, #12] + 80062d4: e004 b.n 80062e0 }else { t0.d=0; - 8005556: 4a0f ldr r2, [pc, #60] ; (8005594 ) - 8005558: 7b13 ldrb r3, [r2, #12] - 800555a: f36f 0382 bfc r3, #2, #1 - 800555e: 7313 strb r3, [r2, #12] + 80062d6: 4a0f ldr r2, [pc, #60] ; (8006314 ) + 80062d8: 7b13 ldrb r3, [r2, #12] + 80062da: f36f 0382 bfc r3, #2, #1 + 80062de: 7313 strb r3, [r2, #12] } t0.c=1; - 8005560: 4a0c ldr r2, [pc, #48] ; (8005594 ) - 8005562: 7b13 ldrb r3, [r2, #12] - 8005564: f043 0302 orr.w r3, r3, #2 - 8005568: 7313 strb r3, [r2, #12] + 80062e0: 4a0c ldr r2, [pc, #48] ; (8006314 ) + 80062e2: 7b13 ldrb r3, [r2, #12] + 80062e4: f043 0302 orr.w r3, r3, #2 + 80062e8: 7313 strb r3, [r2, #12] { t0.c=0; t0.pix_x=-1; t0.pix_y=-1; } } - 800556a: e00c b.n 8005586 + 80062ea: e00c b.n 8006306 t0.c=0; - 800556c: 4a09 ldr r2, [pc, #36] ; (8005594 ) - 800556e: 7b13 ldrb r3, [r2, #12] - 8005570: f36f 0341 bfc r3, #1, #1 - 8005574: 7313 strb r3, [r2, #12] + 80062ec: 4a09 ldr r2, [pc, #36] ; (8006314 ) + 80062ee: 7b13 ldrb r3, [r2, #12] + 80062f0: f36f 0341 bfc r3, #1, #1 + 80062f4: 7313 strb r3, [r2, #12] t0.pix_x=-1; - 8005576: 4b07 ldr r3, [pc, #28] ; (8005594 ) - 8005578: f04f 32ff mov.w r2, #4294967295 - 800557c: 605a str r2, [r3, #4] + 80062f6: 4b07 ldr r3, [pc, #28] ; (8006314 ) + 80062f8: f04f 32ff mov.w r2, #4294967295 + 80062fc: 605a str r2, [r3, #4] t0.pix_y=-1; - 800557e: 4b05 ldr r3, [pc, #20] ; (8005594 ) - 8005580: f04f 32ff mov.w r2, #4294967295 - 8005584: 609a str r2, [r3, #8] + 80062fe: 4b05 ldr r3, [pc, #20] ; (8006314 ) + 8006300: f04f 32ff mov.w r2, #4294967295 + 8006304: 609a str r2, [r3, #8] } - 8005586: bf00 nop - 8005588: bd98 pop {r3, r4, r7, pc} - 800558a: bf00 nop - 800558c: 40011c00 .word 0x40011c00 - 8005590: 20000412 .word 0x20000412 - 8005594: 20000410 .word 0x20000410 - 8005598: 200003f8 .word 0x200003f8 + 8006306: bf00 nop + 8006308: bd98 pop {r3, r4, r7, pc} + 800630a: bf00 nop + 800630c: 40011c00 .word 0x40011c00 + 8006310: 20000422 .word 0x20000422 + 8006314: 20000420 .word 0x20000420 + 8006318: 20000408 .word 0x20000408 -0800559c : +0800631c : return 0; } //校准用,画一个目标坐标 //r=坐标半径,显示特效用 void TP_DrwaTrage(int x,int y,int r) { - 800559c: b590 push {r4, r7, lr} - 800559e: b087 sub sp, #28 - 80055a0: af02 add r7, sp, #8 - 80055a2: 60f8 str r0, [r7, #12] - 80055a4: 60b9 str r1, [r7, #8] - 80055a6: 607a str r2, [r7, #4] + 800631c: b590 push {r4, r7, lr} + 800631e: b087 sub sp, #28 + 8006320: af02 add r7, sp, #8 + 8006322: 60f8 str r0, [r7, #12] + 8006324: 60b9 str r1, [r7, #8] + 8006326: 607a str r2, [r7, #4] Draw_Circle(x,y,r+1,GRAY); - 80055a8: 68fb ldr r3, [r7, #12] - 80055aa: b298 uxth r0, r3 - 80055ac: 68bb ldr r3, [r7, #8] - 80055ae: b299 uxth r1, r3 - 80055b0: 687b ldr r3, [r7, #4] - 80055b2: b29b uxth r3, r3 - 80055b4: 3301 adds r3, #1 - 80055b6: b29a uxth r2, r3 - 80055b8: f248 4330 movw r3, #33840 ; 0x8430 - 80055bc: f7ff fb23 bl 8004c06 + 8006328: 68fb ldr r3, [r7, #12] + 800632a: b298 uxth r0, r3 + 800632c: 68bb ldr r3, [r7, #8] + 800632e: b299 uxth r1, r3 + 8006330: 687b ldr r3, [r7, #4] + 8006332: b29b uxth r3, r3 + 8006334: 3301 adds r3, #1 + 8006336: b29a uxth r2, r3 + 8006338: f248 4330 movw r3, #33840 ; 0x8430 + 800633c: f7ff fa4f bl 80057de Draw_Circle(x,y,r,RED); - 80055c0: 68fb ldr r3, [r7, #12] - 80055c2: b298 uxth r0, r3 - 80055c4: 68bb ldr r3, [r7, #8] - 80055c6: b299 uxth r1, r3 - 80055c8: 687b ldr r3, [r7, #4] - 80055ca: b29a uxth r2, r3 - 80055cc: f44f 4378 mov.w r3, #63488 ; 0xf800 - 80055d0: f7ff fb19 bl 8004c06 + 8006340: 68fb ldr r3, [r7, #12] + 8006342: b298 uxth r0, r3 + 8006344: 68bb ldr r3, [r7, #8] + 8006346: b299 uxth r1, r3 + 8006348: 687b ldr r3, [r7, #4] + 800634a: b29a uxth r2, r3 + 800634c: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006350: f7ff fa45 bl 80057de LCD_DrawLine(x,y,x+10,y,RED); - 80055d4: 68fb ldr r3, [r7, #12] - 80055d6: b298 uxth r0, r3 - 80055d8: 68bb ldr r3, [r7, #8] - 80055da: b299 uxth r1, r3 - 80055dc: 68fb ldr r3, [r7, #12] - 80055de: b29b uxth r3, r3 - 80055e0: 330a adds r3, #10 - 80055e2: b29a uxth r2, r3 - 80055e4: 68bb ldr r3, [r7, #8] - 80055e6: b29b uxth r3, r3 - 80055e8: f44f 4478 mov.w r4, #63488 ; 0xf800 - 80055ec: 9400 str r4, [sp, #0] - 80055ee: f7ff fa85 bl 8004afc + 8006354: 68fb ldr r3, [r7, #12] + 8006356: b298 uxth r0, r3 + 8006358: 68bb ldr r3, [r7, #8] + 800635a: b299 uxth r1, r3 + 800635c: 68fb ldr r3, [r7, #12] + 800635e: b29b uxth r3, r3 + 8006360: 330a adds r3, #10 + 8006362: b29a uxth r2, r3 + 8006364: 68bb ldr r3, [r7, #8] + 8006366: b29b uxth r3, r3 + 8006368: f44f 4478 mov.w r4, #63488 ; 0xf800 + 800636c: 9400 str r4, [sp, #0] + 800636e: f7ff f9b1 bl 80056d4 LCD_DrawLine(x,y,x,y+10,RED); - 80055f2: 68fb ldr r3, [r7, #12] - 80055f4: b298 uxth r0, r3 - 80055f6: 68bb ldr r3, [r7, #8] - 80055f8: b299 uxth r1, r3 - 80055fa: 68fb ldr r3, [r7, #12] - 80055fc: b29a uxth r2, r3 - 80055fe: 68bb ldr r3, [r7, #8] - 8005600: b29b uxth r3, r3 - 8005602: 330a adds r3, #10 - 8005604: b29b uxth r3, r3 - 8005606: f44f 4478 mov.w r4, #63488 ; 0xf800 - 800560a: 9400 str r4, [sp, #0] - 800560c: f7ff fa76 bl 8004afc + 8006372: 68fb ldr r3, [r7, #12] + 8006374: b298 uxth r0, r3 + 8006376: 68bb ldr r3, [r7, #8] + 8006378: b299 uxth r1, r3 + 800637a: 68fb ldr r3, [r7, #12] + 800637c: b29a uxth r2, r3 + 800637e: 68bb ldr r3, [r7, #8] + 8006380: b29b uxth r3, r3 + 8006382: 330a adds r3, #10 + 8006384: b29b uxth r3, r3 + 8006386: f44f 4478 mov.w r4, #63488 ; 0xf800 + 800638a: 9400 str r4, [sp, #0] + 800638c: f7ff f9a2 bl 80056d4 LCD_DrawLine(x,y,x-10,y,RED); - 8005610: 68fb ldr r3, [r7, #12] - 8005612: b298 uxth r0, r3 - 8005614: 68bb ldr r3, [r7, #8] - 8005616: b299 uxth r1, r3 - 8005618: 68fb ldr r3, [r7, #12] - 800561a: b29b uxth r3, r3 - 800561c: 3b0a subs r3, #10 - 800561e: b29a uxth r2, r3 - 8005620: 68bb ldr r3, [r7, #8] - 8005622: b29b uxth r3, r3 - 8005624: f44f 4478 mov.w r4, #63488 ; 0xf800 - 8005628: 9400 str r4, [sp, #0] - 800562a: f7ff fa67 bl 8004afc + 8006390: 68fb ldr r3, [r7, #12] + 8006392: b298 uxth r0, r3 + 8006394: 68bb ldr r3, [r7, #8] + 8006396: b299 uxth r1, r3 + 8006398: 68fb ldr r3, [r7, #12] + 800639a: b29b uxth r3, r3 + 800639c: 3b0a subs r3, #10 + 800639e: b29a uxth r2, r3 + 80063a0: 68bb ldr r3, [r7, #8] + 80063a2: b29b uxth r3, r3 + 80063a4: f44f 4478 mov.w r4, #63488 ; 0xf800 + 80063a8: 9400 str r4, [sp, #0] + 80063aa: f7ff f993 bl 80056d4 LCD_DrawLine(x,y,x,y-10,RED); - 800562e: 68fb ldr r3, [r7, #12] - 8005630: b298 uxth r0, r3 - 8005632: 68bb ldr r3, [r7, #8] - 8005634: b299 uxth r1, r3 - 8005636: 68fb ldr r3, [r7, #12] - 8005638: b29a uxth r2, r3 - 800563a: 68bb ldr r3, [r7, #8] - 800563c: b29b uxth r3, r3 - 800563e: 3b0a subs r3, #10 - 8005640: b29b uxth r3, r3 - 8005642: f44f 4478 mov.w r4, #63488 ; 0xf800 - 8005646: 9400 str r4, [sp, #0] - 8005648: f7ff fa58 bl 8004afc + 80063ae: 68fb ldr r3, [r7, #12] + 80063b0: b298 uxth r0, r3 + 80063b2: 68bb ldr r3, [r7, #8] + 80063b4: b299 uxth r1, r3 + 80063b6: 68fb ldr r3, [r7, #12] + 80063b8: b29a uxth r2, r3 + 80063ba: 68bb ldr r3, [r7, #8] + 80063bc: b29b uxth r3, r3 + 80063be: 3b0a subs r3, #10 + 80063c0: b29b uxth r3, r3 + 80063c2: f44f 4478 mov.w r4, #63488 ; 0xf800 + 80063c6: 9400 str r4, [sp, #0] + 80063c8: f7ff f984 bl 80056d4 } - 800564c: bf00 nop - 800564e: 3714 adds r7, #20 - 8005650: 46bd mov sp, r7 - 8005652: bd90 pop {r4, r7, pc} + 80063cc: bf00 nop + 80063ce: 3714 adds r7, #20 + 80063d0: 46bd mov sp, r7 + 80063d2: bd90 pop {r4, r7, pc} -08005654 : +080063d4 : //触摸屏校准 //mode 校准模式,0 被动校准 ,1 主动校准 void TP_adjustment(char mode) { - 8005654: b5b0 push {r4, r5, r7, lr} - 8005656: b0a6 sub sp, #152 ; 0x98 - 8005658: af02 add r7, sp, #8 - 800565a: 4603 mov r3, r0 - 800565c: 71fb strb r3, [r7, #7] + 80063d4: b5b0 push {r4, r5, r7, lr} + 80063d6: b0a6 sub sp, #152 ; 0x98 + 80063d8: af02 add r7, sp, #8 + 80063da: 4603 mov r3, r0 + 80063dc: 71fb strb r3, [r7, #7] //判断是否需要校准,从eeprom获取数据 EEPROM_READ_BATY(16,(char *)&tconfig,sizeof(touch_config)); - 800565e: 2218 movs r2, #24 - 8005660: 4917 ldr r1, [pc, #92] ; (80056c0 ) - 8005662: 2010 movs r0, #16 - 8005664: f7ff fc94 bl 8004f90 + 80063de: 2218 movs r2, #24 + 80063e0: 4917 ldr r1, [pc, #92] ; (8006440 ) + 80063e2: 2010 movs r0, #16 + 80063e4: f7ff fc94 bl 8005d10 if(tconfig.begin==0xab&&tconfig.end==0xcd&&mode==0) //判断校准标记 - 8005668: 4b15 ldr r3, [pc, #84] ; (80056c0 ) - 800566a: 781b ldrb r3, [r3, #0] - 800566c: 2bab cmp r3, #171 ; 0xab - 800566e: d107 bne.n 8005680 - 8005670: 4b13 ldr r3, [pc, #76] ; (80056c0 ) - 8005672: 7d1b ldrb r3, [r3, #20] - 8005674: 2bcd cmp r3, #205 ; 0xcd - 8005676: d103 bne.n 8005680 - 8005678: 79fb ldrb r3, [r7, #7] - 800567a: 2b00 cmp r3, #0 - 800567c: f000 82b8 beq.w 8005bf0 + 80063e8: 4b15 ldr r3, [pc, #84] ; (8006440 ) + 80063ea: 781b ldrb r3, [r3, #0] + 80063ec: 2bab cmp r3, #171 ; 0xab + 80063ee: d107 bne.n 8006400 + 80063f0: 4b13 ldr r3, [pc, #76] ; (8006440 ) + 80063f2: 7d1b ldrb r3, [r3, #20] + 80063f4: 2bcd cmp r3, #205 ; 0xcd + 80063f6: d103 bne.n 8006400 + 80063f8: 79fb ldrb r3, [r7, #7] + 80063fa: 2b00 cmp r3, #0 + 80063fc: f000 82b8 beq.w 8006970 { return; //已经校准过了 } //校准方法比较简单,读取4个坐标计算ad值与像素的关系 char str[64]; //用于字符串提示 uint16_t y_adc,x_adc,step=0,r=10; //adc缓存,校准步骤,坐标的半径 - 8005680: 2300 movs r3, #0 - 8005682: f8a7 308e strh.w r3, [r7, #142] ; 0x8e - 8005686: 230a movs r3, #10 - 8005688: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8006400: 2300 movs r3, #0 + 8006402: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 8006406: 230a movs r3, #10 + 8006408: f8a7 308c strh.w r3, [r7, #140] ; 0x8c uint16_t y1,y2,y3,y4,x1,x2,x3,x4; //4个点缓存 int y5,x5,xd,xl,yd,yl; //通过4个点算出xy的长边和短边 float acc_x,acc_y; //算出的关系倍率 int offset_x,offset_y; //算出的偏差 uint32_t wait=HAL_GetTick()+50000,ms100=0; //校准时间,50秒没操作就自动退出 - 800568c: f7fc fa74 bl 8001b78 - 8005690: 4603 mov r3, r0 - 8005692: f503 4343 add.w r3, r3, #49920 ; 0xc300 - 8005696: 3350 adds r3, #80 ; 0x50 - 8005698: 67bb str r3, [r7, #120] ; 0x78 - 800569a: 2300 movs r3, #0 - 800569c: 677b str r3, [r7, #116] ; 0x74 + 800640c: f7fb fca6 bl 8001d5c + 8006410: 4603 mov r3, r0 + 8006412: f503 4343 add.w r3, r3, #49920 ; 0xc300 + 8006416: 3350 adds r3, #80 ; 0x50 + 8006418: 67bb str r3, [r7, #120] ; 0x78 + 800641a: 2300 movs r3, #0 + 800641c: 677b str r3, [r7, #116] ; 0x74 //显示字符串提示 LCD_Clear(GRAY); - 800569e: f248 4030 movw r0, #33840 ; 0x8430 - 80056a2: f7ff f9d9 bl 8004a58 + 800641e: f248 4030 movw r0, #33840 ; 0x8430 + 8006422: f7ff f905 bl 8005630 LCD_ShowString(0,50,"Calibrate the touch screen",16,RED,RED); - 80056a6: f44f 4378 mov.w r3, #63488 ; 0xf800 - 80056aa: 9301 str r3, [sp, #4] - 80056ac: f44f 4378 mov.w r3, #63488 ; 0xf800 - 80056b0: 9300 str r3, [sp, #0] - 80056b2: 2310 movs r3, #16 - 80056b4: 4a03 ldr r2, [pc, #12] ; (80056c4 ) - 80056b6: 2132 movs r1, #50 ; 0x32 - 80056b8: 2000 movs r0, #0 - 80056ba: f7ff fbcb bl 8004e54 + 8006426: f44f 4378 mov.w r3, #63488 ; 0xf800 + 800642a: 9301 str r3, [sp, #4] + 800642c: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006430: 9300 str r3, [sp, #0] + 8006432: 2310 movs r3, #16 + 8006434: 4a03 ldr r2, [pc, #12] ; (8006444 ) + 8006436: 2132 movs r1, #50 ; 0x32 + 8006438: 2000 movs r0, #0 + 800643a: f7ff faf7 bl 8005a2c //TP_DrwaTrage(30,30,10); //开始校准 while(HAL_GetTick() - 80056c0: 200003f8 .word 0x200003f8 - 80056c4: 080098a8 .word 0x080098a8 + 800643e: e28f b.n 8006960 + 8006440: 20000408 .word 0x20000408 + 8006444: 0800a790 .word 0x0800a790 { if(TPEN==0) //如果屏幕被按下 - 80056c8: f44f 6180 mov.w r1, #1024 ; 0x400 - 80056cc: 48d7 ldr r0, [pc, #860] ; (8005a2c ) - 80056ce: f7fc fd23 bl 8002118 - 80056d2: 4603 mov r3, r0 - 80056d4: 2b00 cmp r3, #0 - 80056d6: d14c bne.n 8005772 + 8006448: f44f 6180 mov.w r1, #1024 ; 0x400 + 800644c: 48d7 ldr r0, [pc, #860] ; (80067ac ) + 800644e: f7fb ff55 bl 80022fc + 8006452: 4603 mov r3, r0 + 8006454: 2b00 cmp r3, #0 + 8006456: d14c bne.n 80064f2 { wait=HAL_GetTick()+50000; //重置50秒 - 80056d8: f7fc fa4e bl 8001b78 - 80056dc: 4603 mov r3, r0 - 80056de: f503 4343 add.w r3, r3, #49920 ; 0xc300 - 80056e2: 3350 adds r3, #80 ; 0x50 - 80056e4: 67bb str r3, [r7, #120] ; 0x78 + 8006458: f7fb fc80 bl 8001d5c + 800645c: 4603 mov r3, r0 + 800645e: f503 4343 add.w r3, r3, #49920 ; 0xc300 + 8006462: 3350 adds r3, #80 ; 0x50 + 8006464: 67bb str r3, [r7, #120] ; 0x78 TP_Read_XY2(&x_adc,&y_adc); //读取xy ad值 - 80056e6: f107 020a add.w r2, r7, #10 - 80056ea: f107 0308 add.w r3, r7, #8 - 80056ee: 4611 mov r1, r2 - 80056f0: 4618 mov r0, r3 - 80056f2: f7ff fe72 bl 80053da + 8006466: f107 020a add.w r2, r7, #10 + 800646a: f107 0308 add.w r3, r7, #8 + 800646e: 4611 mov r1, r2 + 8006470: 4618 mov r0, r3 + 8006472: f7ff fe72 bl 800615a //将读到的值显示出来 sprintf(str,"ADC_X:%04d",x_adc); - 80056f6: 893b ldrh r3, [r7, #8] - 80056f8: 461a mov r2, r3 - 80056fa: f107 030c add.w r3, r7, #12 - 80056fe: 49cc ldr r1, [pc, #816] ; (8005a30 ) - 8005700: 4618 mov r0, r3 - 8005702: f001 ff41 bl 8007588 + 8006476: 893b ldrh r3, [r7, #8] + 8006478: 461a mov r2, r3 + 800647a: f107 030c add.w r3, r7, #12 + 800647e: 49cc ldr r1, [pc, #816] ; (80067b0 ) + 8006480: 4618 mov r0, r3 + 8006482: f001 fff7 bl 8008474 LCD_ShowString(100, 0, str, 16, RED, GRAY); - 8005706: f107 020c add.w r2, r7, #12 - 800570a: f248 4330 movw r3, #33840 ; 0x8430 - 800570e: 9301 str r3, [sp, #4] - 8005710: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8005714: 9300 str r3, [sp, #0] - 8005716: 2310 movs r3, #16 - 8005718: 2100 movs r1, #0 - 800571a: 2064 movs r0, #100 ; 0x64 - 800571c: f7ff fb9a bl 8004e54 + 8006486: f107 020c add.w r2, r7, #12 + 800648a: f248 4330 movw r3, #33840 ; 0x8430 + 800648e: 9301 str r3, [sp, #4] + 8006490: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006494: 9300 str r3, [sp, #0] + 8006496: 2310 movs r3, #16 + 8006498: 2100 movs r1, #0 + 800649a: 2064 movs r0, #100 ; 0x64 + 800649c: f7ff fac6 bl 8005a2c sprintf(str,"ADC_Y:%04d",y_adc); - 8005720: 897b ldrh r3, [r7, #10] - 8005722: 461a mov r2, r3 - 8005724: f107 030c add.w r3, r7, #12 - 8005728: 49c2 ldr r1, [pc, #776] ; (8005a34 ) - 800572a: 4618 mov r0, r3 - 800572c: f001 ff2c bl 8007588 + 80064a0: 897b ldrh r3, [r7, #10] + 80064a2: 461a mov r2, r3 + 80064a4: f107 030c add.w r3, r7, #12 + 80064a8: 49c2 ldr r1, [pc, #776] ; (80067b4 ) + 80064aa: 4618 mov r0, r3 + 80064ac: f001 ffe2 bl 8008474 LCD_ShowString(100, 16, str, 16, RED, GRAY); - 8005730: f107 020c add.w r2, r7, #12 - 8005734: f248 4330 movw r3, #33840 ; 0x8430 - 8005738: 9301 str r3, [sp, #4] - 800573a: f44f 4378 mov.w r3, #63488 ; 0xf800 - 800573e: 9300 str r3, [sp, #0] - 8005740: 2310 movs r3, #16 - 8005742: 2110 movs r1, #16 - 8005744: 2064 movs r0, #100 ; 0x64 - 8005746: f7ff fb85 bl 8004e54 + 80064b0: f107 020c add.w r2, r7, #12 + 80064b4: f248 4330 movw r3, #33840 ; 0x8430 + 80064b8: 9301 str r3, [sp, #4] + 80064ba: f44f 4378 mov.w r3, #63488 ; 0xf800 + 80064be: 9300 str r3, [sp, #0] + 80064c0: 2310 movs r3, #16 + 80064c2: 2110 movs r1, #16 + 80064c4: 2064 movs r0, #100 ; 0x64 + 80064c6: f7ff fab1 bl 8005a2c //特效,半径开始收缩 if(HAL_GetTick()>ms100) - 800574a: f7fc fa15 bl 8001b78 - 800574e: 4602 mov r2, r0 - 8005750: 6f7b ldr r3, [r7, #116] ; 0x74 - 8005752: 4293 cmp r3, r2 - 8005754: d20d bcs.n 8005772 + 80064ca: f7fb fc47 bl 8001d5c + 80064ce: 4602 mov r2, r0 + 80064d0: 6f7b ldr r3, [r7, #116] ; 0x74 + 80064d2: 4293 cmp r3, r2 + 80064d4: d20d bcs.n 80064f2 { ms100=HAL_GetTick()+100; - 8005756: f7fc fa0f bl 8001b78 - 800575a: 4603 mov r3, r0 - 800575c: 3364 adds r3, #100 ; 0x64 - 800575e: 677b str r3, [r7, #116] ; 0x74 + 80064d6: f7fb fc41 bl 8001d5c + 80064da: 4603 mov r3, r0 + 80064dc: 3364 adds r3, #100 ; 0x64 + 80064de: 677b str r3, [r7, #116] ; 0x74 if(r>0){r--;} - 8005760: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 8005764: 2b00 cmp r3, #0 - 8005766: d004 beq.n 8005772 - 8005768: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 800576c: 3b01 subs r3, #1 - 800576e: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 80064e0: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 80064e4: 2b00 cmp r3, #0 + 80064e6: d004 beq.n 80064f2 + 80064e8: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 80064ec: 3b01 subs r3, #1 + 80064ee: f8a7 308c strh.w r3, [r7, #140] ; 0x8c } } //步骤0,将点画在(30,30)此时半径为10 if(step==0) - 8005772: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 8005776: 2b00 cmp r3, #0 - 8005778: d12b bne.n 80057d2 + 80064f2: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 80064f6: 2b00 cmp r3, #0 + 80064f8: d12b bne.n 8006552 { TP_DrwaTrage(30,30,r); - 800577a: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 800577e: 461a mov r2, r3 - 8005780: 211e movs r1, #30 - 8005782: 201e movs r0, #30 - 8005784: f7ff ff0a bl 800559c + 80064fa: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 80064fe: 461a mov r2, r3 + 8006500: 211e movs r1, #30 + 8006502: 201e movs r0, #30 + 8006504: f7ff ff0a bl 800631c if(r==0)//当半径收缩为0的时候 - 8005788: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 800578c: 2b00 cmp r3, #0 - 800578e: d120 bne.n 80057d2 + 8006508: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 800650c: 2b00 cmp r3, #0 + 800650e: d120 bne.n 8006552 { //进入下一个步骤,缓存这个点的值,显示出来 step+=1; - 8005790: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 8005794: 3301 adds r3, #1 - 8005796: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 8006510: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 8006514: 3301 adds r3, #1 + 8006516: f8a7 308e strh.w r3, [r7, #142] ; 0x8e y1=y_adc; - 800579a: 897b ldrh r3, [r7, #10] - 800579c: f8a7 308a strh.w r3, [r7, #138] ; 0x8a + 800651a: 897b ldrh r3, [r7, #10] + 800651c: f8a7 308a strh.w r3, [r7, #138] ; 0x8a x1=x_adc; - 80057a0: 893b ldrh r3, [r7, #8] - 80057a2: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 + 8006520: 893b ldrh r3, [r7, #8] + 8006522: f8a7 3082 strh.w r3, [r7, #130] ; 0x82 sprintf(str,"point_1 x:%d y:%d",x1,y1); - 80057a6: f8b7 2082 ldrh.w r2, [r7, #130] ; 0x82 - 80057aa: f8b7 308a ldrh.w r3, [r7, #138] ; 0x8a - 80057ae: f107 000c add.w r0, r7, #12 - 80057b2: 49a1 ldr r1, [pc, #644] ; (8005a38 ) - 80057b4: f001 fee8 bl 8007588 + 8006526: f8b7 2082 ldrh.w r2, [r7, #130] ; 0x82 + 800652a: f8b7 308a ldrh.w r3, [r7, #138] ; 0x8a + 800652e: f107 000c add.w r0, r7, #12 + 8006532: 49a1 ldr r1, [pc, #644] ; (80067b8 ) + 8006534: f001 ff9e bl 8008474 LCD_ShowString(0,66,str,16,RED,RED); - 80057b8: f107 020c add.w r2, r7, #12 - 80057bc: f44f 4378 mov.w r3, #63488 ; 0xf800 - 80057c0: 9301 str r3, [sp, #4] - 80057c2: f44f 4378 mov.w r3, #63488 ; 0xf800 - 80057c6: 9300 str r3, [sp, #0] - 80057c8: 2310 movs r3, #16 - 80057ca: 2142 movs r1, #66 ; 0x42 - 80057cc: 2000 movs r0, #0 - 80057ce: f7ff fb41 bl 8004e54 + 8006538: f107 020c add.w r2, r7, #12 + 800653c: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006540: 9301 str r3, [sp, #4] + 8006542: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006546: 9300 str r3, [sp, #0] + 8006548: 2310 movs r3, #16 + 800654a: 2142 movs r1, #66 ; 0x42 + 800654c: 2000 movs r0, #0 + 800654e: f7ff fa6d bl 8005a2c } } //步骤1,等待屏幕被松开,进入下一个步骤,重置半径 if(step==1) - 80057d2: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 80057d6: 2b01 cmp r3, #1 - 80057d8: d10f bne.n 80057fa + 8006552: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 8006556: 2b01 cmp r3, #1 + 8006558: d10f bne.n 800657a { if(TPEN==1) - 80057da: f44f 6180 mov.w r1, #1024 ; 0x400 - 80057de: 4893 ldr r0, [pc, #588] ; (8005a2c ) - 80057e0: f7fc fc9a bl 8002118 - 80057e4: 4603 mov r3, r0 - 80057e6: 2b01 cmp r3, #1 - 80057e8: d107 bne.n 80057fa + 800655a: f44f 6180 mov.w r1, #1024 ; 0x400 + 800655e: 4893 ldr r0, [pc, #588] ; (80067ac ) + 8006560: f7fb fecc bl 80022fc + 8006564: 4603 mov r3, r0 + 8006566: 2b01 cmp r3, #1 + 8006568: d107 bne.n 800657a { step+=1; - 80057ea: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 80057ee: 3301 adds r3, #1 - 80057f0: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 800656a: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 800656e: 3301 adds r3, #1 + 8006570: f8a7 308e strh.w r3, [r7, #142] ; 0x8e r=10; - 80057f4: 230a movs r3, #10 - 80057f6: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8006574: 230a movs r3, #10 + 8006576: f8a7 308c strh.w r3, [r7, #140] ; 0x8c } } //下面几个步骤和上面一样 if(step==2) - 80057fa: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 80057fe: 2b02 cmp r3, #2 - 8005800: d12c bne.n 800585c + 800657a: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 800657e: 2b02 cmp r3, #2 + 8006580: d12c bne.n 80065dc { TP_DrwaTrage(290,30,r); - 8005802: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 8005806: 461a mov r2, r3 - 8005808: 211e movs r1, #30 - 800580a: f44f 7091 mov.w r0, #290 ; 0x122 - 800580e: f7ff fec5 bl 800559c + 8006582: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 8006586: 461a mov r2, r3 + 8006588: 211e movs r1, #30 + 800658a: f44f 7091 mov.w r0, #290 ; 0x122 + 800658e: f7ff fec5 bl 800631c if(r==0) - 8005812: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 8005816: 2b00 cmp r3, #0 - 8005818: d120 bne.n 800585c + 8006592: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 8006596: 2b00 cmp r3, #0 + 8006598: d120 bne.n 80065dc { step+=1; - 800581a: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 800581e: 3301 adds r3, #1 - 8005820: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 800659a: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 800659e: 3301 adds r3, #1 + 80065a0: f8a7 308e strh.w r3, [r7, #142] ; 0x8e y2=y_adc; - 8005824: 897b ldrh r3, [r7, #10] - 8005826: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 + 80065a4: 897b ldrh r3, [r7, #10] + 80065a6: f8a7 3088 strh.w r3, [r7, #136] ; 0x88 x2=x_adc; - 800582a: 893b ldrh r3, [r7, #8] - 800582c: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 + 80065aa: 893b ldrh r3, [r7, #8] + 80065ac: f8a7 3080 strh.w r3, [r7, #128] ; 0x80 sprintf(str,"point_2 x:%d y:%d",x2,y2); - 8005830: f8b7 2080 ldrh.w r2, [r7, #128] ; 0x80 - 8005834: f8b7 3088 ldrh.w r3, [r7, #136] ; 0x88 - 8005838: f107 000c add.w r0, r7, #12 - 800583c: 497f ldr r1, [pc, #508] ; (8005a3c ) - 800583e: f001 fea3 bl 8007588 + 80065b0: f8b7 2080 ldrh.w r2, [r7, #128] ; 0x80 + 80065b4: f8b7 3088 ldrh.w r3, [r7, #136] ; 0x88 + 80065b8: f107 000c add.w r0, r7, #12 + 80065bc: 497f ldr r1, [pc, #508] ; (80067bc ) + 80065be: f001 ff59 bl 8008474 LCD_ShowString(0,66+16,str,16,RED,RED); - 8005842: f107 020c add.w r2, r7, #12 - 8005846: f44f 4378 mov.w r3, #63488 ; 0xf800 - 800584a: 9301 str r3, [sp, #4] - 800584c: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8005850: 9300 str r3, [sp, #0] - 8005852: 2310 movs r3, #16 - 8005854: 2152 movs r1, #82 ; 0x52 - 8005856: 2000 movs r0, #0 - 8005858: f7ff fafc bl 8004e54 + 80065c2: f107 020c add.w r2, r7, #12 + 80065c6: f44f 4378 mov.w r3, #63488 ; 0xf800 + 80065ca: 9301 str r3, [sp, #4] + 80065cc: f44f 4378 mov.w r3, #63488 ; 0xf800 + 80065d0: 9300 str r3, [sp, #0] + 80065d2: 2310 movs r3, #16 + 80065d4: 2152 movs r1, #82 ; 0x52 + 80065d6: 2000 movs r0, #0 + 80065d8: f7ff fa28 bl 8005a2c } } if(step==3) - 800585c: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 8005860: 2b03 cmp r3, #3 - 8005862: d10f bne.n 8005884 + 80065dc: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 80065e0: 2b03 cmp r3, #3 + 80065e2: d10f bne.n 8006604 { if(TPEN==1) - 8005864: f44f 6180 mov.w r1, #1024 ; 0x400 - 8005868: 4870 ldr r0, [pc, #448] ; (8005a2c ) - 800586a: f7fc fc55 bl 8002118 - 800586e: 4603 mov r3, r0 - 8005870: 2b01 cmp r3, #1 - 8005872: d107 bne.n 8005884 + 80065e4: f44f 6180 mov.w r1, #1024 ; 0x400 + 80065e8: 4870 ldr r0, [pc, #448] ; (80067ac ) + 80065ea: f7fb fe87 bl 80022fc + 80065ee: 4603 mov r3, r0 + 80065f0: 2b01 cmp r3, #1 + 80065f2: d107 bne.n 8006604 { step+=1; - 8005874: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 8005878: 3301 adds r3, #1 - 800587a: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 80065f4: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 80065f8: 3301 adds r3, #1 + 80065fa: f8a7 308e strh.w r3, [r7, #142] ; 0x8e r=10; - 800587e: 230a movs r3, #10 - 8005880: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 80065fe: 230a movs r3, #10 + 8006600: f8a7 308c strh.w r3, [r7, #140] ; 0x8c } } if(step==4) - 8005884: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 8005888: 2b04 cmp r3, #4 - 800588a: d12b bne.n 80058e4 + 8006604: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 8006608: 2b04 cmp r3, #4 + 800660a: d12b bne.n 8006664 { TP_DrwaTrage(30,210,r); - 800588c: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 8005890: 461a mov r2, r3 - 8005892: 21d2 movs r1, #210 ; 0xd2 - 8005894: 201e movs r0, #30 - 8005896: f7ff fe81 bl 800559c + 800660c: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 8006610: 461a mov r2, r3 + 8006612: 21d2 movs r1, #210 ; 0xd2 + 8006614: 201e movs r0, #30 + 8006616: f7ff fe81 bl 800631c if(r==0) - 800589a: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 800589e: 2b00 cmp r3, #0 - 80058a0: d120 bne.n 80058e4 + 800661a: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 800661e: 2b00 cmp r3, #0 + 8006620: d120 bne.n 8006664 { step+=1; - 80058a2: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 80058a6: 3301 adds r3, #1 - 80058a8: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 8006622: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 8006626: 3301 adds r3, #1 + 8006628: f8a7 308e strh.w r3, [r7, #142] ; 0x8e y3=y_adc; - 80058ac: 897b ldrh r3, [r7, #10] - 80058ae: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 + 800662c: 897b ldrh r3, [r7, #10] + 800662e: f8a7 3086 strh.w r3, [r7, #134] ; 0x86 x3=x_adc; - 80058b2: 893b ldrh r3, [r7, #8] - 80058b4: f8a7 307e strh.w r3, [r7, #126] ; 0x7e + 8006632: 893b ldrh r3, [r7, #8] + 8006634: f8a7 307e strh.w r3, [r7, #126] ; 0x7e sprintf(str,"point_3 x:%d y:%d",x3,y3); - 80058b8: f8b7 207e ldrh.w r2, [r7, #126] ; 0x7e - 80058bc: f8b7 3086 ldrh.w r3, [r7, #134] ; 0x86 - 80058c0: f107 000c add.w r0, r7, #12 - 80058c4: 495e ldr r1, [pc, #376] ; (8005a40 ) - 80058c6: f001 fe5f bl 8007588 + 8006638: f8b7 207e ldrh.w r2, [r7, #126] ; 0x7e + 800663c: f8b7 3086 ldrh.w r3, [r7, #134] ; 0x86 + 8006640: f107 000c add.w r0, r7, #12 + 8006644: 495e ldr r1, [pc, #376] ; (80067c0 ) + 8006646: f001 ff15 bl 8008474 LCD_ShowString(0,66+16+16,str,16,RED,RED); - 80058ca: f107 020c add.w r2, r7, #12 - 80058ce: f44f 4378 mov.w r3, #63488 ; 0xf800 - 80058d2: 9301 str r3, [sp, #4] - 80058d4: f44f 4378 mov.w r3, #63488 ; 0xf800 - 80058d8: 9300 str r3, [sp, #0] - 80058da: 2310 movs r3, #16 - 80058dc: 2162 movs r1, #98 ; 0x62 - 80058de: 2000 movs r0, #0 - 80058e0: f7ff fab8 bl 8004e54 + 800664a: f107 020c add.w r2, r7, #12 + 800664e: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006652: 9301 str r3, [sp, #4] + 8006654: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006658: 9300 str r3, [sp, #0] + 800665a: 2310 movs r3, #16 + 800665c: 2162 movs r1, #98 ; 0x62 + 800665e: 2000 movs r0, #0 + 8006660: f7ff f9e4 bl 8005a2c } } if(step==5) - 80058e4: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 80058e8: 2b05 cmp r3, #5 - 80058ea: d10f bne.n 800590c + 8006664: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 8006668: 2b05 cmp r3, #5 + 800666a: d10f bne.n 800668c { if(TPEN==1) - 80058ec: f44f 6180 mov.w r1, #1024 ; 0x400 - 80058f0: 484e ldr r0, [pc, #312] ; (8005a2c ) - 80058f2: f7fc fc11 bl 8002118 - 80058f6: 4603 mov r3, r0 - 80058f8: 2b01 cmp r3, #1 - 80058fa: d107 bne.n 800590c + 800666c: f44f 6180 mov.w r1, #1024 ; 0x400 + 8006670: 484e ldr r0, [pc, #312] ; (80067ac ) + 8006672: f7fb fe43 bl 80022fc + 8006676: 4603 mov r3, r0 + 8006678: 2b01 cmp r3, #1 + 800667a: d107 bne.n 800668c { step+=1; - 80058fc: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 8005900: 3301 adds r3, #1 - 8005902: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 800667c: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 8006680: 3301 adds r3, #1 + 8006682: f8a7 308e strh.w r3, [r7, #142] ; 0x8e r=10; - 8005906: 230a movs r3, #10 - 8005908: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8006686: 230a movs r3, #10 + 8006688: f8a7 308c strh.w r3, [r7, #140] ; 0x8c } } if(step==6) - 800590c: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 8005910: 2b06 cmp r3, #6 - 8005912: d12c bne.n 800596e + 800668c: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 8006690: 2b06 cmp r3, #6 + 8006692: d12c bne.n 80066ee { TP_DrwaTrage(290,210,r); - 8005914: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 8005918: 461a mov r2, r3 - 800591a: 21d2 movs r1, #210 ; 0xd2 - 800591c: f44f 7091 mov.w r0, #290 ; 0x122 - 8005920: f7ff fe3c bl 800559c + 8006694: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 8006698: 461a mov r2, r3 + 800669a: 21d2 movs r1, #210 ; 0xd2 + 800669c: f44f 7091 mov.w r0, #290 ; 0x122 + 80066a0: f7ff fe3c bl 800631c if(r==0) - 8005924: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c - 8005928: 2b00 cmp r3, #0 - 800592a: d120 bne.n 800596e + 80066a4: f8b7 308c ldrh.w r3, [r7, #140] ; 0x8c + 80066a8: 2b00 cmp r3, #0 + 80066aa: d120 bne.n 80066ee { step+=1; - 800592c: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 8005930: 3301 adds r3, #1 - 8005932: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 80066ac: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 80066b0: 3301 adds r3, #1 + 80066b2: f8a7 308e strh.w r3, [r7, #142] ; 0x8e y4=y_adc; - 8005936: 897b ldrh r3, [r7, #10] - 8005938: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 + 80066b6: 897b ldrh r3, [r7, #10] + 80066b8: f8a7 3084 strh.w r3, [r7, #132] ; 0x84 x4=x_adc; - 800593c: 893b ldrh r3, [r7, #8] - 800593e: f8a7 307c strh.w r3, [r7, #124] ; 0x7c + 80066bc: 893b ldrh r3, [r7, #8] + 80066be: f8a7 307c strh.w r3, [r7, #124] ; 0x7c sprintf(str,"point_4 x:%d y:%d",x4,y4); - 8005942: f8b7 207c ldrh.w r2, [r7, #124] ; 0x7c - 8005946: f8b7 3084 ldrh.w r3, [r7, #132] ; 0x84 - 800594a: f107 000c add.w r0, r7, #12 - 800594e: 493d ldr r1, [pc, #244] ; (8005a44 ) - 8005950: f001 fe1a bl 8007588 + 80066c2: f8b7 207c ldrh.w r2, [r7, #124] ; 0x7c + 80066c6: f8b7 3084 ldrh.w r3, [r7, #132] ; 0x84 + 80066ca: f107 000c add.w r0, r7, #12 + 80066ce: 493d ldr r1, [pc, #244] ; (80067c4 ) + 80066d0: f001 fed0 bl 8008474 LCD_ShowString(0,66+16+16+16,str,16,RED,RED); - 8005954: f107 020c add.w r2, r7, #12 - 8005958: f44f 4378 mov.w r3, #63488 ; 0xf800 - 800595c: 9301 str r3, [sp, #4] - 800595e: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8005962: 9300 str r3, [sp, #0] - 8005964: 2310 movs r3, #16 - 8005966: 2172 movs r1, #114 ; 0x72 - 8005968: 2000 movs r0, #0 - 800596a: f7ff fa73 bl 8004e54 + 80066d4: f107 020c add.w r2, r7, #12 + 80066d8: f44f 4378 mov.w r3, #63488 ; 0xf800 + 80066dc: 9301 str r3, [sp, #4] + 80066de: f44f 4378 mov.w r3, #63488 ; 0xf800 + 80066e2: 9300 str r3, [sp, #0] + 80066e4: 2310 movs r3, #16 + 80066e6: 2172 movs r1, #114 ; 0x72 + 80066e8: 2000 movs r0, #0 + 80066ea: f7ff f99f bl 8005a2c } } if(step==7) - 800596e: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 8005972: 2b07 cmp r3, #7 - 8005974: d10f bne.n 8005996 + 80066ee: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 80066f2: 2b07 cmp r3, #7 + 80066f4: d10f bne.n 8006716 { if(TPEN==1) - 8005976: f44f 6180 mov.w r1, #1024 ; 0x400 - 800597a: 482c ldr r0, [pc, #176] ; (8005a2c ) - 800597c: f7fc fbcc bl 8002118 - 8005980: 4603 mov r3, r0 - 8005982: 2b01 cmp r3, #1 - 8005984: d107 bne.n 8005996 + 80066f6: f44f 6180 mov.w r1, #1024 ; 0x400 + 80066fa: 482c ldr r0, [pc, #176] ; (80067ac ) + 80066fc: f7fb fdfe bl 80022fc + 8006700: 4603 mov r3, r0 + 8006702: 2b01 cmp r3, #1 + 8006704: d107 bne.n 8006716 { step+=1; - 8005986: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 800598a: 3301 adds r3, #1 - 800598c: f8a7 308e strh.w r3, [r7, #142] ; 0x8e + 8006706: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 800670a: 3301 adds r3, #1 + 800670c: f8a7 308e strh.w r3, [r7, #142] ; 0x8e r=10; - 8005990: 230a movs r3, #10 - 8005992: f8a7 308c strh.w r3, [r7, #140] ; 0x8c + 8006710: 230a movs r3, #10 + 8006712: f8a7 308c strh.w r3, [r7, #140] ; 0x8c } } //当4个点读取完,开始计算关系 if(step==8) - 8005996: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e - 800599a: 2b08 cmp r3, #8 - 800599c: f040 8120 bne.w 8005be0 + 8006716: f8b7 308e ldrh.w r3, [r7, #142] ; 0x8e + 800671a: 2b08 cmp r3, #8 + 800671c: f040 8120 bne.w 8006960 { //其实只需要两个点就能校准,通过取平均值获得xy的长边和短边 xd=((x1+x3)/2); - 80059a0: f8b7 2082 ldrh.w r2, [r7, #130] ; 0x82 - 80059a4: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e - 80059a8: 4413 add r3, r2 - 80059aa: 0fda lsrs r2, r3, #31 - 80059ac: 4413 add r3, r2 - 80059ae: 105b asrs r3, r3, #1 - 80059b0: 673b str r3, [r7, #112] ; 0x70 + 8006720: f8b7 2082 ldrh.w r2, [r7, #130] ; 0x82 + 8006724: f8b7 307e ldrh.w r3, [r7, #126] ; 0x7e + 8006728: 4413 add r3, r2 + 800672a: 0fda lsrs r2, r3, #31 + 800672c: 4413 add r3, r2 + 800672e: 105b asrs r3, r3, #1 + 8006730: 673b str r3, [r7, #112] ; 0x70 xl=((x2+x4)/2); - 80059b2: f8b7 2080 ldrh.w r2, [r7, #128] ; 0x80 - 80059b6: f8b7 307c ldrh.w r3, [r7, #124] ; 0x7c - 80059ba: 4413 add r3, r2 - 80059bc: 0fda lsrs r2, r3, #31 - 80059be: 4413 add r3, r2 - 80059c0: 105b asrs r3, r3, #1 - 80059c2: 66fb str r3, [r7, #108] ; 0x6c + 8006732: f8b7 2080 ldrh.w r2, [r7, #128] ; 0x80 + 8006736: f8b7 307c ldrh.w r3, [r7, #124] ; 0x7c + 800673a: 4413 add r3, r2 + 800673c: 0fda lsrs r2, r3, #31 + 800673e: 4413 add r3, r2 + 8006740: 105b asrs r3, r3, #1 + 8006742: 66fb str r3, [r7, #108] ; 0x6c yd=((y1+y2)/2); - 80059c4: f8b7 208a ldrh.w r2, [r7, #138] ; 0x8a - 80059c8: f8b7 3088 ldrh.w r3, [r7, #136] ; 0x88 - 80059cc: 4413 add r3, r2 - 80059ce: 0fda lsrs r2, r3, #31 - 80059d0: 4413 add r3, r2 - 80059d2: 105b asrs r3, r3, #1 - 80059d4: 66bb str r3, [r7, #104] ; 0x68 + 8006744: f8b7 208a ldrh.w r2, [r7, #138] ; 0x8a + 8006748: f8b7 3088 ldrh.w r3, [r7, #136] ; 0x88 + 800674c: 4413 add r3, r2 + 800674e: 0fda lsrs r2, r3, #31 + 8006750: 4413 add r3, r2 + 8006752: 105b asrs r3, r3, #1 + 8006754: 66bb str r3, [r7, #104] ; 0x68 yl=((y3+y4)/2); - 80059d6: f8b7 2086 ldrh.w r2, [r7, #134] ; 0x86 - 80059da: f8b7 3084 ldrh.w r3, [r7, #132] ; 0x84 - 80059de: 4413 add r3, r2 - 80059e0: 0fda lsrs r2, r3, #31 - 80059e2: 4413 add r3, r2 - 80059e4: 105b asrs r3, r3, #1 - 80059e6: 667b str r3, [r7, #100] ; 0x64 + 8006756: f8b7 2086 ldrh.w r2, [r7, #134] ; 0x86 + 800675a: f8b7 3084 ldrh.w r3, [r7, #132] ; 0x84 + 800675e: 4413 add r3, r2 + 8006760: 0fda lsrs r2, r3, #31 + 8006762: 4413 add r3, r2 + 8006764: 105b asrs r3, r3, #1 + 8006766: 667b str r3, [r7, #100] ; 0x64 //长边减去短边可以再获得一个点 x5=xl-xd; - 80059e8: 6efa ldr r2, [r7, #108] ; 0x6c - 80059ea: 6f3b ldr r3, [r7, #112] ; 0x70 - 80059ec: 1ad3 subs r3, r2, r3 - 80059ee: 663b str r3, [r7, #96] ; 0x60 + 8006768: 6efa ldr r2, [r7, #108] ; 0x6c + 800676a: 6f3b ldr r3, [r7, #112] ; 0x70 + 800676c: 1ad3 subs r3, r2, r3 + 800676e: 663b str r3, [r7, #96] ; 0x60 y5=yl-yd; - 80059f0: 6e7a ldr r2, [r7, #100] ; 0x64 - 80059f2: 6ebb ldr r3, [r7, #104] ; 0x68 - 80059f4: 1ad3 subs r3, r2, r3 - 80059f6: 65fb str r3, [r7, #92] ; 0x5c + 8006770: 6e7a ldr r2, [r7, #100] ; 0x64 + 8006772: 6ebb ldr r3, [r7, #104] ; 0x68 + 8006774: 1ad3 subs r3, r2, r3 + 8006776: 65fb str r3, [r7, #92] ; 0x5c //这个点如果是负数,肯定有错,可能是xy搞反了 if(x5<0||y5<0) - 80059f8: 6e3b ldr r3, [r7, #96] ; 0x60 - 80059fa: 2b00 cmp r3, #0 - 80059fc: db02 blt.n 8005a04 - 80059fe: 6dfb ldr r3, [r7, #92] ; 0x5c - 8005a00: 2b00 cmp r3, #0 - 8005a02: da23 bge.n 8005a4c + 8006778: 6e3b ldr r3, [r7, #96] ; 0x60 + 800677a: 2b00 cmp r3, #0 + 800677c: db02 blt.n 8006784 + 800677e: 6dfb ldr r3, [r7, #92] ; 0x5c + 8006780: 2b00 cmp r3, #0 + 8006782: da23 bge.n 80067cc { //显示error sprintf(str,"ERROR"); - 8005a04: f107 030c add.w r3, r7, #12 - 8005a08: 490f ldr r1, [pc, #60] ; (8005a48 ) - 8005a0a: 4618 mov r0, r3 - 8005a0c: f001 fdbc bl 8007588 + 8006784: f107 030c add.w r3, r7, #12 + 8006788: 490f ldr r1, [pc, #60] ; (80067c8 ) + 800678a: 4618 mov r0, r3 + 800678c: f001 fe72 bl 8008474 LCD_ShowString(0,66+16+16+16+16,str,16,RED, GRAY); - 8005a10: f107 020c add.w r2, r7, #12 - 8005a14: f248 4330 movw r3, #33840 ; 0x8430 - 8005a18: 9301 str r3, [sp, #4] - 8005a1a: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8005a1e: 9300 str r3, [sp, #0] - 8005a20: 2310 movs r3, #16 - 8005a22: 2182 movs r1, #130 ; 0x82 - 8005a24: 2000 movs r0, #0 - 8005a26: f7ff fa15 bl 8004e54 - 8005a2a: e0cf b.n 8005bcc - 8005a2c: 40011c00 .word 0x40011c00 - 8005a30: 080098c4 .word 0x080098c4 - 8005a34: 080098d0 .word 0x080098d0 - 8005a38: 080098dc .word 0x080098dc - 8005a3c: 080098f0 .word 0x080098f0 - 8005a40: 08009904 .word 0x08009904 - 8005a44: 08009918 .word 0x08009918 - 8005a48: 0800992c .word 0x0800992c + 8006790: f107 020c add.w r2, r7, #12 + 8006794: f248 4330 movw r3, #33840 ; 0x8430 + 8006798: 9301 str r3, [sp, #4] + 800679a: f44f 4378 mov.w r3, #63488 ; 0xf800 + 800679e: 9300 str r3, [sp, #0] + 80067a0: 2310 movs r3, #16 + 80067a2: 2182 movs r1, #130 ; 0x82 + 80067a4: 2000 movs r0, #0 + 80067a6: f7ff f941 bl 8005a2c + 80067aa: e0cf b.n 800694c + 80067ac: 40011c00 .word 0x40011c00 + 80067b0: 0800a7ac .word 0x0800a7ac + 80067b4: 0800a7b8 .word 0x0800a7b8 + 80067b8: 0800a7c4 .word 0x0800a7c4 + 80067bc: 0800a7d8 .word 0x0800a7d8 + 80067c0: 0800a7ec .word 0x0800a7ec + 80067c4: 0800a800 .word 0x0800a800 + 80067c8: 0800a814 .word 0x0800a814 }else { //计算关系倍率 //ad的长边减去短边再除去实际屏幕像素的长边减短边(260=320-30-30,180=240-30-30) acc_x=x5/260.0; - 8005a4c: 6e38 ldr r0, [r7, #96] ; 0x60 - 8005a4e: f7fa fd45 bl 80004dc <__aeabi_i2d> - 8005a52: f04f 0200 mov.w r2, #0 - 8005a56: 4b68 ldr r3, [pc, #416] ; (8005bf8 ) - 8005a58: f7fa fed4 bl 8000804 <__aeabi_ddiv> - 8005a5c: 4602 mov r2, r0 - 8005a5e: 460b mov r3, r1 - 8005a60: 4610 mov r0, r2 - 8005a62: 4619 mov r1, r3 - 8005a64: f7fb f87c bl 8000b60 <__aeabi_d2f> - 8005a68: 4603 mov r3, r0 - 8005a6a: 65bb str r3, [r7, #88] ; 0x58 + 80067cc: 6e38 ldr r0, [r7, #96] ; 0x60 + 80067ce: f7f9 fe85 bl 80004dc <__aeabi_i2d> + 80067d2: f04f 0200 mov.w r2, #0 + 80067d6: 4b68 ldr r3, [pc, #416] ; (8006978 ) + 80067d8: f7fa f814 bl 8000804 <__aeabi_ddiv> + 80067dc: 4602 mov r2, r0 + 80067de: 460b mov r3, r1 + 80067e0: 4610 mov r0, r2 + 80067e2: 4619 mov r1, r3 + 80067e4: f7fa f9bc bl 8000b60 <__aeabi_d2f> + 80067e8: 4603 mov r3, r0 + 80067ea: 65bb str r3, [r7, #88] ; 0x58 acc_y=y5/180.0; - 8005a6c: 6df8 ldr r0, [r7, #92] ; 0x5c - 8005a6e: f7fa fd35 bl 80004dc <__aeabi_i2d> - 8005a72: f04f 0200 mov.w r2, #0 - 8005a76: 4b61 ldr r3, [pc, #388] ; (8005bfc ) - 8005a78: f7fa fec4 bl 8000804 <__aeabi_ddiv> - 8005a7c: 4602 mov r2, r0 - 8005a7e: 460b mov r3, r1 - 8005a80: 4610 mov r0, r2 - 8005a82: 4619 mov r1, r3 - 8005a84: f7fb f86c bl 8000b60 <__aeabi_d2f> - 8005a88: 4603 mov r3, r0 - 8005a8a: 657b str r3, [r7, #84] ; 0x54 + 80067ec: 6df8 ldr r0, [r7, #92] ; 0x5c + 80067ee: f7f9 fe75 bl 80004dc <__aeabi_i2d> + 80067f2: f04f 0200 mov.w r2, #0 + 80067f6: 4b61 ldr r3, [pc, #388] ; (800697c ) + 80067f8: f7fa f804 bl 8000804 <__aeabi_ddiv> + 80067fc: 4602 mov r2, r0 + 80067fe: 460b mov r3, r1 + 8006800: 4610 mov r0, r2 + 8006802: 4619 mov r1, r3 + 8006804: f7fa f9ac bl 8000b60 <__aeabi_d2f> + 8006808: 4603 mov r3, r0 + 800680a: 657b str r3, [r7, #84] ; 0x54 //验证倍率,将实际值减去验证值就等于误差值,因为有两个点,所以计算了两个误差后求了平均值 offset_x=(((xd/acc_x)-30)+((xl/acc_x)-290))/2; - 8005a8c: 6f38 ldr r0, [r7, #112] ; 0x70 - 8005a8e: f7fb f971 bl 8000d74 <__aeabi_i2f> - 8005a92: 4603 mov r3, r0 - 8005a94: 6db9 ldr r1, [r7, #88] ; 0x58 - 8005a96: 4618 mov r0, r3 - 8005a98: f7fb fa74 bl 8000f84 <__aeabi_fdiv> - 8005a9c: 4603 mov r3, r0 - 8005a9e: 4958 ldr r1, [pc, #352] ; (8005c00 ) - 8005aa0: 4618 mov r0, r3 - 8005aa2: f7fb f8b1 bl 8000c08 <__aeabi_fsub> - 8005aa6: 4603 mov r3, r0 - 8005aa8: 461c mov r4, r3 - 8005aaa: 6ef8 ldr r0, [r7, #108] ; 0x6c - 8005aac: f7fb f962 bl 8000d74 <__aeabi_i2f> - 8005ab0: 4603 mov r3, r0 - 8005ab2: 6db9 ldr r1, [r7, #88] ; 0x58 - 8005ab4: 4618 mov r0, r3 - 8005ab6: f7fb fa65 bl 8000f84 <__aeabi_fdiv> - 8005aba: 4603 mov r3, r0 - 8005abc: 4951 ldr r1, [pc, #324] ; (8005c04 ) - 8005abe: 4618 mov r0, r3 - 8005ac0: f7fb f8a2 bl 8000c08 <__aeabi_fsub> - 8005ac4: 4603 mov r3, r0 - 8005ac6: 4619 mov r1, r3 - 8005ac8: 4620 mov r0, r4 - 8005aca: f7fb f89f bl 8000c0c <__addsf3> - 8005ace: 4603 mov r3, r0 - 8005ad0: f04f 4180 mov.w r1, #1073741824 ; 0x40000000 - 8005ad4: 4618 mov r0, r3 - 8005ad6: f7fb fa55 bl 8000f84 <__aeabi_fdiv> - 8005ada: 4603 mov r3, r0 - 8005adc: 4618 mov r0, r3 - 8005ade: f7fb faed bl 80010bc <__aeabi_f2iz> - 8005ae2: 4603 mov r3, r0 - 8005ae4: 653b str r3, [r7, #80] ; 0x50 + 800680c: 6f38 ldr r0, [r7, #112] ; 0x70 + 800680e: f7fa fab1 bl 8000d74 <__aeabi_i2f> + 8006812: 4603 mov r3, r0 + 8006814: 6db9 ldr r1, [r7, #88] ; 0x58 + 8006816: 4618 mov r0, r3 + 8006818: f7fa fbb4 bl 8000f84 <__aeabi_fdiv> + 800681c: 4603 mov r3, r0 + 800681e: 4958 ldr r1, [pc, #352] ; (8006980 ) + 8006820: 4618 mov r0, r3 + 8006822: f7fa f9f1 bl 8000c08 <__aeabi_fsub> + 8006826: 4603 mov r3, r0 + 8006828: 461c mov r4, r3 + 800682a: 6ef8 ldr r0, [r7, #108] ; 0x6c + 800682c: f7fa faa2 bl 8000d74 <__aeabi_i2f> + 8006830: 4603 mov r3, r0 + 8006832: 6db9 ldr r1, [r7, #88] ; 0x58 + 8006834: 4618 mov r0, r3 + 8006836: f7fa fba5 bl 8000f84 <__aeabi_fdiv> + 800683a: 4603 mov r3, r0 + 800683c: 4951 ldr r1, [pc, #324] ; (8006984 ) + 800683e: 4618 mov r0, r3 + 8006840: f7fa f9e2 bl 8000c08 <__aeabi_fsub> + 8006844: 4603 mov r3, r0 + 8006846: 4619 mov r1, r3 + 8006848: 4620 mov r0, r4 + 800684a: f7fa f9df bl 8000c0c <__addsf3> + 800684e: 4603 mov r3, r0 + 8006850: f04f 4180 mov.w r1, #1073741824 ; 0x40000000 + 8006854: 4618 mov r0, r3 + 8006856: f7fa fb95 bl 8000f84 <__aeabi_fdiv> + 800685a: 4603 mov r3, r0 + 800685c: 4618 mov r0, r3 + 800685e: f7fa fc2d bl 80010bc <__aeabi_f2iz> + 8006862: 4603 mov r3, r0 + 8006864: 653b str r3, [r7, #80] ; 0x50 offset_y=(((yd/acc_y)-30)+((yl/acc_y)-210))/2; - 8005ae6: 6eb8 ldr r0, [r7, #104] ; 0x68 - 8005ae8: f7fb f944 bl 8000d74 <__aeabi_i2f> - 8005aec: 4603 mov r3, r0 - 8005aee: 6d79 ldr r1, [r7, #84] ; 0x54 - 8005af0: 4618 mov r0, r3 - 8005af2: f7fb fa47 bl 8000f84 <__aeabi_fdiv> - 8005af6: 4603 mov r3, r0 - 8005af8: 4941 ldr r1, [pc, #260] ; (8005c00 ) - 8005afa: 4618 mov r0, r3 - 8005afc: f7fb f884 bl 8000c08 <__aeabi_fsub> - 8005b00: 4603 mov r3, r0 - 8005b02: 461c mov r4, r3 - 8005b04: 6e78 ldr r0, [r7, #100] ; 0x64 - 8005b06: f7fb f935 bl 8000d74 <__aeabi_i2f> - 8005b0a: 4603 mov r3, r0 - 8005b0c: 6d79 ldr r1, [r7, #84] ; 0x54 - 8005b0e: 4618 mov r0, r3 - 8005b10: f7fb fa38 bl 8000f84 <__aeabi_fdiv> - 8005b14: 4603 mov r3, r0 - 8005b16: 493c ldr r1, [pc, #240] ; (8005c08 ) - 8005b18: 4618 mov r0, r3 - 8005b1a: f7fb f875 bl 8000c08 <__aeabi_fsub> - 8005b1e: 4603 mov r3, r0 - 8005b20: 4619 mov r1, r3 - 8005b22: 4620 mov r0, r4 - 8005b24: f7fb f872 bl 8000c0c <__addsf3> - 8005b28: 4603 mov r3, r0 - 8005b2a: f04f 4180 mov.w r1, #1073741824 ; 0x40000000 - 8005b2e: 4618 mov r0, r3 - 8005b30: f7fb fa28 bl 8000f84 <__aeabi_fdiv> - 8005b34: 4603 mov r3, r0 - 8005b36: 4618 mov r0, r3 - 8005b38: f7fb fac0 bl 80010bc <__aeabi_f2iz> - 8005b3c: 4603 mov r3, r0 - 8005b3e: 64fb str r3, [r7, #76] ; 0x4c + 8006866: 6eb8 ldr r0, [r7, #104] ; 0x68 + 8006868: f7fa fa84 bl 8000d74 <__aeabi_i2f> + 800686c: 4603 mov r3, r0 + 800686e: 6d79 ldr r1, [r7, #84] ; 0x54 + 8006870: 4618 mov r0, r3 + 8006872: f7fa fb87 bl 8000f84 <__aeabi_fdiv> + 8006876: 4603 mov r3, r0 + 8006878: 4941 ldr r1, [pc, #260] ; (8006980 ) + 800687a: 4618 mov r0, r3 + 800687c: f7fa f9c4 bl 8000c08 <__aeabi_fsub> + 8006880: 4603 mov r3, r0 + 8006882: 461c mov r4, r3 + 8006884: 6e78 ldr r0, [r7, #100] ; 0x64 + 8006886: f7fa fa75 bl 8000d74 <__aeabi_i2f> + 800688a: 4603 mov r3, r0 + 800688c: 6d79 ldr r1, [r7, #84] ; 0x54 + 800688e: 4618 mov r0, r3 + 8006890: f7fa fb78 bl 8000f84 <__aeabi_fdiv> + 8006894: 4603 mov r3, r0 + 8006896: 493c ldr r1, [pc, #240] ; (8006988 ) + 8006898: 4618 mov r0, r3 + 800689a: f7fa f9b5 bl 8000c08 <__aeabi_fsub> + 800689e: 4603 mov r3, r0 + 80068a0: 4619 mov r1, r3 + 80068a2: 4620 mov r0, r4 + 80068a4: f7fa f9b2 bl 8000c0c <__addsf3> + 80068a8: 4603 mov r3, r0 + 80068aa: f04f 4180 mov.w r1, #1073741824 ; 0x40000000 + 80068ae: 4618 mov r0, r3 + 80068b0: f7fa fb68 bl 8000f84 <__aeabi_fdiv> + 80068b4: 4603 mov r3, r0 + 80068b6: 4618 mov r0, r3 + 80068b8: f7fa fc00 bl 80010bc <__aeabi_f2iz> + 80068bc: 4603 mov r3, r0 + 80068be: 64fb str r3, [r7, #76] ; 0x4c //保存计算结果 tconfig.x_acc=acc_x; - 8005b40: 4a32 ldr r2, [pc, #200] ; (8005c0c ) - 8005b42: 6dbb ldr r3, [r7, #88] ; 0x58 - 8005b44: 6053 str r3, [r2, #4] + 80068c0: 4a32 ldr r2, [pc, #200] ; (800698c ) + 80068c2: 6dbb ldr r3, [r7, #88] ; 0x58 + 80068c4: 6053 str r3, [r2, #4] tconfig.x_offset=offset_x; - 8005b46: 4a31 ldr r2, [pc, #196] ; (8005c0c ) - 8005b48: 6d3b ldr r3, [r7, #80] ; 0x50 - 8005b4a: 60d3 str r3, [r2, #12] + 80068c6: 4a31 ldr r2, [pc, #196] ; (800698c ) + 80068c8: 6d3b ldr r3, [r7, #80] ; 0x50 + 80068ca: 60d3 str r3, [r2, #12] tconfig.y_acc=acc_y; - 8005b4c: 4a2f ldr r2, [pc, #188] ; (8005c0c ) - 8005b4e: 6d7b ldr r3, [r7, #84] ; 0x54 - 8005b50: 6093 str r3, [r2, #8] + 80068cc: 4a2f ldr r2, [pc, #188] ; (800698c ) + 80068ce: 6d7b ldr r3, [r7, #84] ; 0x54 + 80068d0: 6093 str r3, [r2, #8] tconfig.y_offset=offset_y; - 8005b52: 4a2e ldr r2, [pc, #184] ; (8005c0c ) - 8005b54: 6cfb ldr r3, [r7, #76] ; 0x4c - 8005b56: 6113 str r3, [r2, #16] + 80068d2: 4a2e ldr r2, [pc, #184] ; (800698c ) + 80068d4: 6cfb ldr r3, [r7, #76] ; 0x4c + 80068d6: 6113 str r3, [r2, #16] //eeprom块标记 tconfig.begin=0xab; - 8005b58: 4b2c ldr r3, [pc, #176] ; (8005c0c ) - 8005b5a: 22ab movs r2, #171 ; 0xab - 8005b5c: 701a strb r2, [r3, #0] + 80068d8: 4b2c ldr r3, [pc, #176] ; (800698c ) + 80068da: 22ab movs r2, #171 ; 0xab + 80068dc: 701a strb r2, [r3, #0] tconfig.end=0xcd; - 8005b5e: 4b2b ldr r3, [pc, #172] ; (8005c0c ) - 8005b60: 22cd movs r2, #205 ; 0xcd - 8005b62: 751a strb r2, [r3, #20] + 80068de: 4b2b ldr r3, [pc, #172] ; (800698c ) + 80068e0: 22cd movs r2, #205 ; 0xcd + 80068e2: 751a strb r2, [r3, #20] //显示计算结果 sprintf(str,"x_acc=%f y_acc=%f",acc_x,acc_y); - 8005b64: 6db8 ldr r0, [r7, #88] ; 0x58 - 8005b66: f7fa fccb bl 8000500 <__aeabi_f2d> - 8005b6a: 4604 mov r4, r0 - 8005b6c: 460d mov r5, r1 - 8005b6e: 6d78 ldr r0, [r7, #84] ; 0x54 - 8005b70: f7fa fcc6 bl 8000500 <__aeabi_f2d> - 8005b74: 4602 mov r2, r0 - 8005b76: 460b mov r3, r1 - 8005b78: f107 000c add.w r0, r7, #12 - 8005b7c: e9cd 2300 strd r2, r3, [sp] - 8005b80: 4622 mov r2, r4 - 8005b82: 462b mov r3, r5 - 8005b84: 4922 ldr r1, [pc, #136] ; (8005c10 ) - 8005b86: f001 fcff bl 8007588 + 80068e4: 6db8 ldr r0, [r7, #88] ; 0x58 + 80068e6: f7f9 fe0b bl 8000500 <__aeabi_f2d> + 80068ea: 4604 mov r4, r0 + 80068ec: 460d mov r5, r1 + 80068ee: 6d78 ldr r0, [r7, #84] ; 0x54 + 80068f0: f7f9 fe06 bl 8000500 <__aeabi_f2d> + 80068f4: 4602 mov r2, r0 + 80068f6: 460b mov r3, r1 + 80068f8: f107 000c add.w r0, r7, #12 + 80068fc: e9cd 2300 strd r2, r3, [sp] + 8006900: 4622 mov r2, r4 + 8006902: 462b mov r3, r5 + 8006904: 4922 ldr r1, [pc, #136] ; (8006990 ) + 8006906: f001 fdb5 bl 8008474 LCD_ShowString(0,66+16+16+16+16,str,16,RED,RED); - 8005b8a: f107 020c add.w r2, r7, #12 - 8005b8e: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8005b92: 9301 str r3, [sp, #4] - 8005b94: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8005b98: 9300 str r3, [sp, #0] - 8005b9a: 2310 movs r3, #16 - 8005b9c: 2182 movs r1, #130 ; 0x82 - 8005b9e: 2000 movs r0, #0 - 8005ba0: f7ff f958 bl 8004e54 + 800690a: f107 020c add.w r2, r7, #12 + 800690e: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006912: 9301 str r3, [sp, #4] + 8006914: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006918: 9300 str r3, [sp, #0] + 800691a: 2310 movs r3, #16 + 800691c: 2182 movs r1, #130 ; 0x82 + 800691e: 2000 movs r0, #0 + 8006920: f7ff f884 bl 8005a2c sprintf(str,"x_offset=%d y_offset=%d",offset_x,offset_y); - 8005ba4: f107 000c add.w r0, r7, #12 - 8005ba8: 6cfb ldr r3, [r7, #76] ; 0x4c - 8005baa: 6d3a ldr r2, [r7, #80] ; 0x50 - 8005bac: 4919 ldr r1, [pc, #100] ; (8005c14 ) - 8005bae: f001 fceb bl 8007588 + 8006924: f107 000c add.w r0, r7, #12 + 8006928: 6cfb ldr r3, [r7, #76] ; 0x4c + 800692a: 6d3a ldr r2, [r7, #80] ; 0x50 + 800692c: 4919 ldr r1, [pc, #100] ; (8006994 ) + 800692e: f001 fda1 bl 8008474 LCD_ShowString(0,66+16+16+16+16+16,str,16,RED,RED); - 8005bb2: f107 020c add.w r2, r7, #12 - 8005bb6: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8005bba: 9301 str r3, [sp, #4] - 8005bbc: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8005bc0: 9300 str r3, [sp, #0] - 8005bc2: 2310 movs r3, #16 - 8005bc4: 2192 movs r1, #146 ; 0x92 - 8005bc6: 2000 movs r0, #0 - 8005bc8: f7ff f944 bl 8004e54 + 8006932: f107 020c add.w r2, r7, #12 + 8006936: f44f 4378 mov.w r3, #63488 ; 0xf800 + 800693a: 9301 str r3, [sp, #4] + 800693c: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006940: 9300 str r3, [sp, #0] + 8006942: 2310 movs r3, #16 + 8006944: 2192 movs r1, #146 ; 0x92 + 8006946: 2000 movs r0, #0 + 8006948: f7ff f870 bl 8005a2c } //将结果保存起来 EEPROM_WRITE_BATY(16,(char *)&tconfig,sizeof(touch_config)); - 8005bcc: 2218 movs r2, #24 - 8005bce: 490f ldr r1, [pc, #60] ; (8005c0c ) - 8005bd0: 2010 movs r0, #16 - 8005bd2: f7ff f9ef bl 8004fb4 + 800694c: 2218 movs r2, #24 + 800694e: 490f ldr r1, [pc, #60] ; (800698c ) + 8006950: 2010 movs r0, #16 + 8006952: f7ff f9ef bl 8005d34 HAL_Delay(1000); - 8005bd6: f44f 707a mov.w r0, #1000 ; 0x3e8 - 8005bda: f7fb ffd7 bl 8001b8c + 8006956: f44f 707a mov.w r0, #1000 ; 0x3e8 + 800695a: f7fb fa09 bl 8001d70 return; - 8005bde: e008 b.n 8005bf2 + 800695e: e008 b.n 8006972 while(HAL_GetTick() - 8005be4: 4602 mov r2, r0 - 8005be6: 6fbb ldr r3, [r7, #120] ; 0x78 - 8005be8: 4293 cmp r3, r2 - 8005bea: f63f ad6d bhi.w 80056c8 - 8005bee: e000 b.n 8005bf2 + 8006960: f7fb f9fc bl 8001d5c + 8006964: 4602 mov r2, r0 + 8006966: 6fbb ldr r3, [r7, #120] ; 0x78 + 8006968: 4293 cmp r3, r2 + 800696a: f63f ad6d bhi.w 8006448 + 800696e: e000 b.n 8006972 return; //已经校准过了 - 8005bf0: bf00 nop + 8006970: bf00 nop } } } - 8005bf2: 3790 adds r7, #144 ; 0x90 - 8005bf4: 46bd mov sp, r7 - 8005bf6: bdb0 pop {r4, r5, r7, pc} - 8005bf8: 40704000 .word 0x40704000 - 8005bfc: 40668000 .word 0x40668000 - 8005c00: 41f00000 .word 0x41f00000 - 8005c04: 43910000 .word 0x43910000 - 8005c08: 43520000 .word 0x43520000 - 8005c0c: 200003f8 .word 0x200003f8 - 8005c10: 08009934 .word 0x08009934 - 8005c14: 08009948 .word 0x08009948 + 8006972: 3790 adds r7, #144 ; 0x90 + 8006974: 46bd mov sp, r7 + 8006976: bdb0 pop {r4, r5, r7, pc} + 8006978: 40704000 .word 0x40704000 + 800697c: 40668000 .word 0x40668000 + 8006980: 41f00000 .word 0x41f00000 + 8006984: 43910000 .word 0x43910000 + 8006988: 43520000 .word 0x43520000 + 800698c: 20000408 .word 0x20000408 + 8006990: 0800a81c .word 0x0800a81c + 8006994: 0800a830 .word 0x0800a830 -08005c18 : +08006998 : IIC_SAND_DATE(MAX30102_Device_address,REG_LED2_PA,&a,1);// Choose value for ~ 10mA for LED2 a=0x7f; IIC_SAND_DATE(MAX30102_Device_address,REG_PILOT_PA,&a,1);// Choose value for ~ 25mA for Pilot LED } void max30102_read_fifo(void) { - 8005c18: b580 push {r7, lr} - 8005c1a: b082 sub sp, #8 - 8005c1c: af00 add r7, sp, #0 + 8006998: b580 push {r7, lr} + 800699a: b082 sub sp, #8 + 800699c: af00 add r7, sp, #0 uint16_t un_temp; fifo_red=0; - 8005c1e: 4b3c ldr r3, [pc, #240] ; (8005d10 ) - 8005c20: 2200 movs r2, #0 - 8005c22: 801a strh r2, [r3, #0] + 800699e: 4b3c ldr r3, [pc, #240] ; (8006a90 ) + 80069a0: 2200 movs r2, #0 + 80069a2: 801a strh r2, [r3, #0] fifo_ir=0; - 8005c24: 4b3b ldr r3, [pc, #236] ; (8005d14 ) - 8005c26: 2200 movs r2, #0 - 8005c28: 801a strh r2, [r3, #0] + 80069a4: 4b3b ldr r3, [pc, #236] ; (8006a94 ) + 80069a6: 2200 movs r2, #0 + 80069a8: 801a strh r2, [r3, #0] uint8_t ach_i2c_data[6]; //read and clear status register IIC_READ_DATE(MAX30102_Device_address,REG_INTR_STATUS_1,&ach_i2c_data,1); - 8005c2a: 463a mov r2, r7 - 8005c2c: 2301 movs r3, #1 - 8005c2e: 2100 movs r1, #0 - 8005c30: 20ae movs r0, #174 ; 0xae - 8005c32: f7ff fa23 bl 800507c + 80069aa: 463a mov r2, r7 + 80069ac: 2301 movs r3, #1 + 80069ae: 2100 movs r1, #0 + 80069b0: 20ae movs r0, #174 ; 0xae + 80069b2: f7ff fa23 bl 8005dfc IIC_READ_DATE(MAX30102_Device_address,REG_INTR_STATUS_2,&ach_i2c_data,1); - 8005c36: 463a mov r2, r7 - 8005c38: 2301 movs r3, #1 - 8005c3a: 2101 movs r1, #1 - 8005c3c: 20ae movs r0, #174 ; 0xae - 8005c3e: f7ff fa1d bl 800507c + 80069b6: 463a mov r2, r7 + 80069b8: 2301 movs r3, #1 + 80069ba: 2101 movs r1, #1 + 80069bc: 20ae movs r0, #174 ; 0xae + 80069be: f7ff fa1d bl 8005dfc ach_i2c_data[0]=REG_FIFO_DATA; - 8005c42: 2307 movs r3, #7 - 8005c44: 703b strb r3, [r7, #0] + 80069c2: 2307 movs r3, #7 + 80069c4: 703b strb r3, [r7, #0] IIC_READ_DATE(MAX30102_Device_address,REG_FIFO_DATA,&ach_i2c_data,6); - 8005c46: 463a mov r2, r7 - 8005c48: 2306 movs r3, #6 - 8005c4a: 2107 movs r1, #7 - 8005c4c: 20ae movs r0, #174 ; 0xae - 8005c4e: f7ff fa15 bl 800507c + 80069c6: 463a mov r2, r7 + 80069c8: 2306 movs r3, #6 + 80069ca: 2107 movs r1, #7 + 80069cc: 20ae movs r0, #174 ; 0xae + 80069ce: f7ff fa15 bl 8005dfc un_temp=ach_i2c_data[0]; - 8005c52: 783b ldrb r3, [r7, #0] - 8005c54: 80fb strh r3, [r7, #6] + 80069d2: 783b ldrb r3, [r7, #0] + 80069d4: 80fb strh r3, [r7, #6] un_temp<<=14; - 8005c56: 88fb ldrh r3, [r7, #6] - 8005c58: 039b lsls r3, r3, #14 - 8005c5a: 80fb strh r3, [r7, #6] + 80069d6: 88fb ldrh r3, [r7, #6] + 80069d8: 039b lsls r3, r3, #14 + 80069da: 80fb strh r3, [r7, #6] fifo_red+=un_temp; - 8005c5c: 4b2c ldr r3, [pc, #176] ; (8005d10 ) - 8005c5e: 881a ldrh r2, [r3, #0] - 8005c60: 88fb ldrh r3, [r7, #6] - 8005c62: 4413 add r3, r2 - 8005c64: b29a uxth r2, r3 - 8005c66: 4b2a ldr r3, [pc, #168] ; (8005d10 ) - 8005c68: 801a strh r2, [r3, #0] + 80069dc: 4b2c ldr r3, [pc, #176] ; (8006a90 ) + 80069de: 881a ldrh r2, [r3, #0] + 80069e0: 88fb ldrh r3, [r7, #6] + 80069e2: 4413 add r3, r2 + 80069e4: b29a uxth r2, r3 + 80069e6: 4b2a ldr r3, [pc, #168] ; (8006a90 ) + 80069e8: 801a strh r2, [r3, #0] un_temp=ach_i2c_data[1]; - 8005c6a: 787b ldrb r3, [r7, #1] - 8005c6c: 80fb strh r3, [r7, #6] + 80069ea: 787b ldrb r3, [r7, #1] + 80069ec: 80fb strh r3, [r7, #6] un_temp<<=6; - 8005c6e: 88fb ldrh r3, [r7, #6] - 8005c70: 019b lsls r3, r3, #6 - 8005c72: 80fb strh r3, [r7, #6] + 80069ee: 88fb ldrh r3, [r7, #6] + 80069f0: 019b lsls r3, r3, #6 + 80069f2: 80fb strh r3, [r7, #6] fifo_red+=un_temp; - 8005c74: 4b26 ldr r3, [pc, #152] ; (8005d10 ) - 8005c76: 881a ldrh r2, [r3, #0] - 8005c78: 88fb ldrh r3, [r7, #6] - 8005c7a: 4413 add r3, r2 - 8005c7c: b29a uxth r2, r3 - 8005c7e: 4b24 ldr r3, [pc, #144] ; (8005d10 ) - 8005c80: 801a strh r2, [r3, #0] + 80069f4: 4b26 ldr r3, [pc, #152] ; (8006a90 ) + 80069f6: 881a ldrh r2, [r3, #0] + 80069f8: 88fb ldrh r3, [r7, #6] + 80069fa: 4413 add r3, r2 + 80069fc: b29a uxth r2, r3 + 80069fe: 4b24 ldr r3, [pc, #144] ; (8006a90 ) + 8006a00: 801a strh r2, [r3, #0] un_temp=ach_i2c_data[2]; - 8005c82: 78bb ldrb r3, [r7, #2] - 8005c84: 80fb strh r3, [r7, #6] + 8006a02: 78bb ldrb r3, [r7, #2] + 8006a04: 80fb strh r3, [r7, #6] un_temp>>=2; - 8005c86: 88fb ldrh r3, [r7, #6] - 8005c88: 089b lsrs r3, r3, #2 - 8005c8a: 80fb strh r3, [r7, #6] + 8006a06: 88fb ldrh r3, [r7, #6] + 8006a08: 089b lsrs r3, r3, #2 + 8006a0a: 80fb strh r3, [r7, #6] fifo_red+=un_temp; - 8005c8c: 4b20 ldr r3, [pc, #128] ; (8005d10 ) - 8005c8e: 881a ldrh r2, [r3, #0] - 8005c90: 88fb ldrh r3, [r7, #6] - 8005c92: 4413 add r3, r2 - 8005c94: b29a uxth r2, r3 - 8005c96: 4b1e ldr r3, [pc, #120] ; (8005d10 ) - 8005c98: 801a strh r2, [r3, #0] + 8006a0c: 4b20 ldr r3, [pc, #128] ; (8006a90 ) + 8006a0e: 881a ldrh r2, [r3, #0] + 8006a10: 88fb ldrh r3, [r7, #6] + 8006a12: 4413 add r3, r2 + 8006a14: b29a uxth r2, r3 + 8006a16: 4b1e ldr r3, [pc, #120] ; (8006a90 ) + 8006a18: 801a strh r2, [r3, #0] un_temp=ach_i2c_data[3]; - 8005c9a: 78fb ldrb r3, [r7, #3] - 8005c9c: 80fb strh r3, [r7, #6] + 8006a1a: 78fb ldrb r3, [r7, #3] + 8006a1c: 80fb strh r3, [r7, #6] un_temp<<=14; - 8005c9e: 88fb ldrh r3, [r7, #6] - 8005ca0: 039b lsls r3, r3, #14 - 8005ca2: 80fb strh r3, [r7, #6] + 8006a1e: 88fb ldrh r3, [r7, #6] + 8006a20: 039b lsls r3, r3, #14 + 8006a22: 80fb strh r3, [r7, #6] fifo_ir+=un_temp; - 8005ca4: 4b1b ldr r3, [pc, #108] ; (8005d14 ) - 8005ca6: 881a ldrh r2, [r3, #0] - 8005ca8: 88fb ldrh r3, [r7, #6] - 8005caa: 4413 add r3, r2 - 8005cac: b29a uxth r2, r3 - 8005cae: 4b19 ldr r3, [pc, #100] ; (8005d14 ) - 8005cb0: 801a strh r2, [r3, #0] + 8006a24: 4b1b ldr r3, [pc, #108] ; (8006a94 ) + 8006a26: 881a ldrh r2, [r3, #0] + 8006a28: 88fb ldrh r3, [r7, #6] + 8006a2a: 4413 add r3, r2 + 8006a2c: b29a uxth r2, r3 + 8006a2e: 4b19 ldr r3, [pc, #100] ; (8006a94 ) + 8006a30: 801a strh r2, [r3, #0] un_temp=ach_i2c_data[4]; - 8005cb2: 793b ldrb r3, [r7, #4] - 8005cb4: 80fb strh r3, [r7, #6] + 8006a32: 793b ldrb r3, [r7, #4] + 8006a34: 80fb strh r3, [r7, #6] un_temp<<=6; - 8005cb6: 88fb ldrh r3, [r7, #6] - 8005cb8: 019b lsls r3, r3, #6 - 8005cba: 80fb strh r3, [r7, #6] + 8006a36: 88fb ldrh r3, [r7, #6] + 8006a38: 019b lsls r3, r3, #6 + 8006a3a: 80fb strh r3, [r7, #6] fifo_ir+=un_temp; - 8005cbc: 4b15 ldr r3, [pc, #84] ; (8005d14 ) - 8005cbe: 881a ldrh r2, [r3, #0] - 8005cc0: 88fb ldrh r3, [r7, #6] - 8005cc2: 4413 add r3, r2 - 8005cc4: b29a uxth r2, r3 - 8005cc6: 4b13 ldr r3, [pc, #76] ; (8005d14 ) - 8005cc8: 801a strh r2, [r3, #0] + 8006a3c: 4b15 ldr r3, [pc, #84] ; (8006a94 ) + 8006a3e: 881a ldrh r2, [r3, #0] + 8006a40: 88fb ldrh r3, [r7, #6] + 8006a42: 4413 add r3, r2 + 8006a44: b29a uxth r2, r3 + 8006a46: 4b13 ldr r3, [pc, #76] ; (8006a94 ) + 8006a48: 801a strh r2, [r3, #0] un_temp=ach_i2c_data[5]; - 8005cca: 797b ldrb r3, [r7, #5] - 8005ccc: 80fb strh r3, [r7, #6] + 8006a4a: 797b ldrb r3, [r7, #5] + 8006a4c: 80fb strh r3, [r7, #6] un_temp>>=2; - 8005cce: 88fb ldrh r3, [r7, #6] - 8005cd0: 089b lsrs r3, r3, #2 - 8005cd2: 80fb strh r3, [r7, #6] + 8006a4e: 88fb ldrh r3, [r7, #6] + 8006a50: 089b lsrs r3, r3, #2 + 8006a52: 80fb strh r3, [r7, #6] fifo_ir+=un_temp; - 8005cd4: 4b0f ldr r3, [pc, #60] ; (8005d14 ) - 8005cd6: 881a ldrh r2, [r3, #0] - 8005cd8: 88fb ldrh r3, [r7, #6] - 8005cda: 4413 add r3, r2 - 8005cdc: b29a uxth r2, r3 - 8005cde: 4b0d ldr r3, [pc, #52] ; (8005d14 ) - 8005ce0: 801a strh r2, [r3, #0] + 8006a54: 4b0f ldr r3, [pc, #60] ; (8006a94 ) + 8006a56: 881a ldrh r2, [r3, #0] + 8006a58: 88fb ldrh r3, [r7, #6] + 8006a5a: 4413 add r3, r2 + 8006a5c: b29a uxth r2, r3 + 8006a5e: 4b0d ldr r3, [pc, #52] ; (8006a94 ) + 8006a60: 801a strh r2, [r3, #0] if(fifo_ir<=10000) - 8005ce2: 4b0c ldr r3, [pc, #48] ; (8005d14 ) - 8005ce4: 881b ldrh r3, [r3, #0] - 8005ce6: f242 7210 movw r2, #10000 ; 0x2710 - 8005cea: 4293 cmp r3, r2 - 8005cec: d802 bhi.n 8005cf4 + 8006a62: 4b0c ldr r3, [pc, #48] ; (8006a94 ) + 8006a64: 881b ldrh r3, [r3, #0] + 8006a66: f242 7210 movw r2, #10000 ; 0x2710 + 8006a6a: 4293 cmp r3, r2 + 8006a6c: d802 bhi.n 8006a74 { fifo_ir=0; - 8005cee: 4b09 ldr r3, [pc, #36] ; (8005d14 ) - 8005cf0: 2200 movs r2, #0 - 8005cf2: 801a strh r2, [r3, #0] + 8006a6e: 4b09 ldr r3, [pc, #36] ; (8006a94 ) + 8006a70: 2200 movs r2, #0 + 8006a72: 801a strh r2, [r3, #0] } if(fifo_red<=10000) - 8005cf4: 4b06 ldr r3, [pc, #24] ; (8005d10 ) - 8005cf6: 881b ldrh r3, [r3, #0] - 8005cf8: f242 7210 movw r2, #10000 ; 0x2710 - 8005cfc: 4293 cmp r3, r2 - 8005cfe: d802 bhi.n 8005d06 + 8006a74: 4b06 ldr r3, [pc, #24] ; (8006a90 ) + 8006a76: 881b ldrh r3, [r3, #0] + 8006a78: f242 7210 movw r2, #10000 ; 0x2710 + 8006a7c: 4293 cmp r3, r2 + 8006a7e: d802 bhi.n 8006a86 { fifo_red=0; - 8005d00: 4b03 ldr r3, [pc, #12] ; (8005d10 ) - 8005d02: 2200 movs r2, #0 - 8005d04: 801a strh r2, [r3, #0] + 8006a80: 4b03 ldr r3, [pc, #12] ; (8006a90 ) + 8006a82: 2200 movs r2, #0 + 8006a84: 801a strh r2, [r3, #0] } } - 8005d06: bf00 nop - 8005d08: 3708 adds r7, #8 - 8005d0a: 46bd mov sp, r7 - 8005d0c: bd80 pop {r7, pc} - 8005d0e: bf00 nop - 8005d10: 20002570 .word 0x20002570 - 8005d14: 20000460 .word 0x20000460 + 8006a86: bf00 nop + 8006a88: 3708 adds r7, #8 + 8006a8a: 46bd mov sp, r7 + 8006a8c: bd80 pop {r7, pc} + 8006a8e: bf00 nop + 8006a90: 20002580 .word 0x20002580 + 8006a94: 20000470 .word 0x20000470 -08005d18 : +08006a98 : } void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)//10us { - 8005d18: b590 push {r4, r7, lr} - 8005d1a: b083 sub sp, #12 - 8005d1c: af00 add r7, sp, #0 - 8005d1e: 6078 str r0, [r7, #4] + 8006a98: b590 push {r4, r7, lr} + 8006a9a: b083 sub sp, #12 + 8006a9c: af00 add r7, sp, #0 + 8006a9e: 6078 str r0, [r7, #4] if (htim == (&htim6)) - 8005d20: 687b ldr r3, [r7, #4] - 8005d22: 4a21 ldr r2, [pc, #132] ; (8005da8 ) - 8005d24: 4293 cmp r3, r2 - 8005d26: d13a bne.n 8005d9e + 8006aa0: 687b ldr r3, [r7, #4] + 8006aa2: 4a21 ldr r2, [pc, #132] ; (8006b28 ) + 8006aa4: 4293 cmp r3, r2 + 8006aa6: d13a bne.n 8006b1e { max30102_read_fifo(); //read from MAX30102 FIFO2 - 8005d28: f7ff ff76 bl 8005c18 + 8006aa8: f7ff ff76 bl 8006998 //将数据写入fft输入并清除输出 s1[g_fft_index].real = fifo_red; - 8005d2c: 4b1f ldr r3, [pc, #124] ; (8005dac ) - 8005d2e: 881b ldrh r3, [r3, #0] - 8005d30: 4a1f ldr r2, [pc, #124] ; (8005db0 ) - 8005d32: 8812 ldrh r2, [r2, #0] - 8005d34: 4614 mov r4, r2 - 8005d36: 4618 mov r0, r3 - 8005d38: f7fb f818 bl 8000d6c <__aeabi_ui2f> - 8005d3c: 4603 mov r3, r0 - 8005d3e: 4a1d ldr r2, [pc, #116] ; (8005db4 ) - 8005d40: f842 3034 str.w r3, [r2, r4, lsl #3] + 8006aac: 4b1f ldr r3, [pc, #124] ; (8006b2c ) + 8006aae: 881b ldrh r3, [r3, #0] + 8006ab0: 4a1f ldr r2, [pc, #124] ; (8006b30 ) + 8006ab2: 8812 ldrh r2, [r2, #0] + 8006ab4: 4614 mov r4, r2 + 8006ab6: 4618 mov r0, r3 + 8006ab8: f7fa f958 bl 8000d6c <__aeabi_ui2f> + 8006abc: 4603 mov r3, r0 + 8006abe: 4a1d ldr r2, [pc, #116] ; (8006b34 ) + 8006ac0: f842 3034 str.w r3, [r2, r4, lsl #3] s1[g_fft_index].imag= 0; - 8005d44: 4b1a ldr r3, [pc, #104] ; (8005db0 ) - 8005d46: 881b ldrh r3, [r3, #0] - 8005d48: 4a1a ldr r2, [pc, #104] ; (8005db4 ) - 8005d4a: 00db lsls r3, r3, #3 - 8005d4c: 4413 add r3, r2 - 8005d4e: f04f 0200 mov.w r2, #0 - 8005d52: 605a str r2, [r3, #4] + 8006ac4: 4b1a ldr r3, [pc, #104] ; (8006b30 ) + 8006ac6: 881b ldrh r3, [r3, #0] + 8006ac8: 4a1a ldr r2, [pc, #104] ; (8006b34 ) + 8006aca: 00db lsls r3, r3, #3 + 8006acc: 4413 add r3, r2 + 8006ace: f04f 0200 mov.w r2, #0 + 8006ad2: 605a str r2, [r3, #4] s2[g_fft_index].real = fifo_ir; - 8005d54: 4b18 ldr r3, [pc, #96] ; (8005db8 ) - 8005d56: 881b ldrh r3, [r3, #0] - 8005d58: 4a15 ldr r2, [pc, #84] ; (8005db0 ) - 8005d5a: 8812 ldrh r2, [r2, #0] - 8005d5c: 4614 mov r4, r2 - 8005d5e: 4618 mov r0, r3 - 8005d60: f7fb f804 bl 8000d6c <__aeabi_ui2f> - 8005d64: 4603 mov r3, r0 - 8005d66: 4a15 ldr r2, [pc, #84] ; (8005dbc ) - 8005d68: f842 3034 str.w r3, [r2, r4, lsl #3] + 8006ad4: 4b18 ldr r3, [pc, #96] ; (8006b38 ) + 8006ad6: 881b ldrh r3, [r3, #0] + 8006ad8: 4a15 ldr r2, [pc, #84] ; (8006b30 ) + 8006ada: 8812 ldrh r2, [r2, #0] + 8006adc: 4614 mov r4, r2 + 8006ade: 4618 mov r0, r3 + 8006ae0: f7fa f944 bl 8000d6c <__aeabi_ui2f> + 8006ae4: 4603 mov r3, r0 + 8006ae6: 4a15 ldr r2, [pc, #84] ; (8006b3c ) + 8006ae8: f842 3034 str.w r3, [r2, r4, lsl #3] s2[g_fft_index].imag= 0; - 8005d6c: 4b10 ldr r3, [pc, #64] ; (8005db0 ) - 8005d6e: 881b ldrh r3, [r3, #0] - 8005d70: 4a12 ldr r2, [pc, #72] ; (8005dbc ) - 8005d72: 00db lsls r3, r3, #3 - 8005d74: 4413 add r3, r2 - 8005d76: f04f 0200 mov.w r2, #0 - 8005d7a: 605a str r2, [r3, #4] + 8006aec: 4b10 ldr r3, [pc, #64] ; (8006b30 ) + 8006aee: 881b ldrh r3, [r3, #0] + 8006af0: 4a12 ldr r2, [pc, #72] ; (8006b3c ) + 8006af2: 00db lsls r3, r3, #3 + 8006af4: 4413 add r3, r2 + 8006af6: f04f 0200 mov.w r2, #0 + 8006afa: 605a str r2, [r3, #4] g_fft_index++; - 8005d7c: 4b0c ldr r3, [pc, #48] ; (8005db0 ) - 8005d7e: 881b ldrh r3, [r3, #0] - 8005d80: 3301 adds r3, #1 - 8005d82: b29a uxth r2, r3 - 8005d84: 4b0a ldr r3, [pc, #40] ; (8005db0 ) - 8005d86: 801a strh r2, [r3, #0] + 8006afc: 4b0c ldr r3, [pc, #48] ; (8006b30 ) + 8006afe: 881b ldrh r3, [r3, #0] + 8006b00: 3301 adds r3, #1 + 8006b02: b29a uxth r2, r3 + 8006b04: 4b0a ldr r3, [pc, #40] ; (8006b30 ) + 8006b06: 801a strh r2, [r3, #0] if(g_fft_index>FFT_N) - 8005d88: 4b09 ldr r3, [pc, #36] ; (8005db0 ) - 8005d8a: 881b ldrh r3, [r3, #0] - 8005d8c: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8005d90: d905 bls.n 8005d9e + 8006b08: 4b09 ldr r3, [pc, #36] ; (8006b30 ) + 8006b0a: 881b ldrh r3, [r3, #0] + 8006b0c: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 8006b10: d905 bls.n 8006b1e { get_data_flag=1; - 8005d92: 4b0b ldr r3, [pc, #44] ; (8005dc0 ) - 8005d94: 2201 movs r2, #1 - 8005d96: 701a strb r2, [r3, #0] + 8006b12: 4b0b ldr r3, [pc, #44] ; (8006b40 ) + 8006b14: 2201 movs r2, #1 + 8006b16: 701a strb r2, [r3, #0] HAL_TIM_Base_Stop_IT(&htim6); - 8005d98: 4803 ldr r0, [pc, #12] ; (8005da8 ) - 8005d9a: f7fd ff13 bl 8003bc4 + 8006b18: 4803 ldr r0, [pc, #12] ; (8006b28 ) + 8006b1a: f7fd f945 bl 8003da8 } } } - 8005d9e: bf00 nop - 8005da0: 370c adds r7, #12 - 8005da2: 46bd mov sp, r7 - 8005da4: bd90 pop {r4, r7, pc} - 8005da6: bf00 nop - 8005da8: 20000304 .word 0x20000304 - 8005dac: 20002570 .word 0x20002570 - 8005db0: 20000202 .word 0x20000202 - 8005db4: 20000468 .word 0x20000468 - 8005db8: 20000460 .word 0x20000460 - 8005dbc: 200014e8 .word 0x200014e8 - 8005dc0: 20000200 .word 0x20000200 + 8006b1e: bf00 nop + 8006b20: 370c adds r7, #12 + 8006b22: 46bd mov sp, r7 + 8006b24: bd90 pop {r4, r7, pc} + 8006b26: bf00 nop + 8006b28: 20000310 .word 0x20000310 + 8006b2c: 20002580 .word 0x20002580 + 8006b30: 2000020a .word 0x2000020a + 8006b34: 20000478 .word 0x20000478 + 8006b38: 20000470 .word 0x20000470 + 8006b3c: 200014f8 .word 0x200014f8 + 8006b40: 20000208 .word 0x20000208 -08005dc4 : +08006b44 : }; window *morsecode_window; void APP_morsecode_init(window *a_window) { - 8005dc4: b480 push {r7} - 8005dc6: b085 sub sp, #20 - 8005dc8: af00 add r7, sp, #0 - 8005dca: 6078 str r0, [r7, #4] + 8006b44: b480 push {r7} + 8006b46: b085 sub sp, #20 + 8006b48: af00 add r7, sp, #0 + 8006b4a: 6078 str r0, [r7, #4] morsecode_window=a_window; - 8005dcc: 4a0b ldr r2, [pc, #44] ; (8005dfc ) - 8005dce: 687b ldr r3, [r7, #4] - 8005dd0: 6013 str r3, [r2, #0] + 8006b4c: 4a0b ldr r2, [pc, #44] ; (8006b7c ) + 8006b4e: 687b ldr r3, [r7, #4] + 8006b50: 6013 str r3, [r2, #0] for(int a=0;a<65;a++) - 8005dd2: 2300 movs r3, #0 - 8005dd4: 60fb str r3, [r7, #12] - 8005dd6: e007 b.n 8005de8 + 8006b52: 2300 movs r3, #0 + 8006b54: 60fb str r3, [r7, #12] + 8006b56: e007 b.n 8006b68 { morse_input_buff[a]='\0'; - 8005dd8: 4a09 ldr r2, [pc, #36] ; (8005e00 ) - 8005dda: 68fb ldr r3, [r7, #12] - 8005ddc: 4413 add r3, r2 - 8005dde: 2200 movs r2, #0 - 8005de0: 701a strb r2, [r3, #0] + 8006b58: 4a09 ldr r2, [pc, #36] ; (8006b80 ) + 8006b5a: 68fb ldr r3, [r7, #12] + 8006b5c: 4413 add r3, r2 + 8006b5e: 2200 movs r2, #0 + 8006b60: 701a strb r2, [r3, #0] for(int a=0;a<65;a++) - 8005de2: 68fb ldr r3, [r7, #12] - 8005de4: 3301 adds r3, #1 - 8005de6: 60fb str r3, [r7, #12] - 8005de8: 68fb ldr r3, [r7, #12] - 8005dea: 2b40 cmp r3, #64 ; 0x40 - 8005dec: ddf4 ble.n 8005dd8 + 8006b62: 68fb ldr r3, [r7, #12] + 8006b64: 3301 adds r3, #1 + 8006b66: 60fb str r3, [r7, #12] + 8006b68: 68fb ldr r3, [r7, #12] + 8006b6a: 2b40 cmp r3, #64 ; 0x40 + 8006b6c: ddf4 ble.n 8006b58 } -} - 8005dee: bf00 nop - 8005df0: bf00 nop - 8005df2: 3714 adds r7, #20 - 8005df4: 46bd mov sp, r7 - 8005df6: bc80 pop {r7} - 8005df8: 4770 bx lr - 8005dfa: bf00 nop - 8005dfc: 20002574 .word 0x20002574 - 8005e00: 20000210 .word 0x20000210 -08005e04 : + +} + 8006b6e: bf00 nop + 8006b70: bf00 nop + 8006b72: 3714 adds r7, #20 + 8006b74: 46bd mov sp, r7 + 8006b76: bc80 pop {r7} + 8006b78: 4770 bx lr + 8006b7a: bf00 nop + 8006b7c: 20002584 .word 0x20002584 + 8006b80: 20002588 .word 0x20002588 + +08006b84 : char getmorsecode(uint8_t len,uint8_t code) { - 8005e04: b480 push {r7} - 8005e06: b085 sub sp, #20 - 8005e08: af00 add r7, sp, #0 - 8005e0a: 4603 mov r3, r0 - 8005e0c: 460a mov r2, r1 - 8005e0e: 71fb strb r3, [r7, #7] - 8005e10: 4613 mov r3, r2 - 8005e12: 71bb strb r3, [r7, #6] + 8006b84: b480 push {r7} + 8006b86: b085 sub sp, #20 + 8006b88: af00 add r7, sp, #0 + 8006b8a: 4603 mov r3, r0 + 8006b8c: 460a mov r2, r1 + 8006b8e: 71fb strb r3, [r7, #7] + 8006b90: 4613 mov r3, r2 + 8006b92: 71bb strb r3, [r7, #6] for(int a=0;a<36;a++) - 8005e14: 2300 movs r3, #0 - 8005e16: 60fb str r3, [r7, #12] - 8005e18: e020 b.n 8005e5c + 8006b94: 2300 movs r3, #0 + 8006b96: 60fb str r3, [r7, #12] + 8006b98: e020 b.n 8006bdc { if((morsecodes[a].len==len)&&(morsecodes[a].code==code)) - 8005e1a: 4915 ldr r1, [pc, #84] ; (8005e70 ) - 8005e1c: 68fa ldr r2, [r7, #12] - 8005e1e: 4613 mov r3, r2 - 8005e20: 005b lsls r3, r3, #1 - 8005e22: 4413 add r3, r2 - 8005e24: 440b add r3, r1 - 8005e26: 781b ldrb r3, [r3, #0] - 8005e28: 79fa ldrb r2, [r7, #7] - 8005e2a: 429a cmp r2, r3 - 8005e2c: d113 bne.n 8005e56 - 8005e2e: 4910 ldr r1, [pc, #64] ; (8005e70 ) - 8005e30: 68fa ldr r2, [r7, #12] - 8005e32: 4613 mov r3, r2 - 8005e34: 005b lsls r3, r3, #1 - 8005e36: 4413 add r3, r2 - 8005e38: 440b add r3, r1 - 8005e3a: 3301 adds r3, #1 - 8005e3c: 781b ldrb r3, [r3, #0] - 8005e3e: 79ba ldrb r2, [r7, #6] - 8005e40: 429a cmp r2, r3 - 8005e42: d108 bne.n 8005e56 + 8006b9a: 4915 ldr r1, [pc, #84] ; (8006bf0 ) + 8006b9c: 68fa ldr r2, [r7, #12] + 8006b9e: 4613 mov r3, r2 + 8006ba0: 005b lsls r3, r3, #1 + 8006ba2: 4413 add r3, r2 + 8006ba4: 440b add r3, r1 + 8006ba6: 781b ldrb r3, [r3, #0] + 8006ba8: 79fa ldrb r2, [r7, #7] + 8006baa: 429a cmp r2, r3 + 8006bac: d113 bne.n 8006bd6 + 8006bae: 4910 ldr r1, [pc, #64] ; (8006bf0 ) + 8006bb0: 68fa ldr r2, [r7, #12] + 8006bb2: 4613 mov r3, r2 + 8006bb4: 005b lsls r3, r3, #1 + 8006bb6: 4413 add r3, r2 + 8006bb8: 440b add r3, r1 + 8006bba: 3301 adds r3, #1 + 8006bbc: 781b ldrb r3, [r3, #0] + 8006bbe: 79ba ldrb r2, [r7, #6] + 8006bc0: 429a cmp r2, r3 + 8006bc2: d108 bne.n 8006bd6 { return morsecodes[a].letter; - 8005e44: 490a ldr r1, [pc, #40] ; (8005e70 ) - 8005e46: 68fa ldr r2, [r7, #12] - 8005e48: 4613 mov r3, r2 - 8005e4a: 005b lsls r3, r3, #1 - 8005e4c: 4413 add r3, r2 - 8005e4e: 440b add r3, r1 - 8005e50: 3302 adds r3, #2 - 8005e52: 781b ldrb r3, [r3, #0] - 8005e54: e006 b.n 8005e64 + 8006bc4: 490a ldr r1, [pc, #40] ; (8006bf0 ) + 8006bc6: 68fa ldr r2, [r7, #12] + 8006bc8: 4613 mov r3, r2 + 8006bca: 005b lsls r3, r3, #1 + 8006bcc: 4413 add r3, r2 + 8006bce: 440b add r3, r1 + 8006bd0: 3302 adds r3, #2 + 8006bd2: 781b ldrb r3, [r3, #0] + 8006bd4: e006 b.n 8006be4 for(int a=0;a<36;a++) - 8005e56: 68fb ldr r3, [r7, #12] - 8005e58: 3301 adds r3, #1 - 8005e5a: 60fb str r3, [r7, #12] - 8005e5c: 68fb ldr r3, [r7, #12] - 8005e5e: 2b23 cmp r3, #35 ; 0x23 - 8005e60: dddb ble.n 8005e1a + 8006bd6: 68fb ldr r3, [r7, #12] + 8006bd8: 3301 adds r3, #1 + 8006bda: 60fb str r3, [r7, #12] + 8006bdc: 68fb ldr r3, [r7, #12] + 8006bde: 2b23 cmp r3, #35 ; 0x23 + 8006be0: dddb ble.n 8006b9a } } return 0; - 8005e62: 2300 movs r3, #0 + 8006be2: 2300 movs r3, #0 } - 8005e64: 4618 mov r0, r3 - 8005e66: 3714 adds r7, #20 - 8005e68: 46bd mov sp, r7 - 8005e6a: bc80 pop {r7} - 8005e6c: 4770 bx lr - 8005e6e: bf00 nop - 8005e70: 0800a3e8 .word 0x0800a3e8 + 8006be4: 4618 mov r0, r3 + 8006be6: 3714 adds r7, #20 + 8006be8: 46bd mov sp, r7 + 8006bea: bc80 pop {r7} + 8006bec: 4770 bx lr + 8006bee: bf00 nop + 8006bf0: 0800b2f0 .word 0x0800b2f0 + +08006bf4 : + -08005e74 : void APP_morsecode_loop() { - 8005e74: b580 push {r7, lr} - 8005e76: b088 sub sp, #32 - 8005e78: af02 add r7, sp, #8 + 8006bf4: b580 push {r7, lr} + 8006bf6: b08c sub sp, #48 ; 0x30 + 8006bf8: af02 add r7, sp, #8 + /* char str[64],get_char_temp; sprintf(str,"%d %d ",morse_input_flag,morse_char_flag); LCD_ShowString(morsecode_window->x, morsecode_window->y+100, str, 16, GREEN, RED); */ + if(k3.code==1) + 8006bfa: 4ba2 ldr r3, [pc, #648] ; (8006e84 ) + 8006bfc: 681b ldr r3, [r3, #0] + 8006bfe: 2b01 cmp r3, #1 + 8006c00: d16d bne.n 8006cde + { + for(int a=0;a<64;a++) + 8006c02: 2300 movs r3, #0 + 8006c04: 627b str r3, [r7, #36] ; 0x24 + 8006c06: e065 b.n 8006cd4 + { + if(morse_input_buff[a]=='\0') + 8006c08: 4a9f ldr r2, [pc, #636] ; (8006e88 ) + 8006c0a: 6a7b ldr r3, [r7, #36] ; 0x24 + 8006c0c: 4413 add r3, r2 + 8006c0e: 781b ldrb r3, [r3, #0] + 8006c10: 2b00 cmp r3, #0 + 8006c12: d063 beq.n 8006cdc + { + break; + } + + if(morse_input_buff[a]==' ') + 8006c14: 4a9c ldr r2, [pc, #624] ; (8006e88 ) + 8006c16: 6a7b ldr r3, [r7, #36] ; 0x24 + 8006c18: 4413 add r3, r2 + 8006c1a: 781b ldrb r3, [r3, #0] + 8006c1c: 2b20 cmp r3, #32 + 8006c1e: d106 bne.n 8006c2e + { + add_a_note(0, 50, 300); + 8006c20: f44f 7296 mov.w r2, #300 ; 0x12c + 8006c24: 2132 movs r1, #50 ; 0x32 + 8006c26: 2000 movs r0, #0 + 8006c28: f7fe ff76 bl 8005b18 + 8006c2c: e04f b.n 8006cce + }else + { + for(int b=0;b<36;b++) + 8006c2e: 2300 movs r3, #0 + 8006c30: 623b str r3, [r7, #32] + 8006c32: e044 b.n 8006cbe + { + if(morsecodes[b].letter==morse_input_buff[a]) + 8006c34: 4995 ldr r1, [pc, #596] ; (8006e8c ) + 8006c36: 6a3a ldr r2, [r7, #32] + 8006c38: 4613 mov r3, r2 + 8006c3a: 005b lsls r3, r3, #1 + 8006c3c: 4413 add r3, r2 + 8006c3e: 440b add r3, r1 + 8006c40: 3302 adds r3, #2 + 8006c42: 781a ldrb r2, [r3, #0] + 8006c44: 4990 ldr r1, [pc, #576] ; (8006e88 ) + 8006c46: 6a7b ldr r3, [r7, #36] ; 0x24 + 8006c48: 440b add r3, r1 + 8006c4a: 781b ldrb r3, [r3, #0] + 8006c4c: 429a cmp r2, r3 + 8006c4e: d133 bne.n 8006cb8 + { + for(int c=0;c + { + if(morsecodes[b].code&(0x80>>c)) + 8006c56: 498d ldr r1, [pc, #564] ; (8006e8c ) + 8006c58: 6a3a ldr r2, [r7, #32] + 8006c5a: 4613 mov r3, r2 + 8006c5c: 005b lsls r3, r3, #1 + 8006c5e: 4413 add r3, r2 + 8006c60: 440b add r3, r1 + 8006c62: 3301 adds r3, #1 + 8006c64: 781b ldrb r3, [r3, #0] + 8006c66: 4619 mov r1, r3 + 8006c68: 2280 movs r2, #128 ; 0x80 + 8006c6a: 69fb ldr r3, [r7, #28] + 8006c6c: fa42 f303 asr.w r3, r2, r3 + 8006c70: 400b ands r3, r1 + 8006c72: 2b00 cmp r3, #0 + 8006c74: d006 beq.n 8006c84 + { + add_a_note(1000, 50, 200); + 8006c76: 22c8 movs r2, #200 ; 0xc8 + 8006c78: 2132 movs r1, #50 ; 0x32 + 8006c7a: f44f 707a mov.w r0, #1000 ; 0x3e8 + 8006c7e: f7fe ff4b bl 8005b18 + 8006c82: e005 b.n 8006c90 + }else + { + add_a_note(1000, 50, 100); + 8006c84: 2264 movs r2, #100 ; 0x64 + 8006c86: 2132 movs r1, #50 ; 0x32 + 8006c88: f44f 707a mov.w r0, #1000 ; 0x3e8 + 8006c8c: f7fe ff44 bl 8005b18 + } + add_a_note(0, 50, 100); + 8006c90: 2264 movs r2, #100 ; 0x64 + 8006c92: 2132 movs r1, #50 ; 0x32 + 8006c94: 2000 movs r0, #0 + 8006c96: f7fe ff3f bl 8005b18 + for(int c=0;c) + 8006ca2: 6a3a ldr r2, [r7, #32] + 8006ca4: 4613 mov r3, r2 + 8006ca6: 005b lsls r3, r3, #1 + 8006ca8: 4413 add r3, r2 + 8006caa: 440b add r3, r1 + 8006cac: 781b ldrb r3, [r3, #0] + 8006cae: 461a mov r2, r3 + 8006cb0: 69fb ldr r3, [r7, #28] + 8006cb2: 4293 cmp r3, r2 + 8006cb4: dbcf blt.n 8006c56 + } + break; + 8006cb6: e005 b.n 8006cc4 + for(int b=0;b<36;b++) + 8006cb8: 6a3b ldr r3, [r7, #32] + 8006cba: 3301 adds r3, #1 + 8006cbc: 623b str r3, [r7, #32] + 8006cbe: 6a3b ldr r3, [r7, #32] + 8006cc0: 2b23 cmp r3, #35 ; 0x23 + 8006cc2: ddb7 ble.n 8006c34 + } + + } + add_a_note(0, 50, 100); + 8006cc4: 2264 movs r2, #100 ; 0x64 + 8006cc6: 2132 movs r1, #50 ; 0x32 + 8006cc8: 2000 movs r0, #0 + 8006cca: f7fe ff25 bl 8005b18 + for(int a=0;a<64;a++) + 8006cce: 6a7b ldr r3, [r7, #36] ; 0x24 + 8006cd0: 3301 adds r3, #1 + 8006cd2: 627b str r3, [r7, #36] ; 0x24 + 8006cd4: 6a7b ldr r3, [r7, #36] ; 0x24 + 8006cd6: 2b3f cmp r3, #63 ; 0x3f + 8006cd8: dd96 ble.n 8006c08 + 8006cda: e000 b.n 8006cde + break; + 8006cdc: bf00 nop + } + } + + } + if(k2.code==3) + 8006cde: 4b6c ldr r3, [pc, #432] ; (8006e90 ) + 8006ce0: 681b ldr r3, [r3, #0] + 8006ce2: 2b03 cmp r3, #3 + 8006ce4: d103 bne.n 8006cee + { + sprintf(morse_input_buff,"EISH5 E I S H 5"); + 8006ce6: 496b ldr r1, [pc, #428] ; (8006e94 ) + 8006ce8: 4867 ldr r0, [pc, #412] ; (8006e88 ) + 8006cea: f001 fbc3 bl 8008474 + } + if(k2.code==2) + 8006cee: 4b68 ldr r3, [pc, #416] ; (8006e90 ) + 8006cf0: 681b ldr r3, [r3, #0] + 8006cf2: 2b02 cmp r3, #2 + 8006cf4: d103 bne.n 8006cfe + { + sprintf(morse_input_buff,"HELLO WORLD"); + 8006cf6: 4968 ldr r1, [pc, #416] ; (8006e98 ) + 8006cf8: 4863 ldr r0, [pc, #396] ; (8006e88 ) + 8006cfa: f001 fbbb bl 8008474 + } if(k2.code==1) - 8005e7a: 4b7d ldr r3, [pc, #500] ; (8006070 ) - 8005e7c: 681b ldr r3, [r3, #0] - 8005e7e: 2b01 cmp r3, #1 - 8005e80: d15e bne.n 8005f40 + 8006cfe: 4b64 ldr r3, [pc, #400] ; (8006e90 ) + 8006d00: 681b ldr r3, [r3, #0] + 8006d02: 2b01 cmp r3, #1 + 8006d04: d15e bne.n 8006dc4 { morse_x=morsecode_window->x; - 8005e82: 4b7c ldr r3, [pc, #496] ; (8006074 ) - 8005e84: 681b ldr r3, [r3, #0] - 8005e86: 881b ldrh r3, [r3, #0] - 8005e88: 461a mov r2, r3 - 8005e8a: 4b7b ldr r3, [pc, #492] ; (8006078 ) - 8005e8c: 601a str r2, [r3, #0] + 8006d06: 4b65 ldr r3, [pc, #404] ; (8006e9c ) + 8006d08: 681b ldr r3, [r3, #0] + 8006d0a: 881b ldrh r3, [r3, #0] + 8006d0c: 461a mov r2, r3 + 8006d0e: 4b64 ldr r3, [pc, #400] ; (8006ea0 ) + 8006d10: 601a str r2, [r3, #0] morse_y=morsecode_window->y+16; - 8005e8e: 4b79 ldr r3, [pc, #484] ; (8006074 ) - 8005e90: 681b ldr r3, [r3, #0] - 8005e92: 885b ldrh r3, [r3, #2] - 8005e94: 3310 adds r3, #16 - 8005e96: 4a79 ldr r2, [pc, #484] ; (800607c ) - 8005e98: 6013 str r3, [r2, #0] + 8006d12: 4b62 ldr r3, [pc, #392] ; (8006e9c ) + 8006d14: 681b ldr r3, [r3, #0] + 8006d16: 885b ldrh r3, [r3, #2] + 8006d18: 3310 adds r3, #16 + 8006d1a: 4a62 ldr r2, [pc, #392] ; (8006ea4 ) + 8006d1c: 6013 str r3, [r2, #0] for(int a=0;a<64;a++) - 8005e9a: 2300 movs r3, #0 - 8005e9c: 617b str r3, [r7, #20] - 8005e9e: e043 b.n 8005f28 + 8006d1e: 2300 movs r3, #0 + 8006d20: 61bb str r3, [r7, #24] + 8006d22: e043 b.n 8006dac { morse_input_buff[a]='\0'; - 8005ea0: 4a77 ldr r2, [pc, #476] ; (8006080 ) - 8005ea2: 697b ldr r3, [r7, #20] - 8005ea4: 4413 add r3, r2 - 8005ea6: 2200 movs r2, #0 - 8005ea8: 701a strb r2, [r3, #0] + 8006d24: 4a58 ldr r2, [pc, #352] ; (8006e88 ) + 8006d26: 69bb ldr r3, [r7, #24] + 8006d28: 4413 add r3, r2 + 8006d2a: 2200 movs r2, #0 + 8006d2c: 701a strb r2, [r3, #0] if(morse_x>=(morsecode_window->x+morsecode_window->width)) - 8005eaa: 4b72 ldr r3, [pc, #456] ; (8006074 ) - 8005eac: 681b ldr r3, [r3, #0] - 8005eae: 881b ldrh r3, [r3, #0] - 8005eb0: 461a mov r2, r3 - 8005eb2: 4b70 ldr r3, [pc, #448] ; (8006074 ) - 8005eb4: 681b ldr r3, [r3, #0] - 8005eb6: 889b ldrh r3, [r3, #4] - 8005eb8: 441a add r2, r3 - 8005eba: 4b6f ldr r3, [pc, #444] ; (8006078 ) - 8005ebc: 681b ldr r3, [r3, #0] - 8005ebe: 429a cmp r2, r3 - 8005ec0: dc1c bgt.n 8005efc + 8006d2e: 4b5b ldr r3, [pc, #364] ; (8006e9c ) + 8006d30: 681b ldr r3, [r3, #0] + 8006d32: 881b ldrh r3, [r3, #0] + 8006d34: 461a mov r2, r3 + 8006d36: 4b59 ldr r3, [pc, #356] ; (8006e9c ) + 8006d38: 681b ldr r3, [r3, #0] + 8006d3a: 889b ldrh r3, [r3, #4] + 8006d3c: 441a add r2, r3 + 8006d3e: 4b58 ldr r3, [pc, #352] ; (8006ea0 ) + 8006d40: 681b ldr r3, [r3, #0] + 8006d42: 429a cmp r2, r3 + 8006d44: dc1c bgt.n 8006d80 { morse_x=morsecode_window->x; - 8005ec2: 4b6c ldr r3, [pc, #432] ; (8006074 ) - 8005ec4: 681b ldr r3, [r3, #0] - 8005ec6: 881b ldrh r3, [r3, #0] - 8005ec8: 461a mov r2, r3 - 8005eca: 4b6b ldr r3, [pc, #428] ; (8006078 ) - 8005ecc: 601a str r2, [r3, #0] + 8006d46: 4b55 ldr r3, [pc, #340] ; (8006e9c ) + 8006d48: 681b ldr r3, [r3, #0] + 8006d4a: 881b ldrh r3, [r3, #0] + 8006d4c: 461a mov r2, r3 + 8006d4e: 4b54 ldr r3, [pc, #336] ; (8006ea0 ) + 8006d50: 601a str r2, [r3, #0] morse_y+=16; - 8005ece: 4b6b ldr r3, [pc, #428] ; (800607c ) - 8005ed0: 681b ldr r3, [r3, #0] - 8005ed2: 3310 adds r3, #16 - 8005ed4: 4a69 ldr r2, [pc, #420] ; (800607c ) - 8005ed6: 6013 str r3, [r2, #0] + 8006d52: 4b54 ldr r3, [pc, #336] ; (8006ea4 ) + 8006d54: 681b ldr r3, [r3, #0] + 8006d56: 3310 adds r3, #16 + 8006d58: 4a52 ldr r2, [pc, #328] ; (8006ea4 ) + 8006d5a: 6013 str r3, [r2, #0] if(morse_y>=(morsecode_window->y+morsecode_window->high)) - 8005ed8: 4b66 ldr r3, [pc, #408] ; (8006074 ) - 8005eda: 681b ldr r3, [r3, #0] - 8005edc: 885b ldrh r3, [r3, #2] - 8005ede: 461a mov r2, r3 - 8005ee0: 4b64 ldr r3, [pc, #400] ; (8006074 ) - 8005ee2: 681b ldr r3, [r3, #0] - 8005ee4: 88db ldrh r3, [r3, #6] - 8005ee6: 441a add r2, r3 - 8005ee8: 4b64 ldr r3, [pc, #400] ; (800607c ) - 8005eea: 681b ldr r3, [r3, #0] - 8005eec: 429a cmp r2, r3 - 8005eee: dc05 bgt.n 8005efc + 8006d5c: 4b4f ldr r3, [pc, #316] ; (8006e9c ) + 8006d5e: 681b ldr r3, [r3, #0] + 8006d60: 885b ldrh r3, [r3, #2] + 8006d62: 461a mov r2, r3 + 8006d64: 4b4d ldr r3, [pc, #308] ; (8006e9c ) + 8006d66: 681b ldr r3, [r3, #0] + 8006d68: 88db ldrh r3, [r3, #6] + 8006d6a: 441a add r2, r3 + 8006d6c: 4b4d ldr r3, [pc, #308] ; (8006ea4 ) + 8006d6e: 681b ldr r3, [r3, #0] + 8006d70: 429a cmp r2, r3 + 8006d72: dc05 bgt.n 8006d80 { morse_y=morsecode_window->y+16; - 8005ef0: 4b60 ldr r3, [pc, #384] ; (8006074 ) - 8005ef2: 681b ldr r3, [r3, #0] - 8005ef4: 885b ldrh r3, [r3, #2] - 8005ef6: 3310 adds r3, #16 - 8005ef8: 4a60 ldr r2, [pc, #384] ; (800607c ) - 8005efa: 6013 str r3, [r2, #0] + 8006d74: 4b49 ldr r3, [pc, #292] ; (8006e9c ) + 8006d76: 681b ldr r3, [r3, #0] + 8006d78: 885b ldrh r3, [r3, #2] + 8006d7a: 3310 adds r3, #16 + 8006d7c: 4a49 ldr r2, [pc, #292] ; (8006ea4 ) + 8006d7e: 6013 str r3, [r2, #0] } } LCD_ShowChar(morse_x,morse_y,' ',16,CYAN,RED); - 8005efc: 4b5e ldr r3, [pc, #376] ; (8006078 ) - 8005efe: 6818 ldr r0, [r3, #0] - 8005f00: 4b5e ldr r3, [pc, #376] ; (800607c ) - 8005f02: 6819 ldr r1, [r3, #0] - 8005f04: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8005f08: 9301 str r3, [sp, #4] - 8005f0a: f647 73ff movw r3, #32767 ; 0x7fff - 8005f0e: 9300 str r3, [sp, #0] - 8005f10: 2310 movs r3, #16 - 8005f12: 2220 movs r2, #32 - 8005f14: f7fe ff22 bl 8004d5c + 8006d80: 4b47 ldr r3, [pc, #284] ; (8006ea0 ) + 8006d82: 6818 ldr r0, [r3, #0] + 8006d84: 4b47 ldr r3, [pc, #284] ; (8006ea4 ) + 8006d86: 6819 ldr r1, [r3, #0] + 8006d88: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8006d8c: 9301 str r3, [sp, #4] + 8006d8e: f647 73ff movw r3, #32767 ; 0x7fff + 8006d92: 9300 str r3, [sp, #0] + 8006d94: 2310 movs r3, #16 + 8006d96: 2220 movs r2, #32 + 8006d98: f7fe fdcc bl 8005934 morse_x+=8; - 8005f18: 4b57 ldr r3, [pc, #348] ; (8006078 ) - 8005f1a: 681b ldr r3, [r3, #0] - 8005f1c: 3308 adds r3, #8 - 8005f1e: 4a56 ldr r2, [pc, #344] ; (8006078 ) - 8005f20: 6013 str r3, [r2, #0] + 8006d9c: 4b40 ldr r3, [pc, #256] ; (8006ea0 ) + 8006d9e: 681b ldr r3, [r3, #0] + 8006da0: 3308 adds r3, #8 + 8006da2: 4a3f ldr r2, [pc, #252] ; (8006ea0 ) + 8006da4: 6013 str r3, [r2, #0] for(int a=0;a<64;a++) - 8005f22: 697b ldr r3, [r7, #20] - 8005f24: 3301 adds r3, #1 - 8005f26: 617b str r3, [r7, #20] - 8005f28: 697b ldr r3, [r7, #20] - 8005f2a: 2b3f cmp r3, #63 ; 0x3f - 8005f2c: ddb8 ble.n 8005ea0 + 8006da6: 69bb ldr r3, [r7, #24] + 8006da8: 3301 adds r3, #1 + 8006daa: 61bb str r3, [r7, #24] + 8006dac: 69bb ldr r3, [r7, #24] + 8006dae: 2b3f cmp r3, #63 ; 0x3f + 8006db0: ddb8 ble.n 8006d24 } morse_input_flag=0; - 8005f2e: 4b55 ldr r3, [pc, #340] ; (8006084 ) - 8005f30: 2200 movs r2, #0 - 8005f32: 601a str r2, [r3, #0] + 8006db2: 4b3d ldr r3, [pc, #244] ; (8006ea8 ) + 8006db4: 2200 movs r2, #0 + 8006db6: 601a str r2, [r3, #0] morse_char_flag=0; - 8005f34: 4b54 ldr r3, [pc, #336] ; (8006088 ) - 8005f36: 2200 movs r2, #0 - 8005f38: 601a str r2, [r3, #0] + 8006db8: 4b3c ldr r3, [pc, #240] ; (8006eac ) + 8006dba: 2200 movs r2, #0 + 8006dbc: 601a str r2, [r3, #0] morse_flah=0; - 8005f3a: 4b54 ldr r3, [pc, #336] ; (800608c ) - 8005f3c: 2200 movs r2, #0 - 8005f3e: 701a strb r2, [r3, #0] + 8006dbe: 4b3c ldr r3, [pc, #240] ; (8006eb0 ) + 8006dc0: 2200 movs r2, #0 + 8006dc2: 701a strb r2, [r3, #0] } char get_char_temp; push_key=KEY1; - 8005f40: 2110 movs r1, #16 - 8005f42: 4853 ldr r0, [pc, #332] ; (8006090 ) - 8005f44: f7fc f8e8 bl 8002118 - 8005f48: 4603 mov r3, r0 - 8005f4a: 461a mov r2, r3 - 8005f4c: 4b51 ldr r3, [pc, #324] ; (8006094 ) - 8005f4e: 701a strb r2, [r3, #0] + 8006dc4: 2110 movs r1, #16 + 8006dc6: 483b ldr r0, [pc, #236] ; (8006eb4 ) + 8006dc8: f7fb fa98 bl 80022fc + 8006dcc: 4603 mov r3, r0 + 8006dce: 461a mov r2, r3 + 8006dd0: 4b39 ldr r3, [pc, #228] ; (8006eb8 ) + 8006dd2: 701a strb r2, [r3, #0] if(push_key!=last_key) - 8005f50: 4b50 ldr r3, [pc, #320] ; (8006094 ) - 8005f52: 781a ldrb r2, [r3, #0] - 8005f54: 4b50 ldr r3, [pc, #320] ; (8006098 ) - 8005f56: 781b ldrb r3, [r3, #0] - 8005f58: 429a cmp r2, r3 - 8005f5a: d059 beq.n 8006010 + 8006dd4: 4b38 ldr r3, [pc, #224] ; (8006eb8 ) + 8006dd6: 781a ldrb r2, [r3, #0] + 8006dd8: 4b38 ldr r3, [pc, #224] ; (8006ebc ) + 8006dda: 781b ldrb r3, [r3, #0] + 8006ddc: 429a cmp r2, r3 + 8006dde: f000 80a2 beq.w 8006f26 { if(push_key==0) - 8005f5c: 4b4d ldr r3, [pc, #308] ; (8006094 ) - 8005f5e: 781b ldrb r3, [r3, #0] - 8005f60: 2b00 cmp r3, #0 - 8005f62: d105 bne.n 8005f70 + 8006de2: 4b35 ldr r3, [pc, #212] ; (8006eb8 ) + 8006de4: 781b ldrb r3, [r3, #0] + 8006de6: 2b00 cmp r3, #0 + 8006de8: d10a bne.n 8006e00 { morse_t=HAL_GetTick(); - 8005f64: f7fb fe08 bl 8001b78 - 8005f68: 4603 mov r3, r0 - 8005f6a: 4a4c ldr r2, [pc, #304] ; (800609c ) - 8005f6c: 6013 str r3, [r2, #0] - 8005f6e: e046 b.n 8005ffe + 8006dea: f7fa ffb7 bl 8001d5c + 8006dee: 4603 mov r3, r0 + 8006df0: 4a33 ldr r2, [pc, #204] ; (8006ec0 ) + 8006df2: 6013 str r3, [r2, #0] + play_ones(1000,50); + 8006df4: 2132 movs r1, #50 ; 0x32 + 8006df6: f44f 707a mov.w r0, #1000 ; 0x3e8 + 8006dfa: f7fe fe55 bl 8005aa8 + 8006dfe: e089 b.n 8006f14 }else { morse_temp=HAL_GetTick()-morse_t; - 8005f70: f7fb fe02 bl 8001b78 - 8005f74: 4603 mov r3, r0 - 8005f76: b29a uxth r2, r3 - 8005f78: 4b48 ldr r3, [pc, #288] ; (800609c ) - 8005f7a: 681b ldr r3, [r3, #0] - 8005f7c: b29b uxth r3, r3 - 8005f7e: 1ad3 subs r3, r2, r3 - 8005f80: b29a uxth r2, r3 - 8005f82: 4b47 ldr r3, [pc, #284] ; (80060a0 ) - 8005f84: 801a strh r2, [r3, #0] + 8006e00: f7fa ffac bl 8001d5c + 8006e04: 4603 mov r3, r0 + 8006e06: b29a uxth r2, r3 + 8006e08: 4b2d ldr r3, [pc, #180] ; (8006ec0 ) + 8006e0a: 681b ldr r3, [r3, #0] + 8006e0c: b29b uxth r3, r3 + 8006e0e: 1ad3 subs r3, r2, r3 + 8006e10: b29a uxth r2, r3 + 8006e12: 4b2c ldr r3, [pc, #176] ; (8006ec4 ) + 8006e14: 801a strh r2, [r3, #0] if(morse_temp>morse_t2) - 8005f86: 4b46 ldr r3, [pc, #280] ; (80060a0 ) - 8005f88: 881b ldrh r3, [r3, #0] - 8005f8a: f240 22ee movw r2, #750 ; 0x2ee - 8005f8e: 4293 cmp r3, r2 - 8005f90: d81c bhi.n 8005fcc + 8006e16: 4b2b ldr r3, [pc, #172] ; (8006ec4 ) + 8006e18: 881b ldrh r3, [r3, #0] + 8006e1a: f5b3 7f16 cmp.w r3, #600 ; 0x258 + 8006e1e: d875 bhi.n 8006f0c { //time out error }else if(morse_temp>morse_t1) - 8005f92: 4b43 ldr r3, [pc, #268] ; (80060a0 ) - 8005f94: 881b ldrh r3, [r3, #0] - 8005f96: 2bfa cmp r3, #250 ; 0xfa - 8005f98: d913 bls.n 8005fc2 + 8006e20: 4b28 ldr r3, [pc, #160] ; (8006ec4 ) + 8006e22: 881b ldrh r3, [r3, #0] + 8006e24: 2bc8 cmp r3, #200 ; 0xc8 + 8006e26: d953 bls.n 8006ed0 { //- morse_input_buff[morse_input_flag]='-'; - 8005f9a: 4b3a ldr r3, [pc, #232] ; (8006084 ) - 8005f9c: 681b ldr r3, [r3, #0] - 8005f9e: 4a38 ldr r2, [pc, #224] ; (8006080 ) - 8005fa0: 212d movs r1, #45 ; 0x2d - 8005fa2: 54d1 strb r1, [r2, r3] + 8006e28: 4b1f ldr r3, [pc, #124] ; (8006ea8 ) + 8006e2a: 681b ldr r3, [r3, #0] + 8006e2c: 4a16 ldr r2, [pc, #88] ; (8006e88 ) + 8006e2e: 212d movs r1, #45 ; 0x2d + 8006e30: 54d1 strb r1, [r2, r3] morse_letter_temp|=(0x80>>morse_letter_flag); - 8005fa4: 4b3f ldr r3, [pc, #252] ; (80060a4 ) - 8005fa6: 781b ldrb r3, [r3, #0] - 8005fa8: 461a mov r2, r3 - 8005faa: 2380 movs r3, #128 ; 0x80 - 8005fac: 4113 asrs r3, r2 - 8005fae: b25a sxtb r2, r3 - 8005fb0: 4b3d ldr r3, [pc, #244] ; (80060a8 ) - 8005fb2: 781b ldrb r3, [r3, #0] - 8005fb4: b25b sxtb r3, r3 - 8005fb6: 4313 orrs r3, r2 - 8005fb8: b25b sxtb r3, r3 - 8005fba: b2da uxtb r2, r3 - 8005fbc: 4b3a ldr r3, [pc, #232] ; (80060a8 ) - 8005fbe: 701a strb r2, [r3, #0] - 8005fc0: e004 b.n 8005fcc + 8006e32: 4b25 ldr r3, [pc, #148] ; (8006ec8 ) + 8006e34: 781b ldrb r3, [r3, #0] + 8006e36: 461a mov r2, r3 + 8006e38: 2380 movs r3, #128 ; 0x80 + 8006e3a: 4113 asrs r3, r2 + 8006e3c: b25a sxtb r2, r3 + 8006e3e: 4b23 ldr r3, [pc, #140] ; (8006ecc ) + 8006e40: 781b ldrb r3, [r3, #0] + 8006e42: b25b sxtb r3, r3 + 8006e44: 4313 orrs r3, r2 + 8006e46: b25b sxtb r3, r3 + 8006e48: b2da uxtb r2, r3 + 8006e4a: 4b20 ldr r3, [pc, #128] ; (8006ecc ) + 8006e4c: 701a strb r2, [r3, #0] + morse_input_flag++; + 8006e4e: 4b16 ldr r3, [pc, #88] ; (8006ea8 ) + 8006e50: 681b ldr r3, [r3, #0] + 8006e52: 3301 adds r3, #1 + 8006e54: 4a14 ldr r2, [pc, #80] ; (8006ea8 ) + 8006e56: 6013 str r3, [r2, #0] + morse_letter_flag++; + 8006e58: 4b1b ldr r3, [pc, #108] ; (8006ec8 ) + 8006e5a: 781b ldrb r3, [r3, #0] + 8006e5c: 3301 adds r3, #1 + 8006e5e: b2da uxtb r2, r3 + 8006e60: 4b19 ldr r3, [pc, #100] ; (8006ec8 ) + 8006e62: 701a strb r2, [r3, #0] + if(morse_input_flag>=morse_char_flag+8){morse_input_flag=morse_char_flag;morse_letter_flag=0;} + 8006e64: 4b11 ldr r3, [pc, #68] ; (8006eac ) + 8006e66: 681b ldr r3, [r3, #0] + 8006e68: 1dda adds r2, r3, #7 + 8006e6a: 4b0f ldr r3, [pc, #60] ; (8006ea8 ) + 8006e6c: 681b ldr r3, [r3, #0] + 8006e6e: 429a cmp r2, r3 + 8006e70: da4c bge.n 8006f0c + 8006e72: 4b0e ldr r3, [pc, #56] ; (8006eac ) + 8006e74: 681b ldr r3, [r3, #0] + 8006e76: 4a0c ldr r2, [pc, #48] ; (8006ea8 ) + 8006e78: 6013 str r3, [r2, #0] + 8006e7a: 4b13 ldr r3, [pc, #76] ; (8006ec8 ) + 8006e7c: 2200 movs r2, #0 + 8006e7e: 701a strb r2, [r3, #0] + 8006e80: e044 b.n 8006f0c + 8006e82: bf00 nop + 8006e84: 200003e8 .word 0x200003e8 + 8006e88: 20002588 .word 0x20002588 + 8006e8c: 0800b2f0 .word 0x0800b2f0 + 8006e90: 200003d8 .word 0x200003d8 + 8006e94: 0800a848 .word 0x0800a848 + 8006e98: 0800a85c .word 0x0800a85c + 8006e9c: 20002584 .word 0x20002584 + 8006ea0: 200025d0 .word 0x200025d0 + 8006ea4: 200025cc .word 0x200025cc + 8006ea8: 20000218 .word 0x20000218 + 8006eac: 2000021c .word 0x2000021c + 8006eb0: 20000220 .word 0x20000220 + 8006eb4: 40011800 .word 0x40011800 + 8006eb8: 2000020c .word 0x2000020c + 8006ebc: 20000009 .word 0x20000009 + 8006ec0: 20000210 .word 0x20000210 + 8006ec4: 200025d4 .word 0x200025d4 + 8006ec8: 20000222 .word 0x20000222 + 8006ecc: 20000221 .word 0x20000221 }else { //. morse_input_buff[morse_input_flag]='.'; - 8005fc2: 4b30 ldr r3, [pc, #192] ; (8006084 ) - 8005fc4: 681b ldr r3, [r3, #0] - 8005fc6: 4a2e ldr r2, [pc, #184] ; (8006080 ) - 8005fc8: 212e movs r1, #46 ; 0x2e - 8005fca: 54d1 strb r1, [r2, r3] + 8006ed0: 4b97 ldr r3, [pc, #604] ; (8007130 ) + 8006ed2: 681b ldr r3, [r3, #0] + 8006ed4: 4a97 ldr r2, [pc, #604] ; (8007134 ) + 8006ed6: 212e movs r1, #46 ; 0x2e + 8006ed8: 54d1 strb r1, [r2, r3] + morse_input_flag++; + 8006eda: 4b95 ldr r3, [pc, #596] ; (8007130 ) + 8006edc: 681b ldr r3, [r3, #0] + 8006ede: 3301 adds r3, #1 + 8006ee0: 4a93 ldr r2, [pc, #588] ; (8007130 ) + 8006ee2: 6013 str r3, [r2, #0] + morse_letter_flag++; + 8006ee4: 4b94 ldr r3, [pc, #592] ; (8007138 ) + 8006ee6: 781b ldrb r3, [r3, #0] + 8006ee8: 3301 adds r3, #1 + 8006eea: b2da uxtb r2, r3 + 8006eec: 4b92 ldr r3, [pc, #584] ; (8007138 ) + 8006eee: 701a strb r2, [r3, #0] + if(morse_input_flag>=morse_char_flag+8){morse_input_flag=morse_char_flag;morse_letter_flag=0;} + 8006ef0: 4b92 ldr r3, [pc, #584] ; (800713c ) + 8006ef2: 681b ldr r3, [r3, #0] + 8006ef4: 1dda adds r2, r3, #7 + 8006ef6: 4b8e ldr r3, [pc, #568] ; (8007130 ) + 8006ef8: 681b ldr r3, [r3, #0] + 8006efa: 429a cmp r2, r3 + 8006efc: da06 bge.n 8006f0c + 8006efe: 4b8f ldr r3, [pc, #572] ; (800713c ) + 8006f00: 681b ldr r3, [r3, #0] + 8006f02: 4a8b ldr r2, [pc, #556] ; (8007130 ) + 8006f04: 6013 str r3, [r2, #0] + 8006f06: 4b8c ldr r3, [pc, #560] ; (8007138 ) + 8006f08: 2200 movs r2, #0 + 8006f0a: 701a strb r2, [r3, #0] } - morse_input_flag++; - 8005fcc: 4b2d ldr r3, [pc, #180] ; (8006084 ) - 8005fce: 681b ldr r3, [r3, #0] - 8005fd0: 3301 adds r3, #1 - 8005fd2: 4a2c ldr r2, [pc, #176] ; (8006084 ) - 8005fd4: 6013 str r3, [r2, #0] - morse_letter_flag++; - 8005fd6: 4b33 ldr r3, [pc, #204] ; (80060a4 ) - 8005fd8: 781b ldrb r3, [r3, #0] - 8005fda: 3301 adds r3, #1 - 8005fdc: b2da uxtb r2, r3 - 8005fde: 4b31 ldr r3, [pc, #196] ; (80060a4 ) - 8005fe0: 701a strb r2, [r3, #0] - if(morse_input_flag>=morse_char_flag+8){morse_input_flag=morse_char_flag;morse_letter_flag=0;} - 8005fe2: 4b29 ldr r3, [pc, #164] ; (8006088 ) - 8005fe4: 681b ldr r3, [r3, #0] - 8005fe6: 1dda adds r2, r3, #7 - 8005fe8: 4b26 ldr r3, [pc, #152] ; (8006084 ) - 8005fea: 681b ldr r3, [r3, #0] - 8005fec: 429a cmp r2, r3 - 8005fee: da06 bge.n 8005ffe - 8005ff0: 4b25 ldr r3, [pc, #148] ; (8006088 ) - 8005ff2: 681b ldr r3, [r3, #0] - 8005ff4: 4a23 ldr r2, [pc, #140] ; (8006084 ) - 8005ff6: 6013 str r3, [r2, #0] - 8005ff8: 4b2a ldr r3, [pc, #168] ; (80060a4 ) - 8005ffa: 2200 movs r2, #0 - 8005ffc: 701a strb r2, [r3, #0] + + play_ones(0,0); + 8006f0c: 2100 movs r1, #0 + 8006f0e: 2000 movs r0, #0 + 8006f10: f7fe fdca bl 8005aa8 } last_key=push_key; - 8005ffe: 4b25 ldr r3, [pc, #148] ; (8006094 ) - 8006000: 781a ldrb r2, [r3, #0] - 8006002: 4b25 ldr r3, [pc, #148] ; (8006098 ) - 8006004: 701a strb r2, [r3, #0] + 8006f14: 4b8a ldr r3, [pc, #552] ; (8007140 ) + 8006f16: 781a ldrb r2, [r3, #0] + 8006f18: 4b8a ldr r3, [pc, #552] ; (8007144 ) + 8006f1a: 701a strb r2, [r3, #0] morse_time_out=HAL_GetTick(); - 8006006: f7fb fdb7 bl 8001b78 - 800600a: 4603 mov r3, r0 - 800600c: 4a27 ldr r2, [pc, #156] ; (80060ac ) - 800600e: 6013 str r3, [r2, #0] + 8006f1c: f7fa ff1e bl 8001d5c + 8006f20: 4603 mov r3, r0 + 8006f22: 4a89 ldr r2, [pc, #548] ; (8007148 ) + 8006f24: 6013 str r3, [r2, #0] } if(push_key==1) - 8006010: 4b20 ldr r3, [pc, #128] ; (8006094 ) - 8006012: 781b ldrb r3, [r3, #0] - 8006014: 2b01 cmp r3, #1 - 8006016: f040 8189 bne.w 800632c + 8006f26: 4b86 ldr r3, [pc, #536] ; (8007140 ) + 8006f28: 781b ldrb r3, [r3, #0] + 8006f2a: 2b01 cmp r3, #1 + 8006f2c: f040 816c bne.w 8007208 { //Get cursor on the screen if((HAL_GetTick()-morse_time_out)>morse_t1) - 800601a: f7fb fdad bl 8001b78 - 800601e: 4602 mov r2, r0 - 8006020: 4b22 ldr r3, [pc, #136] ; (80060ac ) - 8006022: 681b ldr r3, [r3, #0] - 8006024: 1ad3 subs r3, r2, r3 - 8006026: 2bfa cmp r3, #250 ; 0xfa - 8006028: f240 80f6 bls.w 8006218 + 8006f30: f7fa ff14 bl 8001d5c + 8006f34: 4602 mov r2, r0 + 8006f36: 4b84 ldr r3, [pc, #528] ; (8007148 ) + 8006f38: 681b ldr r3, [r3, #0] + 8006f3a: 1ad3 subs r3, r2, r3 + 8006f3c: 2bc8 cmp r3, #200 ; 0xc8 + 8006f3e: f240 80d5 bls.w 80070ec { if((morse_input_flag-morse_char_flag)>0) - 800602c: 4b15 ldr r3, [pc, #84] ; (8006084 ) - 800602e: 681a ldr r2, [r3, #0] - 8006030: 4b15 ldr r3, [pc, #84] ; (8006088 ) - 8006032: 681b ldr r3, [r3, #0] - 8006034: 1ad3 subs r3, r2, r3 - 8006036: 2b00 cmp r3, #0 - 8006038: f340 80ee ble.w 8006218 + 8006f42: 4b7b ldr r3, [pc, #492] ; (8007130 ) + 8006f44: 681a ldr r2, [r3, #0] + 8006f46: 4b7d ldr r3, [pc, #500] ; (800713c ) + 8006f48: 681b ldr r3, [r3, #0] + 8006f4a: 1ad3 subs r3, r2, r3 + 8006f4c: 2b00 cmp r3, #0 + 8006f4e: f340 80cd ble.w 80070ec { get_char_temp=getmorsecode(morse_letter_flag,morse_letter_temp); - 800603c: 4b19 ldr r3, [pc, #100] ; (80060a4 ) - 800603e: 781b ldrb r3, [r3, #0] - 8006040: 4a19 ldr r2, [pc, #100] ; (80060a8 ) - 8006042: 7812 ldrb r2, [r2, #0] - 8006044: 4611 mov r1, r2 - 8006046: 4618 mov r0, r3 - 8006048: f7ff fedc bl 8005e04 - 800604c: 4603 mov r3, r0 - 800604e: 70fb strb r3, [r7, #3] + 8006f52: 4b79 ldr r3, [pc, #484] ; (8007138 ) + 8006f54: 781b ldrb r3, [r3, #0] + 8006f56: 4a7d ldr r2, [pc, #500] ; (800714c ) + 8006f58: 7812 ldrb r2, [r2, #0] + 8006f5a: 4611 mov r1, r2 + 8006f5c: 4618 mov r0, r3 + 8006f5e: f7ff fe11 bl 8006b84 + 8006f62: 4603 mov r3, r0 + 8006f64: 71fb strb r3, [r7, #7] morse_x=morsecode_window->x; - 8006050: 4b08 ldr r3, [pc, #32] ; (8006074 ) - 8006052: 681b ldr r3, [r3, #0] - 8006054: 881b ldrh r3, [r3, #0] - 8006056: 461a mov r2, r3 - 8006058: 4b07 ldr r3, [pc, #28] ; (8006078 ) - 800605a: 601a str r2, [r3, #0] + 8006f66: 4b7a ldr r3, [pc, #488] ; (8007150 ) + 8006f68: 681b ldr r3, [r3, #0] + 8006f6a: 881b ldrh r3, [r3, #0] + 8006f6c: 461a mov r2, r3 + 8006f6e: 4b79 ldr r3, [pc, #484] ; (8007154 ) + 8006f70: 601a str r2, [r3, #0] morse_y=morsecode_window->y+16; - 800605c: 4b05 ldr r3, [pc, #20] ; (8006074 ) - 800605e: 681b ldr r3, [r3, #0] - 8006060: 885b ldrh r3, [r3, #2] - 8006062: 3310 adds r3, #16 - 8006064: 4a05 ldr r2, [pc, #20] ; (800607c ) - 8006066: 6013 str r3, [r2, #0] + 8006f72: 4b77 ldr r3, [pc, #476] ; (8007150 ) + 8006f74: 681b ldr r3, [r3, #0] + 8006f76: 885b ldrh r3, [r3, #2] + 8006f78: 3310 adds r3, #16 + 8006f7a: 4a77 ldr r2, [pc, #476] ; (8007158 ) + 8006f7c: 6013 str r3, [r2, #0] for(int a=0;a - 800606e: bf00 nop - 8006070: 200003c8 .word 0x200003c8 - 8006074: 20002574 .word 0x20002574 - 8006078: 2000257c .word 0x2000257c - 800607c: 20002578 .word 0x20002578 - 8006080: 20000210 .word 0x20000210 - 8006084: 20000254 .word 0x20000254 - 8006088: 20000258 .word 0x20000258 - 800608c: 2000025c .word 0x2000025c - 8006090: 40011800 .word 0x40011800 - 8006094: 20000204 .word 0x20000204 - 8006098: 20000009 .word 0x20000009 - 800609c: 20000208 .word 0x20000208 - 80060a0: 20002580 .word 0x20002580 - 80060a4: 2000025e .word 0x2000025e - 80060a8: 2000025d .word 0x2000025d - 80060ac: 2000020c .word 0x2000020c + 8006f7e: 2300 movs r3, #0 + 8006f80: 617b str r3, [r7, #20] + 8006f82: e030 b.n 8006fe6 { if(morse_x>=(morsecode_window->x+morsecode_window->width)) - 80060b0: 4b6a ldr r3, [pc, #424] ; (800625c ) - 80060b2: 681b ldr r3, [r3, #0] - 80060b4: 881b ldrh r3, [r3, #0] - 80060b6: 461a mov r2, r3 - 80060b8: 4b68 ldr r3, [pc, #416] ; (800625c ) - 80060ba: 681b ldr r3, [r3, #0] - 80060bc: 889b ldrh r3, [r3, #4] - 80060be: 441a add r2, r3 - 80060c0: 4b67 ldr r3, [pc, #412] ; (8006260 ) - 80060c2: 681b ldr r3, [r3, #0] - 80060c4: 429a cmp r2, r3 - 80060c6: dc1c bgt.n 8006102 + 8006f84: 4b72 ldr r3, [pc, #456] ; (8007150 ) + 8006f86: 681b ldr r3, [r3, #0] + 8006f88: 881b ldrh r3, [r3, #0] + 8006f8a: 461a mov r2, r3 + 8006f8c: 4b70 ldr r3, [pc, #448] ; (8007150 ) + 8006f8e: 681b ldr r3, [r3, #0] + 8006f90: 889b ldrh r3, [r3, #4] + 8006f92: 441a add r2, r3 + 8006f94: 4b6f ldr r3, [pc, #444] ; (8007154 ) + 8006f96: 681b ldr r3, [r3, #0] + 8006f98: 429a cmp r2, r3 + 8006f9a: dc1c bgt.n 8006fd6 { morse_x=morsecode_window->x; - 80060c8: 4b64 ldr r3, [pc, #400] ; (800625c ) - 80060ca: 681b ldr r3, [r3, #0] - 80060cc: 881b ldrh r3, [r3, #0] - 80060ce: 461a mov r2, r3 - 80060d0: 4b63 ldr r3, [pc, #396] ; (8006260 ) - 80060d2: 601a str r2, [r3, #0] + 8006f9c: 4b6c ldr r3, [pc, #432] ; (8007150 ) + 8006f9e: 681b ldr r3, [r3, #0] + 8006fa0: 881b ldrh r3, [r3, #0] + 8006fa2: 461a mov r2, r3 + 8006fa4: 4b6b ldr r3, [pc, #428] ; (8007154 ) + 8006fa6: 601a str r2, [r3, #0] morse_y+=16; - 80060d4: 4b63 ldr r3, [pc, #396] ; (8006264 ) - 80060d6: 681b ldr r3, [r3, #0] - 80060d8: 3310 adds r3, #16 - 80060da: 4a62 ldr r2, [pc, #392] ; (8006264 ) - 80060dc: 6013 str r3, [r2, #0] + 8006fa8: 4b6b ldr r3, [pc, #428] ; (8007158 ) + 8006faa: 681b ldr r3, [r3, #0] + 8006fac: 3310 adds r3, #16 + 8006fae: 4a6a ldr r2, [pc, #424] ; (8007158 ) + 8006fb0: 6013 str r3, [r2, #0] if(morse_y>=(morsecode_window->y+morsecode_window->high)) - 80060de: 4b5f ldr r3, [pc, #380] ; (800625c ) - 80060e0: 681b ldr r3, [r3, #0] - 80060e2: 885b ldrh r3, [r3, #2] - 80060e4: 461a mov r2, r3 - 80060e6: 4b5d ldr r3, [pc, #372] ; (800625c ) - 80060e8: 681b ldr r3, [r3, #0] - 80060ea: 88db ldrh r3, [r3, #6] - 80060ec: 441a add r2, r3 - 80060ee: 4b5d ldr r3, [pc, #372] ; (8006264 ) - 80060f0: 681b ldr r3, [r3, #0] - 80060f2: 429a cmp r2, r3 - 80060f4: dc05 bgt.n 8006102 + 8006fb2: 4b67 ldr r3, [pc, #412] ; (8007150 ) + 8006fb4: 681b ldr r3, [r3, #0] + 8006fb6: 885b ldrh r3, [r3, #2] + 8006fb8: 461a mov r2, r3 + 8006fba: 4b65 ldr r3, [pc, #404] ; (8007150 ) + 8006fbc: 681b ldr r3, [r3, #0] + 8006fbe: 88db ldrh r3, [r3, #6] + 8006fc0: 441a add r2, r3 + 8006fc2: 4b65 ldr r3, [pc, #404] ; (8007158 ) + 8006fc4: 681b ldr r3, [r3, #0] + 8006fc6: 429a cmp r2, r3 + 8006fc8: dc05 bgt.n 8006fd6 { morse_y=morsecode_window->y+16; - 80060f6: 4b59 ldr r3, [pc, #356] ; (800625c ) - 80060f8: 681b ldr r3, [r3, #0] - 80060fa: 885b ldrh r3, [r3, #2] - 80060fc: 3310 adds r3, #16 - 80060fe: 4a59 ldr r2, [pc, #356] ; (8006264 ) - 8006100: 6013 str r3, [r2, #0] + 8006fca: 4b61 ldr r3, [pc, #388] ; (8007150 ) + 8006fcc: 681b ldr r3, [r3, #0] + 8006fce: 885b ldrh r3, [r3, #2] + 8006fd0: 3310 adds r3, #16 + 8006fd2: 4a61 ldr r2, [pc, #388] ; (8007158 ) + 8006fd4: 6013 str r3, [r2, #0] } } morse_x+=8; - 8006102: 4b57 ldr r3, [pc, #348] ; (8006260 ) - 8006104: 681b ldr r3, [r3, #0] - 8006106: 3308 adds r3, #8 - 8006108: 4a55 ldr r2, [pc, #340] ; (8006260 ) - 800610a: 6013 str r3, [r2, #0] + 8006fd6: 4b5f ldr r3, [pc, #380] ; (8007154 ) + 8006fd8: 681b ldr r3, [r3, #0] + 8006fda: 3308 adds r3, #8 + 8006fdc: 4a5d ldr r2, [pc, #372] ; (8007154 ) + 8006fde: 6013 str r3, [r2, #0] for(int a=0;a) - 8006114: 681b ldr r3, [r3, #0] - 8006116: 693a ldr r2, [r7, #16] - 8006118: 429a cmp r2, r3 - 800611a: dbc9 blt.n 80060b0 + 8006fe0: 697b ldr r3, [r7, #20] + 8006fe2: 3301 adds r3, #1 + 8006fe4: 617b str r3, [r7, #20] + 8006fe6: 4b55 ldr r3, [pc, #340] ; (800713c ) + 8006fe8: 681b ldr r3, [r3, #0] + 8006fea: 697a ldr r2, [r7, #20] + 8006fec: 429a cmp r2, r3 + 8006fee: dbc9 blt.n 8006f84 } for(int a=morse_char_flag;a) - 800611e: 681b ldr r3, [r3, #0] - 8006120: 60fb str r3, [r7, #12] - 8006122: e05f b.n 80061e4 + 8006ff0: 4b52 ldr r3, [pc, #328] ; (800713c ) + 8006ff2: 681b ldr r3, [r3, #0] + 8006ff4: 613b str r3, [r7, #16] + 8006ff6: e05f b.n 80070b8 { if(morse_x>=(morsecode_window->x+morsecode_window->width)) - 8006124: 4b4d ldr r3, [pc, #308] ; (800625c ) - 8006126: 681b ldr r3, [r3, #0] - 8006128: 881b ldrh r3, [r3, #0] - 800612a: 461a mov r2, r3 - 800612c: 4b4b ldr r3, [pc, #300] ; (800625c ) - 800612e: 681b ldr r3, [r3, #0] - 8006130: 889b ldrh r3, [r3, #4] - 8006132: 441a add r2, r3 - 8006134: 4b4a ldr r3, [pc, #296] ; (8006260 ) - 8006136: 681b ldr r3, [r3, #0] - 8006138: 429a cmp r2, r3 - 800613a: dc1c bgt.n 8006176 + 8006ff8: 4b55 ldr r3, [pc, #340] ; (8007150 ) + 8006ffa: 681b ldr r3, [r3, #0] + 8006ffc: 881b ldrh r3, [r3, #0] + 8006ffe: 461a mov r2, r3 + 8007000: 4b53 ldr r3, [pc, #332] ; (8007150 ) + 8007002: 681b ldr r3, [r3, #0] + 8007004: 889b ldrh r3, [r3, #4] + 8007006: 441a add r2, r3 + 8007008: 4b52 ldr r3, [pc, #328] ; (8007154 ) + 800700a: 681b ldr r3, [r3, #0] + 800700c: 429a cmp r2, r3 + 800700e: dc1c bgt.n 800704a { morse_x=morsecode_window->x; - 800613c: 4b47 ldr r3, [pc, #284] ; (800625c ) - 800613e: 681b ldr r3, [r3, #0] - 8006140: 881b ldrh r3, [r3, #0] - 8006142: 461a mov r2, r3 - 8006144: 4b46 ldr r3, [pc, #280] ; (8006260 ) - 8006146: 601a str r2, [r3, #0] + 8007010: 4b4f ldr r3, [pc, #316] ; (8007150 ) + 8007012: 681b ldr r3, [r3, #0] + 8007014: 881b ldrh r3, [r3, #0] + 8007016: 461a mov r2, r3 + 8007018: 4b4e ldr r3, [pc, #312] ; (8007154 ) + 800701a: 601a str r2, [r3, #0] morse_y+=16; - 8006148: 4b46 ldr r3, [pc, #280] ; (8006264 ) - 800614a: 681b ldr r3, [r3, #0] - 800614c: 3310 adds r3, #16 - 800614e: 4a45 ldr r2, [pc, #276] ; (8006264 ) - 8006150: 6013 str r3, [r2, #0] + 800701c: 4b4e ldr r3, [pc, #312] ; (8007158 ) + 800701e: 681b ldr r3, [r3, #0] + 8007020: 3310 adds r3, #16 + 8007022: 4a4d ldr r2, [pc, #308] ; (8007158 ) + 8007024: 6013 str r3, [r2, #0] if(morse_y>=(morsecode_window->y+morsecode_window->high)) - 8006152: 4b42 ldr r3, [pc, #264] ; (800625c ) - 8006154: 681b ldr r3, [r3, #0] - 8006156: 885b ldrh r3, [r3, #2] - 8006158: 461a mov r2, r3 - 800615a: 4b40 ldr r3, [pc, #256] ; (800625c ) - 800615c: 681b ldr r3, [r3, #0] - 800615e: 88db ldrh r3, [r3, #6] - 8006160: 441a add r2, r3 - 8006162: 4b40 ldr r3, [pc, #256] ; (8006264 ) - 8006164: 681b ldr r3, [r3, #0] - 8006166: 429a cmp r2, r3 - 8006168: dc05 bgt.n 8006176 + 8007026: 4b4a ldr r3, [pc, #296] ; (8007150 ) + 8007028: 681b ldr r3, [r3, #0] + 800702a: 885b ldrh r3, [r3, #2] + 800702c: 461a mov r2, r3 + 800702e: 4b48 ldr r3, [pc, #288] ; (8007150 ) + 8007030: 681b ldr r3, [r3, #0] + 8007032: 88db ldrh r3, [r3, #6] + 8007034: 441a add r2, r3 + 8007036: 4b48 ldr r3, [pc, #288] ; (8007158 ) + 8007038: 681b ldr r3, [r3, #0] + 800703a: 429a cmp r2, r3 + 800703c: dc05 bgt.n 800704a { morse_y=morsecode_window->y+16; - 800616a: 4b3c ldr r3, [pc, #240] ; (800625c ) - 800616c: 681b ldr r3, [r3, #0] - 800616e: 885b ldrh r3, [r3, #2] - 8006170: 3310 adds r3, #16 - 8006172: 4a3c ldr r2, [pc, #240] ; (8006264 ) - 8006174: 6013 str r3, [r2, #0] + 800703e: 4b44 ldr r3, [pc, #272] ; (8007150 ) + 8007040: 681b ldr r3, [r3, #0] + 8007042: 885b ldrh r3, [r3, #2] + 8007044: 3310 adds r3, #16 + 8007046: 4a44 ldr r2, [pc, #272] ; (8007158 ) + 8007048: 6013 str r3, [r2, #0] } } if((a==morse_char_flag)&&(get_char_temp!=0)) - 8006176: 4b3c ldr r3, [pc, #240] ; (8006268 ) - 8006178: 681b ldr r3, [r3, #0] - 800617a: 68fa ldr r2, [r7, #12] - 800617c: 429a cmp r2, r3 - 800617e: d116 bne.n 80061ae - 8006180: 78fb ldrb r3, [r7, #3] - 8006182: 2b00 cmp r3, #0 - 8006184: d013 beq.n 80061ae + 800704a: 4b3c ldr r3, [pc, #240] ; (800713c ) + 800704c: 681b ldr r3, [r3, #0] + 800704e: 693a ldr r2, [r7, #16] + 8007050: 429a cmp r2, r3 + 8007052: d116 bne.n 8007082 + 8007054: 79fb ldrb r3, [r7, #7] + 8007056: 2b00 cmp r3, #0 + 8007058: d013 beq.n 8007082 { LCD_ShowChar(morse_x,morse_y,get_char_temp,16,CYAN,RED); - 8006186: 4b36 ldr r3, [pc, #216] ; (8006260 ) - 8006188: 6818 ldr r0, [r3, #0] - 800618a: 4b36 ldr r3, [pc, #216] ; (8006264 ) - 800618c: 6819 ldr r1, [r3, #0] - 800618e: 78fa ldrb r2, [r7, #3] - 8006190: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8006194: 9301 str r3, [sp, #4] - 8006196: f647 73ff movw r3, #32767 ; 0x7fff - 800619a: 9300 str r3, [sp, #0] - 800619c: 2310 movs r3, #16 - 800619e: f7fe fddd bl 8004d5c + 800705a: 4b3e ldr r3, [pc, #248] ; (8007154 ) + 800705c: 6818 ldr r0, [r3, #0] + 800705e: 4b3e ldr r3, [pc, #248] ; (8007158 ) + 8007060: 6819 ldr r1, [r3, #0] + 8007062: 79fa ldrb r2, [r7, #7] + 8007064: f44f 4378 mov.w r3, #63488 ; 0xf800 + 8007068: 9301 str r3, [sp, #4] + 800706a: f647 73ff movw r3, #32767 ; 0x7fff + 800706e: 9300 str r3, [sp, #0] + 8007070: 2310 movs r3, #16 + 8007072: f7fe fc5f bl 8005934 morse_input_buff[a]=get_char_temp; - 80061a2: 4a32 ldr r2, [pc, #200] ; (800626c ) - 80061a4: 68fb ldr r3, [r7, #12] - 80061a6: 4413 add r3, r2 - 80061a8: 78fa ldrb r2, [r7, #3] - 80061aa: 701a strb r2, [r3, #0] + 8007076: 4a2f ldr r2, [pc, #188] ; (8007134 ) + 8007078: 693b ldr r3, [r7, #16] + 800707a: 4413 add r3, r2 + 800707c: 79fa ldrb r2, [r7, #7] + 800707e: 701a strb r2, [r3, #0] { - 80061ac: e012 b.n 80061d4 + 8007080: e012 b.n 80070a8 }else { LCD_ShowChar(morse_x,morse_y,' ',16,CYAN,RED); - 80061ae: 4b2c ldr r3, [pc, #176] ; (8006260 ) - 80061b0: 6818 ldr r0, [r3, #0] - 80061b2: 4b2c ldr r3, [pc, #176] ; (8006264 ) - 80061b4: 6819 ldr r1, [r3, #0] - 80061b6: f44f 4378 mov.w r3, #63488 ; 0xf800 - 80061ba: 9301 str r3, [sp, #4] - 80061bc: f647 73ff movw r3, #32767 ; 0x7fff - 80061c0: 9300 str r3, [sp, #0] - 80061c2: 2310 movs r3, #16 - 80061c4: 2220 movs r2, #32 - 80061c6: f7fe fdc9 bl 8004d5c + 8007082: 4b34 ldr r3, [pc, #208] ; (8007154 ) + 8007084: 6818 ldr r0, [r3, #0] + 8007086: 4b34 ldr r3, [pc, #208] ; (8007158 ) + 8007088: 6819 ldr r1, [r3, #0] + 800708a: f44f 4378 mov.w r3, #63488 ; 0xf800 + 800708e: 9301 str r3, [sp, #4] + 8007090: f647 73ff movw r3, #32767 ; 0x7fff + 8007094: 9300 str r3, [sp, #0] + 8007096: 2310 movs r3, #16 + 8007098: 2220 movs r2, #32 + 800709a: f7fe fc4b bl 8005934 morse_input_buff[a]='\0'; - 80061ca: 4a28 ldr r2, [pc, #160] ; (800626c ) - 80061cc: 68fb ldr r3, [r7, #12] - 80061ce: 4413 add r3, r2 - 80061d0: 2200 movs r2, #0 - 80061d2: 701a strb r2, [r3, #0] + 800709e: 4a25 ldr r2, [pc, #148] ; (8007134 ) + 80070a0: 693b ldr r3, [r7, #16] + 80070a2: 4413 add r3, r2 + 80070a4: 2200 movs r2, #0 + 80070a6: 701a strb r2, [r3, #0] } morse_x+=8; - 80061d4: 4b22 ldr r3, [pc, #136] ; (8006260 ) - 80061d6: 681b ldr r3, [r3, #0] - 80061d8: 3308 adds r3, #8 - 80061da: 4a21 ldr r2, [pc, #132] ; (8006260 ) - 80061dc: 6013 str r3, [r2, #0] + 80070a8: 4b2a ldr r3, [pc, #168] ; (8007154 ) + 80070aa: 681b ldr r3, [r3, #0] + 80070ac: 3308 adds r3, #8 + 80070ae: 4a29 ldr r2, [pc, #164] ; (8007154 ) + 80070b0: 6013 str r3, [r2, #0] for(int a=morse_char_flag;a) - 80061e6: 681b ldr r3, [r3, #0] - 80061e8: 68fa ldr r2, [r7, #12] - 80061ea: 429a cmp r2, r3 - 80061ec: db9a blt.n 8006124 + 80070b2: 693b ldr r3, [r7, #16] + 80070b4: 3301 adds r3, #1 + 80070b6: 613b str r3, [r7, #16] + 80070b8: 4b1d ldr r3, [pc, #116] ; (8007130 ) + 80070ba: 681b ldr r3, [r3, #0] + 80070bc: 693a ldr r2, [r7, #16] + 80070be: 429a cmp r2, r3 + 80070c0: db9a blt.n 8006ff8 } morse_letter_flag=0; - 80061ee: 4b21 ldr r3, [pc, #132] ; (8006274 ) - 80061f0: 2200 movs r2, #0 - 80061f2: 701a strb r2, [r3, #0] + 80070c2: 4b1d ldr r3, [pc, #116] ; (8007138 ) + 80070c4: 2200 movs r2, #0 + 80070c6: 701a strb r2, [r3, #0] morse_letter_temp=0; - 80061f4: 4b20 ldr r3, [pc, #128] ; (8006278 ) - 80061f6: 2200 movs r2, #0 - 80061f8: 701a strb r2, [r3, #0] + 80070c8: 4b20 ldr r3, [pc, #128] ; (800714c ) + 80070ca: 2200 movs r2, #0 + 80070cc: 701a strb r2, [r3, #0] if(get_char_temp!=0){morse_flah=1;morse_char_flag+=1;} - 80061fa: 78fb ldrb r3, [r7, #3] - 80061fc: 2b00 cmp r3, #0 - 80061fe: d007 beq.n 8006210 - 8006200: 4b1e ldr r3, [pc, #120] ; (800627c ) - 8006202: 2201 movs r2, #1 - 8006204: 701a strb r2, [r3, #0] - 8006206: 4b18 ldr r3, [pc, #96] ; (8006268 ) - 8006208: 681b ldr r3, [r3, #0] - 800620a: 3301 adds r3, #1 - 800620c: 4a16 ldr r2, [pc, #88] ; (8006268 ) - 800620e: 6013 str r3, [r2, #0] + 80070ce: 79fb ldrb r3, [r7, #7] + 80070d0: 2b00 cmp r3, #0 + 80070d2: d007 beq.n 80070e4 + 80070d4: 4b21 ldr r3, [pc, #132] ; (800715c ) + 80070d6: 2201 movs r2, #1 + 80070d8: 701a strb r2, [r3, #0] + 80070da: 4b18 ldr r3, [pc, #96] ; (800713c ) + 80070dc: 681b ldr r3, [r3, #0] + 80070de: 3301 adds r3, #1 + 80070e0: 4a16 ldr r2, [pc, #88] ; (800713c ) + 80070e2: 6013 str r3, [r2, #0] morse_input_flag=morse_char_flag; - 8006210: 4b15 ldr r3, [pc, #84] ; (8006268 ) - 8006212: 681b ldr r3, [r3, #0] - 8006214: 4a16 ldr r2, [pc, #88] ; (8006270 ) - 8006216: 6013 str r3, [r2, #0] + 80070e4: 4b15 ldr r3, [pc, #84] ; (800713c ) + 80070e6: 681b ldr r3, [r3, #0] + 80070e8: 4a11 ldr r2, [pc, #68] ; (8007130 ) + 80070ea: 6013 str r3, [r2, #0] } } if((HAL_GetTick()-morse_time_out)>morse_t2) - 8006218: f7fb fcae bl 8001b78 - 800621c: 4602 mov r2, r0 - 800621e: 4b18 ldr r3, [pc, #96] ; (8006280 ) - 8006220: 681b ldr r3, [r3, #0] - 8006222: 1ad3 subs r3, r2, r3 - 8006224: f240 22ee movw r2, #750 ; 0x2ee - 8006228: 4293 cmp r3, r2 - 800622a: d97f bls.n 800632c + 80070ec: f7fa fe36 bl 8001d5c + 80070f0: 4602 mov r2, r0 + 80070f2: 4b15 ldr r3, [pc, #84] ; (8007148 ) + 80070f4: 681b ldr r3, [r3, #0] + 80070f6: 1ad3 subs r3, r2, r3 + 80070f8: f5b3 7f16 cmp.w r3, #600 ; 0x258 + 80070fc: f240 8084 bls.w 8007208 { if(morse_flah==1) - 800622c: 4b13 ldr r3, [pc, #76] ; (800627c ) - 800622e: 781b ldrb r3, [r3, #0] - 8006230: 2b01 cmp r3, #1 - 8006232: d17b bne.n 800632c + 8007100: 4b16 ldr r3, [pc, #88] ; (800715c ) + 8007102: 781b ldrb r3, [r3, #0] + 8007104: 2b01 cmp r3, #1 + 8007106: d17f bne.n 8007208 { morse_input_buff[morse_char_flag]=' '; - 8006234: 4b0c ldr r3, [pc, #48] ; (8006268 ) - 8006236: 681b ldr r3, [r3, #0] - 8006238: 4a0c ldr r2, [pc, #48] ; (800626c ) - 800623a: 2120 movs r1, #32 - 800623c: 54d1 strb r1, [r2, r3] + 8007108: 4b0c ldr r3, [pc, #48] ; (800713c ) + 800710a: 681b ldr r3, [r3, #0] + 800710c: 4a09 ldr r2, [pc, #36] ; (8007134 ) + 800710e: 2120 movs r1, #32 + 8007110: 54d1 strb r1, [r2, r3] morse_x=morsecode_window->x; - 800623e: 4b07 ldr r3, [pc, #28] ; (800625c ) - 8006240: 681b ldr r3, [r3, #0] - 8006242: 881b ldrh r3, [r3, #0] - 8006244: 461a mov r2, r3 - 8006246: 4b06 ldr r3, [pc, #24] ; (8006260 ) - 8006248: 601a str r2, [r3, #0] + 8007112: 4b0f ldr r3, [pc, #60] ; (8007150 ) + 8007114: 681b ldr r3, [r3, #0] + 8007116: 881b ldrh r3, [r3, #0] + 8007118: 461a mov r2, r3 + 800711a: 4b0e ldr r3, [pc, #56] ; (8007154 ) + 800711c: 601a str r2, [r3, #0] morse_y=morsecode_window->y+16; - 800624a: 4b04 ldr r3, [pc, #16] ; (800625c ) - 800624c: 681b ldr r3, [r3, #0] - 800624e: 885b ldrh r3, [r3, #2] - 8006250: 3310 adds r3, #16 - 8006252: 4a04 ldr r2, [pc, #16] ; (8006264 ) - 8006254: 6013 str r3, [r2, #0] + 800711e: 4b0c ldr r3, [pc, #48] ; (8007150 ) + 8007120: 681b ldr r3, [r3, #0] + 8007122: 885b ldrh r3, [r3, #2] + 8007124: 3310 adds r3, #16 + 8007126: 4a0c ldr r2, [pc, #48] ; (8007158 ) + 8007128: 6013 str r3, [r2, #0] for(int a=0;a - 800625c: 20002574 .word 0x20002574 - 8006260: 2000257c .word 0x2000257c - 8006264: 20002578 .word 0x20002578 - 8006268: 20000258 .word 0x20000258 - 800626c: 20000210 .word 0x20000210 - 8006270: 20000254 .word 0x20000254 - 8006274: 2000025e .word 0x2000025e - 8006278: 2000025d .word 0x2000025d - 800627c: 2000025c .word 0x2000025c - 8006280: 2000020c .word 0x2000020c + 800712a: 2300 movs r3, #0 + 800712c: 60fb str r3, [r7, #12] + 800712e: e048 b.n 80071c2 + 8007130: 20000218 .word 0x20000218 + 8007134: 20002588 .word 0x20002588 + 8007138: 20000222 .word 0x20000222 + 800713c: 2000021c .word 0x2000021c + 8007140: 2000020c .word 0x2000020c + 8007144: 20000009 .word 0x20000009 + 8007148: 20000214 .word 0x20000214 + 800714c: 20000221 .word 0x20000221 + 8007150: 20002584 .word 0x20002584 + 8007154: 200025d0 .word 0x200025d0 + 8007158: 200025cc .word 0x200025cc + 800715c: 20000220 .word 0x20000220 { if(morse_x>=(morsecode_window->x+morsecode_window->width)) - 8006284: 4b5a ldr r3, [pc, #360] ; (80063f0 ) - 8006286: 681b ldr r3, [r3, #0] - 8006288: 881b ldrh r3, [r3, #0] - 800628a: 461a mov r2, r3 - 800628c: 4b58 ldr r3, [pc, #352] ; (80063f0 ) - 800628e: 681b ldr r3, [r3, #0] - 8006290: 889b ldrh r3, [r3, #4] - 8006292: 441a add r2, r3 - 8006294: 4b57 ldr r3, [pc, #348] ; (80063f4 ) - 8006296: 681b ldr r3, [r3, #0] - 8006298: 429a cmp r2, r3 - 800629a: dc1c bgt.n 80062d6 + 8007160: 4b5a ldr r3, [pc, #360] ; (80072cc ) + 8007162: 681b ldr r3, [r3, #0] + 8007164: 881b ldrh r3, [r3, #0] + 8007166: 461a mov r2, r3 + 8007168: 4b58 ldr r3, [pc, #352] ; (80072cc ) + 800716a: 681b ldr r3, [r3, #0] + 800716c: 889b ldrh r3, [r3, #4] + 800716e: 441a add r2, r3 + 8007170: 4b57 ldr r3, [pc, #348] ; (80072d0 ) + 8007172: 681b ldr r3, [r3, #0] + 8007174: 429a cmp r2, r3 + 8007176: dc1c bgt.n 80071b2 { morse_x=morsecode_window->x; - 800629c: 4b54 ldr r3, [pc, #336] ; (80063f0 ) - 800629e: 681b ldr r3, [r3, #0] - 80062a0: 881b ldrh r3, [r3, #0] - 80062a2: 461a mov r2, r3 - 80062a4: 4b53 ldr r3, [pc, #332] ; (80063f4 ) - 80062a6: 601a str r2, [r3, #0] + 8007178: 4b54 ldr r3, [pc, #336] ; (80072cc ) + 800717a: 681b ldr r3, [r3, #0] + 800717c: 881b ldrh r3, [r3, #0] + 800717e: 461a mov r2, r3 + 8007180: 4b53 ldr r3, [pc, #332] ; (80072d0 ) + 8007182: 601a str r2, [r3, #0] morse_y+=16; - 80062a8: 4b53 ldr r3, [pc, #332] ; (80063f8 ) - 80062aa: 681b ldr r3, [r3, #0] - 80062ac: 3310 adds r3, #16 - 80062ae: 4a52 ldr r2, [pc, #328] ; (80063f8 ) - 80062b0: 6013 str r3, [r2, #0] + 8007184: 4b53 ldr r3, [pc, #332] ; (80072d4 ) + 8007186: 681b ldr r3, [r3, #0] + 8007188: 3310 adds r3, #16 + 800718a: 4a52 ldr r2, [pc, #328] ; (80072d4 ) + 800718c: 6013 str r3, [r2, #0] if(morse_y>=(morsecode_window->y+morsecode_window->high)) - 80062b2: 4b4f ldr r3, [pc, #316] ; (80063f0 ) - 80062b4: 681b ldr r3, [r3, #0] - 80062b6: 885b ldrh r3, [r3, #2] - 80062b8: 461a mov r2, r3 - 80062ba: 4b4d ldr r3, [pc, #308] ; (80063f0 ) - 80062bc: 681b ldr r3, [r3, #0] - 80062be: 88db ldrh r3, [r3, #6] - 80062c0: 441a add r2, r3 - 80062c2: 4b4d ldr r3, [pc, #308] ; (80063f8 ) - 80062c4: 681b ldr r3, [r3, #0] - 80062c6: 429a cmp r2, r3 - 80062c8: dc05 bgt.n 80062d6 + 800718e: 4b4f ldr r3, [pc, #316] ; (80072cc ) + 8007190: 681b ldr r3, [r3, #0] + 8007192: 885b ldrh r3, [r3, #2] + 8007194: 461a mov r2, r3 + 8007196: 4b4d ldr r3, [pc, #308] ; (80072cc ) + 8007198: 681b ldr r3, [r3, #0] + 800719a: 88db ldrh r3, [r3, #6] + 800719c: 441a add r2, r3 + 800719e: 4b4d ldr r3, [pc, #308] ; (80072d4 ) + 80071a0: 681b ldr r3, [r3, #0] + 80071a2: 429a cmp r2, r3 + 80071a4: dc05 bgt.n 80071b2 { morse_y=morsecode_window->y+16; - 80062ca: 4b49 ldr r3, [pc, #292] ; (80063f0 ) - 80062cc: 681b ldr r3, [r3, #0] - 80062ce: 885b ldrh r3, [r3, #2] - 80062d0: 3310 adds r3, #16 - 80062d2: 4a49 ldr r2, [pc, #292] ; (80063f8 ) - 80062d4: 6013 str r3, [r2, #0] + 80071a6: 4b49 ldr r3, [pc, #292] ; (80072cc ) + 80071a8: 681b ldr r3, [r3, #0] + 80071aa: 885b ldrh r3, [r3, #2] + 80071ac: 3310 adds r3, #16 + 80071ae: 4a49 ldr r2, [pc, #292] ; (80072d4 ) + 80071b0: 6013 str r3, [r2, #0] } } morse_x+=8; - 80062d6: 4b47 ldr r3, [pc, #284] ; (80063f4 ) - 80062d8: 681b ldr r3, [r3, #0] - 80062da: 3308 adds r3, #8 - 80062dc: 4a45 ldr r2, [pc, #276] ; (80063f4 ) - 80062de: 6013 str r3, [r2, #0] + 80071b2: 4b47 ldr r3, [pc, #284] ; (80072d0 ) + 80071b4: 681b ldr r3, [r3, #0] + 80071b6: 3308 adds r3, #8 + 80071b8: 4a45 ldr r2, [pc, #276] ; (80072d0 ) + 80071ba: 6013 str r3, [r2, #0] for(int a=0;a) - 80062e8: 681b ldr r3, [r3, #0] - 80062ea: 68ba ldr r2, [r7, #8] - 80062ec: 429a cmp r2, r3 - 80062ee: dbc9 blt.n 8006284 + 80071bc: 68fb ldr r3, [r7, #12] + 80071be: 3301 adds r3, #1 + 80071c0: 60fb str r3, [r7, #12] + 80071c2: 4b45 ldr r3, [pc, #276] ; (80072d8 ) + 80071c4: 681b ldr r3, [r3, #0] + 80071c6: 68fa ldr r2, [r7, #12] + 80071c8: 429a cmp r2, r3 + 80071ca: dbc9 blt.n 8007160 } LCD_ShowChar(morse_x,morse_y,morse_input_buff[morse_char_flag],16,CYAN,RED); - 80062f0: 4b40 ldr r3, [pc, #256] ; (80063f4 ) - 80062f2: 6818 ldr r0, [r3, #0] - 80062f4: 4b40 ldr r3, [pc, #256] ; (80063f8 ) - 80062f6: 6819 ldr r1, [r3, #0] - 80062f8: 4b40 ldr r3, [pc, #256] ; (80063fc ) - 80062fa: 681b ldr r3, [r3, #0] - 80062fc: 4a40 ldr r2, [pc, #256] ; (8006400 ) - 80062fe: 5cd3 ldrb r3, [r2, r3] - 8006300: 461a mov r2, r3 - 8006302: f44f 4378 mov.w r3, #63488 ; 0xf800 - 8006306: 9301 str r3, [sp, #4] - 8006308: f647 73ff movw r3, #32767 ; 0x7fff - 800630c: 9300 str r3, [sp, #0] - 800630e: 2310 movs r3, #16 - 8006310: f7fe fd24 bl 8004d5c + 80071cc: 4b40 ldr r3, [pc, #256] ; (80072d0 ) + 80071ce: 6818 ldr r0, [r3, #0] + 80071d0: 4b40 ldr r3, [pc, #256] ; (80072d4 ) + 80071d2: 6819 ldr r1, [r3, #0] + 80071d4: 4b40 ldr r3, [pc, #256] ; (80072d8 ) + 80071d6: 681b ldr r3, [r3, #0] + 80071d8: 4a40 ldr r2, [pc, #256] ; (80072dc ) + 80071da: 5cd3 ldrb r3, [r2, r3] + 80071dc: 461a mov r2, r3 + 80071de: f44f 4378 mov.w r3, #63488 ; 0xf800 + 80071e2: 9301 str r3, [sp, #4] + 80071e4: f647 73ff movw r3, #32767 ; 0x7fff + 80071e8: 9300 str r3, [sp, #0] + 80071ea: 2310 movs r3, #16 + 80071ec: f7fe fba2 bl 8005934 morse_char_flag+=1; - 8006314: 4b39 ldr r3, [pc, #228] ; (80063fc ) - 8006316: 681b ldr r3, [r3, #0] - 8006318: 3301 adds r3, #1 - 800631a: 4a38 ldr r2, [pc, #224] ; (80063fc ) - 800631c: 6013 str r3, [r2, #0] + 80071f0: 4b39 ldr r3, [pc, #228] ; (80072d8 ) + 80071f2: 681b ldr r3, [r3, #0] + 80071f4: 3301 adds r3, #1 + 80071f6: 4a38 ldr r2, [pc, #224] ; (80072d8 ) + 80071f8: 6013 str r3, [r2, #0] morse_input_flag=morse_char_flag; - 800631e: 4b37 ldr r3, [pc, #220] ; (80063fc ) - 8006320: 681b ldr r3, [r3, #0] - 8006322: 4a38 ldr r2, [pc, #224] ; (8006404 ) - 8006324: 6013 str r3, [r2, #0] + 80071fa: 4b37 ldr r3, [pc, #220] ; (80072d8 ) + 80071fc: 681b ldr r3, [r3, #0] + 80071fe: 4a38 ldr r2, [pc, #224] ; (80072e0 ) + 8007200: 6013 str r3, [r2, #0] morse_flah=0; - 8006326: 4b38 ldr r3, [pc, #224] ; (8006408 ) - 8006328: 2200 movs r2, #0 - 800632a: 701a strb r2, [r3, #0] + 8007202: 4b38 ldr r3, [pc, #224] ; (80072e4 ) + 8007204: 2200 movs r2, #0 + 8007206: 701a strb r2, [r3, #0] } } } morse_x=morsecode_window->x; - 800632c: 4b30 ldr r3, [pc, #192] ; (80063f0 ) - 800632e: 681b ldr r3, [r3, #0] - 8006330: 881b ldrh r3, [r3, #0] - 8006332: 461a mov r2, r3 - 8006334: 4b2f ldr r3, [pc, #188] ; (80063f4 ) - 8006336: 601a str r2, [r3, #0] + 8007208: 4b30 ldr r3, [pc, #192] ; (80072cc ) + 800720a: 681b ldr r3, [r3, #0] + 800720c: 881b ldrh r3, [r3, #0] + 800720e: 461a mov r2, r3 + 8007210: 4b2f ldr r3, [pc, #188] ; (80072d0 ) + 8007212: 601a str r2, [r3, #0] morse_y=morsecode_window->y+16; - 8006338: 4b2d ldr r3, [pc, #180] ; (80063f0 ) - 800633a: 681b ldr r3, [r3, #0] - 800633c: 885b ldrh r3, [r3, #2] - 800633e: 3310 adds r3, #16 - 8006340: 4a2d ldr r2, [pc, #180] ; (80063f8 ) - 8006342: 6013 str r3, [r2, #0] + 8007214: 4b2d ldr r3, [pc, #180] ; (80072cc ) + 8007216: 681b ldr r3, [r3, #0] + 8007218: 885b ldrh r3, [r3, #2] + 800721a: 3310 adds r3, #16 + 800721c: 4a2d ldr r2, [pc, #180] ; (80072d4 ) + 800721e: 6013 str r3, [r2, #0] for(int a=0;a<64;a++) - 8006344: 2300 movs r3, #0 - 8006346: 607b str r3, [r7, #4] - 8006348: e048 b.n 80063dc + 8007220: 2300 movs r3, #0 + 8007222: 60bb str r3, [r7, #8] + 8007224: e048 b.n 80072b8 { if(morse_input_buff[a]=='\0') - 800634a: 4a2d ldr r2, [pc, #180] ; (8006400 ) - 800634c: 687b ldr r3, [r7, #4] - 800634e: 4413 add r3, r2 - 8006350: 781b ldrb r3, [r3, #0] - 8006352: 2b00 cmp r3, #0 - 8006354: d046 beq.n 80063e4 + 8007226: 4a2d ldr r2, [pc, #180] ; (80072dc ) + 8007228: 68bb ldr r3, [r7, #8] + 800722a: 4413 add r3, r2 + 800722c: 781b ldrb r3, [r3, #0] + 800722e: 2b00 cmp r3, #0 + 8007230: d046 beq.n 80072c0 { break; } if(morse_x>=(morsecode_window->x+morsecode_window->width)) - 8006356: 4b26 ldr r3, [pc, #152] ; (80063f0 ) - 8006358: 681b ldr r3, [r3, #0] - 800635a: 881b ldrh r3, [r3, #0] - 800635c: 461a mov r2, r3 - 800635e: 4b24 ldr r3, [pc, #144] ; (80063f0 ) - 8006360: 681b ldr r3, [r3, #0] - 8006362: 889b ldrh r3, [r3, #4] - 8006364: 441a add r2, r3 - 8006366: 4b23 ldr r3, [pc, #140] ; (80063f4 ) - 8006368: 681b ldr r3, [r3, #0] - 800636a: 429a cmp r2, r3 - 800636c: dc1c bgt.n 80063a8 + 8007232: 4b26 ldr r3, [pc, #152] ; (80072cc ) + 8007234: 681b ldr r3, [r3, #0] + 8007236: 881b ldrh r3, [r3, #0] + 8007238: 461a mov r2, r3 + 800723a: 4b24 ldr r3, [pc, #144] ; (80072cc ) + 800723c: 681b ldr r3, [r3, #0] + 800723e: 889b ldrh r3, [r3, #4] + 8007240: 441a add r2, r3 + 8007242: 4b23 ldr r3, [pc, #140] ; (80072d0 ) + 8007244: 681b ldr r3, [r3, #0] + 8007246: 429a cmp r2, r3 + 8007248: dc1c bgt.n 8007284 { morse_x=morsecode_window->x; - 800636e: 4b20 ldr r3, [pc, #128] ; (80063f0 ) - 8006370: 681b ldr r3, [r3, #0] - 8006372: 881b ldrh r3, [r3, #0] - 8006374: 461a mov r2, r3 - 8006376: 4b1f ldr r3, [pc, #124] ; (80063f4 ) - 8006378: 601a str r2, [r3, #0] + 800724a: 4b20 ldr r3, [pc, #128] ; (80072cc ) + 800724c: 681b ldr r3, [r3, #0] + 800724e: 881b ldrh r3, [r3, #0] + 8007250: 461a mov r2, r3 + 8007252: 4b1f ldr r3, [pc, #124] ; (80072d0 ) + 8007254: 601a str r2, [r3, #0] morse_y+=16; - 800637a: 4b1f ldr r3, [pc, #124] ; (80063f8 ) - 800637c: 681b ldr r3, [r3, #0] - 800637e: 3310 adds r3, #16 - 8006380: 4a1d ldr r2, [pc, #116] ; (80063f8 ) - 8006382: 6013 str r3, [r2, #0] + 8007256: 4b1f ldr r3, [pc, #124] ; (80072d4 ) + 8007258: 681b ldr r3, [r3, #0] + 800725a: 3310 adds r3, #16 + 800725c: 4a1d ldr r2, [pc, #116] ; (80072d4 ) + 800725e: 6013 str r3, [r2, #0] if(morse_y>=(morsecode_window->y+morsecode_window->high)) - 8006384: 4b1a ldr r3, [pc, #104] ; (80063f0 ) - 8006386: 681b ldr r3, [r3, #0] - 8006388: 885b ldrh r3, [r3, #2] - 800638a: 461a mov r2, r3 - 800638c: 4b18 ldr r3, [pc, #96] ; (80063f0 ) - 800638e: 681b ldr r3, [r3, #0] - 8006390: 88db ldrh r3, [r3, #6] - 8006392: 441a add r2, r3 - 8006394: 4b18 ldr r3, [pc, #96] ; (80063f8 ) - 8006396: 681b ldr r3, [r3, #0] - 8006398: 429a cmp r2, r3 - 800639a: dc05 bgt.n 80063a8 + 8007260: 4b1a ldr r3, [pc, #104] ; (80072cc ) + 8007262: 681b ldr r3, [r3, #0] + 8007264: 885b ldrh r3, [r3, #2] + 8007266: 461a mov r2, r3 + 8007268: 4b18 ldr r3, [pc, #96] ; (80072cc ) + 800726a: 681b ldr r3, [r3, #0] + 800726c: 88db ldrh r3, [r3, #6] + 800726e: 441a add r2, r3 + 8007270: 4b18 ldr r3, [pc, #96] ; (80072d4 ) + 8007272: 681b ldr r3, [r3, #0] + 8007274: 429a cmp r2, r3 + 8007276: dc05 bgt.n 8007284 { morse_y=morsecode_window->y+16; - 800639c: 4b14 ldr r3, [pc, #80] ; (80063f0 ) - 800639e: 681b ldr r3, [r3, #0] - 80063a0: 885b ldrh r3, [r3, #2] - 80063a2: 3310 adds r3, #16 - 80063a4: 4a14 ldr r2, [pc, #80] ; (80063f8 ) - 80063a6: 6013 str r3, [r2, #0] + 8007278: 4b14 ldr r3, [pc, #80] ; (80072cc ) + 800727a: 681b ldr r3, [r3, #0] + 800727c: 885b ldrh r3, [r3, #2] + 800727e: 3310 adds r3, #16 + 8007280: 4a14 ldr r2, [pc, #80] ; (80072d4 ) + 8007282: 6013 str r3, [r2, #0] } } LCD_ShowChar(morse_x,morse_y,morse_input_buff[a],16,CYAN,RED); - 80063a8: 4b12 ldr r3, [pc, #72] ; (80063f4 ) - 80063aa: 6818 ldr r0, [r3, #0] - 80063ac: 4b12 ldr r3, [pc, #72] ; (80063f8 ) - 80063ae: 6819 ldr r1, [r3, #0] - 80063b0: 4a13 ldr r2, [pc, #76] ; (8006400 ) - 80063b2: 687b ldr r3, [r7, #4] - 80063b4: 4413 add r3, r2 - 80063b6: 781b ldrb r3, [r3, #0] - 80063b8: 461a mov r2, r3 - 80063ba: f44f 4378 mov.w r3, #63488 ; 0xf800 - 80063be: 9301 str r3, [sp, #4] - 80063c0: f647 73ff movw r3, #32767 ; 0x7fff - 80063c4: 9300 str r3, [sp, #0] - 80063c6: 2310 movs r3, #16 - 80063c8: f7fe fcc8 bl 8004d5c + 8007284: 4b12 ldr r3, [pc, #72] ; (80072d0 ) + 8007286: 6818 ldr r0, [r3, #0] + 8007288: 4b12 ldr r3, [pc, #72] ; (80072d4 ) + 800728a: 6819 ldr r1, [r3, #0] + 800728c: 4a13 ldr r2, [pc, #76] ; (80072dc ) + 800728e: 68bb ldr r3, [r7, #8] + 8007290: 4413 add r3, r2 + 8007292: 781b ldrb r3, [r3, #0] + 8007294: 461a mov r2, r3 + 8007296: f44f 4378 mov.w r3, #63488 ; 0xf800 + 800729a: 9301 str r3, [sp, #4] + 800729c: f647 73ff movw r3, #32767 ; 0x7fff + 80072a0: 9300 str r3, [sp, #0] + 80072a2: 2310 movs r3, #16 + 80072a4: f7fe fb46 bl 8005934 morse_x+=8; - 80063cc: 4b09 ldr r3, [pc, #36] ; (80063f4 ) - 80063ce: 681b ldr r3, [r3, #0] - 80063d0: 3308 adds r3, #8 - 80063d2: 4a08 ldr r2, [pc, #32] ; (80063f4 ) - 80063d4: 6013 str r3, [r2, #0] + 80072a8: 4b09 ldr r3, [pc, #36] ; (80072d0 ) + 80072aa: 681b ldr r3, [r3, #0] + 80072ac: 3308 adds r3, #8 + 80072ae: 4a08 ldr r2, [pc, #32] ; (80072d0 ) + 80072b0: 6013 str r3, [r2, #0] for(int a=0;a<64;a++) - 80063d6: 687b ldr r3, [r7, #4] - 80063d8: 3301 adds r3, #1 - 80063da: 607b str r3, [r7, #4] - 80063dc: 687b ldr r3, [r7, #4] - 80063de: 2b3f cmp r3, #63 ; 0x3f - 80063e0: ddb3 ble.n 800634a + 80072b2: 68bb ldr r3, [r7, #8] + 80072b4: 3301 adds r3, #1 + 80072b6: 60bb str r3, [r7, #8] + 80072b8: 68bb ldr r3, [r7, #8] + 80072ba: 2b3f cmp r3, #63 ; 0x3f + 80072bc: ddb3 ble.n 8007226 } } - 80063e2: e000 b.n 80063e6 + 80072be: e000 b.n 80072c2 break; - 80063e4: bf00 nop + 80072c0: bf00 nop } - 80063e6: bf00 nop - 80063e8: 3718 adds r7, #24 - 80063ea: 46bd mov sp, r7 - 80063ec: bd80 pop {r7, pc} - 80063ee: bf00 nop - 80063f0: 20002574 .word 0x20002574 - 80063f4: 2000257c .word 0x2000257c - 80063f8: 20002578 .word 0x20002578 - 80063fc: 20000258 .word 0x20000258 - 8006400: 20000210 .word 0x20000210 - 8006404: 20000254 .word 0x20000254 - 8006408: 2000025c .word 0x2000025c + 80072c2: bf00 nop + 80072c4: 3728 adds r7, #40 ; 0x28 + 80072c6: 46bd mov sp, r7 + 80072c8: bd80 pop {r7, pc} + 80072ca: bf00 nop + 80072cc: 20002584 .word 0x20002584 + 80072d0: 200025d0 .word 0x200025d0 + 80072d4: 200025cc .word 0x200025cc + 80072d8: 2000021c .word 0x2000021c + 80072dc: 20002588 .word 0x20002588 + 80072e0: 20000218 .word 0x20000218 + 80072e4: 20000220 .word 0x20000220 -0800640c : +080072e8 : void main_app() { - 800640c: b580 push {r7, lr} - 800640e: b096 sub sp, #88 ; 0x58 - 8006410: af04 add r7, sp, #16 + 80072e8: b580 push {r7, lr} + 80072ea: b096 sub sp, #88 ; 0x58 + 80072ec: af04 add r7, sp, #16 + + HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3);//启动n通道的pwm + 80072ee: 2108 movs r1, #8 + 80072f0: 482f ldr r0, [pc, #188] ; (80073b0 ) + 80072f2: f7fc fddf bl 8003eb4 + char str[64]; LCDx_Init(); - 8006412: f7fe f97b bl 800470c + 80072f6: f7fd fff5 bl 80052e4 EPPROM_SLOWWRITE_INIT(); - 8006416: f7fe fd5b bl 8004ed0 + 80072fa: f7fe fca9 bl 8005c50 if(KEY1==0&&KEY3==0) - 800641a: 2110 movs r1, #16 - 800641c: 482a ldr r0, [pc, #168] ; (80064c8 ) - 800641e: f7fb fe7b bl 8002118 - 8006422: 4603 mov r3, r0 - 8006424: 2b00 cmp r3, #0 - 8006426: d10a bne.n 800643e - 8006428: 2104 movs r1, #4 - 800642a: 4827 ldr r0, [pc, #156] ; (80064c8 ) - 800642c: f7fb fe74 bl 8002118 - 8006430: 4603 mov r3, r0 - 8006432: 2b00 cmp r3, #0 - 8006434: d103 bne.n 800643e + 80072fe: 2110 movs r1, #16 + 8007300: 482c ldr r0, [pc, #176] ; (80073b4 ) + 8007302: f7fa fffb bl 80022fc + 8007306: 4603 mov r3, r0 + 8007308: 2b00 cmp r3, #0 + 800730a: d10a bne.n 8007322 + 800730c: 2104 movs r1, #4 + 800730e: 4829 ldr r0, [pc, #164] ; (80073b4 ) + 8007310: f7fa fff4 bl 80022fc + 8007314: 4603 mov r3, r0 + 8007316: 2b00 cmp r3, #0 + 8007318: d103 bne.n 8007322 { TP_adjustment(1); - 8006436: 2001 movs r0, #1 - 8006438: f7ff f90c bl 8005654 - 800643c: e002 b.n 8006444 + 800731a: 2001 movs r0, #1 + 800731c: f7ff f85a bl 80063d4 + 8007320: e002 b.n 8007328 }else { TP_adjustment(0); - 800643e: 2000 movs r0, #0 - 8006440: f7ff f908 bl 8005654 + 8007322: 2000 movs r0, #0 + 8007324: f7ff f856 bl 80063d4 } UI *ui=UI_Init(BLACK); - 8006444: 2000 movs r0, #0 - 8006446: f000 f873 bl 8006530 - 800644a: 6478 str r0, [r7, #68] ; 0x44 + 8007328: 2000 movs r0, #0 + 800732a: f000 f877 bl 800741c + 800732e: 6478 str r0, [r7, #68] ; 0x44 //APP_IDcard_init(New_Window(ui,25,30,150,100,GREEN,"IDcard")); //New_Window(ui,80,80,60,90,YELLOW,"YELLOW"); //New_Window(ui,120,90,70,60,MAGENTA,"MAGENTA"); APP_morsecode_init(New_Window(ui,25,30,200,150,CYAN,"Morse code")); - 800644c: 4b1f ldr r3, [pc, #124] ; (80064cc ) - 800644e: 9302 str r3, [sp, #8] - 8006450: f647 73ff movw r3, #32767 ; 0x7fff - 8006454: 9301 str r3, [sp, #4] - 8006456: 2396 movs r3, #150 ; 0x96 - 8006458: 9300 str r3, [sp, #0] - 800645a: 23c8 movs r3, #200 ; 0xc8 - 800645c: 221e movs r2, #30 - 800645e: 2119 movs r1, #25 - 8006460: 6c78 ldr r0, [r7, #68] ; 0x44 - 8006462: f000 f898 bl 8006596 - 8006466: 4603 mov r3, r0 - 8006468: 4618 mov r0, r3 - 800646a: f7ff fcab bl 8005dc4 + 8007330: 4b21 ldr r3, [pc, #132] ; (80073b8 ) + 8007332: 9302 str r3, [sp, #8] + 8007334: f647 73ff movw r3, #32767 ; 0x7fff + 8007338: 9301 str r3, [sp, #4] + 800733a: 2396 movs r3, #150 ; 0x96 + 800733c: 9300 str r3, [sp, #0] + 800733e: 23c8 movs r3, #200 ; 0xc8 + 8007340: 221e movs r2, #30 + 8007342: 2119 movs r1, #25 + 8007344: 6c78 ldr r0, [r7, #68] ; 0x44 + 8007346: f000 f89c bl 8007482 + 800734a: 4603 mov r3, r0 + 800734c: 4618 mov r0, r3 + 800734e: f7ff fbf9 bl 8006b44 ui->refresh_ui_flag=1; - 800646e: 6c7a ldr r2, [r7, #68] ; 0x44 - 8006470: f892 3020 ldrb.w r3, [r2, #32] - 8006474: f043 0304 orr.w r3, r3, #4 - 8006478: f882 3020 strb.w r3, [r2, #32] + 8007352: 6c7a ldr r2, [r7, #68] ; 0x44 + 8007354: f892 3020 ldrb.w r3, [r2, #32] + 8007358: f043 0304 orr.w r3, r3, #4 + 800735c: f882 3020 strb.w r3, [r2, #32] */ // 交叉编译测试 //APP_blood_loop(); //APP_IDcard_loop(); APP_morsecode_loop(); - 800647c: f7ff fcfa bl 8005e74 + 8007360: f7ff fc48 bl 8006bf4 GEI_BUTTON_CODE(&k1,KEY1); - 8006480: 2110 movs r1, #16 - 8006482: 4811 ldr r0, [pc, #68] ; (80064c8 ) - 8006484: f7fb fe48 bl 8002118 - 8006488: 4603 mov r3, r0 - 800648a: 4619 mov r1, r3 - 800648c: 4810 ldr r0, [pc, #64] ; (80064d0 ) - 800648e: f7fe fe13 bl 80050b8 + 8007364: 2110 movs r1, #16 + 8007366: 4813 ldr r0, [pc, #76] ; (80073b4 ) + 8007368: f7fa ffc8 bl 80022fc + 800736c: 4603 mov r3, r0 + 800736e: 4619 mov r1, r3 + 8007370: 4812 ldr r0, [pc, #72] ; (80073bc ) + 8007372: f7fe fd61 bl 8005e38 GEI_BUTTON_CODE(&k2,KEY2); - 8006492: 2108 movs r1, #8 - 8006494: 480c ldr r0, [pc, #48] ; (80064c8 ) - 8006496: f7fb fe3f bl 8002118 - 800649a: 4603 mov r3, r0 - 800649c: 4619 mov r1, r3 - 800649e: 480d ldr r0, [pc, #52] ; (80064d4 ) - 80064a0: f7fe fe0a bl 80050b8 + 8007376: 2108 movs r1, #8 + 8007378: 480e ldr r0, [pc, #56] ; (80073b4 ) + 800737a: f7fa ffbf bl 80022fc + 800737e: 4603 mov r3, r0 + 8007380: 4619 mov r1, r3 + 8007382: 480f ldr r0, [pc, #60] ; (80073c0 ) + 8007384: f7fe fd58 bl 8005e38 GEI_BUTTON_CODE(&k3,KEY3); - 80064a4: 2104 movs r1, #4 - 80064a6: 4808 ldr r0, [pc, #32] ; (80064c8 ) - 80064a8: f7fb fe36 bl 8002118 - 80064ac: 4603 mov r3, r0 - 80064ae: 4619 mov r1, r3 - 80064b0: 4809 ldr r0, [pc, #36] ; (80064d8 ) - 80064b2: f7fe fe01 bl 80050b8 + 8007388: 2104 movs r1, #4 + 800738a: 480a ldr r0, [pc, #40] ; (80073b4 ) + 800738c: f7fa ffb6 bl 80022fc + 8007390: 4603 mov r3, r0 + 8007392: 4619 mov r1, r3 + 8007394: 480b ldr r0, [pc, #44] ; (80073c4 ) + 8007396: f7fe fd4f bl 8005e38 UI_Server(ui); - 80064b6: 6c78 ldr r0, [r7, #68] ; 0x44 - 80064b8: f000 fa14 bl 80068e4 + 800739a: 6c78 ldr r0, [r7, #68] ; 0x44 + 800739c: f000 fa18 bl 80077d0 TP_Server(); - 80064bc: f7fe fff6 bl 80054ac + 80073a0: f7fe ff44 bl 800622c EEPROM_SLOWWRITE_SERVER(); - 80064c0: f7fe fd20 bl 8004f04 + 80073a4: f7fe fc6e bl 8005c84 + buzzer_play_server(); + 80073a8: f7fe fc18 bl 8005bdc { - 80064c4: e7da b.n 800647c - 80064c6: bf00 nop - 80064c8: 40011800 .word 0x40011800 - 80064cc: 08009960 .word 0x08009960 - 80064d0: 200003e8 .word 0x200003e8 - 80064d4: 200003c8 .word 0x200003c8 - 80064d8: 200003d8 .word 0x200003d8 + 80073ac: e7d8 b.n 8007360 + 80073ae: bf00 nop + 80073b0: 2000022c .word 0x2000022c + 80073b4: 40011800 .word 0x40011800 + 80073b8: 0800a868 .word 0x0800a868 + 80073bc: 200003f8 .word 0x200003f8 + 80073c0: 200003d8 .word 0x200003d8 + 80073c4: 200003e8 .word 0x200003e8 -080064dc : +080073c8 : #include "touch.h" extern touch_device t0; //接口 //设置屏幕像素坐标 void Inteface_SetCursor(uint16_t Xpos, uint16_t Ypos) { - 80064dc: b580 push {r7, lr} - 80064de: b082 sub sp, #8 - 80064e0: af00 add r7, sp, #0 - 80064e2: 4603 mov r3, r0 - 80064e4: 460a mov r2, r1 - 80064e6: 80fb strh r3, [r7, #6] - 80064e8: 4613 mov r3, r2 - 80064ea: 80bb strh r3, [r7, #4] + 80073c8: b580 push {r7, lr} + 80073ca: b082 sub sp, #8 + 80073cc: af00 add r7, sp, #0 + 80073ce: 4603 mov r3, r0 + 80073d0: 460a mov r2, r1 + 80073d2: 80fb strh r3, [r7, #6] + 80073d4: 4613 mov r3, r2 + 80073d6: 80bb strh r3, [r7, #4] LCD_SetCursor(Xpos,Ypos); //设置光标位置 - 80064ec: 88ba ldrh r2, [r7, #4] - 80064ee: 88fb ldrh r3, [r7, #6] - 80064f0: 4611 mov r1, r2 - 80064f2: 4618 mov r0, r3 - 80064f4: f7fe fa00 bl 80048f8 + 80073d8: 88ba ldrh r2, [r7, #4] + 80073da: 88fb ldrh r3, [r7, #6] + 80073dc: 4611 mov r1, r2 + 80073de: 4618 mov r0, r3 + 80073e0: f7fe f876 bl 80054d0 LCD_REG_ADDRESS=lcddev.wramcmd; //开始写入GRAM - 80064f8: 4b04 ldr r3, [pc, #16] ; (800650c ) - 80064fa: 79da ldrb r2, [r3, #7] - 80064fc: f04f 43d8 mov.w r3, #1811939328 ; 0x6c000000 - 8006500: b292 uxth r2, r2 - 8006502: 801a strh r2, [r3, #0] + 80073e4: 4b04 ldr r3, [pc, #16] ; (80073f8 ) + 80073e6: 79da ldrb r2, [r3, #7] + 80073e8: f04f 43d8 mov.w r3, #1811939328 ; 0x6c000000 + 80073ec: b292 uxth r2, r2 + 80073ee: 801a strh r2, [r3, #0] } - 8006504: bf00 nop - 8006506: 3708 adds r7, #8 - 8006508: 46bd mov sp, r7 - 800650a: bd80 pop {r7, pc} - 800650c: 200003a8 .word 0x200003a8 + 80073f0: bf00 nop + 80073f2: 3708 adds r7, #8 + 80073f4: 46bd mov sp, r7 + 80073f6: bd80 pop {r7, pc} + 80073f8: 200003b4 .word 0x200003b4 -08006510 : +080073fc : //往像素坐标写入一个颜色 void Inteface_SetColor(uint16_t color) { - 8006510: b480 push {r7} - 8006512: b083 sub sp, #12 - 8006514: af00 add r7, sp, #0 - 8006516: 4603 mov r3, r0 - 8006518: 80fb strh r3, [r7, #6] + 80073fc: b480 push {r7} + 80073fe: b083 sub sp, #12 + 8007400: af00 add r7, sp, #0 + 8007402: 4603 mov r3, r0 + 8007404: 80fb strh r3, [r7, #6] LCD_DATA_ADDRESS=color; - 800651a: 4a04 ldr r2, [pc, #16] ; (800652c ) - 800651c: 88fb ldrh r3, [r7, #6] - 800651e: 8013 strh r3, [r2, #0] + 8007406: 4a04 ldr r2, [pc, #16] ; (8007418 ) + 8007408: 88fb ldrh r3, [r7, #6] + 800740a: 8013 strh r3, [r2, #0] } - 8006520: bf00 nop - 8006522: 370c adds r7, #12 - 8006524: 46bd mov sp, r7 - 8006526: bc80 pop {r7} - 8006528: 4770 bx lr - 800652a: bf00 nop - 800652c: 6c000800 .word 0x6c000800 + 800740c: bf00 nop + 800740e: 370c adds r7, #12 + 8007410: 46bd mov sp, r7 + 8007412: bc80 pop {r7} + 8007414: 4770 bx lr + 8007416: bf00 nop + 8007418: 6c000800 .word 0x6c000800 -08006530 : +0800741c : //新建一个UI对象 //当时都想法是类似windows的多桌面,每个桌面都能有n个窗口 UI *UI_Init(COLOR_16 background) { - 8006530: b580 push {r7, lr} - 8006532: b084 sub sp, #16 - 8006534: af00 add r7, sp, #0 - 8006536: 6078 str r0, [r7, #4] + 800741c: b580 push {r7, lr} + 800741e: b084 sub sp, #16 + 8007420: af00 add r7, sp, #0 + 8007422: 6078 str r0, [r7, #4] UI *ui; ui = (UI*)malloc(sizeof(UI)); - 8006538: 2024 movs r0, #36 ; 0x24 - 800653a: f000 faf7 bl 8006b2c - 800653e: 4603 mov r3, r0 - 8006540: 60fb str r3, [r7, #12] + 8007424: 2024 movs r0, #36 ; 0x24 + 8007426: f000 faf7 bl 8007a18 + 800742a: 4603 mov r3, r0 + 800742c: 60fb str r3, [r7, #12] if(ui!=NULL) - 8006542: 68fb ldr r3, [r7, #12] - 8006544: 2b00 cmp r3, #0 - 8006546: d021 beq.n 800658c + 800742e: 68fb ldr r3, [r7, #12] + 8007430: 2b00 cmp r3, #0 + 8007432: d021 beq.n 8007478 { ui->x=0; - 8006548: 68fb ldr r3, [r7, #12] - 800654a: 2200 movs r2, #0 - 800654c: 809a strh r2, [r3, #4] + 8007434: 68fb ldr r3, [r7, #12] + 8007436: 2200 movs r2, #0 + 8007438: 809a strh r2, [r3, #4] ui->y=0; - 800654e: 68fb ldr r3, [r7, #12] - 8006550: 2200 movs r2, #0 - 8006552: 80da strh r2, [r3, #6] + 800743a: 68fb ldr r3, [r7, #12] + 800743c: 2200 movs r2, #0 + 800743e: 80da strh r2, [r3, #6] ui->high=240; - 8006554: 68fb ldr r3, [r7, #12] - 8006556: 22f0 movs r2, #240 ; 0xf0 - 8006558: 815a strh r2, [r3, #10] + 8007440: 68fb ldr r3, [r7, #12] + 8007442: 22f0 movs r2, #240 ; 0xf0 + 8007444: 815a strh r2, [r3, #10] ui->width=320; - 800655a: 68fb ldr r3, [r7, #12] - 800655c: f44f 72a0 mov.w r2, #320 ; 0x140 - 8006560: 811a strh r2, [r3, #8] + 8007446: 68fb ldr r3, [r7, #12] + 8007448: f44f 72a0 mov.w r2, #320 ; 0x140 + 800744c: 811a strh r2, [r3, #8] ui->background=background; - 8006562: 68fb ldr r3, [r7, #12] - 8006564: 687a ldr r2, [r7, #4] - 8006566: 601a str r2, [r3, #0] + 800744e: 68fb ldr r3, [r7, #12] + 8007450: 687a ldr r2, [r7, #4] + 8007452: 601a str r2, [r3, #0] ui->windows=NULL; - 8006568: 68fb ldr r3, [r7, #12] - 800656a: 2200 movs r2, #0 - 800656c: 60da str r2, [r3, #12] + 8007454: 68fb ldr r3, [r7, #12] + 8007456: 2200 movs r2, #0 + 8007458: 60da str r2, [r3, #12] ui->last_windows=NULL; - 800656e: 68fb ldr r3, [r7, #12] - 8006570: 2200 movs r2, #0 - 8006572: 611a str r2, [r3, #16] + 800745a: 68fb ldr r3, [r7, #12] + 800745c: 2200 movs r2, #0 + 800745e: 611a str r2, [r3, #16] ui->refresh_ui_flag=1; - 8006574: 68fa ldr r2, [r7, #12] - 8006576: f892 3020 ldrb.w r3, [r2, #32] - 800657a: f043 0304 orr.w r3, r3, #4 - 800657e: f882 3020 strb.w r3, [r2, #32] + 8007460: 68fa ldr r2, [r7, #12] + 8007462: f892 3020 ldrb.w r3, [r2, #32] + 8007466: f043 0304 orr.w r3, r3, #4 + 800746a: f882 3020 strb.w r3, [r2, #32] ui->moveed_windwos=NULL; - 8006582: 68fb ldr r3, [r7, #12] - 8006584: 2200 movs r2, #0 - 8006586: 615a str r2, [r3, #20] + 800746e: 68fb ldr r3, [r7, #12] + 8007470: 2200 movs r2, #0 + 8007472: 615a str r2, [r3, #20] ui->touch->acc_y=0; } */ return ui; - 8006588: 68fb ldr r3, [r7, #12] - 800658a: e000 b.n 800658e + 8007474: 68fb ldr r3, [r7, #12] + 8007476: e000 b.n 800747a } return NULL; - 800658c: 2300 movs r3, #0 + 8007478: 2300 movs r3, #0 } - 800658e: 4618 mov r0, r3 - 8006590: 3710 adds r7, #16 - 8006592: 46bd mov sp, r7 - 8006594: bd80 pop {r7, pc} + 800747a: 4618 mov r0, r3 + 800747c: 3710 adds r7, #16 + 800747e: 46bd mov sp, r7 + 8007480: bd80 pop {r7, pc} -08006596 : +08007482 : //新建一个窗口 //返回窗口的指针 //将窗口挂载到某个ui window *New_Window(UI *ui,uint16_t x,uint16_t y,uint16_t width,uint16_t high,COLOR_16 background,const char *title) { - 8006596: b580 push {r7, lr} - 8006598: b088 sub sp, #32 - 800659a: af00 add r7, sp, #0 - 800659c: 60f8 str r0, [r7, #12] - 800659e: 4608 mov r0, r1 - 80065a0: 4611 mov r1, r2 - 80065a2: 461a mov r2, r3 - 80065a4: 4603 mov r3, r0 - 80065a6: 817b strh r3, [r7, #10] - 80065a8: 460b mov r3, r1 - 80065aa: 813b strh r3, [r7, #8] - 80065ac: 4613 mov r3, r2 - 80065ae: 80fb strh r3, [r7, #6] + 8007482: b580 push {r7, lr} + 8007484: b088 sub sp, #32 + 8007486: af00 add r7, sp, #0 + 8007488: 60f8 str r0, [r7, #12] + 800748a: 4608 mov r0, r1 + 800748c: 4611 mov r1, r2 + 800748e: 461a mov r2, r3 + 8007490: 4603 mov r3, r0 + 8007492: 817b strh r3, [r7, #10] + 8007494: 460b mov r3, r1 + 8007496: 813b strh r3, [r7, #8] + 8007498: 4613 mov r3, r2 + 800749a: 80fb strh r3, [r7, #6] window *temp_window; temp_window = (window*)malloc(sizeof(window)); - 80065b0: 201c movs r0, #28 - 80065b2: f000 fabb bl 8006b2c - 80065b6: 4603 mov r3, r0 - 80065b8: 617b str r3, [r7, #20] + 800749c: 201c movs r0, #28 + 800749e: f000 fabb bl 8007a18 + 80074a2: 4603 mov r3, r0 + 80074a4: 617b str r3, [r7, #20] if(temp_window!=NULL) - 80065ba: 697b ldr r3, [r7, #20] - 80065bc: 2b00 cmp r3, #0 - 80065be: d022 beq.n 8006606 + 80074a6: 697b ldr r3, [r7, #20] + 80074a8: 2b00 cmp r3, #0 + 80074aa: d022 beq.n 80074f2 { temp_window->background=background; - 80065c0: 697b ldr r3, [r7, #20] - 80065c2: 6afa ldr r2, [r7, #44] ; 0x2c - 80065c4: 609a str r2, [r3, #8] + 80074ac: 697b ldr r3, [r7, #20] + 80074ae: 6afa ldr r2, [r7, #44] ; 0x2c + 80074b0: 609a str r2, [r3, #8] temp_window->high=high; - 80065c6: 697b ldr r3, [r7, #20] - 80065c8: 8d3a ldrh r2, [r7, #40] ; 0x28 - 80065ca: 80da strh r2, [r3, #6] + 80074b2: 697b ldr r3, [r7, #20] + 80074b4: 8d3a ldrh r2, [r7, #40] ; 0x28 + 80074b6: 80da strh r2, [r3, #6] temp_window->width=width; - 80065cc: 697b ldr r3, [r7, #20] - 80065ce: 88fa ldrh r2, [r7, #6] - 80065d0: 809a strh r2, [r3, #4] + 80074b8: 697b ldr r3, [r7, #20] + 80074ba: 88fa ldrh r2, [r7, #6] + 80074bc: 809a strh r2, [r3, #4] temp_window->x=x; - 80065d2: 697b ldr r3, [r7, #20] - 80065d4: 897a ldrh r2, [r7, #10] - 80065d6: 801a strh r2, [r3, #0] + 80074be: 697b ldr r3, [r7, #20] + 80074c0: 897a ldrh r2, [r7, #10] + 80074c2: 801a strh r2, [r3, #0] temp_window->y=y; - 80065d8: 697b ldr r3, [r7, #20] - 80065da: 893a ldrh r2, [r7, #8] - 80065dc: 805a strh r2, [r3, #2] + 80074c4: 697b ldr r3, [r7, #20] + 80074c6: 893a ldrh r2, [r7, #8] + 80074c8: 805a strh r2, [r3, #2] for(int a=0;a<16;a++) - 80065de: 2300 movs r3, #0 - 80065e0: 61fb str r3, [r7, #28] - 80065e2: e00c b.n 80065fe + 80074ca: 2300 movs r3, #0 + 80074cc: 61fb str r3, [r7, #28] + 80074ce: e00c b.n 80074ea { temp_window->title[a]=title[a]; - 80065e4: 69fb ldr r3, [r7, #28] - 80065e6: 6b3a ldr r2, [r7, #48] ; 0x30 - 80065e8: 4413 add r3, r2 - 80065ea: 7819 ldrb r1, [r3, #0] - 80065ec: 697a ldr r2, [r7, #20] - 80065ee: 69fb ldr r3, [r7, #28] - 80065f0: 4413 add r3, r2 - 80065f2: 330c adds r3, #12 - 80065f4: 460a mov r2, r1 - 80065f6: 701a strb r2, [r3, #0] + 80074d0: 69fb ldr r3, [r7, #28] + 80074d2: 6b3a ldr r2, [r7, #48] ; 0x30 + 80074d4: 4413 add r3, r2 + 80074d6: 7819 ldrb r1, [r3, #0] + 80074d8: 697a ldr r2, [r7, #20] + 80074da: 69fb ldr r3, [r7, #28] + 80074dc: 4413 add r3, r2 + 80074de: 330c adds r3, #12 + 80074e0: 460a mov r2, r1 + 80074e2: 701a strb r2, [r3, #0] for(int a=0;a<16;a++) - 80065f8: 69fb ldr r3, [r7, #28] - 80065fa: 3301 adds r3, #1 - 80065fc: 61fb str r3, [r7, #28] - 80065fe: 69fb ldr r3, [r7, #28] - 8006600: 2b0f cmp r3, #15 - 8006602: ddef ble.n 80065e4 - 8006604: e001 b.n 800660a + 80074e4: 69fb ldr r3, [r7, #28] + 80074e6: 3301 adds r3, #1 + 80074e8: 61fb str r3, [r7, #28] + 80074ea: 69fb ldr r3, [r7, #28] + 80074ec: 2b0f cmp r3, #15 + 80074ee: ddef ble.n 80074d0 + 80074f0: e001 b.n 80074f6 } }else{return NULL;} - 8006606: 2300 movs r3, #0 - 8006608: e02a b.n 8006660 + 80074f2: 2300 movs r3, #0 + 80074f4: e02a b.n 800754c windows_stack *temp_windows_stack; temp_windows_stack=ui->last_windows; - 800660a: 68fb ldr r3, [r7, #12] - 800660c: 691b ldr r3, [r3, #16] - 800660e: 61bb str r3, [r7, #24] + 80074f6: 68fb ldr r3, [r7, #12] + 80074f8: 691b ldr r3, [r3, #16] + 80074fa: 61bb str r3, [r7, #24] if(temp_windows_stack==NULL) - 8006610: 69bb ldr r3, [r7, #24] - 8006612: 2b00 cmp r3, #0 - 8006614: d10b bne.n 800662e + 80074fc: 69bb ldr r3, [r7, #24] + 80074fe: 2b00 cmp r3, #0 + 8007500: d10b bne.n 800751a { temp_windows_stack=(windows_stack*)malloc(sizeof(windows_stack)); - 8006616: 200c movs r0, #12 - 8006618: f000 fa88 bl 8006b2c - 800661c: 4603 mov r3, r0 - 800661e: 61bb str r3, [r7, #24] + 8007502: 200c movs r0, #12 + 8007504: f000 fa88 bl 8007a18 + 8007508: 4603 mov r3, r0 + 800750a: 61bb str r3, [r7, #24] temp_windows_stack->up=NULL; - 8006620: 69bb ldr r3, [r7, #24] - 8006622: 2200 movs r2, #0 - 8006624: 601a str r2, [r3, #0] + 800750c: 69bb ldr r3, [r7, #24] + 800750e: 2200 movs r2, #0 + 8007510: 601a str r2, [r3, #0] ui->windows=temp_windows_stack; - 8006626: 68fb ldr r3, [r7, #12] - 8006628: 69ba ldr r2, [r7, #24] - 800662a: 60da str r2, [r3, #12] - 800662c: e00e b.n 800664c + 8007512: 68fb ldr r3, [r7, #12] + 8007514: 69ba ldr r2, [r7, #24] + 8007516: 60da str r2, [r3, #12] + 8007518: e00e b.n 8007538 while(temp_windows_stack->next!=NULL) { temp_windows_stack=temp_windows_stack->next; } */ windows_stack *up=temp_windows_stack;//备份当前对象指针 - 800662e: 69bb ldr r3, [r7, #24] - 8006630: 613b str r3, [r7, #16] + 800751a: 69bb ldr r3, [r7, #24] + 800751c: 613b str r3, [r7, #16] temp_windows_stack->next=(windows_stack*)malloc(sizeof(windows_stack)); - 8006632: 200c movs r0, #12 - 8006634: f000 fa7a bl 8006b2c - 8006638: 4603 mov r3, r0 - 800663a: 461a mov r2, r3 - 800663c: 69bb ldr r3, [r7, #24] - 800663e: 609a str r2, [r3, #8] + 800751e: 200c movs r0, #12 + 8007520: f000 fa7a bl 8007a18 + 8007524: 4603 mov r3, r0 + 8007526: 461a mov r2, r3 + 8007528: 69bb ldr r3, [r7, #24] + 800752a: 609a str r2, [r3, #8] temp_windows_stack=temp_windows_stack->next; - 8006640: 69bb ldr r3, [r7, #24] - 8006642: 689b ldr r3, [r3, #8] - 8006644: 61bb str r3, [r7, #24] + 800752c: 69bb ldr r3, [r7, #24] + 800752e: 689b ldr r3, [r3, #8] + 8007530: 61bb str r3, [r7, #24] temp_windows_stack->up=up; - 8006646: 69bb ldr r3, [r7, #24] - 8006648: 693a ldr r2, [r7, #16] - 800664a: 601a str r2, [r3, #0] + 8007532: 69bb ldr r3, [r7, #24] + 8007534: 693a ldr r2, [r7, #16] + 8007536: 601a str r2, [r3, #0] } temp_windows_stack->next=NULL; - 800664c: 69bb ldr r3, [r7, #24] - 800664e: 2200 movs r2, #0 - 8006650: 609a str r2, [r3, #8] + 8007538: 69bb ldr r3, [r7, #24] + 800753a: 2200 movs r2, #0 + 800753c: 609a str r2, [r3, #8] temp_windows_stack->window=temp_window; - 8006652: 69bb ldr r3, [r7, #24] - 8006654: 697a ldr r2, [r7, #20] - 8006656: 605a str r2, [r3, #4] + 800753e: 69bb ldr r3, [r7, #24] + 8007540: 697a ldr r2, [r7, #20] + 8007542: 605a str r2, [r3, #4] ui->last_windows=temp_windows_stack; - 8006658: 68fb ldr r3, [r7, #12] - 800665a: 69ba ldr r2, [r7, #24] - 800665c: 611a str r2, [r3, #16] + 8007544: 68fb ldr r3, [r7, #12] + 8007546: 69ba ldr r2, [r7, #24] + 8007548: 611a str r2, [r3, #16] return temp_window; - 800665e: 697b ldr r3, [r7, #20] + 800754a: 697b ldr r3, [r7, #20] } - 8006660: 4618 mov r0, r3 - 8006662: 3720 adds r7, #32 - 8006664: 46bd mov sp, r7 - 8006666: bd80 pop {r7, pc} + 800754c: 4618 mov r0, r3 + 800754e: 3720 adds r7, #32 + 8007550: 46bd mov sp, r7 + 8007552: bd80 pop {r7, pc} -08006668 : +08007554 : temp_window->y=temp_window->y+acc_y; } //显示一个窗口 void Refresh_Window(UI *ui,window *temp_window) { - 8006668: b580 push {r7, lr} - 800666a: b088 sub sp, #32 - 800666c: af02 add r7, sp, #8 - 800666e: 6078 str r0, [r7, #4] - 8006670: 6039 str r1, [r7, #0] + 8007554: b580 push {r7, lr} + 8007556: b088 sub sp, #32 + 8007558: af02 add r7, sp, #8 + 800755a: 6078 str r0, [r7, #4] + 800755c: 6039 str r1, [r7, #0] //开始绘制窗口//填充窗口背景 int x,y; char z; for(uint16_t temp_y=0;temp_yhigh;temp_y++) - 8006672: 2300 movs r3, #0 - 8006674: 82bb strh r3, [r7, #20] - 8006676: e063 b.n 8006740 + 800755e: 2300 movs r3, #0 + 8007560: 82bb strh r3, [r7, #20] + 8007562: e063 b.n 800762c { z=1; - 8006678: 2301 movs r3, #1 - 800667a: 75fb strb r3, [r7, #23] + 8007564: 2301 movs r3, #1 + 8007566: 75fb strb r3, [r7, #23] for(uint16_t temp_i=0;temp_iwidth;temp_i++) - 800667c: 2300 movs r3, #0 - 800667e: 827b strh r3, [r7, #18] - 8006680: e056 b.n 8006730 + 8007568: 2300 movs r3, #0 + 800756a: 827b strh r3, [r7, #18] + 800756c: e056 b.n 800761c { x=temp_window->x+temp_i; - 8006682: 683b ldr r3, [r7, #0] - 8006684: 881b ldrh r3, [r3, #0] - 8006686: 461a mov r2, r3 - 8006688: 8a7b ldrh r3, [r7, #18] - 800668a: 4413 add r3, r2 - 800668c: 60fb str r3, [r7, #12] + 800756e: 683b ldr r3, [r7, #0] + 8007570: 881b ldrh r3, [r3, #0] + 8007572: 461a mov r2, r3 + 8007574: 8a7b ldrh r3, [r7, #18] + 8007576: 4413 add r3, r2 + 8007578: 60fb str r3, [r7, #12] y=temp_window->y+temp_y; - 800668e: 683b ldr r3, [r7, #0] - 8006690: 885b ldrh r3, [r3, #2] - 8006692: 461a mov r2, r3 - 8006694: 8abb ldrh r3, [r7, #20] - 8006696: 4413 add r3, r2 - 8006698: 60bb str r3, [r7, #8] + 800757a: 683b ldr r3, [r7, #0] + 800757c: 885b ldrh r3, [r3, #2] + 800757e: 461a mov r2, r3 + 8007580: 8abb ldrh r3, [r7, #20] + 8007582: 4413 add r3, r2 + 8007584: 60bb str r3, [r7, #8] if(y>=ui->y&&z==1) - 800669a: 687b ldr r3, [r7, #4] - 800669c: 88db ldrh r3, [r3, #6] - 800669e: 461a mov r2, r3 - 80066a0: 68bb ldr r3, [r7, #8] - 80066a2: 4293 cmp r3, r2 - 80066a4: db0c blt.n 80066c0 - 80066a6: 7dfb ldrb r3, [r7, #23] - 80066a8: 2b01 cmp r3, #1 - 80066aa: d109 bne.n 80066c0 + 8007586: 687b ldr r3, [r7, #4] + 8007588: 88db ldrh r3, [r3, #6] + 800758a: 461a mov r2, r3 + 800758c: 68bb ldr r3, [r7, #8] + 800758e: 4293 cmp r3, r2 + 8007590: db0c blt.n 80075ac + 8007592: 7dfb ldrb r3, [r7, #23] + 8007594: 2b01 cmp r3, #1 + 8007596: d109 bne.n 80075ac { Inteface_SetCursor(x,y); - 80066ac: 68fb ldr r3, [r7, #12] - 80066ae: b29b uxth r3, r3 - 80066b0: 68ba ldr r2, [r7, #8] - 80066b2: b292 uxth r2, r2 - 80066b4: 4611 mov r1, r2 - 80066b6: 4618 mov r0, r3 - 80066b8: f7ff ff10 bl 80064dc + 8007598: 68fb ldr r3, [r7, #12] + 800759a: b29b uxth r3, r3 + 800759c: 68ba ldr r2, [r7, #8] + 800759e: b292 uxth r2, r2 + 80075a0: 4611 mov r1, r2 + 80075a2: 4618 mov r0, r3 + 80075a4: f7ff ff10 bl 80073c8 z=0; - 80066bc: 2300 movs r3, #0 - 80066be: 75fb strb r3, [r7, #23] + 80075a8: 2300 movs r3, #0 + 80075aa: 75fb strb r3, [r7, #23] } if(x>=ui->x) - 80066c0: 687b ldr r3, [r7, #4] - 80066c2: 889b ldrh r3, [r3, #4] - 80066c4: 461a mov r2, r3 - 80066c6: 68fb ldr r3, [r7, #12] - 80066c8: 4293 cmp r3, r2 - 80066ca: db2e blt.n 800672a + 80075ac: 687b ldr r3, [r7, #4] + 80075ae: 889b ldrh r3, [r3, #4] + 80075b0: 461a mov r2, r3 + 80075b2: 68fb ldr r3, [r7, #12] + 80075b4: 4293 cmp r3, r2 + 80075b6: db2e blt.n 8007616 { if(temp_y<16) - 80066cc: 8abb ldrh r3, [r7, #20] - 80066ce: 2b0f cmp r3, #15 - 80066d0: d80f bhi.n 80066f2 + 80075b8: 8abb ldrh r3, [r7, #20] + 80075ba: 2b0f cmp r3, #15 + 80075bc: d80f bhi.n 80075de { if(temp_i>temp_window->width-16) - 80066d2: 683b ldr r3, [r7, #0] - 80066d4: 889b ldrh r3, [r3, #4] - 80066d6: f1a3 020f sub.w r2, r3, #15 - 80066da: 8a7b ldrh r3, [r7, #18] - 80066dc: 429a cmp r2, r3 - 80066de: dc04 bgt.n 80066ea + 80075be: 683b ldr r3, [r7, #0] + 80075c0: 889b ldrh r3, [r3, #4] + 80075c2: f1a3 020f sub.w r2, r3, #15 + 80075c6: 8a7b ldrh r3, [r7, #18] + 80075c8: 429a cmp r2, r3 + 80075ca: dc04 bgt.n 80075d6 { Inteface_SetColor(RED); - 80066e0: f44f 4078 mov.w r0, #63488 ; 0xf800 - 80066e4: f7ff ff14 bl 8006510 - 80066e8: e01f b.n 800672a + 80075cc: f44f 4078 mov.w r0, #63488 ; 0xf800 + 80075d0: f7ff ff14 bl 80073fc + 80075d4: e01f b.n 8007616 }else { Inteface_SetColor(BLUE); - 80066ea: 201f movs r0, #31 - 80066ec: f7ff ff10 bl 8006510 - 80066f0: e01b b.n 800672a + 80075d6: 201f movs r0, #31 + 80075d8: f7ff ff10 bl 80073fc + 80075dc: e01b b.n 8007616 } }else { if(temp_i==0||temp_y==0||temp_i==temp_window->width-1||temp_y==temp_window->high-1) - 80066f2: 8a7b ldrh r3, [r7, #18] - 80066f4: 2b00 cmp r3, #0 - 80066f6: d00e beq.n 8006716 - 80066f8: 8abb ldrh r3, [r7, #20] - 80066fa: 2b00 cmp r3, #0 - 80066fc: d00b beq.n 8006716 - 80066fe: 8a7a ldrh r2, [r7, #18] - 8006700: 683b ldr r3, [r7, #0] - 8006702: 889b ldrh r3, [r3, #4] - 8006704: 3b01 subs r3, #1 - 8006706: 429a cmp r2, r3 - 8006708: d005 beq.n 8006716 - 800670a: 8aba ldrh r2, [r7, #20] - 800670c: 683b ldr r3, [r7, #0] - 800670e: 88db ldrh r3, [r3, #6] - 8006710: 3b01 subs r3, #1 - 8006712: 429a cmp r2, r3 - 8006714: d103 bne.n 800671e + 80075de: 8a7b ldrh r3, [r7, #18] + 80075e0: 2b00 cmp r3, #0 + 80075e2: d00e beq.n 8007602 + 80075e4: 8abb ldrh r3, [r7, #20] + 80075e6: 2b00 cmp r3, #0 + 80075e8: d00b beq.n 8007602 + 80075ea: 8a7a ldrh r2, [r7, #18] + 80075ec: 683b ldr r3, [r7, #0] + 80075ee: 889b ldrh r3, [r3, #4] + 80075f0: 3b01 subs r3, #1 + 80075f2: 429a cmp r2, r3 + 80075f4: d005 beq.n 8007602 + 80075f6: 8aba ldrh r2, [r7, #20] + 80075f8: 683b ldr r3, [r7, #0] + 80075fa: 88db ldrh r3, [r3, #6] + 80075fc: 3b01 subs r3, #1 + 80075fe: 429a cmp r2, r3 + 8007600: d103 bne.n 800760a { Inteface_SetColor(BLUE); - 8006716: 201f movs r0, #31 - 8006718: f7ff fefa bl 8006510 - 800671c: e005 b.n 800672a + 8007602: 201f movs r0, #31 + 8007604: f7ff fefa bl 80073fc + 8007608: e005 b.n 8007616 }else { Inteface_SetColor(temp_window->background); - 800671e: 683b ldr r3, [r7, #0] - 8006720: 689b ldr r3, [r3, #8] - 8006722: b29b uxth r3, r3 - 8006724: 4618 mov r0, r3 - 8006726: f7ff fef3 bl 8006510 + 800760a: 683b ldr r3, [r7, #0] + 800760c: 689b ldr r3, [r3, #8] + 800760e: b29b uxth r3, r3 + 8007610: 4618 mov r0, r3 + 8007612: f7ff fef3 bl 80073fc for(uint16_t temp_i=0;temp_iwidth;temp_i++) - 800672a: 8a7b ldrh r3, [r7, #18] - 800672c: 3301 adds r3, #1 - 800672e: 827b strh r3, [r7, #18] - 8006730: 683b ldr r3, [r7, #0] - 8006732: 889b ldrh r3, [r3, #4] - 8006734: 8a7a ldrh r2, [r7, #18] - 8006736: 429a cmp r2, r3 - 8006738: d3a3 bcc.n 8006682 + 8007616: 8a7b ldrh r3, [r7, #18] + 8007618: 3301 adds r3, #1 + 800761a: 827b strh r3, [r7, #18] + 800761c: 683b ldr r3, [r7, #0] + 800761e: 889b ldrh r3, [r3, #4] + 8007620: 8a7a ldrh r2, [r7, #18] + 8007622: 429a cmp r2, r3 + 8007624: d3a3 bcc.n 800756e for(uint16_t temp_y=0;temp_yhigh;temp_y++) - 800673a: 8abb ldrh r3, [r7, #20] - 800673c: 3301 adds r3, #1 - 800673e: 82bb strh r3, [r7, #20] - 8006740: 683b ldr r3, [r7, #0] - 8006742: 88db ldrh r3, [r3, #6] - 8006744: 8aba ldrh r2, [r7, #20] - 8006746: 429a cmp r2, r3 - 8006748: d396 bcc.n 8006678 + 8007626: 8abb ldrh r3, [r7, #20] + 8007628: 3301 adds r3, #1 + 800762a: 82bb strh r3, [r7, #20] + 800762c: 683b ldr r3, [r7, #0] + 800762e: 88db ldrh r3, [r3, #6] + 8007630: 8aba ldrh r2, [r7, #20] + 8007632: 429a cmp r2, r3 + 8007634: d396 bcc.n 8007564 } } */ //显示title LCD_ShowString(temp_window->x,temp_window->y,&temp_window->title,16,WHITE,WHITE); - 800674a: 683b ldr r3, [r7, #0] - 800674c: 8818 ldrh r0, [r3, #0] - 800674e: 683b ldr r3, [r7, #0] - 8006750: 8859 ldrh r1, [r3, #2] - 8006752: 683b ldr r3, [r7, #0] - 8006754: f103 020c add.w r2, r3, #12 - 8006758: f64f 73ff movw r3, #65535 ; 0xffff - 800675c: 9301 str r3, [sp, #4] - 800675e: f64f 73ff movw r3, #65535 ; 0xffff - 8006762: 9300 str r3, [sp, #0] - 8006764: 2310 movs r3, #16 - 8006766: f7fe fb75 bl 8004e54 + 8007636: 683b ldr r3, [r7, #0] + 8007638: 8818 ldrh r0, [r3, #0] + 800763a: 683b ldr r3, [r7, #0] + 800763c: 8859 ldrh r1, [r3, #2] + 800763e: 683b ldr r3, [r7, #0] + 8007640: f103 020c add.w r2, r3, #12 + 8007644: f64f 73ff movw r3, #65535 ; 0xffff + 8007648: 9301 str r3, [sp, #4] + 800764a: f64f 73ff movw r3, #65535 ; 0xffff + 800764e: 9300 str r3, [sp, #0] + 8007650: 2310 movs r3, #16 + 8007652: f7fe f9eb bl 8005a2c } - 800676a: bf00 nop - 800676c: 3718 adds r7, #24 - 800676e: 46bd mov sp, r7 - 8006770: bd80 pop {r7, pc} + 8007656: bf00 nop + 8007658: 3718 adds r7, #24 + 800765a: 46bd mov sp, r7 + 800765c: bd80 pop {r7, pc} -08006772 : +0800765e : * 很可惜 辛辛苦苦写的代码要被放弃 * 用算法实现遮挡关系计算真挺蠢 * * */ void Refresh_UI(UI *ui) { - 8006772: b580 push {r7, lr} - 8006774: b086 sub sp, #24 - 8006776: af00 add r7, sp, #0 - 8006778: 6078 str r0, [r7, #4] + 800765e: b580 push {r7, lr} + 8007660: b086 sub sp, #24 + 8007662: af00 add r7, sp, #0 + 8007664: 6078 str r0, [r7, #4] int flag=0; - 800677a: 2300 movs r3, #0 - 800677c: 617b str r3, [r7, #20] + 8007666: 2300 movs r3, #0 + 8007668: 617b str r3, [r7, #20] uint16_t dot_y=0,dot_x=0; - 800677e: 2300 movs r3, #0 - 8006780: 827b strh r3, [r7, #18] - 8006782: 2300 movs r3, #0 - 8006784: 823b strh r3, [r7, #16] + 800766a: 2300 movs r3, #0 + 800766c: 827b strh r3, [r7, #18] + 800766e: 2300 movs r3, #0 + 8007670: 823b strh r3, [r7, #16] //画背景 for(dot_y=ui->y;dot_yhigh;dot_y++) - 8006786: 687b ldr r3, [r7, #4] - 8006788: 88db ldrh r3, [r3, #6] - 800678a: 827b strh r3, [r7, #18] - 800678c: e01a b.n 80067c4 + 8007672: 687b ldr r3, [r7, #4] + 8007674: 88db ldrh r3, [r3, #6] + 8007676: 827b strh r3, [r7, #18] + 8007678: e01a b.n 80076b0 { Inteface_SetCursor(dot_x,dot_y); - 800678e: 8a7a ldrh r2, [r7, #18] - 8006790: 8a3b ldrh r3, [r7, #16] - 8006792: 4611 mov r1, r2 - 8006794: 4618 mov r0, r3 - 8006796: f7ff fea1 bl 80064dc + 800767a: 8a7a ldrh r2, [r7, #18] + 800767c: 8a3b ldrh r3, [r7, #16] + 800767e: 4611 mov r1, r2 + 8007680: 4618 mov r0, r3 + 8007682: f7ff fea1 bl 80073c8 for(dot_x=ui->x;dot_xwidth;dot_x++) - 800679a: 687b ldr r3, [r7, #4] - 800679c: 889b ldrh r3, [r3, #4] - 800679e: 823b strh r3, [r7, #16] - 80067a0: e008 b.n 80067b4 + 8007686: 687b ldr r3, [r7, #4] + 8007688: 889b ldrh r3, [r3, #4] + 800768a: 823b strh r3, [r7, #16] + 800768c: e008 b.n 80076a0 { Inteface_SetColor(ui->background); - 80067a2: 687b ldr r3, [r7, #4] - 80067a4: 681b ldr r3, [r3, #0] - 80067a6: b29b uxth r3, r3 - 80067a8: 4618 mov r0, r3 - 80067aa: f7ff feb1 bl 8006510 + 800768e: 687b ldr r3, [r7, #4] + 8007690: 681b ldr r3, [r3, #0] + 8007692: b29b uxth r3, r3 + 8007694: 4618 mov r0, r3 + 8007696: f7ff feb1 bl 80073fc for(dot_x=ui->x;dot_xwidth;dot_x++) - 80067ae: 8a3b ldrh r3, [r7, #16] - 80067b0: 3301 adds r3, #1 - 80067b2: 823b strh r3, [r7, #16] - 80067b4: 687b ldr r3, [r7, #4] - 80067b6: 891b ldrh r3, [r3, #8] - 80067b8: 8a3a ldrh r2, [r7, #16] - 80067ba: 429a cmp r2, r3 - 80067bc: d3f1 bcc.n 80067a2 + 800769a: 8a3b ldrh r3, [r7, #16] + 800769c: 3301 adds r3, #1 + 800769e: 823b strh r3, [r7, #16] + 80076a0: 687b ldr r3, [r7, #4] + 80076a2: 891b ldrh r3, [r3, #8] + 80076a4: 8a3a ldrh r2, [r7, #16] + 80076a6: 429a cmp r2, r3 + 80076a8: d3f1 bcc.n 800768e for(dot_y=ui->y;dot_yhigh;dot_y++) - 80067be: 8a7b ldrh r3, [r7, #18] - 80067c0: 3301 adds r3, #1 - 80067c2: 827b strh r3, [r7, #18] - 80067c4: 687b ldr r3, [r7, #4] - 80067c6: 895b ldrh r3, [r3, #10] - 80067c8: 8a7a ldrh r2, [r7, #18] - 80067ca: 429a cmp r2, r3 - 80067cc: d3df bcc.n 800678e + 80076aa: 8a7b ldrh r3, [r7, #18] + 80076ac: 3301 adds r3, #1 + 80076ae: 827b strh r3, [r7, #18] + 80076b0: 687b ldr r3, [r7, #4] + 80076b2: 895b ldrh r3, [r3, #10] + 80076b4: 8a7a ldrh r2, [r7, #18] + 80076b6: 429a cmp r2, r3 + 80076b8: d3df bcc.n 800767a } } windows_stack *temp_windows_stack,*temp_windows_stack2; temp_windows_stack=ui->windows; - 80067ce: 687b ldr r3, [r7, #4] - 80067d0: 68db ldr r3, [r3, #12] - 80067d2: 60fb str r3, [r7, #12] + 80076ba: 687b ldr r3, [r7, #4] + 80076bc: 68db ldr r3, [r3, #12] + 80076be: 60fb str r3, [r7, #12] do { if(temp_windows_stack!=NULL) - 80067d4: 68fb ldr r3, [r7, #12] - 80067d6: 2b00 cmp r3, #0 - 80067d8: d00b beq.n 80067f2 + 80076c0: 68fb ldr r3, [r7, #12] + 80076c2: 2b00 cmp r3, #0 + 80076c4: d00b beq.n 80076de { flag=1; - 80067da: 2301 movs r3, #1 - 80067dc: 617b str r3, [r7, #20] + 80076c6: 2301 movs r3, #1 + 80076c8: 617b str r3, [r7, #20] Refresh_Window(ui,temp_windows_stack->window); - 80067de: 68fb ldr r3, [r7, #12] - 80067e0: 685b ldr r3, [r3, #4] - 80067e2: 4619 mov r1, r3 - 80067e4: 6878 ldr r0, [r7, #4] - 80067e6: f7ff ff3f bl 8006668 + 80076ca: 68fb ldr r3, [r7, #12] + 80076cc: 685b ldr r3, [r3, #4] + 80076ce: 4619 mov r1, r3 + 80076d0: 6878 ldr r0, [r7, #4] + 80076d2: f7ff ff3f bl 8007554 //绘制下一个窗口 temp_windows_stack=temp_windows_stack->next; - 80067ea: 68fb ldr r3, [r7, #12] - 80067ec: 689b ldr r3, [r3, #8] - 80067ee: 60fb str r3, [r7, #12] - 80067f0: e001 b.n 80067f6 + 80076d6: 68fb ldr r3, [r7, #12] + 80076d8: 689b ldr r3, [r3, #8] + 80076da: 60fb str r3, [r7, #12] + 80076dc: e001 b.n 80076e2 }else { flag=0; - 80067f2: 2300 movs r3, #0 - 80067f4: 617b str r3, [r7, #20] + 80076de: 2300 movs r3, #0 + 80076e0: 617b str r3, [r7, #20] } }while(flag); - 80067f6: 697b ldr r3, [r7, #20] - 80067f8: 2b00 cmp r3, #0 - 80067fa: d1eb bne.n 80067d4 + 80076e2: 697b ldr r3, [r7, #20] + 80076e4: 2b00 cmp r3, #0 + 80076e6: d1eb bne.n 80076c0 } } */ } - 80067fc: bf00 nop - 80067fe: bf00 nop - 8006800: 3718 adds r7, #24 - 8006802: 46bd mov sp, r7 - 8006804: bd80 pop {r7, pc} + 80076e8: bf00 nop + 80076ea: bf00 nop + 80076ec: 3718 adds r7, #24 + 80076ee: 46bd mov sp, r7 + 80076f0: bd80 pop {r7, pc} -08006806 : +080076f2 : #define BODY 1 #define BAR 2 #define CLOSE 3 uint8_t Chack(window *this_window,int x,int y) { - 8006806: b480 push {r7} - 8006808: b087 sub sp, #28 - 800680a: af00 add r7, sp, #0 - 800680c: 60f8 str r0, [r7, #12] - 800680e: 60b9 str r1, [r7, #8] - 8006810: 607a str r2, [r7, #4] + 80076f2: b480 push {r7} + 80076f4: b087 sub sp, #28 + 80076f6: af00 add r7, sp, #0 + 80076f8: 60f8 str r0, [r7, #12] + 80076fa: 60b9 str r1, [r7, #8] + 80076fc: 607a str r2, [r7, #4] int a=0; - 8006812: 2300 movs r3, #0 - 8006814: 617b str r3, [r7, #20] + 80076fe: 2300 movs r3, #0 + 8007700: 617b str r3, [r7, #20] if(((x>=this_window->x)&&(x<(this_window->x+this_window->width)))&&((y>=this_window->y+16)&&(y<(this_window->y+this_window->high)))) - 8006816: 68fb ldr r3, [r7, #12] - 8006818: 881b ldrh r3, [r3, #0] - 800681a: 461a mov r2, r3 - 800681c: 68bb ldr r3, [r7, #8] - 800681e: 4293 cmp r3, r2 - 8006820: db19 blt.n 8006856 - 8006822: 68fb ldr r3, [r7, #12] - 8006824: 881b ldrh r3, [r3, #0] - 8006826: 461a mov r2, r3 - 8006828: 68fb ldr r3, [r7, #12] - 800682a: 889b ldrh r3, [r3, #4] - 800682c: 4413 add r3, r2 - 800682e: 68ba ldr r2, [r7, #8] - 8006830: 429a cmp r2, r3 - 8006832: da10 bge.n 8006856 - 8006834: 68fb ldr r3, [r7, #12] - 8006836: 885b ldrh r3, [r3, #2] - 8006838: 330f adds r3, #15 - 800683a: 687a ldr r2, [r7, #4] - 800683c: 429a cmp r2, r3 - 800683e: dd0a ble.n 8006856 - 8006840: 68fb ldr r3, [r7, #12] - 8006842: 885b ldrh r3, [r3, #2] - 8006844: 461a mov r2, r3 - 8006846: 68fb ldr r3, [r7, #12] - 8006848: 88db ldrh r3, [r3, #6] - 800684a: 4413 add r3, r2 - 800684c: 687a ldr r2, [r7, #4] - 800684e: 429a cmp r2, r3 - 8006850: da01 bge.n 8006856 + 8007702: 68fb ldr r3, [r7, #12] + 8007704: 881b ldrh r3, [r3, #0] + 8007706: 461a mov r2, r3 + 8007708: 68bb ldr r3, [r7, #8] + 800770a: 4293 cmp r3, r2 + 800770c: db19 blt.n 8007742 + 800770e: 68fb ldr r3, [r7, #12] + 8007710: 881b ldrh r3, [r3, #0] + 8007712: 461a mov r2, r3 + 8007714: 68fb ldr r3, [r7, #12] + 8007716: 889b ldrh r3, [r3, #4] + 8007718: 4413 add r3, r2 + 800771a: 68ba ldr r2, [r7, #8] + 800771c: 429a cmp r2, r3 + 800771e: da10 bge.n 8007742 + 8007720: 68fb ldr r3, [r7, #12] + 8007722: 885b ldrh r3, [r3, #2] + 8007724: 330f adds r3, #15 + 8007726: 687a ldr r2, [r7, #4] + 8007728: 429a cmp r2, r3 + 800772a: dd0a ble.n 8007742 + 800772c: 68fb ldr r3, [r7, #12] + 800772e: 885b ldrh r3, [r3, #2] + 8007730: 461a mov r2, r3 + 8007732: 68fb ldr r3, [r7, #12] + 8007734: 88db ldrh r3, [r3, #6] + 8007736: 4413 add r3, r2 + 8007738: 687a ldr r2, [r7, #4] + 800773a: 429a cmp r2, r3 + 800773c: da01 bge.n 8007742 { a=1; - 8006852: 2301 movs r3, #1 - 8006854: 617b str r3, [r7, #20] + 800773e: 2301 movs r3, #1 + 8007740: 617b str r3, [r7, #20] } if(((x>=this_window->x)&&(x<(this_window->x+this_window->width-16)))&&((y>=this_window->y)&&(y<(this_window->y+16)))) - 8006856: 68fb ldr r3, [r7, #12] - 8006858: 881b ldrh r3, [r3, #0] - 800685a: 461a mov r2, r3 - 800685c: 68bb ldr r3, [r7, #8] - 800685e: 4293 cmp r3, r2 - 8006860: db17 blt.n 8006892 - 8006862: 68fb ldr r3, [r7, #12] - 8006864: 881b ldrh r3, [r3, #0] - 8006866: 461a mov r2, r3 - 8006868: 68fb ldr r3, [r7, #12] - 800686a: 889b ldrh r3, [r3, #4] - 800686c: 4413 add r3, r2 - 800686e: 3b10 subs r3, #16 - 8006870: 68ba ldr r2, [r7, #8] - 8006872: 429a cmp r2, r3 - 8006874: da0d bge.n 8006892 - 8006876: 68fb ldr r3, [r7, #12] - 8006878: 885b ldrh r3, [r3, #2] - 800687a: 461a mov r2, r3 - 800687c: 687b ldr r3, [r7, #4] - 800687e: 4293 cmp r3, r2 - 8006880: db07 blt.n 8006892 - 8006882: 68fb ldr r3, [r7, #12] - 8006884: 885b ldrh r3, [r3, #2] - 8006886: 330f adds r3, #15 - 8006888: 687a ldr r2, [r7, #4] - 800688a: 429a cmp r2, r3 - 800688c: dc01 bgt.n 8006892 + 8007742: 68fb ldr r3, [r7, #12] + 8007744: 881b ldrh r3, [r3, #0] + 8007746: 461a mov r2, r3 + 8007748: 68bb ldr r3, [r7, #8] + 800774a: 4293 cmp r3, r2 + 800774c: db17 blt.n 800777e + 800774e: 68fb ldr r3, [r7, #12] + 8007750: 881b ldrh r3, [r3, #0] + 8007752: 461a mov r2, r3 + 8007754: 68fb ldr r3, [r7, #12] + 8007756: 889b ldrh r3, [r3, #4] + 8007758: 4413 add r3, r2 + 800775a: 3b10 subs r3, #16 + 800775c: 68ba ldr r2, [r7, #8] + 800775e: 429a cmp r2, r3 + 8007760: da0d bge.n 800777e + 8007762: 68fb ldr r3, [r7, #12] + 8007764: 885b ldrh r3, [r3, #2] + 8007766: 461a mov r2, r3 + 8007768: 687b ldr r3, [r7, #4] + 800776a: 4293 cmp r3, r2 + 800776c: db07 blt.n 800777e + 800776e: 68fb ldr r3, [r7, #12] + 8007770: 885b ldrh r3, [r3, #2] + 8007772: 330f adds r3, #15 + 8007774: 687a ldr r2, [r7, #4] + 8007776: 429a cmp r2, r3 + 8007778: dc01 bgt.n 800777e { a=2; - 800688e: 2302 movs r3, #2 - 8006890: 617b str r3, [r7, #20] + 800777a: 2302 movs r3, #2 + 800777c: 617b str r3, [r7, #20] } if((x>=(this_window->x+this_window->width-16))&&(x<(this_window->x+this_window->width))&&((y>=this_window->y)&&(y<(this_window->y+16)))) - 8006892: 68fb ldr r3, [r7, #12] - 8006894: 881b ldrh r3, [r3, #0] - 8006896: 461a mov r2, r3 - 8006898: 68fb ldr r3, [r7, #12] - 800689a: 889b ldrh r3, [r3, #4] - 800689c: 4413 add r3, r2 - 800689e: 3b10 subs r3, #16 - 80068a0: 68ba ldr r2, [r7, #8] - 80068a2: 429a cmp r2, r3 - 80068a4: db16 blt.n 80068d4 - 80068a6: 68fb ldr r3, [r7, #12] - 80068a8: 881b ldrh r3, [r3, #0] - 80068aa: 461a mov r2, r3 - 80068ac: 68fb ldr r3, [r7, #12] - 80068ae: 889b ldrh r3, [r3, #4] - 80068b0: 4413 add r3, r2 - 80068b2: 68ba ldr r2, [r7, #8] - 80068b4: 429a cmp r2, r3 - 80068b6: da0d bge.n 80068d4 - 80068b8: 68fb ldr r3, [r7, #12] - 80068ba: 885b ldrh r3, [r3, #2] - 80068bc: 461a mov r2, r3 - 80068be: 687b ldr r3, [r7, #4] - 80068c0: 4293 cmp r3, r2 - 80068c2: db07 blt.n 80068d4 - 80068c4: 68fb ldr r3, [r7, #12] - 80068c6: 885b ldrh r3, [r3, #2] - 80068c8: 330f adds r3, #15 - 80068ca: 687a ldr r2, [r7, #4] - 80068cc: 429a cmp r2, r3 - 80068ce: dc01 bgt.n 80068d4 + 800777e: 68fb ldr r3, [r7, #12] + 8007780: 881b ldrh r3, [r3, #0] + 8007782: 461a mov r2, r3 + 8007784: 68fb ldr r3, [r7, #12] + 8007786: 889b ldrh r3, [r3, #4] + 8007788: 4413 add r3, r2 + 800778a: 3b10 subs r3, #16 + 800778c: 68ba ldr r2, [r7, #8] + 800778e: 429a cmp r2, r3 + 8007790: db16 blt.n 80077c0 + 8007792: 68fb ldr r3, [r7, #12] + 8007794: 881b ldrh r3, [r3, #0] + 8007796: 461a mov r2, r3 + 8007798: 68fb ldr r3, [r7, #12] + 800779a: 889b ldrh r3, [r3, #4] + 800779c: 4413 add r3, r2 + 800779e: 68ba ldr r2, [r7, #8] + 80077a0: 429a cmp r2, r3 + 80077a2: da0d bge.n 80077c0 + 80077a4: 68fb ldr r3, [r7, #12] + 80077a6: 885b ldrh r3, [r3, #2] + 80077a8: 461a mov r2, r3 + 80077aa: 687b ldr r3, [r7, #4] + 80077ac: 4293 cmp r3, r2 + 80077ae: db07 blt.n 80077c0 + 80077b0: 68fb ldr r3, [r7, #12] + 80077b2: 885b ldrh r3, [r3, #2] + 80077b4: 330f adds r3, #15 + 80077b6: 687a ldr r2, [r7, #4] + 80077b8: 429a cmp r2, r3 + 80077ba: dc01 bgt.n 80077c0 { a=3; - 80068d0: 2303 movs r3, #3 - 80068d2: 617b str r3, [r7, #20] + 80077bc: 2303 movs r3, #3 + 80077be: 617b str r3, [r7, #20] } return a; - 80068d4: 697b ldr r3, [r7, #20] - 80068d6: b2db uxtb r3, r3 + 80077c0: 697b ldr r3, [r7, #20] + 80077c2: b2db uxtb r3, r3 } - 80068d8: 4618 mov r0, r3 - 80068da: 371c adds r7, #28 - 80068dc: 46bd mov sp, r7 - 80068de: bc80 pop {r7} - 80068e0: 4770 bx lr + 80077c4: 4618 mov r0, r3 + 80077c6: 371c adds r7, #28 + 80077c8: 46bd mov sp, r7 + 80077ca: bc80 pop {r7} + 80077cc: 4770 bx lr ... -080068e4 : +080077d0 : void UI_Server(UI *ui) { - 80068e4: b580 push {r7, lr} - 80068e6: b088 sub sp, #32 - 80068e8: af00 add r7, sp, #0 - 80068ea: 6078 str r0, [r7, #4] + 80077d0: b580 push {r7, lr} + 80077d2: b088 sub sp, #32 + 80077d4: af00 add r7, sp, #0 + 80077d6: 6078 str r0, [r7, #4] windows_stack *temp_windows_stack=NULL; - 80068ec: 2300 movs r3, #0 - 80068ee: 61fb str r3, [r7, #28] + 80077d8: 2300 movs r3, #0 + 80077da: 61fb str r3, [r7, #28] window *temp_window; //touch_device *temp_touch=NULL; int flag=0; - 80068f0: 2300 movs r3, #0 - 80068f2: 61bb str r3, [r7, #24] + 80077dc: 2300 movs r3, #0 + 80077de: 61bb str r3, [r7, #24] uint8_t hit_flag=0; - 80068f4: 2300 movs r3, #0 - 80068f6: 75fb strb r3, [r7, #23] + 80077e0: 2300 movs r3, #0 + 80077e2: 75fb strb r3, [r7, #23] int t_x,t_y; //touch //temp_touch=ui->touch; if(t0.c)//TP_XY(&t_x, &t_y)) - 80068f8: 4b76 ldr r3, [pc, #472] ; (8006ad4 ) - 80068fa: 7b1b ldrb r3, [r3, #12] - 80068fc: f003 0302 and.w r3, r3, #2 - 8006900: b2db uxtb r3, r3 - 8006902: 2b00 cmp r3, #0 - 8006904: f000 80ba beq.w 8006a7c + 80077e4: 4b76 ldr r3, [pc, #472] ; (80079c0 ) + 80077e6: 7b1b ldrb r3, [r3, #12] + 80077e8: f003 0302 and.w r3, r3, #2 + 80077ec: b2db uxtb r3, r3 + 80077ee: 2b00 cmp r3, #0 + 80077f0: f000 80ba beq.w 8007968 { if(t0.d) - 8006908: 4b72 ldr r3, [pc, #456] ; (8006ad4 ) - 800690a: 7b1b ldrb r3, [r3, #12] - 800690c: f003 0304 and.w r3, r3, #4 - 8006910: b2db uxtb r3, r3 - 8006912: 2b00 cmp r3, #0 - 8006914: f000 80c8 beq.w 8006aa8 + 80077f4: 4b72 ldr r3, [pc, #456] ; (80079c0 ) + 80077f6: 7b1b ldrb r3, [r3, #12] + 80077f8: f003 0304 and.w r3, r3, #4 + 80077fc: b2db uxtb r3, r3 + 80077fe: 2b00 cmp r3, #0 + 8007800: f000 80c8 beq.w 8007994 { t_x=t0.pix_x; - 8006918: 4b6e ldr r3, [pc, #440] ; (8006ad4 ) - 800691a: 685b ldr r3, [r3, #4] - 800691c: 613b str r3, [r7, #16] + 8007804: 4b6e ldr r3, [pc, #440] ; (80079c0 ) + 8007806: 685b ldr r3, [r3, #4] + 8007808: 613b str r3, [r7, #16] t_y=t0.pix_y; - 800691e: 4b6d ldr r3, [pc, #436] ; (8006ad4 ) - 8006920: 689b ldr r3, [r3, #8] - 8006922: 60fb str r3, [r7, #12] + 800780a: 4b6d ldr r3, [pc, #436] ; (80079c0 ) + 800780c: 689b ldr r3, [r3, #8] + 800780e: 60fb str r3, [r7, #12] temp_window=NULL; - 8006924: 2300 movs r3, #0 - 8006926: 60bb str r3, [r7, #8] + 8007810: 2300 movs r3, #0 + 8007812: 60bb str r3, [r7, #8] if(ui->moveed_windwos==NULL) - 8006928: 687b ldr r3, [r7, #4] - 800692a: 695b ldr r3, [r3, #20] - 800692c: 2b00 cmp r3, #0 - 800692e: f040 8088 bne.w 8006a42 + 8007814: 687b ldr r3, [r7, #4] + 8007816: 695b ldr r3, [r3, #20] + 8007818: 2b00 cmp r3, #0 + 800781a: f040 8088 bne.w 800792e { if(ui->First_click_flag==0) - 8006932: 687b ldr r3, [r7, #4] - 8006934: f893 3020 ldrb.w r3, [r3, #32] - 8006938: f003 0302 and.w r3, r3, #2 - 800693c: b2db uxtb r3, r3 - 800693e: 2b00 cmp r3, #0 - 8006940: f040 80b2 bne.w 8006aa8 + 800781e: 687b ldr r3, [r7, #4] + 8007820: f893 3020 ldrb.w r3, [r3, #32] + 8007824: f003 0302 and.w r3, r3, #2 + 8007828: b2db uxtb r3, r3 + 800782a: 2b00 cmp r3, #0 + 800782c: f040 80b2 bne.w 8007994 { ui->First_click_flag=1; - 8006944: 687a ldr r2, [r7, #4] - 8006946: f892 3020 ldrb.w r3, [r2, #32] - 800694a: f043 0302 orr.w r3, r3, #2 - 800694e: f882 3020 strb.w r3, [r2, #32] + 8007830: 687a ldr r2, [r7, #4] + 8007832: f892 3020 ldrb.w r3, [r2, #32] + 8007836: f043 0302 orr.w r3, r3, #2 + 800783a: f882 3020 strb.w r3, [r2, #32] temp_windows_stack=ui->last_windows; //获取ui中最前端的窗口 从前往后扫描 - 8006952: 687b ldr r3, [r7, #4] - 8006954: 691b ldr r3, [r3, #16] - 8006956: 61fb str r3, [r7, #28] + 800783e: 687b ldr r3, [r7, #4] + 8007840: 691b ldr r3, [r3, #16] + 8007842: 61fb str r3, [r7, #28] do { if(temp_windows_stack!=NULL) //如果有窗口就开始扫描 - 8006958: 69fb ldr r3, [r7, #28] - 800695a: 2b00 cmp r3, #0 - 800695c: d06b beq.n 8006a36 + 8007844: 69fb ldr r3, [r7, #28] + 8007846: 2b00 cmp r3, #0 + 8007848: d06b beq.n 8007922 { flag=1; //检查到有窗口 需要循环一次以检查是否有下一个窗口 - 800695e: 2301 movs r3, #1 - 8006960: 61bb str r3, [r7, #24] + 800784a: 2301 movs r3, #1 + 800784c: 61bb str r3, [r7, #24] // temp_window=temp_windows_stack->window; //取出这个窗口 - 8006962: 69fb ldr r3, [r7, #28] - 8006964: 685b ldr r3, [r3, #4] - 8006966: 60bb str r3, [r7, #8] + 800784e: 69fb ldr r3, [r7, #28] + 8007850: 685b ldr r3, [r3, #4] + 8007852: 60bb str r3, [r7, #8] hit_flag=Chack(temp_window,t_x,t_y); //检查触摸是否命中 直接返回命中窗口的位置 - 8006968: 68fa ldr r2, [r7, #12] - 800696a: 6939 ldr r1, [r7, #16] - 800696c: 68b8 ldr r0, [r7, #8] - 800696e: f7ff ff4a bl 8006806 - 8006972: 4603 mov r3, r0 - 8006974: 75fb strb r3, [r7, #23] + 8007854: 68fa ldr r2, [r7, #12] + 8007856: 6939 ldr r1, [r7, #16] + 8007858: 68b8 ldr r0, [r7, #8] + 800785a: f7ff ff4a bl 80076f2 + 800785e: 4603 mov r3, r0 + 8007860: 75fb strb r3, [r7, #23] if(hit_flag) // 命中继续 - 8006976: 7dfb ldrb r3, [r7, #23] - 8006978: 2b00 cmp r3, #0 - 800697a: d058 beq.n 8006a2e + 8007862: 7dfb ldrb r3, [r7, #23] + 8007864: 2b00 cmp r3, #0 + 8007866: d058 beq.n 800791a { if(temp_windows_stack!=ui->last_windows) //检查是否最前端的窗口 如果不是就放最前面 - 800697c: 687b ldr r3, [r7, #4] - 800697e: 691b ldr r3, [r3, #16] - 8006980: 69fa ldr r2, [r7, #28] - 8006982: 429a cmp r2, r3 - 8006984: d02c beq.n 80069e0 + 8007868: 687b ldr r3, [r7, #4] + 800786a: 691b ldr r3, [r3, #16] + 800786c: 69fa ldr r2, [r7, #28] + 800786e: 429a cmp r2, r3 + 8007870: d02c beq.n 80078cc { if(temp_windows_stack!=ui->windows) //检查是否最后端的窗口 因为显示是从最后端往前显示的 所以ui有最后端窗口的入口 - 8006986: 687b ldr r3, [r7, #4] - 8006988: 68db ldr r3, [r3, #12] - 800698a: 69fa ldr r2, [r7, #28] - 800698c: 429a cmp r2, r3 - 800698e: d00a beq.n 80069a6 + 8007872: 687b ldr r3, [r7, #4] + 8007874: 68db ldr r3, [r3, #12] + 8007876: 69fa ldr r2, [r7, #28] + 8007878: 429a cmp r2, r3 + 800787a: d00a beq.n 8007892 { temp_windows_stack->up->next=temp_windows_stack->next; //取出这个节点 把节点的上下补上链接 - 8006990: 69fb ldr r3, [r7, #28] - 8006992: 681b ldr r3, [r3, #0] - 8006994: 69fa ldr r2, [r7, #28] - 8006996: 6892 ldr r2, [r2, #8] - 8006998: 609a str r2, [r3, #8] + 800787c: 69fb ldr r3, [r7, #28] + 800787e: 681b ldr r3, [r3, #0] + 8007880: 69fa ldr r2, [r7, #28] + 8007882: 6892 ldr r2, [r2, #8] + 8007884: 609a str r2, [r3, #8] temp_windows_stack->next->up=temp_windows_stack->up; - 800699a: 69fb ldr r3, [r7, #28] - 800699c: 689b ldr r3, [r3, #8] - 800699e: 69fa ldr r2, [r7, #28] - 80069a0: 6812 ldr r2, [r2, #0] - 80069a2: 601a str r2, [r3, #0] - 80069a4: e007 b.n 80069b6 + 8007886: 69fb ldr r3, [r7, #28] + 8007888: 689b ldr r3, [r3, #8] + 800788a: 69fa ldr r2, [r7, #28] + 800788c: 6812 ldr r2, [r2, #0] + 800788e: 601a str r2, [r3, #0] + 8007890: e007 b.n 80078a2 }else { ui->windows=temp_windows_stack->next; //如果是最后端的窗口 则取出这个节点后入口就变下一个节点了 - 80069a6: 69fb ldr r3, [r7, #28] - 80069a8: 689a ldr r2, [r3, #8] - 80069aa: 687b ldr r3, [r7, #4] - 80069ac: 60da str r2, [r3, #12] + 8007892: 69fb ldr r3, [r7, #28] + 8007894: 689a ldr r2, [r3, #8] + 8007896: 687b ldr r3, [r7, #4] + 8007898: 60da str r2, [r3, #12] ui->windows->up=NULL; //倒数第二变最后端 在走就没了 所以要清空指针 - 80069ae: 687b ldr r3, [r7, #4] - 80069b0: 68db ldr r3, [r3, #12] - 80069b2: 2200 movs r2, #0 - 80069b4: 601a str r2, [r3, #0] + 800789a: 687b ldr r3, [r7, #4] + 800789c: 68db ldr r3, [r3, #12] + 800789e: 2200 movs r2, #0 + 80078a0: 601a str r2, [r3, #0] } temp_windows_stack->next=NULL; //取出的节点要放在最前端 所以 无法再往前 清空往前的指针 - 80069b6: 69fb ldr r3, [r7, #28] - 80069b8: 2200 movs r2, #0 - 80069ba: 609a str r2, [r3, #8] + 80078a2: 69fb ldr r3, [r7, #28] + 80078a4: 2200 movs r2, #0 + 80078a6: 609a str r2, [r3, #8] temp_windows_stack->up=ui->last_windows; //上一个指针就是原来的最后一个 - 80069bc: 687b ldr r3, [r7, #4] - 80069be: 691a ldr r2, [r3, #16] - 80069c0: 69fb ldr r3, [r7, #28] - 80069c2: 601a str r2, [r3, #0] + 80078a8: 687b ldr r3, [r7, #4] + 80078aa: 691a ldr r2, [r3, #16] + 80078ac: 69fb ldr r3, [r7, #28] + 80078ae: 601a str r2, [r3, #0] ui->last_windows->next=temp_windows_stack; //原来的最后一个指向现在的最后一个 - 80069c4: 687b ldr r3, [r7, #4] - 80069c6: 691b ldr r3, [r3, #16] - 80069c8: 69fa ldr r2, [r7, #28] - 80069ca: 609a str r2, [r3, #8] + 80078b0: 687b ldr r3, [r7, #4] + 80078b2: 691b ldr r3, [r3, #16] + 80078b4: 69fa ldr r2, [r7, #28] + 80078b6: 609a str r2, [r3, #8] ui->last_windows=temp_windows_stack; //更新ui中的最后一个的入口 - 80069cc: 687b ldr r3, [r7, #4] - 80069ce: 69fa ldr r2, [r7, #28] - 80069d0: 611a str r2, [r3, #16] + 80078b8: 687b ldr r3, [r7, #4] + 80078ba: 69fa ldr r2, [r7, #28] + 80078bc: 611a str r2, [r3, #16] ui->refresh_ui_flag=1; //发生了变化 刷新ui的显示 - 80069d2: 687a ldr r2, [r7, #4] - 80069d4: f892 3020 ldrb.w r3, [r2, #32] - 80069d8: f043 0304 orr.w r3, r3, #4 - 80069dc: f882 3020 strb.w r3, [r2, #32] + 80078be: 687a ldr r2, [r7, #4] + 80078c0: f892 3020 ldrb.w r3, [r2, #32] + 80078c4: f043 0304 orr.w r3, r3, #4 + 80078c8: f882 3020 strb.w r3, [r2, #32] } //检查标中窗口的什么位置 switch(hit_flag) - 80069e0: 7dfb ldrb r3, [r7, #23] - 80069e2: 2b03 cmp r3, #3 - 80069e4: d006 beq.n 80069f4 - 80069e6: 2b03 cmp r3, #3 - 80069e8: dc1f bgt.n 8006a2a - 80069ea: 2b01 cmp r3, #1 - 80069ec: d01c beq.n 8006a28 - 80069ee: 2b02 cmp r3, #2 - 80069f0: d008 beq.n 8006a04 - 80069f2: e01a b.n 8006a2a + 80078cc: 7dfb ldrb r3, [r7, #23] + 80078ce: 2b03 cmp r3, #3 + 80078d0: d006 beq.n 80078e0 + 80078d2: 2b03 cmp r3, #3 + 80078d4: dc1f bgt.n 8007916 + 80078d6: 2b01 cmp r3, #1 + 80078d8: d01c beq.n 8007914 + 80078da: 2b02 cmp r3, #2 + 80078dc: d008 beq.n 80078f0 + 80078de: e01a b.n 8007916 { case CLOSE: //Close_Windows_Stack(ui,temp_windows_stack); ui->refresh_ui_flag=1; //发生了变化 刷新ui的显示 - 80069f4: 687a ldr r2, [r7, #4] - 80069f6: f892 3020 ldrb.w r3, [r2, #32] - 80069fa: f043 0304 orr.w r3, r3, #4 - 80069fe: f882 3020 strb.w r3, [r2, #32] + 80078e0: 687a ldr r2, [r7, #4] + 80078e2: f892 3020 ldrb.w r3, [r2, #32] + 80078e6: f043 0304 orr.w r3, r3, #4 + 80078ea: f882 3020 strb.w r3, [r2, #32] break; - 8006a02: e012 b.n 8006a2a + 80078ee: e012 b.n 8007916 case BAR: ui->moveed_windwos=temp_window; - 8006a04: 687b ldr r3, [r7, #4] - 8006a06: 68ba ldr r2, [r7, #8] - 8006a08: 615a str r2, [r3, #20] + 80078f0: 687b ldr r3, [r7, #4] + 80078f2: 68ba ldr r2, [r7, #8] + 80078f4: 615a str r2, [r3, #20] ui->move_x=t_x-temp_window->x; - 8006a0a: 68bb ldr r3, [r7, #8] - 8006a0c: 881b ldrh r3, [r3, #0] - 8006a0e: 461a mov r2, r3 - 8006a10: 693b ldr r3, [r7, #16] - 8006a12: 1a9a subs r2, r3, r2 - 8006a14: 687b ldr r3, [r7, #4] - 8006a16: 619a str r2, [r3, #24] + 80078f6: 68bb ldr r3, [r7, #8] + 80078f8: 881b ldrh r3, [r3, #0] + 80078fa: 461a mov r2, r3 + 80078fc: 693b ldr r3, [r7, #16] + 80078fe: 1a9a subs r2, r3, r2 + 8007900: 687b ldr r3, [r7, #4] + 8007902: 619a str r2, [r3, #24] ui->move_y=t_y-temp_window->y; - 8006a18: 68bb ldr r3, [r7, #8] - 8006a1a: 885b ldrh r3, [r3, #2] - 8006a1c: 461a mov r2, r3 - 8006a1e: 68fb ldr r3, [r7, #12] - 8006a20: 1a9a subs r2, r3, r2 - 8006a22: 687b ldr r3, [r7, #4] - 8006a24: 61da str r2, [r3, #28] + 8007904: 68bb ldr r3, [r7, #8] + 8007906: 885b ldrh r3, [r3, #2] + 8007908: 461a mov r2, r3 + 800790a: 68fb ldr r3, [r7, #12] + 800790c: 1a9a subs r2, r3, r2 + 800790e: 687b ldr r3, [r7, #4] + 8007910: 61da str r2, [r3, #28] break; - 8006a26: e000 b.n 8006a2a + 8007912: e000 b.n 8007916 case BODY: //ui->background=temp_windows_stack->window->background; //ui->refresh_ui_flag=1; break; - 8006a28: bf00 nop + 8007914: bf00 nop } flag=0; //结束扫描 防止穿透当前窗口 - 8006a2a: 2300 movs r3, #0 - 8006a2c: 61bb str r3, [r7, #24] + 8007916: 2300 movs r3, #0 + 8007918: 61bb str r3, [r7, #24] } temp_windows_stack=temp_windows_stack->up; //往前扫描 - 8006a2e: 69fb ldr r3, [r7, #28] - 8006a30: 681b ldr r3, [r3, #0] - 8006a32: 61fb str r3, [r7, #28] - 8006a34: e001 b.n 8006a3a + 800791a: 69fb ldr r3, [r7, #28] + 800791c: 681b ldr r3, [r3, #0] + 800791e: 61fb str r3, [r7, #28] + 8007920: e001 b.n 8007926 }else { flag=0; //一个窗口都没有 直接结束循环 - 8006a36: 2300 movs r3, #0 - 8006a38: 61bb str r3, [r7, #24] + 8007922: 2300 movs r3, #0 + 8007924: 61bb str r3, [r7, #24] } }while(flag); - 8006a3a: 69bb ldr r3, [r7, #24] - 8006a3c: 2b00 cmp r3, #0 - 8006a3e: d18b bne.n 8006958 - 8006a40: e032 b.n 8006aa8 + 8007926: 69bb ldr r3, [r7, #24] + 8007928: 2b00 cmp r3, #0 + 800792a: d18b bne.n 8007844 + 800792c: e032 b.n 8007994 } }else { temp_window=ui->moveed_windwos; - 8006a42: 687b ldr r3, [r7, #4] - 8006a44: 695b ldr r3, [r3, #20] - 8006a46: 60bb str r3, [r7, #8] + 800792e: 687b ldr r3, [r7, #4] + 8007930: 695b ldr r3, [r3, #20] + 8007932: 60bb str r3, [r7, #8] temp_window->x=t_x-ui->move_x; - 8006a48: 693b ldr r3, [r7, #16] - 8006a4a: b29a uxth r2, r3 - 8006a4c: 687b ldr r3, [r7, #4] - 8006a4e: 699b ldr r3, [r3, #24] - 8006a50: b29b uxth r3, r3 - 8006a52: 1ad3 subs r3, r2, r3 - 8006a54: b29a uxth r2, r3 - 8006a56: 68bb ldr r3, [r7, #8] - 8006a58: 801a strh r2, [r3, #0] + 8007934: 693b ldr r3, [r7, #16] + 8007936: b29a uxth r2, r3 + 8007938: 687b ldr r3, [r7, #4] + 800793a: 699b ldr r3, [r3, #24] + 800793c: b29b uxth r3, r3 + 800793e: 1ad3 subs r3, r2, r3 + 8007940: b29a uxth r2, r3 + 8007942: 68bb ldr r3, [r7, #8] + 8007944: 801a strh r2, [r3, #0] temp_window->y=t_y-ui->move_y; - 8006a5a: 68fb ldr r3, [r7, #12] - 8006a5c: b29a uxth r2, r3 - 8006a5e: 687b ldr r3, [r7, #4] - 8006a60: 69db ldr r3, [r3, #28] - 8006a62: b29b uxth r3, r3 - 8006a64: 1ad3 subs r3, r2, r3 - 8006a66: b29a uxth r2, r3 - 8006a68: 68bb ldr r3, [r7, #8] - 8006a6a: 805a strh r2, [r3, #2] + 8007946: 68fb ldr r3, [r7, #12] + 8007948: b29a uxth r2, r3 + 800794a: 687b ldr r3, [r7, #4] + 800794c: 69db ldr r3, [r3, #28] + 800794e: b29b uxth r3, r3 + 8007950: 1ad3 subs r3, r2, r3 + 8007952: b29a uxth r2, r3 + 8007954: 68bb ldr r3, [r7, #8] + 8007956: 805a strh r2, [r3, #2] ui->refresh_ui_flag=1; - 8006a6c: 687a ldr r2, [r7, #4] - 8006a6e: f892 3020 ldrb.w r3, [r2, #32] - 8006a72: f043 0304 orr.w r3, r3, #4 - 8006a76: f882 3020 strb.w r3, [r2, #32] - 8006a7a: e015 b.n 8006aa8 + 8007958: 687a ldr r2, [r7, #4] + 800795a: f892 3020 ldrb.w r3, [r2, #32] + 800795e: f043 0304 orr.w r3, r3, #4 + 8007962: f882 3020 strb.w r3, [r2, #32] + 8007966: e015 b.n 8007994 }else { if(ui->First_click_flag==1) - 8006a7c: 687b ldr r3, [r7, #4] - 8006a7e: f893 3020 ldrb.w r3, [r3, #32] - 8006a82: f003 0302 and.w r3, r3, #2 - 8006a86: b2db uxtb r3, r3 - 8006a88: 2b00 cmp r3, #0 - 8006a8a: d006 beq.n 8006a9a + 8007968: 687b ldr r3, [r7, #4] + 800796a: f893 3020 ldrb.w r3, [r3, #32] + 800796e: f003 0302 and.w r3, r3, #2 + 8007972: b2db uxtb r3, r3 + 8007974: 2b00 cmp r3, #0 + 8007976: d006 beq.n 8007986 { ui->First_click_flag=0; - 8006a8c: 687a ldr r2, [r7, #4] - 8006a8e: f892 3020 ldrb.w r3, [r2, #32] - 8006a92: f36f 0341 bfc r3, #1, #1 - 8006a96: f882 3020 strb.w r3, [r2, #32] + 8007978: 687a ldr r2, [r7, #4] + 800797a: f892 3020 ldrb.w r3, [r2, #32] + 800797e: f36f 0341 bfc r3, #1, #1 + 8007982: f882 3020 strb.w r3, [r2, #32] } if(ui->moveed_windwos!=NULL) - 8006a9a: 687b ldr r3, [r7, #4] - 8006a9c: 695b ldr r3, [r3, #20] - 8006a9e: 2b00 cmp r3, #0 - 8006aa0: d002 beq.n 8006aa8 + 8007986: 687b ldr r3, [r7, #4] + 8007988: 695b ldr r3, [r3, #20] + 800798a: 2b00 cmp r3, #0 + 800798c: d002 beq.n 8007994 { ui->moveed_windwos=NULL; - 8006aa2: 687b ldr r3, [r7, #4] - 8006aa4: 2200 movs r2, #0 - 8006aa6: 615a str r2, [r3, #20] + 800798e: 687b ldr r3, [r7, #4] + 8007990: 2200 movs r2, #0 + 8007992: 615a str r2, [r3, #20] } } //display if(ui->refresh_ui_flag==1) - 8006aa8: 687b ldr r3, [r7, #4] - 8006aaa: f893 3020 ldrb.w r3, [r3, #32] - 8006aae: f003 0304 and.w r3, r3, #4 - 8006ab2: b2db uxtb r3, r3 - 8006ab4: 2b00 cmp r3, #0 - 8006ab6: d009 beq.n 8006acc + 8007994: 687b ldr r3, [r7, #4] + 8007996: f893 3020 ldrb.w r3, [r3, #32] + 800799a: f003 0304 and.w r3, r3, #4 + 800799e: b2db uxtb r3, r3 + 80079a0: 2b00 cmp r3, #0 + 80079a2: d009 beq.n 80079b8 { ui->refresh_ui_flag=0; - 8006ab8: 687a ldr r2, [r7, #4] - 8006aba: f892 3020 ldrb.w r3, [r2, #32] - 8006abe: f36f 0382 bfc r3, #2, #1 - 8006ac2: f882 3020 strb.w r3, [r2, #32] + 80079a4: 687a ldr r2, [r7, #4] + 80079a6: f892 3020 ldrb.w r3, [r2, #32] + 80079aa: f36f 0382 bfc r3, #2, #1 + 80079ae: f882 3020 strb.w r3, [r2, #32] Refresh_UI(ui); - 8006ac6: 6878 ldr r0, [r7, #4] - 8006ac8: f7ff fe53 bl 8006772 + 80079b2: 6878 ldr r0, [r7, #4] + 80079b4: f7ff fe53 bl 800765e } } - 8006acc: bf00 nop - 8006ace: 3720 adds r7, #32 - 8006ad0: 46bd mov sp, r7 - 8006ad2: bd80 pop {r7, pc} - 8006ad4: 20000410 .word 0x20000410 + 80079b8: bf00 nop + 80079ba: 3720 adds r7, #32 + 80079bc: 46bd mov sp, r7 + 80079be: bd80 pop {r7, pc} + 80079c0: 20000420 .word 0x20000420 -08006ad8 <__errno>: - 8006ad8: 4b01 ldr r3, [pc, #4] ; (8006ae0 <__errno+0x8>) - 8006ada: 6818 ldr r0, [r3, #0] - 8006adc: 4770 bx lr - 8006ade: bf00 nop - 8006ae0: 2000000c .word 0x2000000c +080079c4 <__errno>: + 80079c4: 4b01 ldr r3, [pc, #4] ; (80079cc <__errno+0x8>) + 80079c6: 6818 ldr r0, [r3, #0] + 80079c8: 4770 bx lr + 80079ca: bf00 nop + 80079cc: 2000000c .word 0x2000000c -08006ae4 <__libc_init_array>: - 8006ae4: b570 push {r4, r5, r6, lr} - 8006ae6: 2600 movs r6, #0 - 8006ae8: 4d0c ldr r5, [pc, #48] ; (8006b1c <__libc_init_array+0x38>) - 8006aea: 4c0d ldr r4, [pc, #52] ; (8006b20 <__libc_init_array+0x3c>) - 8006aec: 1b64 subs r4, r4, r5 - 8006aee: 10a4 asrs r4, r4, #2 - 8006af0: 42a6 cmp r6, r4 - 8006af2: d109 bne.n 8006b08 <__libc_init_array+0x24> - 8006af4: f002 fec4 bl 8009880 <_init> - 8006af8: 2600 movs r6, #0 - 8006afa: 4d0a ldr r5, [pc, #40] ; (8006b24 <__libc_init_array+0x40>) - 8006afc: 4c0a ldr r4, [pc, #40] ; (8006b28 <__libc_init_array+0x44>) - 8006afe: 1b64 subs r4, r4, r5 - 8006b00: 10a4 asrs r4, r4, #2 - 8006b02: 42a6 cmp r6, r4 - 8006b04: d105 bne.n 8006b12 <__libc_init_array+0x2e> - 8006b06: bd70 pop {r4, r5, r6, pc} - 8006b08: f855 3b04 ldr.w r3, [r5], #4 - 8006b0c: 4798 blx r3 - 8006b0e: 3601 adds r6, #1 - 8006b10: e7ee b.n 8006af0 <__libc_init_array+0xc> - 8006b12: f855 3b04 ldr.w r3, [r5], #4 - 8006b16: 4798 blx r3 - 8006b18: 3601 adds r6, #1 - 8006b1a: e7f2 b.n 8006b02 <__libc_init_array+0x1e> - 8006b1c: 0800a834 .word 0x0800a834 - 8006b20: 0800a834 .word 0x0800a834 - 8006b24: 0800a834 .word 0x0800a834 - 8006b28: 0800a838 .word 0x0800a838 +080079d0 <__libc_init_array>: + 80079d0: b570 push {r4, r5, r6, lr} + 80079d2: 2600 movs r6, #0 + 80079d4: 4d0c ldr r5, [pc, #48] ; (8007a08 <__libc_init_array+0x38>) + 80079d6: 4c0d ldr r4, [pc, #52] ; (8007a0c <__libc_init_array+0x3c>) + 80079d8: 1b64 subs r4, r4, r5 + 80079da: 10a4 asrs r4, r4, #2 + 80079dc: 42a6 cmp r6, r4 + 80079de: d109 bne.n 80079f4 <__libc_init_array+0x24> + 80079e0: f002 fec2 bl 800a768 <_init> + 80079e4: 2600 movs r6, #0 + 80079e6: 4d0a ldr r5, [pc, #40] ; (8007a10 <__libc_init_array+0x40>) + 80079e8: 4c0a ldr r4, [pc, #40] ; (8007a14 <__libc_init_array+0x44>) + 80079ea: 1b64 subs r4, r4, r5 + 80079ec: 10a4 asrs r4, r4, #2 + 80079ee: 42a6 cmp r6, r4 + 80079f0: d105 bne.n 80079fe <__libc_init_array+0x2e> + 80079f2: bd70 pop {r4, r5, r6, pc} + 80079f4: f855 3b04 ldr.w r3, [r5], #4 + 80079f8: 4798 blx r3 + 80079fa: 3601 adds r6, #1 + 80079fc: e7ee b.n 80079dc <__libc_init_array+0xc> + 80079fe: f855 3b04 ldr.w r3, [r5], #4 + 8007a02: 4798 blx r3 + 8007a04: 3601 adds r6, #1 + 8007a06: e7f2 b.n 80079ee <__libc_init_array+0x1e> + 8007a08: 0800b73c .word 0x0800b73c + 8007a0c: 0800b73c .word 0x0800b73c + 8007a10: 0800b73c .word 0x0800b73c + 8007a14: 0800b740 .word 0x0800b740 -08006b2c : - 8006b2c: 4b02 ldr r3, [pc, #8] ; (8006b38 ) - 8006b2e: 4601 mov r1, r0 - 8006b30: 6818 ldr r0, [r3, #0] - 8006b32: f000 b85f b.w 8006bf4 <_malloc_r> - 8006b36: bf00 nop - 8006b38: 2000000c .word 0x2000000c +08007a18 : + 8007a18: 4b02 ldr r3, [pc, #8] ; (8007a24 ) + 8007a1a: 4601 mov r1, r0 + 8007a1c: 6818 ldr r0, [r3, #0] + 8007a1e: f000 b85f b.w 8007ae0 <_malloc_r> + 8007a22: bf00 nop + 8007a24: 2000000c .word 0x2000000c -08006b3c : - 8006b3c: 4b02 ldr r3, [pc, #8] ; (8006b48 ) - 8006b3e: 4601 mov r1, r0 - 8006b40: 6818 ldr r0, [r3, #0] - 8006b42: f000 b80b b.w 8006b5c <_free_r> - 8006b46: bf00 nop - 8006b48: 2000000c .word 0x2000000c +08007a28 : + 8007a28: 4b02 ldr r3, [pc, #8] ; (8007a34 ) + 8007a2a: 4601 mov r1, r0 + 8007a2c: 6818 ldr r0, [r3, #0] + 8007a2e: f000 b80b b.w 8007a48 <_free_r> + 8007a32: bf00 nop + 8007a34: 2000000c .word 0x2000000c -08006b4c : - 8006b4c: 4603 mov r3, r0 - 8006b4e: 4402 add r2, r0 - 8006b50: 4293 cmp r3, r2 - 8006b52: d100 bne.n 8006b56 - 8006b54: 4770 bx lr - 8006b56: f803 1b01 strb.w r1, [r3], #1 - 8006b5a: e7f9 b.n 8006b50 +08007a38 : + 8007a38: 4603 mov r3, r0 + 8007a3a: 4402 add r2, r0 + 8007a3c: 4293 cmp r3, r2 + 8007a3e: d100 bne.n 8007a42 + 8007a40: 4770 bx lr + 8007a42: f803 1b01 strb.w r1, [r3], #1 + 8007a46: e7f9 b.n 8007a3c -08006b5c <_free_r>: - 8006b5c: b538 push {r3, r4, r5, lr} - 8006b5e: 4605 mov r5, r0 - 8006b60: 2900 cmp r1, #0 - 8006b62: d043 beq.n 8006bec <_free_r+0x90> - 8006b64: f851 3c04 ldr.w r3, [r1, #-4] - 8006b68: 1f0c subs r4, r1, #4 - 8006b6a: 2b00 cmp r3, #0 - 8006b6c: bfb8 it lt - 8006b6e: 18e4 addlt r4, r4, r3 - 8006b70: f001 fea8 bl 80088c4 <__malloc_lock> - 8006b74: 4a1e ldr r2, [pc, #120] ; (8006bf0 <_free_r+0x94>) - 8006b76: 6813 ldr r3, [r2, #0] - 8006b78: 4610 mov r0, r2 - 8006b7a: b933 cbnz r3, 8006b8a <_free_r+0x2e> - 8006b7c: 6063 str r3, [r4, #4] - 8006b7e: 6014 str r4, [r2, #0] - 8006b80: 4628 mov r0, r5 - 8006b82: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 8006b86: f001 bea3 b.w 80088d0 <__malloc_unlock> - 8006b8a: 42a3 cmp r3, r4 - 8006b8c: d90a bls.n 8006ba4 <_free_r+0x48> - 8006b8e: 6821 ldr r1, [r4, #0] - 8006b90: 1862 adds r2, r4, r1 - 8006b92: 4293 cmp r3, r2 - 8006b94: bf01 itttt eq - 8006b96: 681a ldreq r2, [r3, #0] - 8006b98: 685b ldreq r3, [r3, #4] - 8006b9a: 1852 addeq r2, r2, r1 - 8006b9c: 6022 streq r2, [r4, #0] - 8006b9e: 6063 str r3, [r4, #4] - 8006ba0: 6004 str r4, [r0, #0] - 8006ba2: e7ed b.n 8006b80 <_free_r+0x24> - 8006ba4: 461a mov r2, r3 - 8006ba6: 685b ldr r3, [r3, #4] - 8006ba8: b10b cbz r3, 8006bae <_free_r+0x52> - 8006baa: 42a3 cmp r3, r4 - 8006bac: d9fa bls.n 8006ba4 <_free_r+0x48> - 8006bae: 6811 ldr r1, [r2, #0] - 8006bb0: 1850 adds r0, r2, r1 - 8006bb2: 42a0 cmp r0, r4 - 8006bb4: d10b bne.n 8006bce <_free_r+0x72> - 8006bb6: 6820 ldr r0, [r4, #0] - 8006bb8: 4401 add r1, r0 - 8006bba: 1850 adds r0, r2, r1 - 8006bbc: 4283 cmp r3, r0 - 8006bbe: 6011 str r1, [r2, #0] - 8006bc0: d1de bne.n 8006b80 <_free_r+0x24> - 8006bc2: 6818 ldr r0, [r3, #0] - 8006bc4: 685b ldr r3, [r3, #4] - 8006bc6: 4401 add r1, r0 - 8006bc8: 6011 str r1, [r2, #0] - 8006bca: 6053 str r3, [r2, #4] - 8006bcc: e7d8 b.n 8006b80 <_free_r+0x24> - 8006bce: d902 bls.n 8006bd6 <_free_r+0x7a> - 8006bd0: 230c movs r3, #12 - 8006bd2: 602b str r3, [r5, #0] - 8006bd4: e7d4 b.n 8006b80 <_free_r+0x24> - 8006bd6: 6820 ldr r0, [r4, #0] - 8006bd8: 1821 adds r1, r4, r0 - 8006bda: 428b cmp r3, r1 - 8006bdc: bf01 itttt eq - 8006bde: 6819 ldreq r1, [r3, #0] - 8006be0: 685b ldreq r3, [r3, #4] - 8006be2: 1809 addeq r1, r1, r0 - 8006be4: 6021 streq r1, [r4, #0] - 8006be6: 6063 str r3, [r4, #4] - 8006be8: 6054 str r4, [r2, #4] - 8006bea: e7c9 b.n 8006b80 <_free_r+0x24> - 8006bec: bd38 pop {r3, r4, r5, pc} - 8006bee: bf00 nop - 8006bf0: 20000260 .word 0x20000260 +08007a48 <_free_r>: + 8007a48: b538 push {r3, r4, r5, lr} + 8007a4a: 4605 mov r5, r0 + 8007a4c: 2900 cmp r1, #0 + 8007a4e: d043 beq.n 8007ad8 <_free_r+0x90> + 8007a50: f851 3c04 ldr.w r3, [r1, #-4] + 8007a54: 1f0c subs r4, r1, #4 + 8007a56: 2b00 cmp r3, #0 + 8007a58: bfb8 it lt + 8007a5a: 18e4 addlt r4, r4, r3 + 8007a5c: f001 fea6 bl 80097ac <__malloc_lock> + 8007a60: 4a1e ldr r2, [pc, #120] ; (8007adc <_free_r+0x94>) + 8007a62: 6813 ldr r3, [r2, #0] + 8007a64: 4610 mov r0, r2 + 8007a66: b933 cbnz r3, 8007a76 <_free_r+0x2e> + 8007a68: 6063 str r3, [r4, #4] + 8007a6a: 6014 str r4, [r2, #0] + 8007a6c: 4628 mov r0, r5 + 8007a6e: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} + 8007a72: f001 bea1 b.w 80097b8 <__malloc_unlock> + 8007a76: 42a3 cmp r3, r4 + 8007a78: d90a bls.n 8007a90 <_free_r+0x48> + 8007a7a: 6821 ldr r1, [r4, #0] + 8007a7c: 1862 adds r2, r4, r1 + 8007a7e: 4293 cmp r3, r2 + 8007a80: bf01 itttt eq + 8007a82: 681a ldreq r2, [r3, #0] + 8007a84: 685b ldreq r3, [r3, #4] + 8007a86: 1852 addeq r2, r2, r1 + 8007a88: 6022 streq r2, [r4, #0] + 8007a8a: 6063 str r3, [r4, #4] + 8007a8c: 6004 str r4, [r0, #0] + 8007a8e: e7ed b.n 8007a6c <_free_r+0x24> + 8007a90: 461a mov r2, r3 + 8007a92: 685b ldr r3, [r3, #4] + 8007a94: b10b cbz r3, 8007a9a <_free_r+0x52> + 8007a96: 42a3 cmp r3, r4 + 8007a98: d9fa bls.n 8007a90 <_free_r+0x48> + 8007a9a: 6811 ldr r1, [r2, #0] + 8007a9c: 1850 adds r0, r2, r1 + 8007a9e: 42a0 cmp r0, r4 + 8007aa0: d10b bne.n 8007aba <_free_r+0x72> + 8007aa2: 6820 ldr r0, [r4, #0] + 8007aa4: 4401 add r1, r0 + 8007aa6: 1850 adds r0, r2, r1 + 8007aa8: 4283 cmp r3, r0 + 8007aaa: 6011 str r1, [r2, #0] + 8007aac: d1de bne.n 8007a6c <_free_r+0x24> + 8007aae: 6818 ldr r0, [r3, #0] + 8007ab0: 685b ldr r3, [r3, #4] + 8007ab2: 4401 add r1, r0 + 8007ab4: 6011 str r1, [r2, #0] + 8007ab6: 6053 str r3, [r2, #4] + 8007ab8: e7d8 b.n 8007a6c <_free_r+0x24> + 8007aba: d902 bls.n 8007ac2 <_free_r+0x7a> + 8007abc: 230c movs r3, #12 + 8007abe: 602b str r3, [r5, #0] + 8007ac0: e7d4 b.n 8007a6c <_free_r+0x24> + 8007ac2: 6820 ldr r0, [r4, #0] + 8007ac4: 1821 adds r1, r4, r0 + 8007ac6: 428b cmp r3, r1 + 8007ac8: bf01 itttt eq + 8007aca: 6819 ldreq r1, [r3, #0] + 8007acc: 685b ldreq r3, [r3, #4] + 8007ace: 1809 addeq r1, r1, r0 + 8007ad0: 6021 streq r1, [r4, #0] + 8007ad2: 6063 str r3, [r4, #4] + 8007ad4: 6054 str r4, [r2, #4] + 8007ad6: e7c9 b.n 8007a6c <_free_r+0x24> + 8007ad8: bd38 pop {r3, r4, r5, pc} + 8007ada: bf00 nop + 8007adc: 20000224 .word 0x20000224 -08006bf4 <_malloc_r>: - 8006bf4: b5f8 push {r3, r4, r5, r6, r7, lr} - 8006bf6: 1ccd adds r5, r1, #3 - 8006bf8: f025 0503 bic.w r5, r5, #3 - 8006bfc: 3508 adds r5, #8 - 8006bfe: 2d0c cmp r5, #12 - 8006c00: bf38 it cc - 8006c02: 250c movcc r5, #12 - 8006c04: 2d00 cmp r5, #0 - 8006c06: 4606 mov r6, r0 - 8006c08: db01 blt.n 8006c0e <_malloc_r+0x1a> - 8006c0a: 42a9 cmp r1, r5 - 8006c0c: d903 bls.n 8006c16 <_malloc_r+0x22> - 8006c0e: 230c movs r3, #12 - 8006c10: 6033 str r3, [r6, #0] - 8006c12: 2000 movs r0, #0 - 8006c14: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8006c16: f001 fe55 bl 80088c4 <__malloc_lock> - 8006c1a: 4921 ldr r1, [pc, #132] ; (8006ca0 <_malloc_r+0xac>) - 8006c1c: 680a ldr r2, [r1, #0] - 8006c1e: 4614 mov r4, r2 - 8006c20: b99c cbnz r4, 8006c4a <_malloc_r+0x56> - 8006c22: 4f20 ldr r7, [pc, #128] ; (8006ca4 <_malloc_r+0xb0>) - 8006c24: 683b ldr r3, [r7, #0] - 8006c26: b923 cbnz r3, 8006c32 <_malloc_r+0x3e> - 8006c28: 4621 mov r1, r4 - 8006c2a: 4630 mov r0, r6 - 8006c2c: f000 fc9c bl 8007568 <_sbrk_r> - 8006c30: 6038 str r0, [r7, #0] - 8006c32: 4629 mov r1, r5 - 8006c34: 4630 mov r0, r6 - 8006c36: f000 fc97 bl 8007568 <_sbrk_r> - 8006c3a: 1c43 adds r3, r0, #1 - 8006c3c: d123 bne.n 8006c86 <_malloc_r+0x92> - 8006c3e: 230c movs r3, #12 - 8006c40: 4630 mov r0, r6 - 8006c42: 6033 str r3, [r6, #0] - 8006c44: f001 fe44 bl 80088d0 <__malloc_unlock> - 8006c48: e7e3 b.n 8006c12 <_malloc_r+0x1e> - 8006c4a: 6823 ldr r3, [r4, #0] - 8006c4c: 1b5b subs r3, r3, r5 - 8006c4e: d417 bmi.n 8006c80 <_malloc_r+0x8c> - 8006c50: 2b0b cmp r3, #11 - 8006c52: d903 bls.n 8006c5c <_malloc_r+0x68> - 8006c54: 6023 str r3, [r4, #0] - 8006c56: 441c add r4, r3 - 8006c58: 6025 str r5, [r4, #0] - 8006c5a: e004 b.n 8006c66 <_malloc_r+0x72> - 8006c5c: 6863 ldr r3, [r4, #4] - 8006c5e: 42a2 cmp r2, r4 - 8006c60: bf0c ite eq - 8006c62: 600b streq r3, [r1, #0] - 8006c64: 6053 strne r3, [r2, #4] - 8006c66: 4630 mov r0, r6 - 8006c68: f001 fe32 bl 80088d0 <__malloc_unlock> - 8006c6c: f104 000b add.w r0, r4, #11 - 8006c70: 1d23 adds r3, r4, #4 - 8006c72: f020 0007 bic.w r0, r0, #7 - 8006c76: 1ac2 subs r2, r0, r3 - 8006c78: d0cc beq.n 8006c14 <_malloc_r+0x20> - 8006c7a: 1a1b subs r3, r3, r0 - 8006c7c: 50a3 str r3, [r4, r2] - 8006c7e: e7c9 b.n 8006c14 <_malloc_r+0x20> - 8006c80: 4622 mov r2, r4 - 8006c82: 6864 ldr r4, [r4, #4] - 8006c84: e7cc b.n 8006c20 <_malloc_r+0x2c> - 8006c86: 1cc4 adds r4, r0, #3 - 8006c88: f024 0403 bic.w r4, r4, #3 - 8006c8c: 42a0 cmp r0, r4 - 8006c8e: d0e3 beq.n 8006c58 <_malloc_r+0x64> - 8006c90: 1a21 subs r1, r4, r0 - 8006c92: 4630 mov r0, r6 - 8006c94: f000 fc68 bl 8007568 <_sbrk_r> - 8006c98: 3001 adds r0, #1 - 8006c9a: d1dd bne.n 8006c58 <_malloc_r+0x64> - 8006c9c: e7cf b.n 8006c3e <_malloc_r+0x4a> - 8006c9e: bf00 nop - 8006ca0: 20000260 .word 0x20000260 - 8006ca4: 20000264 .word 0x20000264 +08007ae0 <_malloc_r>: + 8007ae0: b5f8 push {r3, r4, r5, r6, r7, lr} + 8007ae2: 1ccd adds r5, r1, #3 + 8007ae4: f025 0503 bic.w r5, r5, #3 + 8007ae8: 3508 adds r5, #8 + 8007aea: 2d0c cmp r5, #12 + 8007aec: bf38 it cc + 8007aee: 250c movcc r5, #12 + 8007af0: 2d00 cmp r5, #0 + 8007af2: 4606 mov r6, r0 + 8007af4: db01 blt.n 8007afa <_malloc_r+0x1a> + 8007af6: 42a9 cmp r1, r5 + 8007af8: d903 bls.n 8007b02 <_malloc_r+0x22> + 8007afa: 230c movs r3, #12 + 8007afc: 6033 str r3, [r6, #0] + 8007afe: 2000 movs r0, #0 + 8007b00: bdf8 pop {r3, r4, r5, r6, r7, pc} + 8007b02: f001 fe53 bl 80097ac <__malloc_lock> + 8007b06: 4921 ldr r1, [pc, #132] ; (8007b8c <_malloc_r+0xac>) + 8007b08: 680a ldr r2, [r1, #0] + 8007b0a: 4614 mov r4, r2 + 8007b0c: b99c cbnz r4, 8007b36 <_malloc_r+0x56> + 8007b0e: 4f20 ldr r7, [pc, #128] ; (8007b90 <_malloc_r+0xb0>) + 8007b10: 683b ldr r3, [r7, #0] + 8007b12: b923 cbnz r3, 8007b1e <_malloc_r+0x3e> + 8007b14: 4621 mov r1, r4 + 8007b16: 4630 mov r0, r6 + 8007b18: f000 fc9c bl 8008454 <_sbrk_r> + 8007b1c: 6038 str r0, [r7, #0] + 8007b1e: 4629 mov r1, r5 + 8007b20: 4630 mov r0, r6 + 8007b22: f000 fc97 bl 8008454 <_sbrk_r> + 8007b26: 1c43 adds r3, r0, #1 + 8007b28: d123 bne.n 8007b72 <_malloc_r+0x92> + 8007b2a: 230c movs r3, #12 + 8007b2c: 4630 mov r0, r6 + 8007b2e: 6033 str r3, [r6, #0] + 8007b30: f001 fe42 bl 80097b8 <__malloc_unlock> + 8007b34: e7e3 b.n 8007afe <_malloc_r+0x1e> + 8007b36: 6823 ldr r3, [r4, #0] + 8007b38: 1b5b subs r3, r3, r5 + 8007b3a: d417 bmi.n 8007b6c <_malloc_r+0x8c> + 8007b3c: 2b0b cmp r3, #11 + 8007b3e: d903 bls.n 8007b48 <_malloc_r+0x68> + 8007b40: 6023 str r3, [r4, #0] + 8007b42: 441c add r4, r3 + 8007b44: 6025 str r5, [r4, #0] + 8007b46: e004 b.n 8007b52 <_malloc_r+0x72> + 8007b48: 6863 ldr r3, [r4, #4] + 8007b4a: 42a2 cmp r2, r4 + 8007b4c: bf0c ite eq + 8007b4e: 600b streq r3, [r1, #0] + 8007b50: 6053 strne r3, [r2, #4] + 8007b52: 4630 mov r0, r6 + 8007b54: f001 fe30 bl 80097b8 <__malloc_unlock> + 8007b58: f104 000b add.w r0, r4, #11 + 8007b5c: 1d23 adds r3, r4, #4 + 8007b5e: f020 0007 bic.w r0, r0, #7 + 8007b62: 1ac2 subs r2, r0, r3 + 8007b64: d0cc beq.n 8007b00 <_malloc_r+0x20> + 8007b66: 1a1b subs r3, r3, r0 + 8007b68: 50a3 str r3, [r4, r2] + 8007b6a: e7c9 b.n 8007b00 <_malloc_r+0x20> + 8007b6c: 4622 mov r2, r4 + 8007b6e: 6864 ldr r4, [r4, #4] + 8007b70: e7cc b.n 8007b0c <_malloc_r+0x2c> + 8007b72: 1cc4 adds r4, r0, #3 + 8007b74: f024 0403 bic.w r4, r4, #3 + 8007b78: 42a0 cmp r0, r4 + 8007b7a: d0e3 beq.n 8007b44 <_malloc_r+0x64> + 8007b7c: 1a21 subs r1, r4, r0 + 8007b7e: 4630 mov r0, r6 + 8007b80: f000 fc68 bl 8008454 <_sbrk_r> + 8007b84: 3001 adds r0, #1 + 8007b86: d1dd bne.n 8007b44 <_malloc_r+0x64> + 8007b88: e7cf b.n 8007b2a <_malloc_r+0x4a> + 8007b8a: bf00 nop + 8007b8c: 20000224 .word 0x20000224 + 8007b90: 20000228 .word 0x20000228 -08006ca8 <__cvt>: - 8006ca8: 2b00 cmp r3, #0 - 8006caa: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8006cae: 461f mov r7, r3 - 8006cb0: bfbb ittet lt - 8006cb2: f103 4300 addlt.w r3, r3, #2147483648 ; 0x80000000 - 8006cb6: 461f movlt r7, r3 - 8006cb8: 2300 movge r3, #0 - 8006cba: 232d movlt r3, #45 ; 0x2d - 8006cbc: b088 sub sp, #32 - 8006cbe: 4614 mov r4, r2 - 8006cc0: 9a12 ldr r2, [sp, #72] ; 0x48 - 8006cc2: 9d10 ldr r5, [sp, #64] ; 0x40 - 8006cc4: 7013 strb r3, [r2, #0] - 8006cc6: 9b14 ldr r3, [sp, #80] ; 0x50 - 8006cc8: f8dd a04c ldr.w sl, [sp, #76] ; 0x4c - 8006ccc: f023 0820 bic.w r8, r3, #32 - 8006cd0: f1b8 0f46 cmp.w r8, #70 ; 0x46 - 8006cd4: d005 beq.n 8006ce2 <__cvt+0x3a> - 8006cd6: f1b8 0f45 cmp.w r8, #69 ; 0x45 - 8006cda: d100 bne.n 8006cde <__cvt+0x36> - 8006cdc: 3501 adds r5, #1 - 8006cde: 2302 movs r3, #2 - 8006ce0: e000 b.n 8006ce4 <__cvt+0x3c> - 8006ce2: 2303 movs r3, #3 - 8006ce4: aa07 add r2, sp, #28 - 8006ce6: 9204 str r2, [sp, #16] - 8006ce8: aa06 add r2, sp, #24 - 8006cea: e9cd a202 strd sl, r2, [sp, #8] - 8006cee: e9cd 3500 strd r3, r5, [sp] - 8006cf2: 4622 mov r2, r4 - 8006cf4: 463b mov r3, r7 - 8006cf6: f000 fdb7 bl 8007868 <_dtoa_r> - 8006cfa: f1b8 0f47 cmp.w r8, #71 ; 0x47 - 8006cfe: 4606 mov r6, r0 - 8006d00: d102 bne.n 8006d08 <__cvt+0x60> - 8006d02: 9b11 ldr r3, [sp, #68] ; 0x44 - 8006d04: 07db lsls r3, r3, #31 - 8006d06: d522 bpl.n 8006d4e <__cvt+0xa6> - 8006d08: f1b8 0f46 cmp.w r8, #70 ; 0x46 - 8006d0c: eb06 0905 add.w r9, r6, r5 - 8006d10: d110 bne.n 8006d34 <__cvt+0x8c> - 8006d12: 7833 ldrb r3, [r6, #0] - 8006d14: 2b30 cmp r3, #48 ; 0x30 - 8006d16: d10a bne.n 8006d2e <__cvt+0x86> - 8006d18: 2200 movs r2, #0 - 8006d1a: 2300 movs r3, #0 - 8006d1c: 4620 mov r0, r4 - 8006d1e: 4639 mov r1, r7 - 8006d20: f7f9 feae bl 8000a80 <__aeabi_dcmpeq> - 8006d24: b918 cbnz r0, 8006d2e <__cvt+0x86> - 8006d26: f1c5 0501 rsb r5, r5, #1 - 8006d2a: f8ca 5000 str.w r5, [sl] - 8006d2e: f8da 3000 ldr.w r3, [sl] - 8006d32: 4499 add r9, r3 - 8006d34: 2200 movs r2, #0 - 8006d36: 2300 movs r3, #0 - 8006d38: 4620 mov r0, r4 - 8006d3a: 4639 mov r1, r7 - 8006d3c: f7f9 fea0 bl 8000a80 <__aeabi_dcmpeq> - 8006d40: b108 cbz r0, 8006d46 <__cvt+0x9e> - 8006d42: f8cd 901c str.w r9, [sp, #28] - 8006d46: 2230 movs r2, #48 ; 0x30 - 8006d48: 9b07 ldr r3, [sp, #28] - 8006d4a: 454b cmp r3, r9 - 8006d4c: d307 bcc.n 8006d5e <__cvt+0xb6> - 8006d4e: 4630 mov r0, r6 - 8006d50: 9b07 ldr r3, [sp, #28] - 8006d52: 9a15 ldr r2, [sp, #84] ; 0x54 - 8006d54: 1b9b subs r3, r3, r6 - 8006d56: 6013 str r3, [r2, #0] - 8006d58: b008 add sp, #32 - 8006d5a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8006d5e: 1c59 adds r1, r3, #1 - 8006d60: 9107 str r1, [sp, #28] - 8006d62: 701a strb r2, [r3, #0] - 8006d64: e7f0 b.n 8006d48 <__cvt+0xa0> +08007b94 <__cvt>: + 8007b94: 2b00 cmp r3, #0 + 8007b96: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 8007b9a: 461f mov r7, r3 + 8007b9c: bfbb ittet lt + 8007b9e: f103 4300 addlt.w r3, r3, #2147483648 ; 0x80000000 + 8007ba2: 461f movlt r7, r3 + 8007ba4: 2300 movge r3, #0 + 8007ba6: 232d movlt r3, #45 ; 0x2d + 8007ba8: b088 sub sp, #32 + 8007baa: 4614 mov r4, r2 + 8007bac: 9a12 ldr r2, [sp, #72] ; 0x48 + 8007bae: 9d10 ldr r5, [sp, #64] ; 0x40 + 8007bb0: 7013 strb r3, [r2, #0] + 8007bb2: 9b14 ldr r3, [sp, #80] ; 0x50 + 8007bb4: f8dd a04c ldr.w sl, [sp, #76] ; 0x4c + 8007bb8: f023 0820 bic.w r8, r3, #32 + 8007bbc: f1b8 0f46 cmp.w r8, #70 ; 0x46 + 8007bc0: d005 beq.n 8007bce <__cvt+0x3a> + 8007bc2: f1b8 0f45 cmp.w r8, #69 ; 0x45 + 8007bc6: d100 bne.n 8007bca <__cvt+0x36> + 8007bc8: 3501 adds r5, #1 + 8007bca: 2302 movs r3, #2 + 8007bcc: e000 b.n 8007bd0 <__cvt+0x3c> + 8007bce: 2303 movs r3, #3 + 8007bd0: aa07 add r2, sp, #28 + 8007bd2: 9204 str r2, [sp, #16] + 8007bd4: aa06 add r2, sp, #24 + 8007bd6: e9cd a202 strd sl, r2, [sp, #8] + 8007bda: e9cd 3500 strd r3, r5, [sp] + 8007bde: 4622 mov r2, r4 + 8007be0: 463b mov r3, r7 + 8007be2: f000 fdb5 bl 8008750 <_dtoa_r> + 8007be6: f1b8 0f47 cmp.w r8, #71 ; 0x47 + 8007bea: 4606 mov r6, r0 + 8007bec: d102 bne.n 8007bf4 <__cvt+0x60> + 8007bee: 9b11 ldr r3, [sp, #68] ; 0x44 + 8007bf0: 07db lsls r3, r3, #31 + 8007bf2: d522 bpl.n 8007c3a <__cvt+0xa6> + 8007bf4: f1b8 0f46 cmp.w r8, #70 ; 0x46 + 8007bf8: eb06 0905 add.w r9, r6, r5 + 8007bfc: d110 bne.n 8007c20 <__cvt+0x8c> + 8007bfe: 7833 ldrb r3, [r6, #0] + 8007c00: 2b30 cmp r3, #48 ; 0x30 + 8007c02: d10a bne.n 8007c1a <__cvt+0x86> + 8007c04: 2200 movs r2, #0 + 8007c06: 2300 movs r3, #0 + 8007c08: 4620 mov r0, r4 + 8007c0a: 4639 mov r1, r7 + 8007c0c: f7f8 ff38 bl 8000a80 <__aeabi_dcmpeq> + 8007c10: b918 cbnz r0, 8007c1a <__cvt+0x86> + 8007c12: f1c5 0501 rsb r5, r5, #1 + 8007c16: f8ca 5000 str.w r5, [sl] + 8007c1a: f8da 3000 ldr.w r3, [sl] + 8007c1e: 4499 add r9, r3 + 8007c20: 2200 movs r2, #0 + 8007c22: 2300 movs r3, #0 + 8007c24: 4620 mov r0, r4 + 8007c26: 4639 mov r1, r7 + 8007c28: f7f8 ff2a bl 8000a80 <__aeabi_dcmpeq> + 8007c2c: b108 cbz r0, 8007c32 <__cvt+0x9e> + 8007c2e: f8cd 901c str.w r9, [sp, #28] + 8007c32: 2230 movs r2, #48 ; 0x30 + 8007c34: 9b07 ldr r3, [sp, #28] + 8007c36: 454b cmp r3, r9 + 8007c38: d307 bcc.n 8007c4a <__cvt+0xb6> + 8007c3a: 4630 mov r0, r6 + 8007c3c: 9b07 ldr r3, [sp, #28] + 8007c3e: 9a15 ldr r2, [sp, #84] ; 0x54 + 8007c40: 1b9b subs r3, r3, r6 + 8007c42: 6013 str r3, [r2, #0] + 8007c44: b008 add sp, #32 + 8007c46: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8007c4a: 1c59 adds r1, r3, #1 + 8007c4c: 9107 str r1, [sp, #28] + 8007c4e: 701a strb r2, [r3, #0] + 8007c50: e7f0 b.n 8007c34 <__cvt+0xa0> -08006d66 <__exponent>: - 8006d66: 4603 mov r3, r0 - 8006d68: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - 8006d6a: 2900 cmp r1, #0 - 8006d6c: f803 2b02 strb.w r2, [r3], #2 - 8006d70: bfb6 itet lt - 8006d72: 222d movlt r2, #45 ; 0x2d - 8006d74: 222b movge r2, #43 ; 0x2b - 8006d76: 4249 neglt r1, r1 - 8006d78: 2909 cmp r1, #9 - 8006d7a: 7042 strb r2, [r0, #1] - 8006d7c: dd2b ble.n 8006dd6 <__exponent+0x70> - 8006d7e: f10d 0407 add.w r4, sp, #7 - 8006d82: 46a4 mov ip, r4 - 8006d84: 270a movs r7, #10 - 8006d86: fb91 f6f7 sdiv r6, r1, r7 - 8006d8a: 460a mov r2, r1 - 8006d8c: 46a6 mov lr, r4 - 8006d8e: fb07 1516 mls r5, r7, r6, r1 - 8006d92: 2a63 cmp r2, #99 ; 0x63 - 8006d94: f105 0530 add.w r5, r5, #48 ; 0x30 - 8006d98: 4631 mov r1, r6 - 8006d9a: f104 34ff add.w r4, r4, #4294967295 - 8006d9e: f80e 5c01 strb.w r5, [lr, #-1] - 8006da2: dcf0 bgt.n 8006d86 <__exponent+0x20> - 8006da4: 3130 adds r1, #48 ; 0x30 - 8006da6: f1ae 0502 sub.w r5, lr, #2 - 8006daa: f804 1c01 strb.w r1, [r4, #-1] - 8006dae: 4629 mov r1, r5 - 8006db0: 1c44 adds r4, r0, #1 - 8006db2: 4561 cmp r1, ip - 8006db4: d30a bcc.n 8006dcc <__exponent+0x66> - 8006db6: f10d 0209 add.w r2, sp, #9 - 8006dba: eba2 020e sub.w r2, r2, lr - 8006dbe: 4565 cmp r5, ip - 8006dc0: bf88 it hi - 8006dc2: 2200 movhi r2, #0 - 8006dc4: 4413 add r3, r2 - 8006dc6: 1a18 subs r0, r3, r0 - 8006dc8: b003 add sp, #12 - 8006dca: bdf0 pop {r4, r5, r6, r7, pc} - 8006dcc: f811 2b01 ldrb.w r2, [r1], #1 - 8006dd0: f804 2f01 strb.w r2, [r4, #1]! - 8006dd4: e7ed b.n 8006db2 <__exponent+0x4c> - 8006dd6: 2330 movs r3, #48 ; 0x30 - 8006dd8: 3130 adds r1, #48 ; 0x30 - 8006dda: 7083 strb r3, [r0, #2] - 8006ddc: 70c1 strb r1, [r0, #3] - 8006dde: 1d03 adds r3, r0, #4 - 8006de0: e7f1 b.n 8006dc6 <__exponent+0x60> +08007c52 <__exponent>: + 8007c52: 4603 mov r3, r0 + 8007c54: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} + 8007c56: 2900 cmp r1, #0 + 8007c58: f803 2b02 strb.w r2, [r3], #2 + 8007c5c: bfb6 itet lt + 8007c5e: 222d movlt r2, #45 ; 0x2d + 8007c60: 222b movge r2, #43 ; 0x2b + 8007c62: 4249 neglt r1, r1 + 8007c64: 2909 cmp r1, #9 + 8007c66: 7042 strb r2, [r0, #1] + 8007c68: dd2b ble.n 8007cc2 <__exponent+0x70> + 8007c6a: f10d 0407 add.w r4, sp, #7 + 8007c6e: 46a4 mov ip, r4 + 8007c70: 270a movs r7, #10 + 8007c72: fb91 f6f7 sdiv r6, r1, r7 + 8007c76: 460a mov r2, r1 + 8007c78: 46a6 mov lr, r4 + 8007c7a: fb07 1516 mls r5, r7, r6, r1 + 8007c7e: 2a63 cmp r2, #99 ; 0x63 + 8007c80: f105 0530 add.w r5, r5, #48 ; 0x30 + 8007c84: 4631 mov r1, r6 + 8007c86: f104 34ff add.w r4, r4, #4294967295 + 8007c8a: f80e 5c01 strb.w r5, [lr, #-1] + 8007c8e: dcf0 bgt.n 8007c72 <__exponent+0x20> + 8007c90: 3130 adds r1, #48 ; 0x30 + 8007c92: f1ae 0502 sub.w r5, lr, #2 + 8007c96: f804 1c01 strb.w r1, [r4, #-1] + 8007c9a: 4629 mov r1, r5 + 8007c9c: 1c44 adds r4, r0, #1 + 8007c9e: 4561 cmp r1, ip + 8007ca0: d30a bcc.n 8007cb8 <__exponent+0x66> + 8007ca2: f10d 0209 add.w r2, sp, #9 + 8007ca6: eba2 020e sub.w r2, r2, lr + 8007caa: 4565 cmp r5, ip + 8007cac: bf88 it hi + 8007cae: 2200 movhi r2, #0 + 8007cb0: 4413 add r3, r2 + 8007cb2: 1a18 subs r0, r3, r0 + 8007cb4: b003 add sp, #12 + 8007cb6: bdf0 pop {r4, r5, r6, r7, pc} + 8007cb8: f811 2b01 ldrb.w r2, [r1], #1 + 8007cbc: f804 2f01 strb.w r2, [r4, #1]! + 8007cc0: e7ed b.n 8007c9e <__exponent+0x4c> + 8007cc2: 2330 movs r3, #48 ; 0x30 + 8007cc4: 3130 adds r1, #48 ; 0x30 + 8007cc6: 7083 strb r3, [r0, #2] + 8007cc8: 70c1 strb r1, [r0, #3] + 8007cca: 1d03 adds r3, r0, #4 + 8007ccc: e7f1 b.n 8007cb2 <__exponent+0x60> ... -08006de4 <_printf_float>: - 8006de4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8006de8: b091 sub sp, #68 ; 0x44 - 8006dea: 460c mov r4, r1 - 8006dec: f8dd 8068 ldr.w r8, [sp, #104] ; 0x68 - 8006df0: 4616 mov r6, r2 - 8006df2: 461f mov r7, r3 - 8006df4: 4605 mov r5, r0 - 8006df6: f001 fcdd bl 80087b4 <_localeconv_r> - 8006dfa: 6803 ldr r3, [r0, #0] - 8006dfc: 4618 mov r0, r3 - 8006dfe: 9309 str r3, [sp, #36] ; 0x24 - 8006e00: f7f9 fa12 bl 8000228 - 8006e04: 2300 movs r3, #0 - 8006e06: 930e str r3, [sp, #56] ; 0x38 - 8006e08: f8d8 3000 ldr.w r3, [r8] - 8006e0c: 900a str r0, [sp, #40] ; 0x28 - 8006e0e: 3307 adds r3, #7 - 8006e10: f023 0307 bic.w r3, r3, #7 - 8006e14: f103 0208 add.w r2, r3, #8 - 8006e18: f894 9018 ldrb.w r9, [r4, #24] - 8006e1c: f8d4 b000 ldr.w fp, [r4] - 8006e20: f8c8 2000 str.w r2, [r8] - 8006e24: e9d3 2300 ldrd r2, r3, [r3] - 8006e28: e9c4 2312 strd r2, r3, [r4, #72] ; 0x48 - 8006e2c: e9d4 8a12 ldrd r8, sl, [r4, #72] ; 0x48 - 8006e30: f02a 4300 bic.w r3, sl, #2147483648 ; 0x80000000 - 8006e34: 930b str r3, [sp, #44] ; 0x2c - 8006e36: f04f 32ff mov.w r2, #4294967295 - 8006e3a: 4640 mov r0, r8 - 8006e3c: 4b9c ldr r3, [pc, #624] ; (80070b0 <_printf_float+0x2cc>) - 8006e3e: 990b ldr r1, [sp, #44] ; 0x2c - 8006e40: f7f9 fe50 bl 8000ae4 <__aeabi_dcmpun> - 8006e44: bb70 cbnz r0, 8006ea4 <_printf_float+0xc0> - 8006e46: f04f 32ff mov.w r2, #4294967295 - 8006e4a: 4640 mov r0, r8 - 8006e4c: 4b98 ldr r3, [pc, #608] ; (80070b0 <_printf_float+0x2cc>) - 8006e4e: 990b ldr r1, [sp, #44] ; 0x2c - 8006e50: f7f9 fe2a bl 8000aa8 <__aeabi_dcmple> - 8006e54: bb30 cbnz r0, 8006ea4 <_printf_float+0xc0> - 8006e56: 2200 movs r2, #0 - 8006e58: 2300 movs r3, #0 - 8006e5a: 4640 mov r0, r8 - 8006e5c: 4651 mov r1, sl - 8006e5e: f7f9 fe19 bl 8000a94 <__aeabi_dcmplt> - 8006e62: b110 cbz r0, 8006e6a <_printf_float+0x86> - 8006e64: 232d movs r3, #45 ; 0x2d - 8006e66: f884 3043 strb.w r3, [r4, #67] ; 0x43 - 8006e6a: 4b92 ldr r3, [pc, #584] ; (80070b4 <_printf_float+0x2d0>) - 8006e6c: 4892 ldr r0, [pc, #584] ; (80070b8 <_printf_float+0x2d4>) - 8006e6e: f1b9 0f47 cmp.w r9, #71 ; 0x47 - 8006e72: bf94 ite ls - 8006e74: 4698 movls r8, r3 - 8006e76: 4680 movhi r8, r0 - 8006e78: 2303 movs r3, #3 - 8006e7a: f04f 0a00 mov.w sl, #0 - 8006e7e: 6123 str r3, [r4, #16] - 8006e80: f02b 0304 bic.w r3, fp, #4 - 8006e84: 6023 str r3, [r4, #0] - 8006e86: 4633 mov r3, r6 - 8006e88: 4621 mov r1, r4 - 8006e8a: 4628 mov r0, r5 - 8006e8c: 9700 str r7, [sp, #0] - 8006e8e: aa0f add r2, sp, #60 ; 0x3c - 8006e90: f000 f9d4 bl 800723c <_printf_common> - 8006e94: 3001 adds r0, #1 - 8006e96: f040 8090 bne.w 8006fba <_printf_float+0x1d6> - 8006e9a: f04f 30ff mov.w r0, #4294967295 - 8006e9e: b011 add sp, #68 ; 0x44 - 8006ea0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8006ea4: 4642 mov r2, r8 - 8006ea6: 4653 mov r3, sl - 8006ea8: 4640 mov r0, r8 - 8006eaa: 4651 mov r1, sl - 8006eac: f7f9 fe1a bl 8000ae4 <__aeabi_dcmpun> - 8006eb0: b148 cbz r0, 8006ec6 <_printf_float+0xe2> - 8006eb2: f1ba 0f00 cmp.w sl, #0 - 8006eb6: bfb8 it lt - 8006eb8: 232d movlt r3, #45 ; 0x2d - 8006eba: 4880 ldr r0, [pc, #512] ; (80070bc <_printf_float+0x2d8>) - 8006ebc: bfb8 it lt - 8006ebe: f884 3043 strblt.w r3, [r4, #67] ; 0x43 - 8006ec2: 4b7f ldr r3, [pc, #508] ; (80070c0 <_printf_float+0x2dc>) - 8006ec4: e7d3 b.n 8006e6e <_printf_float+0x8a> - 8006ec6: 6863 ldr r3, [r4, #4] - 8006ec8: f009 01df and.w r1, r9, #223 ; 0xdf - 8006ecc: 1c5a adds r2, r3, #1 - 8006ece: d142 bne.n 8006f56 <_printf_float+0x172> - 8006ed0: 2306 movs r3, #6 - 8006ed2: 6063 str r3, [r4, #4] - 8006ed4: 2200 movs r2, #0 - 8006ed6: 9206 str r2, [sp, #24] - 8006ed8: aa0e add r2, sp, #56 ; 0x38 - 8006eda: e9cd 9204 strd r9, r2, [sp, #16] - 8006ede: aa0d add r2, sp, #52 ; 0x34 - 8006ee0: f44b 6380 orr.w r3, fp, #1024 ; 0x400 - 8006ee4: 9203 str r2, [sp, #12] - 8006ee6: f10d 0233 add.w r2, sp, #51 ; 0x33 - 8006eea: e9cd 3201 strd r3, r2, [sp, #4] - 8006eee: 6023 str r3, [r4, #0] - 8006ef0: 6863 ldr r3, [r4, #4] - 8006ef2: 4642 mov r2, r8 - 8006ef4: 9300 str r3, [sp, #0] - 8006ef6: 4628 mov r0, r5 - 8006ef8: 4653 mov r3, sl - 8006efa: 910b str r1, [sp, #44] ; 0x2c - 8006efc: f7ff fed4 bl 8006ca8 <__cvt> - 8006f00: 990b ldr r1, [sp, #44] ; 0x2c - 8006f02: 4680 mov r8, r0 - 8006f04: 2947 cmp r1, #71 ; 0x47 - 8006f06: 990d ldr r1, [sp, #52] ; 0x34 - 8006f08: d108 bne.n 8006f1c <_printf_float+0x138> - 8006f0a: 1cc8 adds r0, r1, #3 - 8006f0c: db02 blt.n 8006f14 <_printf_float+0x130> - 8006f0e: 6863 ldr r3, [r4, #4] - 8006f10: 4299 cmp r1, r3 - 8006f12: dd40 ble.n 8006f96 <_printf_float+0x1b2> - 8006f14: f1a9 0902 sub.w r9, r9, #2 - 8006f18: fa5f f989 uxtb.w r9, r9 - 8006f1c: f1b9 0f65 cmp.w r9, #101 ; 0x65 - 8006f20: d81f bhi.n 8006f62 <_printf_float+0x17e> - 8006f22: 464a mov r2, r9 - 8006f24: 3901 subs r1, #1 - 8006f26: f104 0050 add.w r0, r4, #80 ; 0x50 - 8006f2a: 910d str r1, [sp, #52] ; 0x34 - 8006f2c: f7ff ff1b bl 8006d66 <__exponent> - 8006f30: 9a0e ldr r2, [sp, #56] ; 0x38 - 8006f32: 4682 mov sl, r0 - 8006f34: 1813 adds r3, r2, r0 - 8006f36: 2a01 cmp r2, #1 - 8006f38: 6123 str r3, [r4, #16] - 8006f3a: dc02 bgt.n 8006f42 <_printf_float+0x15e> - 8006f3c: 6822 ldr r2, [r4, #0] - 8006f3e: 07d2 lsls r2, r2, #31 - 8006f40: d501 bpl.n 8006f46 <_printf_float+0x162> - 8006f42: 3301 adds r3, #1 - 8006f44: 6123 str r3, [r4, #16] - 8006f46: f89d 3033 ldrb.w r3, [sp, #51] ; 0x33 - 8006f4a: 2b00 cmp r3, #0 - 8006f4c: d09b beq.n 8006e86 <_printf_float+0xa2> - 8006f4e: 232d movs r3, #45 ; 0x2d - 8006f50: f884 3043 strb.w r3, [r4, #67] ; 0x43 - 8006f54: e797 b.n 8006e86 <_printf_float+0xa2> - 8006f56: 2947 cmp r1, #71 ; 0x47 - 8006f58: d1bc bne.n 8006ed4 <_printf_float+0xf0> - 8006f5a: 2b00 cmp r3, #0 - 8006f5c: d1ba bne.n 8006ed4 <_printf_float+0xf0> - 8006f5e: 2301 movs r3, #1 - 8006f60: e7b7 b.n 8006ed2 <_printf_float+0xee> - 8006f62: f1b9 0f66 cmp.w r9, #102 ; 0x66 - 8006f66: d118 bne.n 8006f9a <_printf_float+0x1b6> - 8006f68: 2900 cmp r1, #0 - 8006f6a: 6863 ldr r3, [r4, #4] - 8006f6c: dd0b ble.n 8006f86 <_printf_float+0x1a2> - 8006f6e: 6121 str r1, [r4, #16] - 8006f70: b913 cbnz r3, 8006f78 <_printf_float+0x194> - 8006f72: 6822 ldr r2, [r4, #0] - 8006f74: 07d0 lsls r0, r2, #31 - 8006f76: d502 bpl.n 8006f7e <_printf_float+0x19a> - 8006f78: 3301 adds r3, #1 - 8006f7a: 440b add r3, r1 - 8006f7c: 6123 str r3, [r4, #16] - 8006f7e: f04f 0a00 mov.w sl, #0 - 8006f82: 65a1 str r1, [r4, #88] ; 0x58 - 8006f84: e7df b.n 8006f46 <_printf_float+0x162> - 8006f86: b913 cbnz r3, 8006f8e <_printf_float+0x1aa> - 8006f88: 6822 ldr r2, [r4, #0] - 8006f8a: 07d2 lsls r2, r2, #31 - 8006f8c: d501 bpl.n 8006f92 <_printf_float+0x1ae> - 8006f8e: 3302 adds r3, #2 - 8006f90: e7f4 b.n 8006f7c <_printf_float+0x198> - 8006f92: 2301 movs r3, #1 - 8006f94: e7f2 b.n 8006f7c <_printf_float+0x198> - 8006f96: f04f 0967 mov.w r9, #103 ; 0x67 - 8006f9a: 9b0e ldr r3, [sp, #56] ; 0x38 - 8006f9c: 4299 cmp r1, r3 - 8006f9e: db05 blt.n 8006fac <_printf_float+0x1c8> - 8006fa0: 6823 ldr r3, [r4, #0] - 8006fa2: 6121 str r1, [r4, #16] - 8006fa4: 07d8 lsls r0, r3, #31 - 8006fa6: d5ea bpl.n 8006f7e <_printf_float+0x19a> - 8006fa8: 1c4b adds r3, r1, #1 - 8006faa: e7e7 b.n 8006f7c <_printf_float+0x198> - 8006fac: 2900 cmp r1, #0 - 8006fae: bfcc ite gt - 8006fb0: 2201 movgt r2, #1 - 8006fb2: f1c1 0202 rsble r2, r1, #2 - 8006fb6: 4413 add r3, r2 - 8006fb8: e7e0 b.n 8006f7c <_printf_float+0x198> - 8006fba: 6823 ldr r3, [r4, #0] - 8006fbc: 055a lsls r2, r3, #21 - 8006fbe: d407 bmi.n 8006fd0 <_printf_float+0x1ec> - 8006fc0: 6923 ldr r3, [r4, #16] - 8006fc2: 4642 mov r2, r8 - 8006fc4: 4631 mov r1, r6 - 8006fc6: 4628 mov r0, r5 - 8006fc8: 47b8 blx r7 - 8006fca: 3001 adds r0, #1 - 8006fcc: d12b bne.n 8007026 <_printf_float+0x242> - 8006fce: e764 b.n 8006e9a <_printf_float+0xb6> - 8006fd0: f1b9 0f65 cmp.w r9, #101 ; 0x65 - 8006fd4: f240 80dd bls.w 8007192 <_printf_float+0x3ae> - 8006fd8: e9d4 0112 ldrd r0, r1, [r4, #72] ; 0x48 - 8006fdc: 2200 movs r2, #0 - 8006fde: 2300 movs r3, #0 - 8006fe0: f7f9 fd4e bl 8000a80 <__aeabi_dcmpeq> - 8006fe4: 2800 cmp r0, #0 - 8006fe6: d033 beq.n 8007050 <_printf_float+0x26c> - 8006fe8: 2301 movs r3, #1 - 8006fea: 4631 mov r1, r6 - 8006fec: 4628 mov r0, r5 - 8006fee: 4a35 ldr r2, [pc, #212] ; (80070c4 <_printf_float+0x2e0>) - 8006ff0: 47b8 blx r7 - 8006ff2: 3001 adds r0, #1 - 8006ff4: f43f af51 beq.w 8006e9a <_printf_float+0xb6> - 8006ff8: e9dd 230d ldrd r2, r3, [sp, #52] ; 0x34 - 8006ffc: 429a cmp r2, r3 - 8006ffe: db02 blt.n 8007006 <_printf_float+0x222> - 8007000: 6823 ldr r3, [r4, #0] - 8007002: 07d8 lsls r0, r3, #31 - 8007004: d50f bpl.n 8007026 <_printf_float+0x242> - 8007006: e9dd 2309 ldrd r2, r3, [sp, #36] ; 0x24 - 800700a: 4631 mov r1, r6 - 800700c: 4628 mov r0, r5 - 800700e: 47b8 blx r7 - 8007010: 3001 adds r0, #1 - 8007012: f43f af42 beq.w 8006e9a <_printf_float+0xb6> - 8007016: f04f 0800 mov.w r8, #0 - 800701a: f104 091a add.w r9, r4, #26 - 800701e: 9b0e ldr r3, [sp, #56] ; 0x38 - 8007020: 3b01 subs r3, #1 - 8007022: 4543 cmp r3, r8 - 8007024: dc09 bgt.n 800703a <_printf_float+0x256> - 8007026: 6823 ldr r3, [r4, #0] - 8007028: 079b lsls r3, r3, #30 - 800702a: f100 8102 bmi.w 8007232 <_printf_float+0x44e> - 800702e: 68e0 ldr r0, [r4, #12] - 8007030: 9b0f ldr r3, [sp, #60] ; 0x3c - 8007032: 4298 cmp r0, r3 - 8007034: bfb8 it lt - 8007036: 4618 movlt r0, r3 - 8007038: e731 b.n 8006e9e <_printf_float+0xba> - 800703a: 2301 movs r3, #1 - 800703c: 464a mov r2, r9 - 800703e: 4631 mov r1, r6 - 8007040: 4628 mov r0, r5 - 8007042: 47b8 blx r7 - 8007044: 3001 adds r0, #1 - 8007046: f43f af28 beq.w 8006e9a <_printf_float+0xb6> - 800704a: f108 0801 add.w r8, r8, #1 - 800704e: e7e6 b.n 800701e <_printf_float+0x23a> - 8007050: 9b0d ldr r3, [sp, #52] ; 0x34 - 8007052: 2b00 cmp r3, #0 - 8007054: dc38 bgt.n 80070c8 <_printf_float+0x2e4> - 8007056: 2301 movs r3, #1 - 8007058: 4631 mov r1, r6 - 800705a: 4628 mov r0, r5 - 800705c: 4a19 ldr r2, [pc, #100] ; (80070c4 <_printf_float+0x2e0>) - 800705e: 47b8 blx r7 - 8007060: 3001 adds r0, #1 - 8007062: f43f af1a beq.w 8006e9a <_printf_float+0xb6> - 8007066: e9dd 230d ldrd r2, r3, [sp, #52] ; 0x34 - 800706a: 4313 orrs r3, r2 - 800706c: d102 bne.n 8007074 <_printf_float+0x290> - 800706e: 6823 ldr r3, [r4, #0] - 8007070: 07d9 lsls r1, r3, #31 - 8007072: d5d8 bpl.n 8007026 <_printf_float+0x242> - 8007074: e9dd 2309 ldrd r2, r3, [sp, #36] ; 0x24 - 8007078: 4631 mov r1, r6 - 800707a: 4628 mov r0, r5 - 800707c: 47b8 blx r7 - 800707e: 3001 adds r0, #1 - 8007080: f43f af0b beq.w 8006e9a <_printf_float+0xb6> - 8007084: f04f 0900 mov.w r9, #0 - 8007088: f104 0a1a add.w sl, r4, #26 - 800708c: 9b0d ldr r3, [sp, #52] ; 0x34 - 800708e: 425b negs r3, r3 - 8007090: 454b cmp r3, r9 - 8007092: dc01 bgt.n 8007098 <_printf_float+0x2b4> - 8007094: 9b0e ldr r3, [sp, #56] ; 0x38 - 8007096: e794 b.n 8006fc2 <_printf_float+0x1de> - 8007098: 2301 movs r3, #1 - 800709a: 4652 mov r2, sl - 800709c: 4631 mov r1, r6 - 800709e: 4628 mov r0, r5 - 80070a0: 47b8 blx r7 - 80070a2: 3001 adds r0, #1 - 80070a4: f43f aef9 beq.w 8006e9a <_printf_float+0xb6> - 80070a8: f109 0901 add.w r9, r9, #1 - 80070ac: e7ee b.n 800708c <_printf_float+0x2a8> - 80070ae: bf00 nop - 80070b0: 7fefffff .word 0x7fefffff - 80070b4: 0800a458 .word 0x0800a458 - 80070b8: 0800a45c .word 0x0800a45c - 80070bc: 0800a464 .word 0x0800a464 - 80070c0: 0800a460 .word 0x0800a460 - 80070c4: 0800a468 .word 0x0800a468 - 80070c8: 9a0e ldr r2, [sp, #56] ; 0x38 - 80070ca: 6da3 ldr r3, [r4, #88] ; 0x58 - 80070cc: 429a cmp r2, r3 - 80070ce: bfa8 it ge - 80070d0: 461a movge r2, r3 - 80070d2: 2a00 cmp r2, #0 - 80070d4: 4691 mov r9, r2 - 80070d6: dc37 bgt.n 8007148 <_printf_float+0x364> - 80070d8: f04f 0b00 mov.w fp, #0 - 80070dc: ea29 79e9 bic.w r9, r9, r9, asr #31 - 80070e0: f104 021a add.w r2, r4, #26 - 80070e4: f8d4 a058 ldr.w sl, [r4, #88] ; 0x58 - 80070e8: ebaa 0309 sub.w r3, sl, r9 - 80070ec: 455b cmp r3, fp - 80070ee: dc33 bgt.n 8007158 <_printf_float+0x374> - 80070f0: e9dd 230d ldrd r2, r3, [sp, #52] ; 0x34 - 80070f4: 429a cmp r2, r3 - 80070f6: db3b blt.n 8007170 <_printf_float+0x38c> - 80070f8: 6823 ldr r3, [r4, #0] - 80070fa: 07da lsls r2, r3, #31 - 80070fc: d438 bmi.n 8007170 <_printf_float+0x38c> - 80070fe: 9a0e ldr r2, [sp, #56] ; 0x38 - 8007100: 990d ldr r1, [sp, #52] ; 0x34 - 8007102: eba2 030a sub.w r3, r2, sl - 8007106: eba2 0901 sub.w r9, r2, r1 - 800710a: 4599 cmp r9, r3 - 800710c: bfa8 it ge - 800710e: 4699 movge r9, r3 - 8007110: f1b9 0f00 cmp.w r9, #0 - 8007114: dc34 bgt.n 8007180 <_printf_float+0x39c> - 8007116: f04f 0800 mov.w r8, #0 - 800711a: ea29 79e9 bic.w r9, r9, r9, asr #31 - 800711e: f104 0a1a add.w sl, r4, #26 - 8007122: e9dd 230d ldrd r2, r3, [sp, #52] ; 0x34 - 8007126: 1a9b subs r3, r3, r2 - 8007128: eba3 0309 sub.w r3, r3, r9 - 800712c: 4543 cmp r3, r8 - 800712e: f77f af7a ble.w 8007026 <_printf_float+0x242> - 8007132: 2301 movs r3, #1 - 8007134: 4652 mov r2, sl - 8007136: 4631 mov r1, r6 - 8007138: 4628 mov r0, r5 - 800713a: 47b8 blx r7 - 800713c: 3001 adds r0, #1 - 800713e: f43f aeac beq.w 8006e9a <_printf_float+0xb6> - 8007142: f108 0801 add.w r8, r8, #1 - 8007146: e7ec b.n 8007122 <_printf_float+0x33e> - 8007148: 4613 mov r3, r2 - 800714a: 4631 mov r1, r6 - 800714c: 4642 mov r2, r8 - 800714e: 4628 mov r0, r5 - 8007150: 47b8 blx r7 - 8007152: 3001 adds r0, #1 - 8007154: d1c0 bne.n 80070d8 <_printf_float+0x2f4> - 8007156: e6a0 b.n 8006e9a <_printf_float+0xb6> - 8007158: 2301 movs r3, #1 - 800715a: 4631 mov r1, r6 - 800715c: 4628 mov r0, r5 - 800715e: 920b str r2, [sp, #44] ; 0x2c - 8007160: 47b8 blx r7 - 8007162: 3001 adds r0, #1 - 8007164: f43f ae99 beq.w 8006e9a <_printf_float+0xb6> - 8007168: 9a0b ldr r2, [sp, #44] ; 0x2c - 800716a: f10b 0b01 add.w fp, fp, #1 - 800716e: e7b9 b.n 80070e4 <_printf_float+0x300> - 8007170: 4631 mov r1, r6 - 8007172: e9dd 2309 ldrd r2, r3, [sp, #36] ; 0x24 - 8007176: 4628 mov r0, r5 - 8007178: 47b8 blx r7 - 800717a: 3001 adds r0, #1 - 800717c: d1bf bne.n 80070fe <_printf_float+0x31a> - 800717e: e68c b.n 8006e9a <_printf_float+0xb6> - 8007180: 464b mov r3, r9 - 8007182: 4631 mov r1, r6 - 8007184: 4628 mov r0, r5 - 8007186: eb08 020a add.w r2, r8, sl - 800718a: 47b8 blx r7 - 800718c: 3001 adds r0, #1 - 800718e: d1c2 bne.n 8007116 <_printf_float+0x332> - 8007190: e683 b.n 8006e9a <_printf_float+0xb6> - 8007192: 9a0e ldr r2, [sp, #56] ; 0x38 - 8007194: 2a01 cmp r2, #1 - 8007196: dc01 bgt.n 800719c <_printf_float+0x3b8> - 8007198: 07db lsls r3, r3, #31 - 800719a: d537 bpl.n 800720c <_printf_float+0x428> - 800719c: 2301 movs r3, #1 - 800719e: 4642 mov r2, r8 - 80071a0: 4631 mov r1, r6 - 80071a2: 4628 mov r0, r5 - 80071a4: 47b8 blx r7 - 80071a6: 3001 adds r0, #1 - 80071a8: f43f ae77 beq.w 8006e9a <_printf_float+0xb6> - 80071ac: e9dd 2309 ldrd r2, r3, [sp, #36] ; 0x24 - 80071b0: 4631 mov r1, r6 - 80071b2: 4628 mov r0, r5 - 80071b4: 47b8 blx r7 - 80071b6: 3001 adds r0, #1 - 80071b8: f43f ae6f beq.w 8006e9a <_printf_float+0xb6> - 80071bc: e9d4 0112 ldrd r0, r1, [r4, #72] ; 0x48 - 80071c0: 2200 movs r2, #0 - 80071c2: 2300 movs r3, #0 - 80071c4: f7f9 fc5c bl 8000a80 <__aeabi_dcmpeq> - 80071c8: b9d8 cbnz r0, 8007202 <_printf_float+0x41e> - 80071ca: 9b0e ldr r3, [sp, #56] ; 0x38 - 80071cc: f108 0201 add.w r2, r8, #1 - 80071d0: 3b01 subs r3, #1 - 80071d2: 4631 mov r1, r6 - 80071d4: 4628 mov r0, r5 - 80071d6: 47b8 blx r7 - 80071d8: 3001 adds r0, #1 - 80071da: d10e bne.n 80071fa <_printf_float+0x416> - 80071dc: e65d b.n 8006e9a <_printf_float+0xb6> - 80071de: 2301 movs r3, #1 - 80071e0: 464a mov r2, r9 - 80071e2: 4631 mov r1, r6 - 80071e4: 4628 mov r0, r5 - 80071e6: 47b8 blx r7 - 80071e8: 3001 adds r0, #1 - 80071ea: f43f ae56 beq.w 8006e9a <_printf_float+0xb6> - 80071ee: f108 0801 add.w r8, r8, #1 - 80071f2: 9b0e ldr r3, [sp, #56] ; 0x38 - 80071f4: 3b01 subs r3, #1 - 80071f6: 4543 cmp r3, r8 - 80071f8: dcf1 bgt.n 80071de <_printf_float+0x3fa> - 80071fa: 4653 mov r3, sl - 80071fc: f104 0250 add.w r2, r4, #80 ; 0x50 - 8007200: e6e0 b.n 8006fc4 <_printf_float+0x1e0> - 8007202: f04f 0800 mov.w r8, #0 - 8007206: f104 091a add.w r9, r4, #26 - 800720a: e7f2 b.n 80071f2 <_printf_float+0x40e> - 800720c: 2301 movs r3, #1 - 800720e: 4642 mov r2, r8 - 8007210: e7df b.n 80071d2 <_printf_float+0x3ee> - 8007212: 2301 movs r3, #1 - 8007214: 464a mov r2, r9 - 8007216: 4631 mov r1, r6 - 8007218: 4628 mov r0, r5 - 800721a: 47b8 blx r7 - 800721c: 3001 adds r0, #1 - 800721e: f43f ae3c beq.w 8006e9a <_printf_float+0xb6> - 8007222: f108 0801 add.w r8, r8, #1 - 8007226: 68e3 ldr r3, [r4, #12] - 8007228: 990f ldr r1, [sp, #60] ; 0x3c - 800722a: 1a5b subs r3, r3, r1 - 800722c: 4543 cmp r3, r8 - 800722e: dcf0 bgt.n 8007212 <_printf_float+0x42e> - 8007230: e6fd b.n 800702e <_printf_float+0x24a> - 8007232: f04f 0800 mov.w r8, #0 - 8007236: f104 0919 add.w r9, r4, #25 - 800723a: e7f4 b.n 8007226 <_printf_float+0x442> +08007cd0 <_printf_float>: + 8007cd0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 8007cd4: b091 sub sp, #68 ; 0x44 + 8007cd6: 460c mov r4, r1 + 8007cd8: f8dd 8068 ldr.w r8, [sp, #104] ; 0x68 + 8007cdc: 4616 mov r6, r2 + 8007cde: 461f mov r7, r3 + 8007ce0: 4605 mov r5, r0 + 8007ce2: f001 fcdb bl 800969c <_localeconv_r> + 8007ce6: 6803 ldr r3, [r0, #0] + 8007ce8: 4618 mov r0, r3 + 8007cea: 9309 str r3, [sp, #36] ; 0x24 + 8007cec: f7f8 fa9c bl 8000228 + 8007cf0: 2300 movs r3, #0 + 8007cf2: 930e str r3, [sp, #56] ; 0x38 + 8007cf4: f8d8 3000 ldr.w r3, [r8] + 8007cf8: 900a str r0, [sp, #40] ; 0x28 + 8007cfa: 3307 adds r3, #7 + 8007cfc: f023 0307 bic.w r3, r3, #7 + 8007d00: f103 0208 add.w r2, r3, #8 + 8007d04: f894 9018 ldrb.w r9, [r4, #24] + 8007d08: f8d4 b000 ldr.w fp, [r4] + 8007d0c: f8c8 2000 str.w r2, [r8] + 8007d10: e9d3 2300 ldrd r2, r3, [r3] + 8007d14: e9c4 2312 strd r2, r3, [r4, #72] ; 0x48 + 8007d18: e9d4 8a12 ldrd r8, sl, [r4, #72] ; 0x48 + 8007d1c: f02a 4300 bic.w r3, sl, #2147483648 ; 0x80000000 + 8007d20: 930b str r3, [sp, #44] ; 0x2c + 8007d22: f04f 32ff mov.w r2, #4294967295 + 8007d26: 4640 mov r0, r8 + 8007d28: 4b9c ldr r3, [pc, #624] ; (8007f9c <_printf_float+0x2cc>) + 8007d2a: 990b ldr r1, [sp, #44] ; 0x2c + 8007d2c: f7f8 feda bl 8000ae4 <__aeabi_dcmpun> + 8007d30: bb70 cbnz r0, 8007d90 <_printf_float+0xc0> + 8007d32: f04f 32ff mov.w r2, #4294967295 + 8007d36: 4640 mov r0, r8 + 8007d38: 4b98 ldr r3, [pc, #608] ; (8007f9c <_printf_float+0x2cc>) + 8007d3a: 990b ldr r1, [sp, #44] ; 0x2c + 8007d3c: f7f8 feb4 bl 8000aa8 <__aeabi_dcmple> + 8007d40: bb30 cbnz r0, 8007d90 <_printf_float+0xc0> + 8007d42: 2200 movs r2, #0 + 8007d44: 2300 movs r3, #0 + 8007d46: 4640 mov r0, r8 + 8007d48: 4651 mov r1, sl + 8007d4a: f7f8 fea3 bl 8000a94 <__aeabi_dcmplt> + 8007d4e: b110 cbz r0, 8007d56 <_printf_float+0x86> + 8007d50: 232d movs r3, #45 ; 0x2d + 8007d52: f884 3043 strb.w r3, [r4, #67] ; 0x43 + 8007d56: 4b92 ldr r3, [pc, #584] ; (8007fa0 <_printf_float+0x2d0>) + 8007d58: 4892 ldr r0, [pc, #584] ; (8007fa4 <_printf_float+0x2d4>) + 8007d5a: f1b9 0f47 cmp.w r9, #71 ; 0x47 + 8007d5e: bf94 ite ls + 8007d60: 4698 movls r8, r3 + 8007d62: 4680 movhi r8, r0 + 8007d64: 2303 movs r3, #3 + 8007d66: f04f 0a00 mov.w sl, #0 + 8007d6a: 6123 str r3, [r4, #16] + 8007d6c: f02b 0304 bic.w r3, fp, #4 + 8007d70: 6023 str r3, [r4, #0] + 8007d72: 4633 mov r3, r6 + 8007d74: 4621 mov r1, r4 + 8007d76: 4628 mov r0, r5 + 8007d78: 9700 str r7, [sp, #0] + 8007d7a: aa0f add r2, sp, #60 ; 0x3c + 8007d7c: f000 f9d4 bl 8008128 <_printf_common> + 8007d80: 3001 adds r0, #1 + 8007d82: f040 8090 bne.w 8007ea6 <_printf_float+0x1d6> + 8007d86: f04f 30ff mov.w r0, #4294967295 + 8007d8a: b011 add sp, #68 ; 0x44 + 8007d8c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 8007d90: 4642 mov r2, r8 + 8007d92: 4653 mov r3, sl + 8007d94: 4640 mov r0, r8 + 8007d96: 4651 mov r1, sl + 8007d98: f7f8 fea4 bl 8000ae4 <__aeabi_dcmpun> + 8007d9c: b148 cbz r0, 8007db2 <_printf_float+0xe2> + 8007d9e: f1ba 0f00 cmp.w sl, #0 + 8007da2: bfb8 it lt + 8007da4: 232d movlt r3, #45 ; 0x2d + 8007da6: 4880 ldr r0, [pc, #512] ; (8007fa8 <_printf_float+0x2d8>) + 8007da8: bfb8 it lt + 8007daa: f884 3043 strblt.w r3, [r4, #67] ; 0x43 + 8007dae: 4b7f ldr r3, [pc, #508] ; (8007fac <_printf_float+0x2dc>) + 8007db0: e7d3 b.n 8007d5a <_printf_float+0x8a> + 8007db2: 6863 ldr r3, [r4, #4] + 8007db4: f009 01df and.w r1, r9, #223 ; 0xdf + 8007db8: 1c5a adds r2, r3, #1 + 8007dba: d142 bne.n 8007e42 <_printf_float+0x172> + 8007dbc: 2306 movs r3, #6 + 8007dbe: 6063 str r3, [r4, #4] + 8007dc0: 2200 movs r2, #0 + 8007dc2: 9206 str r2, [sp, #24] + 8007dc4: aa0e add r2, sp, #56 ; 0x38 + 8007dc6: e9cd 9204 strd r9, r2, [sp, #16] + 8007dca: aa0d add r2, sp, #52 ; 0x34 + 8007dcc: f44b 6380 orr.w r3, fp, #1024 ; 0x400 + 8007dd0: 9203 str r2, [sp, #12] + 8007dd2: f10d 0233 add.w r2, sp, #51 ; 0x33 + 8007dd6: e9cd 3201 strd r3, r2, [sp, #4] + 8007dda: 6023 str r3, [r4, #0] + 8007ddc: 6863 ldr r3, [r4, #4] + 8007dde: 4642 mov r2, r8 + 8007de0: 9300 str r3, [sp, #0] + 8007de2: 4628 mov r0, r5 + 8007de4: 4653 mov r3, sl + 8007de6: 910b str r1, [sp, #44] ; 0x2c + 8007de8: f7ff fed4 bl 8007b94 <__cvt> + 8007dec: 990b ldr r1, [sp, #44] ; 0x2c + 8007dee: 4680 mov r8, r0 + 8007df0: 2947 cmp r1, #71 ; 0x47 + 8007df2: 990d ldr r1, [sp, #52] ; 0x34 + 8007df4: d108 bne.n 8007e08 <_printf_float+0x138> + 8007df6: 1cc8 adds r0, r1, #3 + 8007df8: db02 blt.n 8007e00 <_printf_float+0x130> + 8007dfa: 6863 ldr r3, [r4, #4] + 8007dfc: 4299 cmp r1, r3 + 8007dfe: dd40 ble.n 8007e82 <_printf_float+0x1b2> + 8007e00: f1a9 0902 sub.w r9, r9, #2 + 8007e04: fa5f f989 uxtb.w r9, r9 + 8007e08: f1b9 0f65 cmp.w r9, #101 ; 0x65 + 8007e0c: d81f bhi.n 8007e4e <_printf_float+0x17e> + 8007e0e: 464a mov r2, r9 + 8007e10: 3901 subs r1, #1 + 8007e12: f104 0050 add.w r0, r4, #80 ; 0x50 + 8007e16: 910d str r1, [sp, #52] ; 0x34 + 8007e18: f7ff ff1b bl 8007c52 <__exponent> + 8007e1c: 9a0e ldr r2, [sp, #56] ; 0x38 + 8007e1e: 4682 mov sl, r0 + 8007e20: 1813 adds r3, r2, r0 + 8007e22: 2a01 cmp r2, #1 + 8007e24: 6123 str r3, [r4, #16] + 8007e26: dc02 bgt.n 8007e2e <_printf_float+0x15e> + 8007e28: 6822 ldr r2, [r4, #0] + 8007e2a: 07d2 lsls r2, r2, #31 + 8007e2c: d501 bpl.n 8007e32 <_printf_float+0x162> + 8007e2e: 3301 adds r3, #1 + 8007e30: 6123 str r3, [r4, #16] + 8007e32: f89d 3033 ldrb.w r3, [sp, #51] ; 0x33 + 8007e36: 2b00 cmp r3, #0 + 8007e38: d09b beq.n 8007d72 <_printf_float+0xa2> + 8007e3a: 232d movs r3, #45 ; 0x2d + 8007e3c: f884 3043 strb.w r3, [r4, #67] ; 0x43 + 8007e40: e797 b.n 8007d72 <_printf_float+0xa2> + 8007e42: 2947 cmp r1, #71 ; 0x47 + 8007e44: d1bc bne.n 8007dc0 <_printf_float+0xf0> + 8007e46: 2b00 cmp r3, #0 + 8007e48: d1ba bne.n 8007dc0 <_printf_float+0xf0> + 8007e4a: 2301 movs r3, #1 + 8007e4c: e7b7 b.n 8007dbe <_printf_float+0xee> + 8007e4e: f1b9 0f66 cmp.w r9, #102 ; 0x66 + 8007e52: d118 bne.n 8007e86 <_printf_float+0x1b6> + 8007e54: 2900 cmp r1, #0 + 8007e56: 6863 ldr r3, [r4, #4] + 8007e58: dd0b ble.n 8007e72 <_printf_float+0x1a2> + 8007e5a: 6121 str r1, [r4, #16] + 8007e5c: b913 cbnz r3, 8007e64 <_printf_float+0x194> + 8007e5e: 6822 ldr r2, [r4, #0] + 8007e60: 07d0 lsls r0, r2, #31 + 8007e62: d502 bpl.n 8007e6a <_printf_float+0x19a> + 8007e64: 3301 adds r3, #1 + 8007e66: 440b add r3, r1 + 8007e68: 6123 str r3, [r4, #16] + 8007e6a: f04f 0a00 mov.w sl, #0 + 8007e6e: 65a1 str r1, [r4, #88] ; 0x58 + 8007e70: e7df b.n 8007e32 <_printf_float+0x162> + 8007e72: b913 cbnz r3, 8007e7a <_printf_float+0x1aa> + 8007e74: 6822 ldr r2, [r4, #0] + 8007e76: 07d2 lsls r2, r2, #31 + 8007e78: d501 bpl.n 8007e7e <_printf_float+0x1ae> + 8007e7a: 3302 adds r3, #2 + 8007e7c: e7f4 b.n 8007e68 <_printf_float+0x198> + 8007e7e: 2301 movs r3, #1 + 8007e80: e7f2 b.n 8007e68 <_printf_float+0x198> + 8007e82: f04f 0967 mov.w r9, #103 ; 0x67 + 8007e86: 9b0e ldr r3, [sp, #56] ; 0x38 + 8007e88: 4299 cmp r1, r3 + 8007e8a: db05 blt.n 8007e98 <_printf_float+0x1c8> + 8007e8c: 6823 ldr r3, [r4, #0] + 8007e8e: 6121 str r1, [r4, #16] + 8007e90: 07d8 lsls r0, r3, #31 + 8007e92: d5ea bpl.n 8007e6a <_printf_float+0x19a> + 8007e94: 1c4b adds r3, r1, #1 + 8007e96: e7e7 b.n 8007e68 <_printf_float+0x198> + 8007e98: 2900 cmp r1, #0 + 8007e9a: bfcc ite gt + 8007e9c: 2201 movgt r2, #1 + 8007e9e: f1c1 0202 rsble r2, r1, #2 + 8007ea2: 4413 add r3, r2 + 8007ea4: e7e0 b.n 8007e68 <_printf_float+0x198> + 8007ea6: 6823 ldr r3, [r4, #0] + 8007ea8: 055a lsls r2, r3, #21 + 8007eaa: d407 bmi.n 8007ebc <_printf_float+0x1ec> + 8007eac: 6923 ldr r3, [r4, #16] + 8007eae: 4642 mov r2, r8 + 8007eb0: 4631 mov r1, r6 + 8007eb2: 4628 mov r0, r5 + 8007eb4: 47b8 blx r7 + 8007eb6: 3001 adds r0, #1 + 8007eb8: d12b bne.n 8007f12 <_printf_float+0x242> + 8007eba: e764 b.n 8007d86 <_printf_float+0xb6> + 8007ebc: f1b9 0f65 cmp.w r9, #101 ; 0x65 + 8007ec0: f240 80dd bls.w 800807e <_printf_float+0x3ae> + 8007ec4: e9d4 0112 ldrd r0, r1, [r4, #72] ; 0x48 + 8007ec8: 2200 movs r2, #0 + 8007eca: 2300 movs r3, #0 + 8007ecc: f7f8 fdd8 bl 8000a80 <__aeabi_dcmpeq> + 8007ed0: 2800 cmp r0, #0 + 8007ed2: d033 beq.n 8007f3c <_printf_float+0x26c> + 8007ed4: 2301 movs r3, #1 + 8007ed6: 4631 mov r1, r6 + 8007ed8: 4628 mov r0, r5 + 8007eda: 4a35 ldr r2, [pc, #212] ; (8007fb0 <_printf_float+0x2e0>) + 8007edc: 47b8 blx r7 + 8007ede: 3001 adds r0, #1 + 8007ee0: f43f af51 beq.w 8007d86 <_printf_float+0xb6> + 8007ee4: e9dd 230d ldrd r2, r3, [sp, #52] ; 0x34 + 8007ee8: 429a cmp r2, r3 + 8007eea: db02 blt.n 8007ef2 <_printf_float+0x222> + 8007eec: 6823 ldr r3, [r4, #0] + 8007eee: 07d8 lsls r0, r3, #31 + 8007ef0: d50f bpl.n 8007f12 <_printf_float+0x242> + 8007ef2: e9dd 2309 ldrd r2, r3, [sp, #36] ; 0x24 + 8007ef6: 4631 mov r1, r6 + 8007ef8: 4628 mov r0, r5 + 8007efa: 47b8 blx r7 + 8007efc: 3001 adds r0, #1 + 8007efe: f43f af42 beq.w 8007d86 <_printf_float+0xb6> + 8007f02: f04f 0800 mov.w r8, #0 + 8007f06: f104 091a add.w r9, r4, #26 + 8007f0a: 9b0e ldr r3, [sp, #56] ; 0x38 + 8007f0c: 3b01 subs r3, #1 + 8007f0e: 4543 cmp r3, r8 + 8007f10: dc09 bgt.n 8007f26 <_printf_float+0x256> + 8007f12: 6823 ldr r3, [r4, #0] + 8007f14: 079b lsls r3, r3, #30 + 8007f16: f100 8102 bmi.w 800811e <_printf_float+0x44e> + 8007f1a: 68e0 ldr r0, [r4, #12] + 8007f1c: 9b0f ldr r3, [sp, #60] ; 0x3c + 8007f1e: 4298 cmp r0, r3 + 8007f20: bfb8 it lt + 8007f22: 4618 movlt r0, r3 + 8007f24: e731 b.n 8007d8a <_printf_float+0xba> + 8007f26: 2301 movs r3, #1 + 8007f28: 464a mov r2, r9 + 8007f2a: 4631 mov r1, r6 + 8007f2c: 4628 mov r0, r5 + 8007f2e: 47b8 blx r7 + 8007f30: 3001 adds r0, #1 + 8007f32: f43f af28 beq.w 8007d86 <_printf_float+0xb6> + 8007f36: f108 0801 add.w r8, r8, #1 + 8007f3a: e7e6 b.n 8007f0a <_printf_float+0x23a> + 8007f3c: 9b0d ldr r3, [sp, #52] ; 0x34 + 8007f3e: 2b00 cmp r3, #0 + 8007f40: dc38 bgt.n 8007fb4 <_printf_float+0x2e4> + 8007f42: 2301 movs r3, #1 + 8007f44: 4631 mov r1, r6 + 8007f46: 4628 mov r0, r5 + 8007f48: 4a19 ldr r2, [pc, #100] ; (8007fb0 <_printf_float+0x2e0>) + 8007f4a: 47b8 blx r7 + 8007f4c: 3001 adds r0, #1 + 8007f4e: f43f af1a beq.w 8007d86 <_printf_float+0xb6> + 8007f52: e9dd 230d ldrd r2, r3, [sp, #52] ; 0x34 + 8007f56: 4313 orrs r3, r2 + 8007f58: d102 bne.n 8007f60 <_printf_float+0x290> + 8007f5a: 6823 ldr r3, [r4, #0] + 8007f5c: 07d9 lsls r1, r3, #31 + 8007f5e: d5d8 bpl.n 8007f12 <_printf_float+0x242> + 8007f60: e9dd 2309 ldrd r2, r3, [sp, #36] ; 0x24 + 8007f64: 4631 mov r1, r6 + 8007f66: 4628 mov r0, r5 + 8007f68: 47b8 blx r7 + 8007f6a: 3001 adds r0, #1 + 8007f6c: f43f af0b beq.w 8007d86 <_printf_float+0xb6> + 8007f70: f04f 0900 mov.w r9, #0 + 8007f74: f104 0a1a add.w sl, r4, #26 + 8007f78: 9b0d ldr r3, [sp, #52] ; 0x34 + 8007f7a: 425b negs r3, r3 + 8007f7c: 454b cmp r3, r9 + 8007f7e: dc01 bgt.n 8007f84 <_printf_float+0x2b4> + 8007f80: 9b0e ldr r3, [sp, #56] ; 0x38 + 8007f82: e794 b.n 8007eae <_printf_float+0x1de> + 8007f84: 2301 movs r3, #1 + 8007f86: 4652 mov r2, sl + 8007f88: 4631 mov r1, r6 + 8007f8a: 4628 mov r0, r5 + 8007f8c: 47b8 blx r7 + 8007f8e: 3001 adds r0, #1 + 8007f90: f43f aef9 beq.w 8007d86 <_printf_float+0xb6> + 8007f94: f109 0901 add.w r9, r9, #1 + 8007f98: e7ee b.n 8007f78 <_printf_float+0x2a8> + 8007f9a: bf00 nop + 8007f9c: 7fefffff .word 0x7fefffff + 8007fa0: 0800b360 .word 0x0800b360 + 8007fa4: 0800b364 .word 0x0800b364 + 8007fa8: 0800b36c .word 0x0800b36c + 8007fac: 0800b368 .word 0x0800b368 + 8007fb0: 0800b370 .word 0x0800b370 + 8007fb4: 9a0e ldr r2, [sp, #56] ; 0x38 + 8007fb6: 6da3 ldr r3, [r4, #88] ; 0x58 + 8007fb8: 429a cmp r2, r3 + 8007fba: bfa8 it ge + 8007fbc: 461a movge r2, r3 + 8007fbe: 2a00 cmp r2, #0 + 8007fc0: 4691 mov r9, r2 + 8007fc2: dc37 bgt.n 8008034 <_printf_float+0x364> + 8007fc4: f04f 0b00 mov.w fp, #0 + 8007fc8: ea29 79e9 bic.w r9, r9, r9, asr #31 + 8007fcc: f104 021a add.w r2, r4, #26 + 8007fd0: f8d4 a058 ldr.w sl, [r4, #88] ; 0x58 + 8007fd4: ebaa 0309 sub.w r3, sl, r9 + 8007fd8: 455b cmp r3, fp + 8007fda: dc33 bgt.n 8008044 <_printf_float+0x374> + 8007fdc: e9dd 230d ldrd r2, r3, [sp, #52] ; 0x34 + 8007fe0: 429a cmp r2, r3 + 8007fe2: db3b blt.n 800805c <_printf_float+0x38c> + 8007fe4: 6823 ldr r3, [r4, #0] + 8007fe6: 07da lsls r2, r3, #31 + 8007fe8: d438 bmi.n 800805c <_printf_float+0x38c> + 8007fea: 9a0e ldr r2, [sp, #56] ; 0x38 + 8007fec: 990d ldr r1, [sp, #52] ; 0x34 + 8007fee: eba2 030a sub.w r3, r2, sl + 8007ff2: eba2 0901 sub.w r9, r2, r1 + 8007ff6: 4599 cmp r9, r3 + 8007ff8: bfa8 it ge + 8007ffa: 4699 movge r9, r3 + 8007ffc: f1b9 0f00 cmp.w r9, #0 + 8008000: dc34 bgt.n 800806c <_printf_float+0x39c> + 8008002: f04f 0800 mov.w r8, #0 + 8008006: ea29 79e9 bic.w r9, r9, r9, asr #31 + 800800a: f104 0a1a add.w sl, r4, #26 + 800800e: e9dd 230d ldrd r2, r3, [sp, #52] ; 0x34 + 8008012: 1a9b subs r3, r3, r2 + 8008014: eba3 0309 sub.w r3, r3, r9 + 8008018: 4543 cmp r3, r8 + 800801a: f77f af7a ble.w 8007f12 <_printf_float+0x242> + 800801e: 2301 movs r3, #1 + 8008020: 4652 mov r2, sl + 8008022: 4631 mov r1, r6 + 8008024: 4628 mov r0, r5 + 8008026: 47b8 blx r7 + 8008028: 3001 adds r0, #1 + 800802a: f43f aeac beq.w 8007d86 <_printf_float+0xb6> + 800802e: f108 0801 add.w r8, r8, #1 + 8008032: e7ec b.n 800800e <_printf_float+0x33e> + 8008034: 4613 mov r3, r2 + 8008036: 4631 mov r1, r6 + 8008038: 4642 mov r2, r8 + 800803a: 4628 mov r0, r5 + 800803c: 47b8 blx r7 + 800803e: 3001 adds r0, #1 + 8008040: d1c0 bne.n 8007fc4 <_printf_float+0x2f4> + 8008042: e6a0 b.n 8007d86 <_printf_float+0xb6> + 8008044: 2301 movs r3, #1 + 8008046: 4631 mov r1, r6 + 8008048: 4628 mov r0, r5 + 800804a: 920b str r2, [sp, #44] ; 0x2c + 800804c: 47b8 blx r7 + 800804e: 3001 adds r0, #1 + 8008050: f43f ae99 beq.w 8007d86 <_printf_float+0xb6> + 8008054: 9a0b ldr r2, [sp, #44] ; 0x2c + 8008056: f10b 0b01 add.w fp, fp, #1 + 800805a: e7b9 b.n 8007fd0 <_printf_float+0x300> + 800805c: 4631 mov r1, r6 + 800805e: e9dd 2309 ldrd r2, r3, [sp, #36] ; 0x24 + 8008062: 4628 mov r0, r5 + 8008064: 47b8 blx r7 + 8008066: 3001 adds r0, #1 + 8008068: d1bf bne.n 8007fea <_printf_float+0x31a> + 800806a: e68c b.n 8007d86 <_printf_float+0xb6> + 800806c: 464b mov r3, r9 + 800806e: 4631 mov r1, r6 + 8008070: 4628 mov r0, r5 + 8008072: eb08 020a add.w r2, r8, sl + 8008076: 47b8 blx r7 + 8008078: 3001 adds r0, #1 + 800807a: d1c2 bne.n 8008002 <_printf_float+0x332> + 800807c: e683 b.n 8007d86 <_printf_float+0xb6> + 800807e: 9a0e ldr r2, [sp, #56] ; 0x38 + 8008080: 2a01 cmp r2, #1 + 8008082: dc01 bgt.n 8008088 <_printf_float+0x3b8> + 8008084: 07db lsls r3, r3, #31 + 8008086: d537 bpl.n 80080f8 <_printf_float+0x428> + 8008088: 2301 movs r3, #1 + 800808a: 4642 mov r2, r8 + 800808c: 4631 mov r1, r6 + 800808e: 4628 mov r0, r5 + 8008090: 47b8 blx r7 + 8008092: 3001 adds r0, #1 + 8008094: f43f ae77 beq.w 8007d86 <_printf_float+0xb6> + 8008098: e9dd 2309 ldrd r2, r3, [sp, #36] ; 0x24 + 800809c: 4631 mov r1, r6 + 800809e: 4628 mov r0, r5 + 80080a0: 47b8 blx r7 + 80080a2: 3001 adds r0, #1 + 80080a4: f43f ae6f beq.w 8007d86 <_printf_float+0xb6> + 80080a8: e9d4 0112 ldrd r0, r1, [r4, #72] ; 0x48 + 80080ac: 2200 movs r2, #0 + 80080ae: 2300 movs r3, #0 + 80080b0: f7f8 fce6 bl 8000a80 <__aeabi_dcmpeq> + 80080b4: b9d8 cbnz r0, 80080ee <_printf_float+0x41e> + 80080b6: 9b0e ldr r3, [sp, #56] ; 0x38 + 80080b8: f108 0201 add.w r2, r8, #1 + 80080bc: 3b01 subs r3, #1 + 80080be: 4631 mov r1, r6 + 80080c0: 4628 mov r0, r5 + 80080c2: 47b8 blx r7 + 80080c4: 3001 adds r0, #1 + 80080c6: d10e bne.n 80080e6 <_printf_float+0x416> + 80080c8: e65d b.n 8007d86 <_printf_float+0xb6> + 80080ca: 2301 movs r3, #1 + 80080cc: 464a mov r2, r9 + 80080ce: 4631 mov r1, r6 + 80080d0: 4628 mov r0, r5 + 80080d2: 47b8 blx r7 + 80080d4: 3001 adds r0, #1 + 80080d6: f43f ae56 beq.w 8007d86 <_printf_float+0xb6> + 80080da: f108 0801 add.w r8, r8, #1 + 80080de: 9b0e ldr r3, [sp, #56] ; 0x38 + 80080e0: 3b01 subs r3, #1 + 80080e2: 4543 cmp r3, r8 + 80080e4: dcf1 bgt.n 80080ca <_printf_float+0x3fa> + 80080e6: 4653 mov r3, sl + 80080e8: f104 0250 add.w r2, r4, #80 ; 0x50 + 80080ec: e6e0 b.n 8007eb0 <_printf_float+0x1e0> + 80080ee: f04f 0800 mov.w r8, #0 + 80080f2: f104 091a add.w r9, r4, #26 + 80080f6: e7f2 b.n 80080de <_printf_float+0x40e> + 80080f8: 2301 movs r3, #1 + 80080fa: 4642 mov r2, r8 + 80080fc: e7df b.n 80080be <_printf_float+0x3ee> + 80080fe: 2301 movs r3, #1 + 8008100: 464a mov r2, r9 + 8008102: 4631 mov r1, r6 + 8008104: 4628 mov r0, r5 + 8008106: 47b8 blx r7 + 8008108: 3001 adds r0, #1 + 800810a: f43f ae3c beq.w 8007d86 <_printf_float+0xb6> + 800810e: f108 0801 add.w r8, r8, #1 + 8008112: 68e3 ldr r3, [r4, #12] + 8008114: 990f ldr r1, [sp, #60] ; 0x3c + 8008116: 1a5b subs r3, r3, r1 + 8008118: 4543 cmp r3, r8 + 800811a: dcf0 bgt.n 80080fe <_printf_float+0x42e> + 800811c: e6fd b.n 8007f1a <_printf_float+0x24a> + 800811e: f04f 0800 mov.w r8, #0 + 8008122: f104 0919 add.w r9, r4, #25 + 8008126: e7f4 b.n 8008112 <_printf_float+0x442> -0800723c <_printf_common>: - 800723c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8007240: 4616 mov r6, r2 - 8007242: 4699 mov r9, r3 - 8007244: 688a ldr r2, [r1, #8] - 8007246: 690b ldr r3, [r1, #16] - 8007248: 4607 mov r7, r0 - 800724a: 4293 cmp r3, r2 - 800724c: bfb8 it lt - 800724e: 4613 movlt r3, r2 - 8007250: 6033 str r3, [r6, #0] - 8007252: f891 2043 ldrb.w r2, [r1, #67] ; 0x43 - 8007256: 460c mov r4, r1 - 8007258: f8dd 8020 ldr.w r8, [sp, #32] - 800725c: b10a cbz r2, 8007262 <_printf_common+0x26> - 800725e: 3301 adds r3, #1 - 8007260: 6033 str r3, [r6, #0] - 8007262: 6823 ldr r3, [r4, #0] - 8007264: 0699 lsls r1, r3, #26 - 8007266: bf42 ittt mi - 8007268: 6833 ldrmi r3, [r6, #0] - 800726a: 3302 addmi r3, #2 - 800726c: 6033 strmi r3, [r6, #0] - 800726e: 6825 ldr r5, [r4, #0] - 8007270: f015 0506 ands.w r5, r5, #6 - 8007274: d106 bne.n 8007284 <_printf_common+0x48> - 8007276: f104 0a19 add.w sl, r4, #25 - 800727a: 68e3 ldr r3, [r4, #12] - 800727c: 6832 ldr r2, [r6, #0] - 800727e: 1a9b subs r3, r3, r2 - 8007280: 42ab cmp r3, r5 - 8007282: dc28 bgt.n 80072d6 <_printf_common+0x9a> - 8007284: f894 2043 ldrb.w r2, [r4, #67] ; 0x43 - 8007288: 1e13 subs r3, r2, #0 - 800728a: 6822 ldr r2, [r4, #0] - 800728c: bf18 it ne - 800728e: 2301 movne r3, #1 - 8007290: 0692 lsls r2, r2, #26 - 8007292: d42d bmi.n 80072f0 <_printf_common+0xb4> - 8007294: 4649 mov r1, r9 - 8007296: 4638 mov r0, r7 - 8007298: f104 0243 add.w r2, r4, #67 ; 0x43 - 800729c: 47c0 blx r8 - 800729e: 3001 adds r0, #1 - 80072a0: d020 beq.n 80072e4 <_printf_common+0xa8> - 80072a2: 6823 ldr r3, [r4, #0] - 80072a4: 68e5 ldr r5, [r4, #12] - 80072a6: f003 0306 and.w r3, r3, #6 - 80072aa: 2b04 cmp r3, #4 - 80072ac: bf18 it ne - 80072ae: 2500 movne r5, #0 - 80072b0: 6832 ldr r2, [r6, #0] - 80072b2: f04f 0600 mov.w r6, #0 - 80072b6: 68a3 ldr r3, [r4, #8] - 80072b8: bf08 it eq - 80072ba: 1aad subeq r5, r5, r2 - 80072bc: 6922 ldr r2, [r4, #16] - 80072be: bf08 it eq - 80072c0: ea25 75e5 biceq.w r5, r5, r5, asr #31 - 80072c4: 4293 cmp r3, r2 - 80072c6: bfc4 itt gt - 80072c8: 1a9b subgt r3, r3, r2 - 80072ca: 18ed addgt r5, r5, r3 - 80072cc: 341a adds r4, #26 - 80072ce: 42b5 cmp r5, r6 - 80072d0: d11a bne.n 8007308 <_printf_common+0xcc> - 80072d2: 2000 movs r0, #0 - 80072d4: e008 b.n 80072e8 <_printf_common+0xac> - 80072d6: 2301 movs r3, #1 - 80072d8: 4652 mov r2, sl - 80072da: 4649 mov r1, r9 - 80072dc: 4638 mov r0, r7 - 80072de: 47c0 blx r8 - 80072e0: 3001 adds r0, #1 - 80072e2: d103 bne.n 80072ec <_printf_common+0xb0> - 80072e4: f04f 30ff mov.w r0, #4294967295 - 80072e8: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 80072ec: 3501 adds r5, #1 - 80072ee: e7c4 b.n 800727a <_printf_common+0x3e> - 80072f0: 2030 movs r0, #48 ; 0x30 - 80072f2: 18e1 adds r1, r4, r3 - 80072f4: f881 0043 strb.w r0, [r1, #67] ; 0x43 - 80072f8: 1c5a adds r2, r3, #1 - 80072fa: f894 1045 ldrb.w r1, [r4, #69] ; 0x45 - 80072fe: 4422 add r2, r4 - 8007300: 3302 adds r3, #2 - 8007302: f882 1043 strb.w r1, [r2, #67] ; 0x43 - 8007306: e7c5 b.n 8007294 <_printf_common+0x58> - 8007308: 2301 movs r3, #1 - 800730a: 4622 mov r2, r4 - 800730c: 4649 mov r1, r9 - 800730e: 4638 mov r0, r7 - 8007310: 47c0 blx r8 - 8007312: 3001 adds r0, #1 - 8007314: d0e6 beq.n 80072e4 <_printf_common+0xa8> - 8007316: 3601 adds r6, #1 - 8007318: e7d9 b.n 80072ce <_printf_common+0x92> +08008128 <_printf_common>: + 8008128: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 800812c: 4616 mov r6, r2 + 800812e: 4699 mov r9, r3 + 8008130: 688a ldr r2, [r1, #8] + 8008132: 690b ldr r3, [r1, #16] + 8008134: 4607 mov r7, r0 + 8008136: 4293 cmp r3, r2 + 8008138: bfb8 it lt + 800813a: 4613 movlt r3, r2 + 800813c: 6033 str r3, [r6, #0] + 800813e: f891 2043 ldrb.w r2, [r1, #67] ; 0x43 + 8008142: 460c mov r4, r1 + 8008144: f8dd 8020 ldr.w r8, [sp, #32] + 8008148: b10a cbz r2, 800814e <_printf_common+0x26> + 800814a: 3301 adds r3, #1 + 800814c: 6033 str r3, [r6, #0] + 800814e: 6823 ldr r3, [r4, #0] + 8008150: 0699 lsls r1, r3, #26 + 8008152: bf42 ittt mi + 8008154: 6833 ldrmi r3, [r6, #0] + 8008156: 3302 addmi r3, #2 + 8008158: 6033 strmi r3, [r6, #0] + 800815a: 6825 ldr r5, [r4, #0] + 800815c: f015 0506 ands.w r5, r5, #6 + 8008160: d106 bne.n 8008170 <_printf_common+0x48> + 8008162: f104 0a19 add.w sl, r4, #25 + 8008166: 68e3 ldr r3, [r4, #12] + 8008168: 6832 ldr r2, [r6, #0] + 800816a: 1a9b subs r3, r3, r2 + 800816c: 42ab cmp r3, r5 + 800816e: dc28 bgt.n 80081c2 <_printf_common+0x9a> + 8008170: f894 2043 ldrb.w r2, [r4, #67] ; 0x43 + 8008174: 1e13 subs r3, r2, #0 + 8008176: 6822 ldr r2, [r4, #0] + 8008178: bf18 it ne + 800817a: 2301 movne r3, #1 + 800817c: 0692 lsls r2, r2, #26 + 800817e: d42d bmi.n 80081dc <_printf_common+0xb4> + 8008180: 4649 mov r1, r9 + 8008182: 4638 mov r0, r7 + 8008184: f104 0243 add.w r2, r4, #67 ; 0x43 + 8008188: 47c0 blx r8 + 800818a: 3001 adds r0, #1 + 800818c: d020 beq.n 80081d0 <_printf_common+0xa8> + 800818e: 6823 ldr r3, [r4, #0] + 8008190: 68e5 ldr r5, [r4, #12] + 8008192: f003 0306 and.w r3, r3, #6 + 8008196: 2b04 cmp r3, #4 + 8008198: bf18 it ne + 800819a: 2500 movne r5, #0 + 800819c: 6832 ldr r2, [r6, #0] + 800819e: f04f 0600 mov.w r6, #0 + 80081a2: 68a3 ldr r3, [r4, #8] + 80081a4: bf08 it eq + 80081a6: 1aad subeq r5, r5, r2 + 80081a8: 6922 ldr r2, [r4, #16] + 80081aa: bf08 it eq + 80081ac: ea25 75e5 biceq.w r5, r5, r5, asr #31 + 80081b0: 4293 cmp r3, r2 + 80081b2: bfc4 itt gt + 80081b4: 1a9b subgt r3, r3, r2 + 80081b6: 18ed addgt r5, r5, r3 + 80081b8: 341a adds r4, #26 + 80081ba: 42b5 cmp r5, r6 + 80081bc: d11a bne.n 80081f4 <_printf_common+0xcc> + 80081be: 2000 movs r0, #0 + 80081c0: e008 b.n 80081d4 <_printf_common+0xac> + 80081c2: 2301 movs r3, #1 + 80081c4: 4652 mov r2, sl + 80081c6: 4649 mov r1, r9 + 80081c8: 4638 mov r0, r7 + 80081ca: 47c0 blx r8 + 80081cc: 3001 adds r0, #1 + 80081ce: d103 bne.n 80081d8 <_printf_common+0xb0> + 80081d0: f04f 30ff mov.w r0, #4294967295 + 80081d4: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 80081d8: 3501 adds r5, #1 + 80081da: e7c4 b.n 8008166 <_printf_common+0x3e> + 80081dc: 2030 movs r0, #48 ; 0x30 + 80081de: 18e1 adds r1, r4, r3 + 80081e0: f881 0043 strb.w r0, [r1, #67] ; 0x43 + 80081e4: 1c5a adds r2, r3, #1 + 80081e6: f894 1045 ldrb.w r1, [r4, #69] ; 0x45 + 80081ea: 4422 add r2, r4 + 80081ec: 3302 adds r3, #2 + 80081ee: f882 1043 strb.w r1, [r2, #67] ; 0x43 + 80081f2: e7c5 b.n 8008180 <_printf_common+0x58> + 80081f4: 2301 movs r3, #1 + 80081f6: 4622 mov r2, r4 + 80081f8: 4649 mov r1, r9 + 80081fa: 4638 mov r0, r7 + 80081fc: 47c0 blx r8 + 80081fe: 3001 adds r0, #1 + 8008200: d0e6 beq.n 80081d0 <_printf_common+0xa8> + 8008202: 3601 adds r6, #1 + 8008204: e7d9 b.n 80081ba <_printf_common+0x92> ... -0800731c <_printf_i>: - 800731c: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} - 8007320: 460c mov r4, r1 - 8007322: 7e27 ldrb r7, [r4, #24] - 8007324: 4691 mov r9, r2 - 8007326: 2f78 cmp r7, #120 ; 0x78 - 8007328: 4680 mov r8, r0 - 800732a: 469a mov sl, r3 - 800732c: 990c ldr r1, [sp, #48] ; 0x30 - 800732e: f104 0243 add.w r2, r4, #67 ; 0x43 - 8007332: d807 bhi.n 8007344 <_printf_i+0x28> - 8007334: 2f62 cmp r7, #98 ; 0x62 - 8007336: d80a bhi.n 800734e <_printf_i+0x32> - 8007338: 2f00 cmp r7, #0 - 800733a: f000 80d9 beq.w 80074f0 <_printf_i+0x1d4> - 800733e: 2f58 cmp r7, #88 ; 0x58 - 8007340: f000 80a4 beq.w 800748c <_printf_i+0x170> - 8007344: f104 0642 add.w r6, r4, #66 ; 0x42 - 8007348: f884 7042 strb.w r7, [r4, #66] ; 0x42 - 800734c: e03a b.n 80073c4 <_printf_i+0xa8> - 800734e: f1a7 0363 sub.w r3, r7, #99 ; 0x63 - 8007352: 2b15 cmp r3, #21 - 8007354: d8f6 bhi.n 8007344 <_printf_i+0x28> - 8007356: a001 add r0, pc, #4 ; (adr r0, 800735c <_printf_i+0x40>) - 8007358: f850 f023 ldr.w pc, [r0, r3, lsl #2] - 800735c: 080073b5 .word 0x080073b5 - 8007360: 080073c9 .word 0x080073c9 - 8007364: 08007345 .word 0x08007345 - 8007368: 08007345 .word 0x08007345 - 800736c: 08007345 .word 0x08007345 - 8007370: 08007345 .word 0x08007345 - 8007374: 080073c9 .word 0x080073c9 - 8007378: 08007345 .word 0x08007345 - 800737c: 08007345 .word 0x08007345 - 8007380: 08007345 .word 0x08007345 - 8007384: 08007345 .word 0x08007345 - 8007388: 080074d7 .word 0x080074d7 - 800738c: 080073f9 .word 0x080073f9 - 8007390: 080074b9 .word 0x080074b9 - 8007394: 08007345 .word 0x08007345 - 8007398: 08007345 .word 0x08007345 - 800739c: 080074f9 .word 0x080074f9 - 80073a0: 08007345 .word 0x08007345 - 80073a4: 080073f9 .word 0x080073f9 - 80073a8: 08007345 .word 0x08007345 - 80073ac: 08007345 .word 0x08007345 - 80073b0: 080074c1 .word 0x080074c1 - 80073b4: 680b ldr r3, [r1, #0] - 80073b6: f104 0642 add.w r6, r4, #66 ; 0x42 - 80073ba: 1d1a adds r2, r3, #4 - 80073bc: 681b ldr r3, [r3, #0] - 80073be: 600a str r2, [r1, #0] - 80073c0: f884 3042 strb.w r3, [r4, #66] ; 0x42 - 80073c4: 2301 movs r3, #1 - 80073c6: e0a4 b.n 8007512 <_printf_i+0x1f6> - 80073c8: 6825 ldr r5, [r4, #0] - 80073ca: 6808 ldr r0, [r1, #0] - 80073cc: 062e lsls r6, r5, #24 - 80073ce: f100 0304 add.w r3, r0, #4 - 80073d2: d50a bpl.n 80073ea <_printf_i+0xce> - 80073d4: 6805 ldr r5, [r0, #0] - 80073d6: 600b str r3, [r1, #0] - 80073d8: 2d00 cmp r5, #0 - 80073da: da03 bge.n 80073e4 <_printf_i+0xc8> - 80073dc: 232d movs r3, #45 ; 0x2d - 80073de: 426d negs r5, r5 - 80073e0: f884 3043 strb.w r3, [r4, #67] ; 0x43 - 80073e4: 230a movs r3, #10 - 80073e6: 485e ldr r0, [pc, #376] ; (8007560 <_printf_i+0x244>) - 80073e8: e019 b.n 800741e <_printf_i+0x102> - 80073ea: f015 0f40 tst.w r5, #64 ; 0x40 - 80073ee: 6805 ldr r5, [r0, #0] - 80073f0: 600b str r3, [r1, #0] - 80073f2: bf18 it ne - 80073f4: b22d sxthne r5, r5 - 80073f6: e7ef b.n 80073d8 <_printf_i+0xbc> - 80073f8: 680b ldr r3, [r1, #0] - 80073fa: 6825 ldr r5, [r4, #0] - 80073fc: 1d18 adds r0, r3, #4 - 80073fe: 6008 str r0, [r1, #0] - 8007400: 0628 lsls r0, r5, #24 - 8007402: d501 bpl.n 8007408 <_printf_i+0xec> - 8007404: 681d ldr r5, [r3, #0] - 8007406: e002 b.n 800740e <_printf_i+0xf2> - 8007408: 0669 lsls r1, r5, #25 - 800740a: d5fb bpl.n 8007404 <_printf_i+0xe8> - 800740c: 881d ldrh r5, [r3, #0] - 800740e: 2f6f cmp r7, #111 ; 0x6f - 8007410: bf0c ite eq - 8007412: 2308 moveq r3, #8 - 8007414: 230a movne r3, #10 - 8007416: 4852 ldr r0, [pc, #328] ; (8007560 <_printf_i+0x244>) - 8007418: 2100 movs r1, #0 - 800741a: f884 1043 strb.w r1, [r4, #67] ; 0x43 - 800741e: 6866 ldr r6, [r4, #4] - 8007420: 2e00 cmp r6, #0 - 8007422: bfa8 it ge - 8007424: 6821 ldrge r1, [r4, #0] - 8007426: 60a6 str r6, [r4, #8] - 8007428: bfa4 itt ge - 800742a: f021 0104 bicge.w r1, r1, #4 - 800742e: 6021 strge r1, [r4, #0] - 8007430: b90d cbnz r5, 8007436 <_printf_i+0x11a> - 8007432: 2e00 cmp r6, #0 - 8007434: d04d beq.n 80074d2 <_printf_i+0x1b6> - 8007436: 4616 mov r6, r2 - 8007438: fbb5 f1f3 udiv r1, r5, r3 - 800743c: fb03 5711 mls r7, r3, r1, r5 - 8007440: 5dc7 ldrb r7, [r0, r7] - 8007442: f806 7d01 strb.w r7, [r6, #-1]! - 8007446: 462f mov r7, r5 - 8007448: 42bb cmp r3, r7 - 800744a: 460d mov r5, r1 - 800744c: d9f4 bls.n 8007438 <_printf_i+0x11c> - 800744e: 2b08 cmp r3, #8 - 8007450: d10b bne.n 800746a <_printf_i+0x14e> - 8007452: 6823 ldr r3, [r4, #0] - 8007454: 07df lsls r7, r3, #31 - 8007456: d508 bpl.n 800746a <_printf_i+0x14e> - 8007458: 6923 ldr r3, [r4, #16] - 800745a: 6861 ldr r1, [r4, #4] - 800745c: 4299 cmp r1, r3 - 800745e: bfde ittt le - 8007460: 2330 movle r3, #48 ; 0x30 - 8007462: f806 3c01 strble.w r3, [r6, #-1] - 8007466: f106 36ff addle.w r6, r6, #4294967295 - 800746a: 1b92 subs r2, r2, r6 - 800746c: 6122 str r2, [r4, #16] - 800746e: 464b mov r3, r9 - 8007470: 4621 mov r1, r4 - 8007472: 4640 mov r0, r8 - 8007474: f8cd a000 str.w sl, [sp] - 8007478: aa03 add r2, sp, #12 - 800747a: f7ff fedf bl 800723c <_printf_common> - 800747e: 3001 adds r0, #1 - 8007480: d14c bne.n 800751c <_printf_i+0x200> - 8007482: f04f 30ff mov.w r0, #4294967295 - 8007486: b004 add sp, #16 - 8007488: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 800748c: 4834 ldr r0, [pc, #208] ; (8007560 <_printf_i+0x244>) - 800748e: f884 7045 strb.w r7, [r4, #69] ; 0x45 - 8007492: 680e ldr r6, [r1, #0] - 8007494: 6823 ldr r3, [r4, #0] - 8007496: f856 5b04 ldr.w r5, [r6], #4 - 800749a: 061f lsls r7, r3, #24 - 800749c: 600e str r6, [r1, #0] - 800749e: d514 bpl.n 80074ca <_printf_i+0x1ae> - 80074a0: 07d9 lsls r1, r3, #31 - 80074a2: bf44 itt mi - 80074a4: f043 0320 orrmi.w r3, r3, #32 - 80074a8: 6023 strmi r3, [r4, #0] - 80074aa: b91d cbnz r5, 80074b4 <_printf_i+0x198> - 80074ac: 6823 ldr r3, [r4, #0] - 80074ae: f023 0320 bic.w r3, r3, #32 - 80074b2: 6023 str r3, [r4, #0] - 80074b4: 2310 movs r3, #16 - 80074b6: e7af b.n 8007418 <_printf_i+0xfc> - 80074b8: 6823 ldr r3, [r4, #0] - 80074ba: f043 0320 orr.w r3, r3, #32 - 80074be: 6023 str r3, [r4, #0] - 80074c0: 2378 movs r3, #120 ; 0x78 - 80074c2: 4828 ldr r0, [pc, #160] ; (8007564 <_printf_i+0x248>) - 80074c4: f884 3045 strb.w r3, [r4, #69] ; 0x45 - 80074c8: e7e3 b.n 8007492 <_printf_i+0x176> - 80074ca: 065e lsls r6, r3, #25 - 80074cc: bf48 it mi - 80074ce: b2ad uxthmi r5, r5 - 80074d0: e7e6 b.n 80074a0 <_printf_i+0x184> - 80074d2: 4616 mov r6, r2 - 80074d4: e7bb b.n 800744e <_printf_i+0x132> - 80074d6: 680b ldr r3, [r1, #0] - 80074d8: 6826 ldr r6, [r4, #0] - 80074da: 1d1d adds r5, r3, #4 - 80074dc: 6960 ldr r0, [r4, #20] - 80074de: 600d str r5, [r1, #0] - 80074e0: 0635 lsls r5, r6, #24 - 80074e2: 681b ldr r3, [r3, #0] - 80074e4: d501 bpl.n 80074ea <_printf_i+0x1ce> - 80074e6: 6018 str r0, [r3, #0] - 80074e8: e002 b.n 80074f0 <_printf_i+0x1d4> - 80074ea: 0671 lsls r1, r6, #25 - 80074ec: d5fb bpl.n 80074e6 <_printf_i+0x1ca> - 80074ee: 8018 strh r0, [r3, #0] - 80074f0: 2300 movs r3, #0 - 80074f2: 4616 mov r6, r2 - 80074f4: 6123 str r3, [r4, #16] - 80074f6: e7ba b.n 800746e <_printf_i+0x152> - 80074f8: 680b ldr r3, [r1, #0] - 80074fa: 1d1a adds r2, r3, #4 - 80074fc: 600a str r2, [r1, #0] - 80074fe: 681e ldr r6, [r3, #0] - 8007500: 2100 movs r1, #0 - 8007502: 4630 mov r0, r6 - 8007504: 6862 ldr r2, [r4, #4] - 8007506: f001 f9c1 bl 800888c - 800750a: b108 cbz r0, 8007510 <_printf_i+0x1f4> - 800750c: 1b80 subs r0, r0, r6 - 800750e: 6060 str r0, [r4, #4] - 8007510: 6863 ldr r3, [r4, #4] - 8007512: 6123 str r3, [r4, #16] - 8007514: 2300 movs r3, #0 - 8007516: f884 3043 strb.w r3, [r4, #67] ; 0x43 - 800751a: e7a8 b.n 800746e <_printf_i+0x152> - 800751c: 4632 mov r2, r6 - 800751e: 4649 mov r1, r9 - 8007520: 4640 mov r0, r8 - 8007522: 6923 ldr r3, [r4, #16] - 8007524: 47d0 blx sl - 8007526: 3001 adds r0, #1 - 8007528: d0ab beq.n 8007482 <_printf_i+0x166> - 800752a: 6823 ldr r3, [r4, #0] - 800752c: 079b lsls r3, r3, #30 - 800752e: d413 bmi.n 8007558 <_printf_i+0x23c> - 8007530: 68e0 ldr r0, [r4, #12] - 8007532: 9b03 ldr r3, [sp, #12] - 8007534: 4298 cmp r0, r3 - 8007536: bfb8 it lt - 8007538: 4618 movlt r0, r3 - 800753a: e7a4 b.n 8007486 <_printf_i+0x16a> - 800753c: 2301 movs r3, #1 - 800753e: 4632 mov r2, r6 - 8007540: 4649 mov r1, r9 - 8007542: 4640 mov r0, r8 - 8007544: 47d0 blx sl - 8007546: 3001 adds r0, #1 - 8007548: d09b beq.n 8007482 <_printf_i+0x166> - 800754a: 3501 adds r5, #1 - 800754c: 68e3 ldr r3, [r4, #12] - 800754e: 9903 ldr r1, [sp, #12] - 8007550: 1a5b subs r3, r3, r1 - 8007552: 42ab cmp r3, r5 - 8007554: dcf2 bgt.n 800753c <_printf_i+0x220> - 8007556: e7eb b.n 8007530 <_printf_i+0x214> - 8007558: 2500 movs r5, #0 - 800755a: f104 0619 add.w r6, r4, #25 - 800755e: e7f5 b.n 800754c <_printf_i+0x230> - 8007560: 0800a46a .word 0x0800a46a - 8007564: 0800a47b .word 0x0800a47b +08008208 <_printf_i>: + 8008208: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} + 800820c: 460c mov r4, r1 + 800820e: 7e27 ldrb r7, [r4, #24] + 8008210: 4691 mov r9, r2 + 8008212: 2f78 cmp r7, #120 ; 0x78 + 8008214: 4680 mov r8, r0 + 8008216: 469a mov sl, r3 + 8008218: 990c ldr r1, [sp, #48] ; 0x30 + 800821a: f104 0243 add.w r2, r4, #67 ; 0x43 + 800821e: d807 bhi.n 8008230 <_printf_i+0x28> + 8008220: 2f62 cmp r7, #98 ; 0x62 + 8008222: d80a bhi.n 800823a <_printf_i+0x32> + 8008224: 2f00 cmp r7, #0 + 8008226: f000 80d9 beq.w 80083dc <_printf_i+0x1d4> + 800822a: 2f58 cmp r7, #88 ; 0x58 + 800822c: f000 80a4 beq.w 8008378 <_printf_i+0x170> + 8008230: f104 0642 add.w r6, r4, #66 ; 0x42 + 8008234: f884 7042 strb.w r7, [r4, #66] ; 0x42 + 8008238: e03a b.n 80082b0 <_printf_i+0xa8> + 800823a: f1a7 0363 sub.w r3, r7, #99 ; 0x63 + 800823e: 2b15 cmp r3, #21 + 8008240: d8f6 bhi.n 8008230 <_printf_i+0x28> + 8008242: a001 add r0, pc, #4 ; (adr r0, 8008248 <_printf_i+0x40>) + 8008244: f850 f023 ldr.w pc, [r0, r3, lsl #2] + 8008248: 080082a1 .word 0x080082a1 + 800824c: 080082b5 .word 0x080082b5 + 8008250: 08008231 .word 0x08008231 + 8008254: 08008231 .word 0x08008231 + 8008258: 08008231 .word 0x08008231 + 800825c: 08008231 .word 0x08008231 + 8008260: 080082b5 .word 0x080082b5 + 8008264: 08008231 .word 0x08008231 + 8008268: 08008231 .word 0x08008231 + 800826c: 08008231 .word 0x08008231 + 8008270: 08008231 .word 0x08008231 + 8008274: 080083c3 .word 0x080083c3 + 8008278: 080082e5 .word 0x080082e5 + 800827c: 080083a5 .word 0x080083a5 + 8008280: 08008231 .word 0x08008231 + 8008284: 08008231 .word 0x08008231 + 8008288: 080083e5 .word 0x080083e5 + 800828c: 08008231 .word 0x08008231 + 8008290: 080082e5 .word 0x080082e5 + 8008294: 08008231 .word 0x08008231 + 8008298: 08008231 .word 0x08008231 + 800829c: 080083ad .word 0x080083ad + 80082a0: 680b ldr r3, [r1, #0] + 80082a2: f104 0642 add.w r6, r4, #66 ; 0x42 + 80082a6: 1d1a adds r2, r3, #4 + 80082a8: 681b ldr r3, [r3, #0] + 80082aa: 600a str r2, [r1, #0] + 80082ac: f884 3042 strb.w r3, [r4, #66] ; 0x42 + 80082b0: 2301 movs r3, #1 + 80082b2: e0a4 b.n 80083fe <_printf_i+0x1f6> + 80082b4: 6825 ldr r5, [r4, #0] + 80082b6: 6808 ldr r0, [r1, #0] + 80082b8: 062e lsls r6, r5, #24 + 80082ba: f100 0304 add.w r3, r0, #4 + 80082be: d50a bpl.n 80082d6 <_printf_i+0xce> + 80082c0: 6805 ldr r5, [r0, #0] + 80082c2: 600b str r3, [r1, #0] + 80082c4: 2d00 cmp r5, #0 + 80082c6: da03 bge.n 80082d0 <_printf_i+0xc8> + 80082c8: 232d movs r3, #45 ; 0x2d + 80082ca: 426d negs r5, r5 + 80082cc: f884 3043 strb.w r3, [r4, #67] ; 0x43 + 80082d0: 230a movs r3, #10 + 80082d2: 485e ldr r0, [pc, #376] ; (800844c <_printf_i+0x244>) + 80082d4: e019 b.n 800830a <_printf_i+0x102> + 80082d6: f015 0f40 tst.w r5, #64 ; 0x40 + 80082da: 6805 ldr r5, [r0, #0] + 80082dc: 600b str r3, [r1, #0] + 80082de: bf18 it ne + 80082e0: b22d sxthne r5, r5 + 80082e2: e7ef b.n 80082c4 <_printf_i+0xbc> + 80082e4: 680b ldr r3, [r1, #0] + 80082e6: 6825 ldr r5, [r4, #0] + 80082e8: 1d18 adds r0, r3, #4 + 80082ea: 6008 str r0, [r1, #0] + 80082ec: 0628 lsls r0, r5, #24 + 80082ee: d501 bpl.n 80082f4 <_printf_i+0xec> + 80082f0: 681d ldr r5, [r3, #0] + 80082f2: e002 b.n 80082fa <_printf_i+0xf2> + 80082f4: 0669 lsls r1, r5, #25 + 80082f6: d5fb bpl.n 80082f0 <_printf_i+0xe8> + 80082f8: 881d ldrh r5, [r3, #0] + 80082fa: 2f6f cmp r7, #111 ; 0x6f + 80082fc: bf0c ite eq + 80082fe: 2308 moveq r3, #8 + 8008300: 230a movne r3, #10 + 8008302: 4852 ldr r0, [pc, #328] ; (800844c <_printf_i+0x244>) + 8008304: 2100 movs r1, #0 + 8008306: f884 1043 strb.w r1, [r4, #67] ; 0x43 + 800830a: 6866 ldr r6, [r4, #4] + 800830c: 2e00 cmp r6, #0 + 800830e: bfa8 it ge + 8008310: 6821 ldrge r1, [r4, #0] + 8008312: 60a6 str r6, [r4, #8] + 8008314: bfa4 itt ge + 8008316: f021 0104 bicge.w r1, r1, #4 + 800831a: 6021 strge r1, [r4, #0] + 800831c: b90d cbnz r5, 8008322 <_printf_i+0x11a> + 800831e: 2e00 cmp r6, #0 + 8008320: d04d beq.n 80083be <_printf_i+0x1b6> + 8008322: 4616 mov r6, r2 + 8008324: fbb5 f1f3 udiv r1, r5, r3 + 8008328: fb03 5711 mls r7, r3, r1, r5 + 800832c: 5dc7 ldrb r7, [r0, r7] + 800832e: f806 7d01 strb.w r7, [r6, #-1]! + 8008332: 462f mov r7, r5 + 8008334: 42bb cmp r3, r7 + 8008336: 460d mov r5, r1 + 8008338: d9f4 bls.n 8008324 <_printf_i+0x11c> + 800833a: 2b08 cmp r3, #8 + 800833c: d10b bne.n 8008356 <_printf_i+0x14e> + 800833e: 6823 ldr r3, [r4, #0] + 8008340: 07df lsls r7, r3, #31 + 8008342: d508 bpl.n 8008356 <_printf_i+0x14e> + 8008344: 6923 ldr r3, [r4, #16] + 8008346: 6861 ldr r1, [r4, #4] + 8008348: 4299 cmp r1, r3 + 800834a: bfde ittt le + 800834c: 2330 movle r3, #48 ; 0x30 + 800834e: f806 3c01 strble.w r3, [r6, #-1] + 8008352: f106 36ff addle.w r6, r6, #4294967295 + 8008356: 1b92 subs r2, r2, r6 + 8008358: 6122 str r2, [r4, #16] + 800835a: 464b mov r3, r9 + 800835c: 4621 mov r1, r4 + 800835e: 4640 mov r0, r8 + 8008360: f8cd a000 str.w sl, [sp] + 8008364: aa03 add r2, sp, #12 + 8008366: f7ff fedf bl 8008128 <_printf_common> + 800836a: 3001 adds r0, #1 + 800836c: d14c bne.n 8008408 <_printf_i+0x200> + 800836e: f04f 30ff mov.w r0, #4294967295 + 8008372: b004 add sp, #16 + 8008374: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8008378: 4834 ldr r0, [pc, #208] ; (800844c <_printf_i+0x244>) + 800837a: f884 7045 strb.w r7, [r4, #69] ; 0x45 + 800837e: 680e ldr r6, [r1, #0] + 8008380: 6823 ldr r3, [r4, #0] + 8008382: f856 5b04 ldr.w r5, [r6], #4 + 8008386: 061f lsls r7, r3, #24 + 8008388: 600e str r6, [r1, #0] + 800838a: d514 bpl.n 80083b6 <_printf_i+0x1ae> + 800838c: 07d9 lsls r1, r3, #31 + 800838e: bf44 itt mi + 8008390: f043 0320 orrmi.w r3, r3, #32 + 8008394: 6023 strmi r3, [r4, #0] + 8008396: b91d cbnz r5, 80083a0 <_printf_i+0x198> + 8008398: 6823 ldr r3, [r4, #0] + 800839a: f023 0320 bic.w r3, r3, #32 + 800839e: 6023 str r3, [r4, #0] + 80083a0: 2310 movs r3, #16 + 80083a2: e7af b.n 8008304 <_printf_i+0xfc> + 80083a4: 6823 ldr r3, [r4, #0] + 80083a6: f043 0320 orr.w r3, r3, #32 + 80083aa: 6023 str r3, [r4, #0] + 80083ac: 2378 movs r3, #120 ; 0x78 + 80083ae: 4828 ldr r0, [pc, #160] ; (8008450 <_printf_i+0x248>) + 80083b0: f884 3045 strb.w r3, [r4, #69] ; 0x45 + 80083b4: e7e3 b.n 800837e <_printf_i+0x176> + 80083b6: 065e lsls r6, r3, #25 + 80083b8: bf48 it mi + 80083ba: b2ad uxthmi r5, r5 + 80083bc: e7e6 b.n 800838c <_printf_i+0x184> + 80083be: 4616 mov r6, r2 + 80083c0: e7bb b.n 800833a <_printf_i+0x132> + 80083c2: 680b ldr r3, [r1, #0] + 80083c4: 6826 ldr r6, [r4, #0] + 80083c6: 1d1d adds r5, r3, #4 + 80083c8: 6960 ldr r0, [r4, #20] + 80083ca: 600d str r5, [r1, #0] + 80083cc: 0635 lsls r5, r6, #24 + 80083ce: 681b ldr r3, [r3, #0] + 80083d0: d501 bpl.n 80083d6 <_printf_i+0x1ce> + 80083d2: 6018 str r0, [r3, #0] + 80083d4: e002 b.n 80083dc <_printf_i+0x1d4> + 80083d6: 0671 lsls r1, r6, #25 + 80083d8: d5fb bpl.n 80083d2 <_printf_i+0x1ca> + 80083da: 8018 strh r0, [r3, #0] + 80083dc: 2300 movs r3, #0 + 80083de: 4616 mov r6, r2 + 80083e0: 6123 str r3, [r4, #16] + 80083e2: e7ba b.n 800835a <_printf_i+0x152> + 80083e4: 680b ldr r3, [r1, #0] + 80083e6: 1d1a adds r2, r3, #4 + 80083e8: 600a str r2, [r1, #0] + 80083ea: 681e ldr r6, [r3, #0] + 80083ec: 2100 movs r1, #0 + 80083ee: 4630 mov r0, r6 + 80083f0: 6862 ldr r2, [r4, #4] + 80083f2: f001 f9bf bl 8009774 + 80083f6: b108 cbz r0, 80083fc <_printf_i+0x1f4> + 80083f8: 1b80 subs r0, r0, r6 + 80083fa: 6060 str r0, [r4, #4] + 80083fc: 6863 ldr r3, [r4, #4] + 80083fe: 6123 str r3, [r4, #16] + 8008400: 2300 movs r3, #0 + 8008402: f884 3043 strb.w r3, [r4, #67] ; 0x43 + 8008406: e7a8 b.n 800835a <_printf_i+0x152> + 8008408: 4632 mov r2, r6 + 800840a: 4649 mov r1, r9 + 800840c: 4640 mov r0, r8 + 800840e: 6923 ldr r3, [r4, #16] + 8008410: 47d0 blx sl + 8008412: 3001 adds r0, #1 + 8008414: d0ab beq.n 800836e <_printf_i+0x166> + 8008416: 6823 ldr r3, [r4, #0] + 8008418: 079b lsls r3, r3, #30 + 800841a: d413 bmi.n 8008444 <_printf_i+0x23c> + 800841c: 68e0 ldr r0, [r4, #12] + 800841e: 9b03 ldr r3, [sp, #12] + 8008420: 4298 cmp r0, r3 + 8008422: bfb8 it lt + 8008424: 4618 movlt r0, r3 + 8008426: e7a4 b.n 8008372 <_printf_i+0x16a> + 8008428: 2301 movs r3, #1 + 800842a: 4632 mov r2, r6 + 800842c: 4649 mov r1, r9 + 800842e: 4640 mov r0, r8 + 8008430: 47d0 blx sl + 8008432: 3001 adds r0, #1 + 8008434: d09b beq.n 800836e <_printf_i+0x166> + 8008436: 3501 adds r5, #1 + 8008438: 68e3 ldr r3, [r4, #12] + 800843a: 9903 ldr r1, [sp, #12] + 800843c: 1a5b subs r3, r3, r1 + 800843e: 42ab cmp r3, r5 + 8008440: dcf2 bgt.n 8008428 <_printf_i+0x220> + 8008442: e7eb b.n 800841c <_printf_i+0x214> + 8008444: 2500 movs r5, #0 + 8008446: f104 0619 add.w r6, r4, #25 + 800844a: e7f5 b.n 8008438 <_printf_i+0x230> + 800844c: 0800b372 .word 0x0800b372 + 8008450: 0800b383 .word 0x0800b383 -08007568 <_sbrk_r>: - 8007568: b538 push {r3, r4, r5, lr} - 800756a: 2300 movs r3, #0 - 800756c: 4d05 ldr r5, [pc, #20] ; (8007584 <_sbrk_r+0x1c>) - 800756e: 4604 mov r4, r0 - 8007570: 4608 mov r0, r1 - 8007572: 602b str r3, [r5, #0] - 8007574: f7fa fa46 bl 8001a04 <_sbrk> - 8007578: 1c43 adds r3, r0, #1 - 800757a: d102 bne.n 8007582 <_sbrk_r+0x1a> - 800757c: 682b ldr r3, [r5, #0] - 800757e: b103 cbz r3, 8007582 <_sbrk_r+0x1a> - 8007580: 6023 str r3, [r4, #0] - 8007582: bd38 pop {r3, r4, r5, pc} - 8007584: 2000258c .word 0x2000258c +08008454 <_sbrk_r>: + 8008454: b538 push {r3, r4, r5, lr} + 8008456: 2300 movs r3, #0 + 8008458: 4d05 ldr r5, [pc, #20] ; (8008470 <_sbrk_r+0x1c>) + 800845a: 4604 mov r4, r0 + 800845c: 4608 mov r0, r1 + 800845e: 602b str r3, [r5, #0] + 8008460: f7f9 fbc2 bl 8001be8 <_sbrk> + 8008464: 1c43 adds r3, r0, #1 + 8008466: d102 bne.n 800846e <_sbrk_r+0x1a> + 8008468: 682b ldr r3, [r5, #0] + 800846a: b103 cbz r3, 800846e <_sbrk_r+0x1a> + 800846c: 6023 str r3, [r4, #0] + 800846e: bd38 pop {r3, r4, r5, pc} + 8008470: 200025e0 .word 0x200025e0 -08007588 : - 8007588: b40e push {r1, r2, r3} - 800758a: f06f 4100 mvn.w r1, #2147483648 ; 0x80000000 - 800758e: b500 push {lr} - 8007590: b09c sub sp, #112 ; 0x70 - 8007592: ab1d add r3, sp, #116 ; 0x74 - 8007594: 9002 str r0, [sp, #8] - 8007596: 9006 str r0, [sp, #24] - 8007598: 9107 str r1, [sp, #28] - 800759a: 9104 str r1, [sp, #16] - 800759c: 4808 ldr r0, [pc, #32] ; (80075c0 ) - 800759e: 4909 ldr r1, [pc, #36] ; (80075c4 ) - 80075a0: f853 2b04 ldr.w r2, [r3], #4 - 80075a4: 9105 str r1, [sp, #20] - 80075a6: 6800 ldr r0, [r0, #0] - 80075a8: a902 add r1, sp, #8 - 80075aa: 9301 str r3, [sp, #4] - 80075ac: f001 fd82 bl 80090b4 <_svfiprintf_r> - 80075b0: 2200 movs r2, #0 - 80075b2: 9b02 ldr r3, [sp, #8] - 80075b4: 701a strb r2, [r3, #0] - 80075b6: b01c add sp, #112 ; 0x70 - 80075b8: f85d eb04 ldr.w lr, [sp], #4 - 80075bc: b003 add sp, #12 - 80075be: 4770 bx lr - 80075c0: 2000000c .word 0x2000000c - 80075c4: ffff0208 .word 0xffff0208 +08008474 : + 8008474: b40e push {r1, r2, r3} + 8008476: f06f 4100 mvn.w r1, #2147483648 ; 0x80000000 + 800847a: b500 push {lr} + 800847c: b09c sub sp, #112 ; 0x70 + 800847e: ab1d add r3, sp, #116 ; 0x74 + 8008480: 9002 str r0, [sp, #8] + 8008482: 9006 str r0, [sp, #24] + 8008484: 9107 str r1, [sp, #28] + 8008486: 9104 str r1, [sp, #16] + 8008488: 4808 ldr r0, [pc, #32] ; (80084ac ) + 800848a: 4909 ldr r1, [pc, #36] ; (80084b0 ) + 800848c: f853 2b04 ldr.w r2, [r3], #4 + 8008490: 9105 str r1, [sp, #20] + 8008492: 6800 ldr r0, [r0, #0] + 8008494: a902 add r1, sp, #8 + 8008496: 9301 str r3, [sp, #4] + 8008498: f001 fd80 bl 8009f9c <_svfiprintf_r> + 800849c: 2200 movs r2, #0 + 800849e: 9b02 ldr r3, [sp, #8] + 80084a0: 701a strb r2, [r3, #0] + 80084a2: b01c add sp, #112 ; 0x70 + 80084a4: f85d eb04 ldr.w lr, [sp], #4 + 80084a8: b003 add sp, #12 + 80084aa: 4770 bx lr + 80084ac: 2000000c .word 0x2000000c + 80084b0: ffff0208 .word 0xffff0208 -080075c8 <__swbuf_r>: - 80075c8: b5f8 push {r3, r4, r5, r6, r7, lr} - 80075ca: 460e mov r6, r1 - 80075cc: 4614 mov r4, r2 - 80075ce: 4605 mov r5, r0 - 80075d0: b118 cbz r0, 80075da <__swbuf_r+0x12> - 80075d2: 6983 ldr r3, [r0, #24] - 80075d4: b90b cbnz r3, 80075da <__swbuf_r+0x12> - 80075d6: f001 f84f bl 8008678 <__sinit> - 80075da: 4b21 ldr r3, [pc, #132] ; (8007660 <__swbuf_r+0x98>) - 80075dc: 429c cmp r4, r3 - 80075de: d12b bne.n 8007638 <__swbuf_r+0x70> - 80075e0: 686c ldr r4, [r5, #4] - 80075e2: 69a3 ldr r3, [r4, #24] - 80075e4: 60a3 str r3, [r4, #8] - 80075e6: 89a3 ldrh r3, [r4, #12] - 80075e8: 071a lsls r2, r3, #28 - 80075ea: d52f bpl.n 800764c <__swbuf_r+0x84> - 80075ec: 6923 ldr r3, [r4, #16] - 80075ee: b36b cbz r3, 800764c <__swbuf_r+0x84> - 80075f0: 6923 ldr r3, [r4, #16] - 80075f2: 6820 ldr r0, [r4, #0] - 80075f4: b2f6 uxtb r6, r6 - 80075f6: 1ac0 subs r0, r0, r3 - 80075f8: 6963 ldr r3, [r4, #20] - 80075fa: 4637 mov r7, r6 - 80075fc: 4283 cmp r3, r0 - 80075fe: dc04 bgt.n 800760a <__swbuf_r+0x42> - 8007600: 4621 mov r1, r4 - 8007602: 4628 mov r0, r5 - 8007604: f000 ffa4 bl 8008550 <_fflush_r> - 8007608: bb30 cbnz r0, 8007658 <__swbuf_r+0x90> - 800760a: 68a3 ldr r3, [r4, #8] - 800760c: 3001 adds r0, #1 - 800760e: 3b01 subs r3, #1 - 8007610: 60a3 str r3, [r4, #8] - 8007612: 6823 ldr r3, [r4, #0] - 8007614: 1c5a adds r2, r3, #1 - 8007616: 6022 str r2, [r4, #0] - 8007618: 701e strb r6, [r3, #0] - 800761a: 6963 ldr r3, [r4, #20] - 800761c: 4283 cmp r3, r0 - 800761e: d004 beq.n 800762a <__swbuf_r+0x62> - 8007620: 89a3 ldrh r3, [r4, #12] - 8007622: 07db lsls r3, r3, #31 - 8007624: d506 bpl.n 8007634 <__swbuf_r+0x6c> - 8007626: 2e0a cmp r6, #10 - 8007628: d104 bne.n 8007634 <__swbuf_r+0x6c> - 800762a: 4621 mov r1, r4 - 800762c: 4628 mov r0, r5 - 800762e: f000 ff8f bl 8008550 <_fflush_r> - 8007632: b988 cbnz r0, 8007658 <__swbuf_r+0x90> - 8007634: 4638 mov r0, r7 - 8007636: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8007638: 4b0a ldr r3, [pc, #40] ; (8007664 <__swbuf_r+0x9c>) - 800763a: 429c cmp r4, r3 - 800763c: d101 bne.n 8007642 <__swbuf_r+0x7a> - 800763e: 68ac ldr r4, [r5, #8] - 8007640: e7cf b.n 80075e2 <__swbuf_r+0x1a> - 8007642: 4b09 ldr r3, [pc, #36] ; (8007668 <__swbuf_r+0xa0>) - 8007644: 429c cmp r4, r3 - 8007646: bf08 it eq - 8007648: 68ec ldreq r4, [r5, #12] - 800764a: e7ca b.n 80075e2 <__swbuf_r+0x1a> - 800764c: 4621 mov r1, r4 - 800764e: 4628 mov r0, r5 - 8007650: f000 f80c bl 800766c <__swsetup_r> - 8007654: 2800 cmp r0, #0 - 8007656: d0cb beq.n 80075f0 <__swbuf_r+0x28> - 8007658: f04f 37ff mov.w r7, #4294967295 - 800765c: e7ea b.n 8007634 <__swbuf_r+0x6c> - 800765e: bf00 nop - 8007660: 0800a540 .word 0x0800a540 - 8007664: 0800a560 .word 0x0800a560 - 8007668: 0800a520 .word 0x0800a520 - -0800766c <__swsetup_r>: - 800766c: 4b32 ldr r3, [pc, #200] ; (8007738 <__swsetup_r+0xcc>) - 800766e: b570 push {r4, r5, r6, lr} - 8007670: 681d ldr r5, [r3, #0] - 8007672: 4606 mov r6, r0 - 8007674: 460c mov r4, r1 - 8007676: b125 cbz r5, 8007682 <__swsetup_r+0x16> - 8007678: 69ab ldr r3, [r5, #24] - 800767a: b913 cbnz r3, 8007682 <__swsetup_r+0x16> - 800767c: 4628 mov r0, r5 - 800767e: f000 fffb bl 8008678 <__sinit> - 8007682: 4b2e ldr r3, [pc, #184] ; (800773c <__swsetup_r+0xd0>) - 8007684: 429c cmp r4, r3 - 8007686: d10f bne.n 80076a8 <__swsetup_r+0x3c> - 8007688: 686c ldr r4, [r5, #4] - 800768a: 89a3 ldrh r3, [r4, #12] - 800768c: f9b4 200c ldrsh.w r2, [r4, #12] - 8007690: 0719 lsls r1, r3, #28 - 8007692: d42c bmi.n 80076ee <__swsetup_r+0x82> - 8007694: 06dd lsls r5, r3, #27 - 8007696: d411 bmi.n 80076bc <__swsetup_r+0x50> - 8007698: 2309 movs r3, #9 - 800769a: 6033 str r3, [r6, #0] - 800769c: f042 0340 orr.w r3, r2, #64 ; 0x40 - 80076a0: f04f 30ff mov.w r0, #4294967295 - 80076a4: 81a3 strh r3, [r4, #12] - 80076a6: e03e b.n 8007726 <__swsetup_r+0xba> - 80076a8: 4b25 ldr r3, [pc, #148] ; (8007740 <__swsetup_r+0xd4>) - 80076aa: 429c cmp r4, r3 - 80076ac: d101 bne.n 80076b2 <__swsetup_r+0x46> - 80076ae: 68ac ldr r4, [r5, #8] - 80076b0: e7eb b.n 800768a <__swsetup_r+0x1e> - 80076b2: 4b24 ldr r3, [pc, #144] ; (8007744 <__swsetup_r+0xd8>) - 80076b4: 429c cmp r4, r3 - 80076b6: bf08 it eq - 80076b8: 68ec ldreq r4, [r5, #12] - 80076ba: e7e6 b.n 800768a <__swsetup_r+0x1e> - 80076bc: 0758 lsls r0, r3, #29 - 80076be: d512 bpl.n 80076e6 <__swsetup_r+0x7a> - 80076c0: 6b61 ldr r1, [r4, #52] ; 0x34 - 80076c2: b141 cbz r1, 80076d6 <__swsetup_r+0x6a> - 80076c4: f104 0344 add.w r3, r4, #68 ; 0x44 - 80076c8: 4299 cmp r1, r3 - 80076ca: d002 beq.n 80076d2 <__swsetup_r+0x66> - 80076cc: 4630 mov r0, r6 - 80076ce: f7ff fa45 bl 8006b5c <_free_r> - 80076d2: 2300 movs r3, #0 - 80076d4: 6363 str r3, [r4, #52] ; 0x34 - 80076d6: 89a3 ldrh r3, [r4, #12] - 80076d8: f023 0324 bic.w r3, r3, #36 ; 0x24 - 80076dc: 81a3 strh r3, [r4, #12] - 80076de: 2300 movs r3, #0 - 80076e0: 6063 str r3, [r4, #4] - 80076e2: 6923 ldr r3, [r4, #16] - 80076e4: 6023 str r3, [r4, #0] - 80076e6: 89a3 ldrh r3, [r4, #12] - 80076e8: f043 0308 orr.w r3, r3, #8 - 80076ec: 81a3 strh r3, [r4, #12] - 80076ee: 6923 ldr r3, [r4, #16] - 80076f0: b94b cbnz r3, 8007706 <__swsetup_r+0x9a> - 80076f2: 89a3 ldrh r3, [r4, #12] - 80076f4: f403 7320 and.w r3, r3, #640 ; 0x280 - 80076f8: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 80076fc: d003 beq.n 8007706 <__swsetup_r+0x9a> - 80076fe: 4621 mov r1, r4 - 8007700: 4630 mov r0, r6 - 8007702: f001 f883 bl 800880c <__smakebuf_r> - 8007706: 89a0 ldrh r0, [r4, #12] - 8007708: f9b4 200c ldrsh.w r2, [r4, #12] - 800770c: f010 0301 ands.w r3, r0, #1 - 8007710: d00a beq.n 8007728 <__swsetup_r+0xbc> - 8007712: 2300 movs r3, #0 - 8007714: 60a3 str r3, [r4, #8] - 8007716: 6963 ldr r3, [r4, #20] - 8007718: 425b negs r3, r3 - 800771a: 61a3 str r3, [r4, #24] - 800771c: 6923 ldr r3, [r4, #16] - 800771e: b943 cbnz r3, 8007732 <__swsetup_r+0xc6> - 8007720: f010 0080 ands.w r0, r0, #128 ; 0x80 - 8007724: d1ba bne.n 800769c <__swsetup_r+0x30> - 8007726: bd70 pop {r4, r5, r6, pc} - 8007728: 0781 lsls r1, r0, #30 - 800772a: bf58 it pl - 800772c: 6963 ldrpl r3, [r4, #20] - 800772e: 60a3 str r3, [r4, #8] - 8007730: e7f4 b.n 800771c <__swsetup_r+0xb0> - 8007732: 2000 movs r0, #0 - 8007734: e7f7 b.n 8007726 <__swsetup_r+0xba> - 8007736: bf00 nop - 8007738: 2000000c .word 0x2000000c - 800773c: 0800a540 .word 0x0800a540 - 8007740: 0800a560 .word 0x0800a560 - 8007744: 0800a520 .word 0x0800a520 - -08007748 : - 8007748: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800774c: 6903 ldr r3, [r0, #16] - 800774e: 690c ldr r4, [r1, #16] - 8007750: 4607 mov r7, r0 - 8007752: 42a3 cmp r3, r4 - 8007754: f2c0 8083 blt.w 800785e - 8007758: 3c01 subs r4, #1 - 800775a: f100 0514 add.w r5, r0, #20 - 800775e: f101 0814 add.w r8, r1, #20 - 8007762: eb05 0384 add.w r3, r5, r4, lsl #2 - 8007766: 9301 str r3, [sp, #4] - 8007768: f858 3024 ldr.w r3, [r8, r4, lsl #2] - 800776c: f855 2024 ldr.w r2, [r5, r4, lsl #2] - 8007770: 3301 adds r3, #1 - 8007772: 429a cmp r2, r3 - 8007774: fbb2 f6f3 udiv r6, r2, r3 - 8007778: ea4f 0b84 mov.w fp, r4, lsl #2 - 800777c: eb08 0984 add.w r9, r8, r4, lsl #2 - 8007780: d332 bcc.n 80077e8 - 8007782: f04f 0e00 mov.w lr, #0 - 8007786: 4640 mov r0, r8 - 8007788: 46ac mov ip, r5 - 800778a: 46f2 mov sl, lr - 800778c: f850 2b04 ldr.w r2, [r0], #4 - 8007790: b293 uxth r3, r2 - 8007792: fb06 e303 mla r3, r6, r3, lr - 8007796: 0c12 lsrs r2, r2, #16 - 8007798: ea4f 4e13 mov.w lr, r3, lsr #16 - 800779c: fb06 e202 mla r2, r6, r2, lr - 80077a0: b29b uxth r3, r3 - 80077a2: ebaa 0303 sub.w r3, sl, r3 - 80077a6: f8dc a000 ldr.w sl, [ip] - 80077aa: ea4f 4e12 mov.w lr, r2, lsr #16 - 80077ae: fa1f fa8a uxth.w sl, sl - 80077b2: 4453 add r3, sl - 80077b4: fa1f fa82 uxth.w sl, r2 - 80077b8: f8dc 2000 ldr.w r2, [ip] - 80077bc: 4581 cmp r9, r0 - 80077be: ebca 4212 rsb r2, sl, r2, lsr #16 - 80077c2: eb02 4223 add.w r2, r2, r3, asr #16 - 80077c6: b29b uxth r3, r3 - 80077c8: ea43 4302 orr.w r3, r3, r2, lsl #16 - 80077cc: ea4f 4a22 mov.w sl, r2, asr #16 - 80077d0: f84c 3b04 str.w r3, [ip], #4 - 80077d4: d2da bcs.n 800778c - 80077d6: f855 300b ldr.w r3, [r5, fp] - 80077da: b92b cbnz r3, 80077e8 - 80077dc: 9b01 ldr r3, [sp, #4] - 80077de: 3b04 subs r3, #4 - 80077e0: 429d cmp r5, r3 - 80077e2: 461a mov r2, r3 - 80077e4: d32f bcc.n 8007846 - 80077e6: 613c str r4, [r7, #16] - 80077e8: 4638 mov r0, r7 - 80077ea: f001 faf1 bl 8008dd0 <__mcmp> - 80077ee: 2800 cmp r0, #0 - 80077f0: db25 blt.n 800783e - 80077f2: 4628 mov r0, r5 - 80077f4: f04f 0c00 mov.w ip, #0 - 80077f8: 3601 adds r6, #1 - 80077fa: f858 1b04 ldr.w r1, [r8], #4 - 80077fe: f8d0 e000 ldr.w lr, [r0] - 8007802: b28b uxth r3, r1 - 8007804: ebac 0303 sub.w r3, ip, r3 - 8007808: fa1f f28e uxth.w r2, lr - 800780c: 4413 add r3, r2 - 800780e: 0c0a lsrs r2, r1, #16 - 8007810: ebc2 421e rsb r2, r2, lr, lsr #16 - 8007814: eb02 4223 add.w r2, r2, r3, asr #16 - 8007818: b29b uxth r3, r3 - 800781a: ea43 4302 orr.w r3, r3, r2, lsl #16 - 800781e: 45c1 cmp r9, r8 - 8007820: ea4f 4c22 mov.w ip, r2, asr #16 - 8007824: f840 3b04 str.w r3, [r0], #4 - 8007828: d2e7 bcs.n 80077fa - 800782a: f855 2024 ldr.w r2, [r5, r4, lsl #2] - 800782e: eb05 0384 add.w r3, r5, r4, lsl #2 - 8007832: b922 cbnz r2, 800783e - 8007834: 3b04 subs r3, #4 - 8007836: 429d cmp r5, r3 - 8007838: 461a mov r2, r3 - 800783a: d30a bcc.n 8007852 - 800783c: 613c str r4, [r7, #16] - 800783e: 4630 mov r0, r6 - 8007840: b003 add sp, #12 - 8007842: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8007846: 6812 ldr r2, [r2, #0] - 8007848: 3b04 subs r3, #4 - 800784a: 2a00 cmp r2, #0 - 800784c: d1cb bne.n 80077e6 - 800784e: 3c01 subs r4, #1 - 8007850: e7c6 b.n 80077e0 - 8007852: 6812 ldr r2, [r2, #0] - 8007854: 3b04 subs r3, #4 - 8007856: 2a00 cmp r2, #0 - 8007858: d1f0 bne.n 800783c - 800785a: 3c01 subs r4, #1 - 800785c: e7eb b.n 8007836 - 800785e: 2000 movs r0, #0 - 8007860: e7ee b.n 8007840 - 8007862: 0000 movs r0, r0 - 8007864: 0000 movs r0, r0 - ... - -08007868 <_dtoa_r>: - 8007868: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800786c: 4616 mov r6, r2 - 800786e: 461f mov r7, r3 - 8007870: 6a44 ldr r4, [r0, #36] ; 0x24 - 8007872: b099 sub sp, #100 ; 0x64 - 8007874: 4605 mov r5, r0 - 8007876: e9cd 6704 strd r6, r7, [sp, #16] - 800787a: f8dd 8094 ldr.w r8, [sp, #148] ; 0x94 - 800787e: b974 cbnz r4, 800789e <_dtoa_r+0x36> - 8007880: 2010 movs r0, #16 - 8007882: f7ff f953 bl 8006b2c - 8007886: 4602 mov r2, r0 - 8007888: 6268 str r0, [r5, #36] ; 0x24 - 800788a: b920 cbnz r0, 8007896 <_dtoa_r+0x2e> - 800788c: 21ea movs r1, #234 ; 0xea - 800788e: 4bae ldr r3, [pc, #696] ; (8007b48 <_dtoa_r+0x2e0>) - 8007890: 48ae ldr r0, [pc, #696] ; (8007b4c <_dtoa_r+0x2e4>) - 8007892: f001 febd bl 8009610 <__assert_func> - 8007896: e9c0 4401 strd r4, r4, [r0, #4] - 800789a: 6004 str r4, [r0, #0] - 800789c: 60c4 str r4, [r0, #12] - 800789e: 6a6b ldr r3, [r5, #36] ; 0x24 - 80078a0: 6819 ldr r1, [r3, #0] - 80078a2: b151 cbz r1, 80078ba <_dtoa_r+0x52> - 80078a4: 685a ldr r2, [r3, #4] - 80078a6: 2301 movs r3, #1 - 80078a8: 4093 lsls r3, r2 - 80078aa: 604a str r2, [r1, #4] - 80078ac: 608b str r3, [r1, #8] - 80078ae: 4628 mov r0, r5 - 80078b0: f001 f854 bl 800895c <_Bfree> - 80078b4: 2200 movs r2, #0 - 80078b6: 6a6b ldr r3, [r5, #36] ; 0x24 - 80078b8: 601a str r2, [r3, #0] - 80078ba: 1e3b subs r3, r7, #0 - 80078bc: bfaf iteee ge - 80078be: 2300 movge r3, #0 - 80078c0: 2201 movlt r2, #1 - 80078c2: f023 4300 biclt.w r3, r3, #2147483648 ; 0x80000000 - 80078c6: 9305 strlt r3, [sp, #20] - 80078c8: bfa8 it ge - 80078ca: f8c8 3000 strge.w r3, [r8] - 80078ce: f8dd 9014 ldr.w r9, [sp, #20] - 80078d2: 4b9f ldr r3, [pc, #636] ; (8007b50 <_dtoa_r+0x2e8>) - 80078d4: bfb8 it lt - 80078d6: f8c8 2000 strlt.w r2, [r8] - 80078da: ea33 0309 bics.w r3, r3, r9 - 80078de: d119 bne.n 8007914 <_dtoa_r+0xac> - 80078e0: f242 730f movw r3, #9999 ; 0x270f - 80078e4: 9a24 ldr r2, [sp, #144] ; 0x90 - 80078e6: 6013 str r3, [r2, #0] - 80078e8: f3c9 0313 ubfx r3, r9, #0, #20 - 80078ec: 4333 orrs r3, r6 - 80078ee: f000 8580 beq.w 80083f2 <_dtoa_r+0xb8a> - 80078f2: 9b26 ldr r3, [sp, #152] ; 0x98 - 80078f4: b953 cbnz r3, 800790c <_dtoa_r+0xa4> - 80078f6: 4b97 ldr r3, [pc, #604] ; (8007b54 <_dtoa_r+0x2ec>) - 80078f8: e022 b.n 8007940 <_dtoa_r+0xd8> - 80078fa: 4b97 ldr r3, [pc, #604] ; (8007b58 <_dtoa_r+0x2f0>) - 80078fc: 9308 str r3, [sp, #32] - 80078fe: 3308 adds r3, #8 - 8007900: 9a26 ldr r2, [sp, #152] ; 0x98 - 8007902: 6013 str r3, [r2, #0] - 8007904: 9808 ldr r0, [sp, #32] - 8007906: b019 add sp, #100 ; 0x64 - 8007908: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800790c: 4b91 ldr r3, [pc, #580] ; (8007b54 <_dtoa_r+0x2ec>) - 800790e: 9308 str r3, [sp, #32] - 8007910: 3303 adds r3, #3 - 8007912: e7f5 b.n 8007900 <_dtoa_r+0x98> - 8007914: e9dd 3404 ldrd r3, r4, [sp, #16] - 8007918: e9cd 340c strd r3, r4, [sp, #48] ; 0x30 - 800791c: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 - 8007920: 2200 movs r2, #0 - 8007922: 2300 movs r3, #0 - 8007924: f7f9 f8ac bl 8000a80 <__aeabi_dcmpeq> - 8007928: 4680 mov r8, r0 - 800792a: b158 cbz r0, 8007944 <_dtoa_r+0xdc> - 800792c: 2301 movs r3, #1 - 800792e: 9a24 ldr r2, [sp, #144] ; 0x90 - 8007930: 6013 str r3, [r2, #0] - 8007932: 9b26 ldr r3, [sp, #152] ; 0x98 - 8007934: 2b00 cmp r3, #0 - 8007936: f000 8559 beq.w 80083ec <_dtoa_r+0xb84> - 800793a: 4888 ldr r0, [pc, #544] ; (8007b5c <_dtoa_r+0x2f4>) - 800793c: 6018 str r0, [r3, #0] - 800793e: 1e43 subs r3, r0, #1 - 8007940: 9308 str r3, [sp, #32] - 8007942: e7df b.n 8007904 <_dtoa_r+0x9c> - 8007944: ab16 add r3, sp, #88 ; 0x58 - 8007946: 9301 str r3, [sp, #4] - 8007948: ab17 add r3, sp, #92 ; 0x5c - 800794a: 9300 str r3, [sp, #0] - 800794c: 4628 mov r0, r5 - 800794e: e9dd 230c ldrd r2, r3, [sp, #48] ; 0x30 - 8007952: f001 fae9 bl 8008f28 <__d2b> - 8007956: f3c9 540a ubfx r4, r9, #20, #11 - 800795a: 4682 mov sl, r0 - 800795c: 2c00 cmp r4, #0 - 800795e: d07e beq.n 8007a5e <_dtoa_r+0x1f6> - 8007960: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 - 8007964: 9b0d ldr r3, [sp, #52] ; 0x34 - 8007966: f2a4 34ff subw r4, r4, #1023 ; 0x3ff - 800796a: f3c3 0313 ubfx r3, r3, #0, #20 - 800796e: f043 517f orr.w r1, r3, #1069547520 ; 0x3fc00000 - 8007972: f441 1140 orr.w r1, r1, #3145728 ; 0x300000 - 8007976: f8cd 804c str.w r8, [sp, #76] ; 0x4c - 800797a: 2200 movs r2, #0 - 800797c: 4b78 ldr r3, [pc, #480] ; (8007b60 <_dtoa_r+0x2f8>) - 800797e: f7f8 fc5f bl 8000240 <__aeabi_dsub> - 8007982: a36b add r3, pc, #428 ; (adr r3, 8007b30 <_dtoa_r+0x2c8>) - 8007984: e9d3 2300 ldrd r2, r3, [r3] - 8007988: f7f8 fe12 bl 80005b0 <__aeabi_dmul> - 800798c: a36a add r3, pc, #424 ; (adr r3, 8007b38 <_dtoa_r+0x2d0>) - 800798e: e9d3 2300 ldrd r2, r3, [r3] - 8007992: f7f8 fc57 bl 8000244 <__adddf3> - 8007996: 4606 mov r6, r0 - 8007998: 4620 mov r0, r4 - 800799a: 460f mov r7, r1 - 800799c: f7f8 fd9e bl 80004dc <__aeabi_i2d> - 80079a0: a367 add r3, pc, #412 ; (adr r3, 8007b40 <_dtoa_r+0x2d8>) - 80079a2: e9d3 2300 ldrd r2, r3, [r3] - 80079a6: f7f8 fe03 bl 80005b0 <__aeabi_dmul> - 80079aa: 4602 mov r2, r0 - 80079ac: 460b mov r3, r1 - 80079ae: 4630 mov r0, r6 - 80079b0: 4639 mov r1, r7 - 80079b2: f7f8 fc47 bl 8000244 <__adddf3> - 80079b6: 4606 mov r6, r0 - 80079b8: 460f mov r7, r1 - 80079ba: f7f9 f8a9 bl 8000b10 <__aeabi_d2iz> - 80079be: 2200 movs r2, #0 - 80079c0: 4681 mov r9, r0 - 80079c2: 2300 movs r3, #0 - 80079c4: 4630 mov r0, r6 - 80079c6: 4639 mov r1, r7 - 80079c8: f7f9 f864 bl 8000a94 <__aeabi_dcmplt> - 80079cc: b148 cbz r0, 80079e2 <_dtoa_r+0x17a> - 80079ce: 4648 mov r0, r9 - 80079d0: f7f8 fd84 bl 80004dc <__aeabi_i2d> - 80079d4: 4632 mov r2, r6 - 80079d6: 463b mov r3, r7 - 80079d8: f7f9 f852 bl 8000a80 <__aeabi_dcmpeq> - 80079dc: b908 cbnz r0, 80079e2 <_dtoa_r+0x17a> - 80079de: f109 39ff add.w r9, r9, #4294967295 - 80079e2: f1b9 0f16 cmp.w r9, #22 - 80079e6: d857 bhi.n 8007a98 <_dtoa_r+0x230> - 80079e8: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 - 80079ec: 4b5d ldr r3, [pc, #372] ; (8007b64 <_dtoa_r+0x2fc>) - 80079ee: eb03 03c9 add.w r3, r3, r9, lsl #3 - 80079f2: e9d3 2300 ldrd r2, r3, [r3] - 80079f6: f7f9 f84d bl 8000a94 <__aeabi_dcmplt> - 80079fa: 2800 cmp r0, #0 - 80079fc: d04e beq.n 8007a9c <_dtoa_r+0x234> - 80079fe: 2300 movs r3, #0 - 8007a00: f109 39ff add.w r9, r9, #4294967295 - 8007a04: 930f str r3, [sp, #60] ; 0x3c - 8007a06: 9b16 ldr r3, [sp, #88] ; 0x58 - 8007a08: 1b1c subs r4, r3, r4 - 8007a0a: 1e63 subs r3, r4, #1 - 8007a0c: 9309 str r3, [sp, #36] ; 0x24 - 8007a0e: bf49 itett mi - 8007a10: f1c4 0301 rsbmi r3, r4, #1 - 8007a14: 2300 movpl r3, #0 - 8007a16: 9306 strmi r3, [sp, #24] - 8007a18: 2300 movmi r3, #0 - 8007a1a: bf54 ite pl - 8007a1c: 9306 strpl r3, [sp, #24] - 8007a1e: 9309 strmi r3, [sp, #36] ; 0x24 - 8007a20: f1b9 0f00 cmp.w r9, #0 - 8007a24: db3c blt.n 8007aa0 <_dtoa_r+0x238> - 8007a26: 9b09 ldr r3, [sp, #36] ; 0x24 - 8007a28: f8cd 9038 str.w r9, [sp, #56] ; 0x38 - 8007a2c: 444b add r3, r9 - 8007a2e: 9309 str r3, [sp, #36] ; 0x24 - 8007a30: 2300 movs r3, #0 - 8007a32: 930a str r3, [sp, #40] ; 0x28 - 8007a34: 9b22 ldr r3, [sp, #136] ; 0x88 - 8007a36: 2b09 cmp r3, #9 - 8007a38: d86c bhi.n 8007b14 <_dtoa_r+0x2ac> - 8007a3a: 2b05 cmp r3, #5 - 8007a3c: bfc4 itt gt - 8007a3e: 3b04 subgt r3, #4 - 8007a40: 9322 strgt r3, [sp, #136] ; 0x88 - 8007a42: 9b22 ldr r3, [sp, #136] ; 0x88 - 8007a44: bfc8 it gt - 8007a46: 2400 movgt r4, #0 - 8007a48: f1a3 0302 sub.w r3, r3, #2 - 8007a4c: bfd8 it le - 8007a4e: 2401 movle r4, #1 - 8007a50: 2b03 cmp r3, #3 - 8007a52: f200 808b bhi.w 8007b6c <_dtoa_r+0x304> - 8007a56: e8df f003 tbb [pc, r3] - 8007a5a: 4f2d .short 0x4f2d - 8007a5c: 5b4d .short 0x5b4d - 8007a5e: e9dd 4316 ldrd r4, r3, [sp, #88] ; 0x58 - 8007a62: 441c add r4, r3 - 8007a64: f204 4332 addw r3, r4, #1074 ; 0x432 - 8007a68: 2b20 cmp r3, #32 - 8007a6a: bfc3 ittte gt - 8007a6c: f1c3 0340 rsbgt r3, r3, #64 ; 0x40 - 8007a70: f204 4012 addwgt r0, r4, #1042 ; 0x412 - 8007a74: fa09 f303 lslgt.w r3, r9, r3 - 8007a78: f1c3 0320 rsble r3, r3, #32 - 8007a7c: bfc6 itte gt - 8007a7e: fa26 f000 lsrgt.w r0, r6, r0 - 8007a82: 4318 orrgt r0, r3 - 8007a84: fa06 f003 lslle.w r0, r6, r3 - 8007a88: f7f8 fd18 bl 80004bc <__aeabi_ui2d> - 8007a8c: 2301 movs r3, #1 - 8007a8e: f1a1 71f8 sub.w r1, r1, #32505856 ; 0x1f00000 - 8007a92: 3c01 subs r4, #1 - 8007a94: 9313 str r3, [sp, #76] ; 0x4c - 8007a96: e770 b.n 800797a <_dtoa_r+0x112> - 8007a98: 2301 movs r3, #1 - 8007a9a: e7b3 b.n 8007a04 <_dtoa_r+0x19c> - 8007a9c: 900f str r0, [sp, #60] ; 0x3c - 8007a9e: e7b2 b.n 8007a06 <_dtoa_r+0x19e> - 8007aa0: 9b06 ldr r3, [sp, #24] - 8007aa2: eba3 0309 sub.w r3, r3, r9 - 8007aa6: 9306 str r3, [sp, #24] - 8007aa8: f1c9 0300 rsb r3, r9, #0 - 8007aac: 930a str r3, [sp, #40] ; 0x28 - 8007aae: 2300 movs r3, #0 - 8007ab0: 930e str r3, [sp, #56] ; 0x38 - 8007ab2: e7bf b.n 8007a34 <_dtoa_r+0x1cc> - 8007ab4: 2300 movs r3, #0 - 8007ab6: 930b str r3, [sp, #44] ; 0x2c - 8007ab8: 9b23 ldr r3, [sp, #140] ; 0x8c - 8007aba: 2b00 cmp r3, #0 - 8007abc: dc59 bgt.n 8007b72 <_dtoa_r+0x30a> - 8007abe: f04f 0b01 mov.w fp, #1 - 8007ac2: 465b mov r3, fp - 8007ac4: f8cd b008 str.w fp, [sp, #8] - 8007ac8: f8cd b08c str.w fp, [sp, #140] ; 0x8c - 8007acc: 2200 movs r2, #0 - 8007ace: 6a68 ldr r0, [r5, #36] ; 0x24 - 8007ad0: 6042 str r2, [r0, #4] - 8007ad2: 2204 movs r2, #4 - 8007ad4: f102 0614 add.w r6, r2, #20 - 8007ad8: 429e cmp r6, r3 - 8007ada: 6841 ldr r1, [r0, #4] - 8007adc: d94f bls.n 8007b7e <_dtoa_r+0x316> - 8007ade: 4628 mov r0, r5 - 8007ae0: f000 fefc bl 80088dc <_Balloc> - 8007ae4: 9008 str r0, [sp, #32] - 8007ae6: 2800 cmp r0, #0 - 8007ae8: d14d bne.n 8007b86 <_dtoa_r+0x31e> - 8007aea: 4602 mov r2, r0 - 8007aec: f44f 71d5 mov.w r1, #426 ; 0x1aa - 8007af0: 4b1d ldr r3, [pc, #116] ; (8007b68 <_dtoa_r+0x300>) - 8007af2: e6cd b.n 8007890 <_dtoa_r+0x28> - 8007af4: 2301 movs r3, #1 - 8007af6: e7de b.n 8007ab6 <_dtoa_r+0x24e> - 8007af8: 2300 movs r3, #0 - 8007afa: 930b str r3, [sp, #44] ; 0x2c - 8007afc: 9b23 ldr r3, [sp, #140] ; 0x8c - 8007afe: eb09 0b03 add.w fp, r9, r3 - 8007b02: f10b 0301 add.w r3, fp, #1 - 8007b06: 2b01 cmp r3, #1 - 8007b08: 9302 str r3, [sp, #8] - 8007b0a: bfb8 it lt - 8007b0c: 2301 movlt r3, #1 - 8007b0e: e7dd b.n 8007acc <_dtoa_r+0x264> - 8007b10: 2301 movs r3, #1 - 8007b12: e7f2 b.n 8007afa <_dtoa_r+0x292> - 8007b14: 2401 movs r4, #1 - 8007b16: 2300 movs r3, #0 - 8007b18: 940b str r4, [sp, #44] ; 0x2c - 8007b1a: 9322 str r3, [sp, #136] ; 0x88 - 8007b1c: f04f 3bff mov.w fp, #4294967295 - 8007b20: 2200 movs r2, #0 - 8007b22: 2312 movs r3, #18 - 8007b24: f8cd b008 str.w fp, [sp, #8] - 8007b28: 9223 str r2, [sp, #140] ; 0x8c - 8007b2a: e7cf b.n 8007acc <_dtoa_r+0x264> - 8007b2c: f3af 8000 nop.w - 8007b30: 636f4361 .word 0x636f4361 - 8007b34: 3fd287a7 .word 0x3fd287a7 - 8007b38: 8b60c8b3 .word 0x8b60c8b3 - 8007b3c: 3fc68a28 .word 0x3fc68a28 - 8007b40: 509f79fb .word 0x509f79fb - 8007b44: 3fd34413 .word 0x3fd34413 - 8007b48: 0800a499 .word 0x0800a499 - 8007b4c: 0800a4b0 .word 0x0800a4b0 - 8007b50: 7ff00000 .word 0x7ff00000 - 8007b54: 0800a495 .word 0x0800a495 - 8007b58: 0800a48c .word 0x0800a48c - 8007b5c: 0800a469 .word 0x0800a469 - 8007b60: 3ff80000 .word 0x3ff80000 - 8007b64: 0800a608 .word 0x0800a608 - 8007b68: 0800a50f .word 0x0800a50f - 8007b6c: 2301 movs r3, #1 - 8007b6e: 930b str r3, [sp, #44] ; 0x2c - 8007b70: e7d4 b.n 8007b1c <_dtoa_r+0x2b4> - 8007b72: f8dd b08c ldr.w fp, [sp, #140] ; 0x8c - 8007b76: 465b mov r3, fp - 8007b78: f8cd b008 str.w fp, [sp, #8] - 8007b7c: e7a6 b.n 8007acc <_dtoa_r+0x264> - 8007b7e: 3101 adds r1, #1 - 8007b80: 6041 str r1, [r0, #4] - 8007b82: 0052 lsls r2, r2, #1 - 8007b84: e7a6 b.n 8007ad4 <_dtoa_r+0x26c> - 8007b86: 6a6b ldr r3, [r5, #36] ; 0x24 - 8007b88: 9a08 ldr r2, [sp, #32] - 8007b8a: 601a str r2, [r3, #0] - 8007b8c: 9b02 ldr r3, [sp, #8] - 8007b8e: 2b0e cmp r3, #14 - 8007b90: f200 80a8 bhi.w 8007ce4 <_dtoa_r+0x47c> - 8007b94: 2c00 cmp r4, #0 - 8007b96: f000 80a5 beq.w 8007ce4 <_dtoa_r+0x47c> - 8007b9a: f1b9 0f00 cmp.w r9, #0 - 8007b9e: dd34 ble.n 8007c0a <_dtoa_r+0x3a2> - 8007ba0: 4a9a ldr r2, [pc, #616] ; (8007e0c <_dtoa_r+0x5a4>) - 8007ba2: f009 030f and.w r3, r9, #15 - 8007ba6: eb02 03c3 add.w r3, r2, r3, lsl #3 - 8007baa: f419 7f80 tst.w r9, #256 ; 0x100 - 8007bae: e9d3 3400 ldrd r3, r4, [r3] - 8007bb2: e9cd 3410 strd r3, r4, [sp, #64] ; 0x40 - 8007bb6: ea4f 1429 mov.w r4, r9, asr #4 - 8007bba: d016 beq.n 8007bea <_dtoa_r+0x382> - 8007bbc: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 - 8007bc0: 4b93 ldr r3, [pc, #588] ; (8007e10 <_dtoa_r+0x5a8>) - 8007bc2: 2703 movs r7, #3 - 8007bc4: e9d3 2308 ldrd r2, r3, [r3, #32] - 8007bc8: f7f8 fe1c bl 8000804 <__aeabi_ddiv> - 8007bcc: e9cd 0104 strd r0, r1, [sp, #16] - 8007bd0: f004 040f and.w r4, r4, #15 - 8007bd4: 4e8e ldr r6, [pc, #568] ; (8007e10 <_dtoa_r+0x5a8>) - 8007bd6: b954 cbnz r4, 8007bee <_dtoa_r+0x386> - 8007bd8: e9dd 2310 ldrd r2, r3, [sp, #64] ; 0x40 - 8007bdc: e9dd 0104 ldrd r0, r1, [sp, #16] - 8007be0: f7f8 fe10 bl 8000804 <__aeabi_ddiv> - 8007be4: e9cd 0104 strd r0, r1, [sp, #16] - 8007be8: e029 b.n 8007c3e <_dtoa_r+0x3d6> - 8007bea: 2702 movs r7, #2 - 8007bec: e7f2 b.n 8007bd4 <_dtoa_r+0x36c> - 8007bee: 07e1 lsls r1, r4, #31 - 8007bf0: d508 bpl.n 8007c04 <_dtoa_r+0x39c> - 8007bf2: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 8007bf6: e9d6 2300 ldrd r2, r3, [r6] - 8007bfa: f7f8 fcd9 bl 80005b0 <__aeabi_dmul> - 8007bfe: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 - 8007c02: 3701 adds r7, #1 - 8007c04: 1064 asrs r4, r4, #1 - 8007c06: 3608 adds r6, #8 - 8007c08: e7e5 b.n 8007bd6 <_dtoa_r+0x36e> - 8007c0a: f000 80a5 beq.w 8007d58 <_dtoa_r+0x4f0> - 8007c0e: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 - 8007c12: f1c9 0400 rsb r4, r9, #0 - 8007c16: 4b7d ldr r3, [pc, #500] ; (8007e0c <_dtoa_r+0x5a4>) - 8007c18: f004 020f and.w r2, r4, #15 - 8007c1c: eb03 03c2 add.w r3, r3, r2, lsl #3 - 8007c20: e9d3 2300 ldrd r2, r3, [r3] - 8007c24: f7f8 fcc4 bl 80005b0 <__aeabi_dmul> - 8007c28: 2702 movs r7, #2 - 8007c2a: 2300 movs r3, #0 - 8007c2c: e9cd 0104 strd r0, r1, [sp, #16] - 8007c30: 4e77 ldr r6, [pc, #476] ; (8007e10 <_dtoa_r+0x5a8>) - 8007c32: 1124 asrs r4, r4, #4 - 8007c34: 2c00 cmp r4, #0 - 8007c36: f040 8084 bne.w 8007d42 <_dtoa_r+0x4da> - 8007c3a: 2b00 cmp r3, #0 - 8007c3c: d1d2 bne.n 8007be4 <_dtoa_r+0x37c> - 8007c3e: 9b0f ldr r3, [sp, #60] ; 0x3c - 8007c40: 2b00 cmp r3, #0 - 8007c42: f000 808b beq.w 8007d5c <_dtoa_r+0x4f4> - 8007c46: e9dd 3404 ldrd r3, r4, [sp, #16] - 8007c4a: e9cd 3410 strd r3, r4, [sp, #64] ; 0x40 - 8007c4e: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 8007c52: 2200 movs r2, #0 - 8007c54: 4b6f ldr r3, [pc, #444] ; (8007e14 <_dtoa_r+0x5ac>) - 8007c56: f7f8 ff1d bl 8000a94 <__aeabi_dcmplt> - 8007c5a: 2800 cmp r0, #0 - 8007c5c: d07e beq.n 8007d5c <_dtoa_r+0x4f4> - 8007c5e: 9b02 ldr r3, [sp, #8] - 8007c60: 2b00 cmp r3, #0 - 8007c62: d07b beq.n 8007d5c <_dtoa_r+0x4f4> - 8007c64: f1bb 0f00 cmp.w fp, #0 - 8007c68: dd38 ble.n 8007cdc <_dtoa_r+0x474> - 8007c6a: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 8007c6e: 2200 movs r2, #0 - 8007c70: 4b69 ldr r3, [pc, #420] ; (8007e18 <_dtoa_r+0x5b0>) - 8007c72: f7f8 fc9d bl 80005b0 <__aeabi_dmul> - 8007c76: 465c mov r4, fp - 8007c78: e9cd 0104 strd r0, r1, [sp, #16] - 8007c7c: f109 38ff add.w r8, r9, #4294967295 - 8007c80: 3701 adds r7, #1 - 8007c82: 4638 mov r0, r7 - 8007c84: f7f8 fc2a bl 80004dc <__aeabi_i2d> - 8007c88: e9dd 2304 ldrd r2, r3, [sp, #16] - 8007c8c: f7f8 fc90 bl 80005b0 <__aeabi_dmul> - 8007c90: 2200 movs r2, #0 - 8007c92: 4b62 ldr r3, [pc, #392] ; (8007e1c <_dtoa_r+0x5b4>) - 8007c94: f7f8 fad6 bl 8000244 <__adddf3> - 8007c98: f1a1 7650 sub.w r6, r1, #54525952 ; 0x3400000 - 8007c9c: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 - 8007ca0: 9611 str r6, [sp, #68] ; 0x44 - 8007ca2: 2c00 cmp r4, #0 - 8007ca4: d15d bne.n 8007d62 <_dtoa_r+0x4fa> - 8007ca6: e9dd 0104 ldrd r0, r1, [sp, #16] - 8007caa: 2200 movs r2, #0 - 8007cac: 4b5c ldr r3, [pc, #368] ; (8007e20 <_dtoa_r+0x5b8>) - 8007cae: f7f8 fac7 bl 8000240 <__aeabi_dsub> - 8007cb2: 4602 mov r2, r0 - 8007cb4: 460b mov r3, r1 - 8007cb6: e9cd 2304 strd r2, r3, [sp, #16] - 8007cba: 4633 mov r3, r6 - 8007cbc: 9a10 ldr r2, [sp, #64] ; 0x40 - 8007cbe: f7f8 ff07 bl 8000ad0 <__aeabi_dcmpgt> - 8007cc2: 2800 cmp r0, #0 - 8007cc4: f040 829e bne.w 8008204 <_dtoa_r+0x99c> - 8007cc8: e9dd 0104 ldrd r0, r1, [sp, #16] - 8007ccc: 9a10 ldr r2, [sp, #64] ; 0x40 - 8007cce: f106 4300 add.w r3, r6, #2147483648 ; 0x80000000 - 8007cd2: f7f8 fedf bl 8000a94 <__aeabi_dcmplt> - 8007cd6: 2800 cmp r0, #0 - 8007cd8: f040 8292 bne.w 8008200 <_dtoa_r+0x998> - 8007cdc: e9dd 340c ldrd r3, r4, [sp, #48] ; 0x30 - 8007ce0: e9cd 3404 strd r3, r4, [sp, #16] - 8007ce4: 9b17 ldr r3, [sp, #92] ; 0x5c - 8007ce6: 2b00 cmp r3, #0 - 8007ce8: f2c0 8153 blt.w 8007f92 <_dtoa_r+0x72a> - 8007cec: f1b9 0f0e cmp.w r9, #14 - 8007cf0: f300 814f bgt.w 8007f92 <_dtoa_r+0x72a> - 8007cf4: 4b45 ldr r3, [pc, #276] ; (8007e0c <_dtoa_r+0x5a4>) - 8007cf6: eb03 03c9 add.w r3, r3, r9, lsl #3 - 8007cfa: e9d3 3400 ldrd r3, r4, [r3] - 8007cfe: e9cd 3406 strd r3, r4, [sp, #24] - 8007d02: 9b23 ldr r3, [sp, #140] ; 0x8c - 8007d04: 2b00 cmp r3, #0 - 8007d06: f280 80db bge.w 8007ec0 <_dtoa_r+0x658> - 8007d0a: 9b02 ldr r3, [sp, #8] - 8007d0c: 2b00 cmp r3, #0 - 8007d0e: f300 80d7 bgt.w 8007ec0 <_dtoa_r+0x658> - 8007d12: f040 8274 bne.w 80081fe <_dtoa_r+0x996> - 8007d16: e9dd 0106 ldrd r0, r1, [sp, #24] - 8007d1a: 2200 movs r2, #0 - 8007d1c: 4b40 ldr r3, [pc, #256] ; (8007e20 <_dtoa_r+0x5b8>) - 8007d1e: f7f8 fc47 bl 80005b0 <__aeabi_dmul> - 8007d22: e9dd 2304 ldrd r2, r3, [sp, #16] - 8007d26: f7f8 fec9 bl 8000abc <__aeabi_dcmpge> - 8007d2a: 9c02 ldr r4, [sp, #8] - 8007d2c: 4626 mov r6, r4 - 8007d2e: 2800 cmp r0, #0 - 8007d30: f040 824a bne.w 80081c8 <_dtoa_r+0x960> - 8007d34: 2331 movs r3, #49 ; 0x31 - 8007d36: 9f08 ldr r7, [sp, #32] - 8007d38: f109 0901 add.w r9, r9, #1 - 8007d3c: f807 3b01 strb.w r3, [r7], #1 - 8007d40: e246 b.n 80081d0 <_dtoa_r+0x968> - 8007d42: 07e2 lsls r2, r4, #31 - 8007d44: d505 bpl.n 8007d52 <_dtoa_r+0x4ea> - 8007d46: e9d6 2300 ldrd r2, r3, [r6] - 8007d4a: f7f8 fc31 bl 80005b0 <__aeabi_dmul> - 8007d4e: 2301 movs r3, #1 - 8007d50: 3701 adds r7, #1 - 8007d52: 1064 asrs r4, r4, #1 - 8007d54: 3608 adds r6, #8 - 8007d56: e76d b.n 8007c34 <_dtoa_r+0x3cc> - 8007d58: 2702 movs r7, #2 - 8007d5a: e770 b.n 8007c3e <_dtoa_r+0x3d6> - 8007d5c: 46c8 mov r8, r9 - 8007d5e: 9c02 ldr r4, [sp, #8] - 8007d60: e78f b.n 8007c82 <_dtoa_r+0x41a> - 8007d62: 9908 ldr r1, [sp, #32] - 8007d64: 4b29 ldr r3, [pc, #164] ; (8007e0c <_dtoa_r+0x5a4>) - 8007d66: 4421 add r1, r4 - 8007d68: 9112 str r1, [sp, #72] ; 0x48 - 8007d6a: 990b ldr r1, [sp, #44] ; 0x2c - 8007d6c: eb03 03c4 add.w r3, r3, r4, lsl #3 - 8007d70: e9dd 6710 ldrd r6, r7, [sp, #64] ; 0x40 - 8007d74: e953 2302 ldrd r2, r3, [r3, #-8] - 8007d78: 2900 cmp r1, #0 - 8007d7a: d055 beq.n 8007e28 <_dtoa_r+0x5c0> - 8007d7c: 2000 movs r0, #0 - 8007d7e: 4929 ldr r1, [pc, #164] ; (8007e24 <_dtoa_r+0x5bc>) - 8007d80: f7f8 fd40 bl 8000804 <__aeabi_ddiv> - 8007d84: 463b mov r3, r7 - 8007d86: 4632 mov r2, r6 - 8007d88: f7f8 fa5a bl 8000240 <__aeabi_dsub> - 8007d8c: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 - 8007d90: 9f08 ldr r7, [sp, #32] - 8007d92: e9dd 0104 ldrd r0, r1, [sp, #16] - 8007d96: f7f8 febb bl 8000b10 <__aeabi_d2iz> - 8007d9a: 4604 mov r4, r0 - 8007d9c: f7f8 fb9e bl 80004dc <__aeabi_i2d> - 8007da0: 4602 mov r2, r0 - 8007da2: 460b mov r3, r1 - 8007da4: e9dd 0104 ldrd r0, r1, [sp, #16] - 8007da8: f7f8 fa4a bl 8000240 <__aeabi_dsub> - 8007dac: 4602 mov r2, r0 - 8007dae: 460b mov r3, r1 - 8007db0: 3430 adds r4, #48 ; 0x30 - 8007db2: e9cd 2304 strd r2, r3, [sp, #16] - 8007db6: e9dd 2310 ldrd r2, r3, [sp, #64] ; 0x40 - 8007dba: f807 4b01 strb.w r4, [r7], #1 - 8007dbe: f7f8 fe69 bl 8000a94 <__aeabi_dcmplt> - 8007dc2: 2800 cmp r0, #0 - 8007dc4: d174 bne.n 8007eb0 <_dtoa_r+0x648> - 8007dc6: e9dd 2304 ldrd r2, r3, [sp, #16] - 8007dca: 2000 movs r0, #0 - 8007dcc: 4911 ldr r1, [pc, #68] ; (8007e14 <_dtoa_r+0x5ac>) - 8007dce: f7f8 fa37 bl 8000240 <__aeabi_dsub> - 8007dd2: e9dd 2310 ldrd r2, r3, [sp, #64] ; 0x40 - 8007dd6: f7f8 fe5d bl 8000a94 <__aeabi_dcmplt> - 8007dda: 2800 cmp r0, #0 - 8007ddc: f040 80b6 bne.w 8007f4c <_dtoa_r+0x6e4> - 8007de0: 9b12 ldr r3, [sp, #72] ; 0x48 - 8007de2: 429f cmp r7, r3 - 8007de4: f43f af7a beq.w 8007cdc <_dtoa_r+0x474> - 8007de8: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 8007dec: 2200 movs r2, #0 - 8007dee: 4b0a ldr r3, [pc, #40] ; (8007e18 <_dtoa_r+0x5b0>) - 8007df0: f7f8 fbde bl 80005b0 <__aeabi_dmul> - 8007df4: 2200 movs r2, #0 - 8007df6: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 - 8007dfa: e9dd 0104 ldrd r0, r1, [sp, #16] - 8007dfe: 4b06 ldr r3, [pc, #24] ; (8007e18 <_dtoa_r+0x5b0>) - 8007e00: f7f8 fbd6 bl 80005b0 <__aeabi_dmul> - 8007e04: e9cd 0104 strd r0, r1, [sp, #16] - 8007e08: e7c3 b.n 8007d92 <_dtoa_r+0x52a> - 8007e0a: bf00 nop - 8007e0c: 0800a608 .word 0x0800a608 - 8007e10: 0800a5e0 .word 0x0800a5e0 - 8007e14: 3ff00000 .word 0x3ff00000 - 8007e18: 40240000 .word 0x40240000 - 8007e1c: 401c0000 .word 0x401c0000 - 8007e20: 40140000 .word 0x40140000 - 8007e24: 3fe00000 .word 0x3fe00000 - 8007e28: 4630 mov r0, r6 - 8007e2a: 4639 mov r1, r7 - 8007e2c: f7f8 fbc0 bl 80005b0 <__aeabi_dmul> - 8007e30: 9b12 ldr r3, [sp, #72] ; 0x48 - 8007e32: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 - 8007e36: 9c08 ldr r4, [sp, #32] - 8007e38: 9314 str r3, [sp, #80] ; 0x50 - 8007e3a: e9dd 0104 ldrd r0, r1, [sp, #16] - 8007e3e: f7f8 fe67 bl 8000b10 <__aeabi_d2iz> - 8007e42: 9015 str r0, [sp, #84] ; 0x54 - 8007e44: f7f8 fb4a bl 80004dc <__aeabi_i2d> - 8007e48: 4602 mov r2, r0 - 8007e4a: 460b mov r3, r1 - 8007e4c: e9dd 0104 ldrd r0, r1, [sp, #16] - 8007e50: f7f8 f9f6 bl 8000240 <__aeabi_dsub> - 8007e54: 9b15 ldr r3, [sp, #84] ; 0x54 - 8007e56: 4606 mov r6, r0 - 8007e58: 3330 adds r3, #48 ; 0x30 - 8007e5a: f804 3b01 strb.w r3, [r4], #1 - 8007e5e: 9b12 ldr r3, [sp, #72] ; 0x48 - 8007e60: 460f mov r7, r1 - 8007e62: 429c cmp r4, r3 - 8007e64: f04f 0200 mov.w r2, #0 - 8007e68: d124 bne.n 8007eb4 <_dtoa_r+0x64c> - 8007e6a: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 8007e6e: 4bb3 ldr r3, [pc, #716] ; (800813c <_dtoa_r+0x8d4>) - 8007e70: f7f8 f9e8 bl 8000244 <__adddf3> - 8007e74: 4602 mov r2, r0 - 8007e76: 460b mov r3, r1 - 8007e78: 4630 mov r0, r6 - 8007e7a: 4639 mov r1, r7 - 8007e7c: f7f8 fe28 bl 8000ad0 <__aeabi_dcmpgt> - 8007e80: 2800 cmp r0, #0 - 8007e82: d162 bne.n 8007f4a <_dtoa_r+0x6e2> - 8007e84: e9dd 2310 ldrd r2, r3, [sp, #64] ; 0x40 - 8007e88: 2000 movs r0, #0 - 8007e8a: 49ac ldr r1, [pc, #688] ; (800813c <_dtoa_r+0x8d4>) - 8007e8c: f7f8 f9d8 bl 8000240 <__aeabi_dsub> - 8007e90: 4602 mov r2, r0 - 8007e92: 460b mov r3, r1 - 8007e94: 4630 mov r0, r6 - 8007e96: 4639 mov r1, r7 - 8007e98: f7f8 fdfc bl 8000a94 <__aeabi_dcmplt> - 8007e9c: 2800 cmp r0, #0 - 8007e9e: f43f af1d beq.w 8007cdc <_dtoa_r+0x474> - 8007ea2: 9f14 ldr r7, [sp, #80] ; 0x50 - 8007ea4: 1e7b subs r3, r7, #1 - 8007ea6: 9314 str r3, [sp, #80] ; 0x50 - 8007ea8: f817 3c01 ldrb.w r3, [r7, #-1] - 8007eac: 2b30 cmp r3, #48 ; 0x30 - 8007eae: d0f8 beq.n 8007ea2 <_dtoa_r+0x63a> - 8007eb0: 46c1 mov r9, r8 - 8007eb2: e03a b.n 8007f2a <_dtoa_r+0x6c2> - 8007eb4: 4ba2 ldr r3, [pc, #648] ; (8008140 <_dtoa_r+0x8d8>) - 8007eb6: f7f8 fb7b bl 80005b0 <__aeabi_dmul> - 8007eba: e9cd 0104 strd r0, r1, [sp, #16] - 8007ebe: e7bc b.n 8007e3a <_dtoa_r+0x5d2> - 8007ec0: 9f08 ldr r7, [sp, #32] - 8007ec2: e9dd 2306 ldrd r2, r3, [sp, #24] - 8007ec6: e9dd 0104 ldrd r0, r1, [sp, #16] - 8007eca: f7f8 fc9b bl 8000804 <__aeabi_ddiv> - 8007ece: f7f8 fe1f bl 8000b10 <__aeabi_d2iz> - 8007ed2: 4604 mov r4, r0 - 8007ed4: f7f8 fb02 bl 80004dc <__aeabi_i2d> - 8007ed8: e9dd 2306 ldrd r2, r3, [sp, #24] - 8007edc: f7f8 fb68 bl 80005b0 <__aeabi_dmul> - 8007ee0: f104 0630 add.w r6, r4, #48 ; 0x30 - 8007ee4: 460b mov r3, r1 - 8007ee6: 4602 mov r2, r0 - 8007ee8: e9dd 0104 ldrd r0, r1, [sp, #16] - 8007eec: f7f8 f9a8 bl 8000240 <__aeabi_dsub> - 8007ef0: f807 6b01 strb.w r6, [r7], #1 - 8007ef4: 9e08 ldr r6, [sp, #32] - 8007ef6: 9b02 ldr r3, [sp, #8] - 8007ef8: 1bbe subs r6, r7, r6 - 8007efa: 42b3 cmp r3, r6 - 8007efc: d13a bne.n 8007f74 <_dtoa_r+0x70c> - 8007efe: 4602 mov r2, r0 - 8007f00: 460b mov r3, r1 - 8007f02: f7f8 f99f bl 8000244 <__adddf3> - 8007f06: 4602 mov r2, r0 - 8007f08: 460b mov r3, r1 - 8007f0a: e9cd 2302 strd r2, r3, [sp, #8] - 8007f0e: e9dd 2306 ldrd r2, r3, [sp, #24] - 8007f12: f7f8 fddd bl 8000ad0 <__aeabi_dcmpgt> - 8007f16: bb58 cbnz r0, 8007f70 <_dtoa_r+0x708> - 8007f18: e9dd 2306 ldrd r2, r3, [sp, #24] - 8007f1c: e9dd 0102 ldrd r0, r1, [sp, #8] - 8007f20: f7f8 fdae bl 8000a80 <__aeabi_dcmpeq> - 8007f24: b108 cbz r0, 8007f2a <_dtoa_r+0x6c2> - 8007f26: 07e1 lsls r1, r4, #31 - 8007f28: d422 bmi.n 8007f70 <_dtoa_r+0x708> - 8007f2a: 4628 mov r0, r5 - 8007f2c: 4651 mov r1, sl - 8007f2e: f000 fd15 bl 800895c <_Bfree> - 8007f32: 2300 movs r3, #0 - 8007f34: 703b strb r3, [r7, #0] - 8007f36: 9b24 ldr r3, [sp, #144] ; 0x90 - 8007f38: f109 0001 add.w r0, r9, #1 - 8007f3c: 6018 str r0, [r3, #0] - 8007f3e: 9b26 ldr r3, [sp, #152] ; 0x98 - 8007f40: 2b00 cmp r3, #0 - 8007f42: f43f acdf beq.w 8007904 <_dtoa_r+0x9c> - 8007f46: 601f str r7, [r3, #0] - 8007f48: e4dc b.n 8007904 <_dtoa_r+0x9c> - 8007f4a: 4627 mov r7, r4 - 8007f4c: 463b mov r3, r7 - 8007f4e: 461f mov r7, r3 - 8007f50: f813 2d01 ldrb.w r2, [r3, #-1]! - 8007f54: 2a39 cmp r2, #57 ; 0x39 - 8007f56: d107 bne.n 8007f68 <_dtoa_r+0x700> - 8007f58: 9a08 ldr r2, [sp, #32] - 8007f5a: 429a cmp r2, r3 - 8007f5c: d1f7 bne.n 8007f4e <_dtoa_r+0x6e6> - 8007f5e: 2230 movs r2, #48 ; 0x30 - 8007f60: 9908 ldr r1, [sp, #32] - 8007f62: f108 0801 add.w r8, r8, #1 - 8007f66: 700a strb r2, [r1, #0] - 8007f68: 781a ldrb r2, [r3, #0] - 8007f6a: 3201 adds r2, #1 - 8007f6c: 701a strb r2, [r3, #0] - 8007f6e: e79f b.n 8007eb0 <_dtoa_r+0x648> - 8007f70: 46c8 mov r8, r9 - 8007f72: e7eb b.n 8007f4c <_dtoa_r+0x6e4> - 8007f74: 2200 movs r2, #0 - 8007f76: 4b72 ldr r3, [pc, #456] ; (8008140 <_dtoa_r+0x8d8>) - 8007f78: f7f8 fb1a bl 80005b0 <__aeabi_dmul> - 8007f7c: 4602 mov r2, r0 - 8007f7e: 460b mov r3, r1 - 8007f80: e9cd 2304 strd r2, r3, [sp, #16] - 8007f84: 2200 movs r2, #0 - 8007f86: 2300 movs r3, #0 - 8007f88: f7f8 fd7a bl 8000a80 <__aeabi_dcmpeq> - 8007f8c: 2800 cmp r0, #0 - 8007f8e: d098 beq.n 8007ec2 <_dtoa_r+0x65a> - 8007f90: e7cb b.n 8007f2a <_dtoa_r+0x6c2> - 8007f92: 9a0b ldr r2, [sp, #44] ; 0x2c - 8007f94: 2a00 cmp r2, #0 - 8007f96: f000 80cd beq.w 8008134 <_dtoa_r+0x8cc> - 8007f9a: 9a22 ldr r2, [sp, #136] ; 0x88 - 8007f9c: 2a01 cmp r2, #1 - 8007f9e: f300 80af bgt.w 8008100 <_dtoa_r+0x898> - 8007fa2: 9a13 ldr r2, [sp, #76] ; 0x4c - 8007fa4: 2a00 cmp r2, #0 - 8007fa6: f000 80a7 beq.w 80080f8 <_dtoa_r+0x890> - 8007faa: f203 4333 addw r3, r3, #1075 ; 0x433 - 8007fae: 9c0a ldr r4, [sp, #40] ; 0x28 - 8007fb0: 9f06 ldr r7, [sp, #24] - 8007fb2: 9a06 ldr r2, [sp, #24] - 8007fb4: 2101 movs r1, #1 - 8007fb6: 441a add r2, r3 - 8007fb8: 9206 str r2, [sp, #24] - 8007fba: 9a09 ldr r2, [sp, #36] ; 0x24 - 8007fbc: 4628 mov r0, r5 - 8007fbe: 441a add r2, r3 - 8007fc0: 9209 str r2, [sp, #36] ; 0x24 - 8007fc2: f000 fd85 bl 8008ad0 <__i2b> - 8007fc6: 4606 mov r6, r0 - 8007fc8: 2f00 cmp r7, #0 - 8007fca: dd0c ble.n 8007fe6 <_dtoa_r+0x77e> - 8007fcc: 9b09 ldr r3, [sp, #36] ; 0x24 - 8007fce: 2b00 cmp r3, #0 - 8007fd0: dd09 ble.n 8007fe6 <_dtoa_r+0x77e> - 8007fd2: 42bb cmp r3, r7 - 8007fd4: bfa8 it ge - 8007fd6: 463b movge r3, r7 - 8007fd8: 9a06 ldr r2, [sp, #24] - 8007fda: 1aff subs r7, r7, r3 - 8007fdc: 1ad2 subs r2, r2, r3 - 8007fde: 9206 str r2, [sp, #24] - 8007fe0: 9a09 ldr r2, [sp, #36] ; 0x24 - 8007fe2: 1ad3 subs r3, r2, r3 - 8007fe4: 9309 str r3, [sp, #36] ; 0x24 - 8007fe6: 9b0a ldr r3, [sp, #40] ; 0x28 - 8007fe8: b1f3 cbz r3, 8008028 <_dtoa_r+0x7c0> - 8007fea: 9b0b ldr r3, [sp, #44] ; 0x2c - 8007fec: 2b00 cmp r3, #0 - 8007fee: f000 80a9 beq.w 8008144 <_dtoa_r+0x8dc> - 8007ff2: 2c00 cmp r4, #0 - 8007ff4: dd10 ble.n 8008018 <_dtoa_r+0x7b0> - 8007ff6: 4631 mov r1, r6 - 8007ff8: 4622 mov r2, r4 - 8007ffa: 4628 mov r0, r5 - 8007ffc: f000 fe22 bl 8008c44 <__pow5mult> - 8008000: 4652 mov r2, sl - 8008002: 4601 mov r1, r0 - 8008004: 4606 mov r6, r0 - 8008006: 4628 mov r0, r5 - 8008008: f000 fd78 bl 8008afc <__multiply> - 800800c: 4680 mov r8, r0 - 800800e: 4651 mov r1, sl - 8008010: 4628 mov r0, r5 - 8008012: f000 fca3 bl 800895c <_Bfree> - 8008016: 46c2 mov sl, r8 - 8008018: 9b0a ldr r3, [sp, #40] ; 0x28 - 800801a: 1b1a subs r2, r3, r4 - 800801c: d004 beq.n 8008028 <_dtoa_r+0x7c0> - 800801e: 4651 mov r1, sl - 8008020: 4628 mov r0, r5 - 8008022: f000 fe0f bl 8008c44 <__pow5mult> - 8008026: 4682 mov sl, r0 - 8008028: 2101 movs r1, #1 - 800802a: 4628 mov r0, r5 - 800802c: f000 fd50 bl 8008ad0 <__i2b> - 8008030: 9b0e ldr r3, [sp, #56] ; 0x38 - 8008032: 4604 mov r4, r0 - 8008034: 2b00 cmp r3, #0 - 8008036: f340 8087 ble.w 8008148 <_dtoa_r+0x8e0> - 800803a: 461a mov r2, r3 - 800803c: 4601 mov r1, r0 - 800803e: 4628 mov r0, r5 - 8008040: f000 fe00 bl 8008c44 <__pow5mult> - 8008044: 9b22 ldr r3, [sp, #136] ; 0x88 - 8008046: 4604 mov r4, r0 - 8008048: 2b01 cmp r3, #1 - 800804a: f340 8080 ble.w 800814e <_dtoa_r+0x8e6> - 800804e: f04f 0800 mov.w r8, #0 - 8008052: 6923 ldr r3, [r4, #16] - 8008054: eb04 0383 add.w r3, r4, r3, lsl #2 - 8008058: 6918 ldr r0, [r3, #16] - 800805a: f000 fceb bl 8008a34 <__hi0bits> - 800805e: f1c0 0020 rsb r0, r0, #32 - 8008062: 9b09 ldr r3, [sp, #36] ; 0x24 - 8008064: 4418 add r0, r3 - 8008066: f010 001f ands.w r0, r0, #31 - 800806a: f000 8092 beq.w 8008192 <_dtoa_r+0x92a> - 800806e: f1c0 0320 rsb r3, r0, #32 - 8008072: 2b04 cmp r3, #4 - 8008074: f340 808a ble.w 800818c <_dtoa_r+0x924> - 8008078: f1c0 001c rsb r0, r0, #28 - 800807c: 9b06 ldr r3, [sp, #24] - 800807e: 4407 add r7, r0 - 8008080: 4403 add r3, r0 - 8008082: 9306 str r3, [sp, #24] - 8008084: 9b09 ldr r3, [sp, #36] ; 0x24 - 8008086: 4403 add r3, r0 - 8008088: 9309 str r3, [sp, #36] ; 0x24 - 800808a: 9b06 ldr r3, [sp, #24] - 800808c: 2b00 cmp r3, #0 - 800808e: dd05 ble.n 800809c <_dtoa_r+0x834> - 8008090: 4651 mov r1, sl - 8008092: 461a mov r2, r3 - 8008094: 4628 mov r0, r5 - 8008096: f000 fe2f bl 8008cf8 <__lshift> - 800809a: 4682 mov sl, r0 - 800809c: 9b09 ldr r3, [sp, #36] ; 0x24 - 800809e: 2b00 cmp r3, #0 - 80080a0: dd05 ble.n 80080ae <_dtoa_r+0x846> - 80080a2: 4621 mov r1, r4 - 80080a4: 461a mov r2, r3 - 80080a6: 4628 mov r0, r5 - 80080a8: f000 fe26 bl 8008cf8 <__lshift> - 80080ac: 4604 mov r4, r0 - 80080ae: 9b0f ldr r3, [sp, #60] ; 0x3c - 80080b0: 2b00 cmp r3, #0 - 80080b2: d070 beq.n 8008196 <_dtoa_r+0x92e> - 80080b4: 4621 mov r1, r4 - 80080b6: 4650 mov r0, sl - 80080b8: f000 fe8a bl 8008dd0 <__mcmp> - 80080bc: 2800 cmp r0, #0 - 80080be: da6a bge.n 8008196 <_dtoa_r+0x92e> - 80080c0: 2300 movs r3, #0 - 80080c2: 4651 mov r1, sl - 80080c4: 220a movs r2, #10 - 80080c6: 4628 mov r0, r5 - 80080c8: f000 fc6a bl 80089a0 <__multadd> - 80080cc: 9b0b ldr r3, [sp, #44] ; 0x2c - 80080ce: 4682 mov sl, r0 - 80080d0: f109 39ff add.w r9, r9, #4294967295 - 80080d4: 2b00 cmp r3, #0 - 80080d6: f000 8193 beq.w 8008400 <_dtoa_r+0xb98> - 80080da: 4631 mov r1, r6 - 80080dc: 2300 movs r3, #0 - 80080de: 220a movs r2, #10 - 80080e0: 4628 mov r0, r5 - 80080e2: f000 fc5d bl 80089a0 <__multadd> - 80080e6: f1bb 0f00 cmp.w fp, #0 - 80080ea: 4606 mov r6, r0 - 80080ec: f300 8093 bgt.w 8008216 <_dtoa_r+0x9ae> - 80080f0: 9b22 ldr r3, [sp, #136] ; 0x88 - 80080f2: 2b02 cmp r3, #2 - 80080f4: dc57 bgt.n 80081a6 <_dtoa_r+0x93e> - 80080f6: e08e b.n 8008216 <_dtoa_r+0x9ae> - 80080f8: 9b16 ldr r3, [sp, #88] ; 0x58 - 80080fa: f1c3 0336 rsb r3, r3, #54 ; 0x36 - 80080fe: e756 b.n 8007fae <_dtoa_r+0x746> - 8008100: 9b02 ldr r3, [sp, #8] - 8008102: 1e5c subs r4, r3, #1 - 8008104: 9b0a ldr r3, [sp, #40] ; 0x28 - 8008106: 42a3 cmp r3, r4 - 8008108: bfb7 itett lt - 800810a: 9b0a ldrlt r3, [sp, #40] ; 0x28 - 800810c: 1b1c subge r4, r3, r4 - 800810e: 1ae2 sublt r2, r4, r3 - 8008110: 9b0e ldrlt r3, [sp, #56] ; 0x38 - 8008112: bfbe ittt lt - 8008114: 940a strlt r4, [sp, #40] ; 0x28 - 8008116: 189b addlt r3, r3, r2 - 8008118: 930e strlt r3, [sp, #56] ; 0x38 - 800811a: 9b02 ldr r3, [sp, #8] - 800811c: bfb8 it lt - 800811e: 2400 movlt r4, #0 - 8008120: 2b00 cmp r3, #0 - 8008122: bfbb ittet lt - 8008124: 9b06 ldrlt r3, [sp, #24] - 8008126: 9a02 ldrlt r2, [sp, #8] - 8008128: 9f06 ldrge r7, [sp, #24] - 800812a: 1a9f sublt r7, r3, r2 - 800812c: bfac ite ge - 800812e: 9b02 ldrge r3, [sp, #8] - 8008130: 2300 movlt r3, #0 - 8008132: e73e b.n 8007fb2 <_dtoa_r+0x74a> - 8008134: 9c0a ldr r4, [sp, #40] ; 0x28 - 8008136: 9f06 ldr r7, [sp, #24] - 8008138: 9e0b ldr r6, [sp, #44] ; 0x2c - 800813a: e745 b.n 8007fc8 <_dtoa_r+0x760> - 800813c: 3fe00000 .word 0x3fe00000 - 8008140: 40240000 .word 0x40240000 - 8008144: 9a0a ldr r2, [sp, #40] ; 0x28 - 8008146: e76a b.n 800801e <_dtoa_r+0x7b6> - 8008148: 9b22 ldr r3, [sp, #136] ; 0x88 - 800814a: 2b01 cmp r3, #1 - 800814c: dc19 bgt.n 8008182 <_dtoa_r+0x91a> - 800814e: 9b04 ldr r3, [sp, #16] - 8008150: b9bb cbnz r3, 8008182 <_dtoa_r+0x91a> - 8008152: 9b05 ldr r3, [sp, #20] - 8008154: f3c3 0313 ubfx r3, r3, #0, #20 - 8008158: b99b cbnz r3, 8008182 <_dtoa_r+0x91a> - 800815a: 9b05 ldr r3, [sp, #20] - 800815c: f023 4300 bic.w r3, r3, #2147483648 ; 0x80000000 - 8008160: 0d1b lsrs r3, r3, #20 - 8008162: 051b lsls r3, r3, #20 - 8008164: b183 cbz r3, 8008188 <_dtoa_r+0x920> - 8008166: f04f 0801 mov.w r8, #1 - 800816a: 9b06 ldr r3, [sp, #24] - 800816c: 3301 adds r3, #1 - 800816e: 9306 str r3, [sp, #24] - 8008170: 9b09 ldr r3, [sp, #36] ; 0x24 - 8008172: 3301 adds r3, #1 - 8008174: 9309 str r3, [sp, #36] ; 0x24 - 8008176: 9b0e ldr r3, [sp, #56] ; 0x38 - 8008178: 2b00 cmp r3, #0 - 800817a: f47f af6a bne.w 8008052 <_dtoa_r+0x7ea> - 800817e: 2001 movs r0, #1 - 8008180: e76f b.n 8008062 <_dtoa_r+0x7fa> - 8008182: f04f 0800 mov.w r8, #0 - 8008186: e7f6 b.n 8008176 <_dtoa_r+0x90e> - 8008188: 4698 mov r8, r3 - 800818a: e7f4 b.n 8008176 <_dtoa_r+0x90e> - 800818c: f43f af7d beq.w 800808a <_dtoa_r+0x822> - 8008190: 4618 mov r0, r3 - 8008192: 301c adds r0, #28 - 8008194: e772 b.n 800807c <_dtoa_r+0x814> - 8008196: 9b02 ldr r3, [sp, #8] - 8008198: 2b00 cmp r3, #0 - 800819a: dc36 bgt.n 800820a <_dtoa_r+0x9a2> - 800819c: 9b22 ldr r3, [sp, #136] ; 0x88 - 800819e: 2b02 cmp r3, #2 - 80081a0: dd33 ble.n 800820a <_dtoa_r+0x9a2> - 80081a2: f8dd b008 ldr.w fp, [sp, #8] - 80081a6: f1bb 0f00 cmp.w fp, #0 - 80081aa: d10d bne.n 80081c8 <_dtoa_r+0x960> - 80081ac: 4621 mov r1, r4 - 80081ae: 465b mov r3, fp - 80081b0: 2205 movs r2, #5 - 80081b2: 4628 mov r0, r5 - 80081b4: f000 fbf4 bl 80089a0 <__multadd> - 80081b8: 4601 mov r1, r0 - 80081ba: 4604 mov r4, r0 - 80081bc: 4650 mov r0, sl - 80081be: f000 fe07 bl 8008dd0 <__mcmp> - 80081c2: 2800 cmp r0, #0 - 80081c4: f73f adb6 bgt.w 8007d34 <_dtoa_r+0x4cc> - 80081c8: 9b23 ldr r3, [sp, #140] ; 0x8c - 80081ca: 9f08 ldr r7, [sp, #32] - 80081cc: ea6f 0903 mvn.w r9, r3 - 80081d0: f04f 0800 mov.w r8, #0 - 80081d4: 4621 mov r1, r4 - 80081d6: 4628 mov r0, r5 - 80081d8: f000 fbc0 bl 800895c <_Bfree> - 80081dc: 2e00 cmp r6, #0 - 80081de: f43f aea4 beq.w 8007f2a <_dtoa_r+0x6c2> - 80081e2: f1b8 0f00 cmp.w r8, #0 - 80081e6: d005 beq.n 80081f4 <_dtoa_r+0x98c> - 80081e8: 45b0 cmp r8, r6 - 80081ea: d003 beq.n 80081f4 <_dtoa_r+0x98c> - 80081ec: 4641 mov r1, r8 - 80081ee: 4628 mov r0, r5 - 80081f0: f000 fbb4 bl 800895c <_Bfree> - 80081f4: 4631 mov r1, r6 - 80081f6: 4628 mov r0, r5 - 80081f8: f000 fbb0 bl 800895c <_Bfree> - 80081fc: e695 b.n 8007f2a <_dtoa_r+0x6c2> - 80081fe: 2400 movs r4, #0 - 8008200: 4626 mov r6, r4 - 8008202: e7e1 b.n 80081c8 <_dtoa_r+0x960> - 8008204: 46c1 mov r9, r8 - 8008206: 4626 mov r6, r4 - 8008208: e594 b.n 8007d34 <_dtoa_r+0x4cc> - 800820a: 9b0b ldr r3, [sp, #44] ; 0x2c - 800820c: f8dd b008 ldr.w fp, [sp, #8] - 8008210: 2b00 cmp r3, #0 - 8008212: f000 80fc beq.w 800840e <_dtoa_r+0xba6> - 8008216: 2f00 cmp r7, #0 - 8008218: dd05 ble.n 8008226 <_dtoa_r+0x9be> - 800821a: 4631 mov r1, r6 - 800821c: 463a mov r2, r7 - 800821e: 4628 mov r0, r5 - 8008220: f000 fd6a bl 8008cf8 <__lshift> - 8008224: 4606 mov r6, r0 - 8008226: f1b8 0f00 cmp.w r8, #0 - 800822a: d05c beq.n 80082e6 <_dtoa_r+0xa7e> - 800822c: 4628 mov r0, r5 - 800822e: 6871 ldr r1, [r6, #4] - 8008230: f000 fb54 bl 80088dc <_Balloc> - 8008234: 4607 mov r7, r0 - 8008236: b928 cbnz r0, 8008244 <_dtoa_r+0x9dc> - 8008238: 4602 mov r2, r0 - 800823a: f240 21ea movw r1, #746 ; 0x2ea - 800823e: 4b7e ldr r3, [pc, #504] ; (8008438 <_dtoa_r+0xbd0>) - 8008240: f7ff bb26 b.w 8007890 <_dtoa_r+0x28> - 8008244: 6932 ldr r2, [r6, #16] - 8008246: f106 010c add.w r1, r6, #12 - 800824a: 3202 adds r2, #2 - 800824c: 0092 lsls r2, r2, #2 - 800824e: 300c adds r0, #12 - 8008250: f000 fb2a bl 80088a8 - 8008254: 2201 movs r2, #1 - 8008256: 4639 mov r1, r7 - 8008258: 4628 mov r0, r5 - 800825a: f000 fd4d bl 8008cf8 <__lshift> - 800825e: 46b0 mov r8, r6 - 8008260: 4606 mov r6, r0 - 8008262: 9b08 ldr r3, [sp, #32] - 8008264: 3301 adds r3, #1 - 8008266: 9302 str r3, [sp, #8] - 8008268: 9b08 ldr r3, [sp, #32] - 800826a: 445b add r3, fp - 800826c: 930a str r3, [sp, #40] ; 0x28 - 800826e: 9b04 ldr r3, [sp, #16] - 8008270: f003 0301 and.w r3, r3, #1 - 8008274: 9309 str r3, [sp, #36] ; 0x24 - 8008276: 9b02 ldr r3, [sp, #8] - 8008278: 4621 mov r1, r4 - 800827a: 4650 mov r0, sl - 800827c: f103 3bff add.w fp, r3, #4294967295 - 8008280: f7ff fa62 bl 8007748 - 8008284: 4603 mov r3, r0 - 8008286: 4641 mov r1, r8 - 8008288: 3330 adds r3, #48 ; 0x30 - 800828a: 9004 str r0, [sp, #16] - 800828c: 4650 mov r0, sl - 800828e: 930b str r3, [sp, #44] ; 0x2c - 8008290: f000 fd9e bl 8008dd0 <__mcmp> - 8008294: 4632 mov r2, r6 - 8008296: 9006 str r0, [sp, #24] - 8008298: 4621 mov r1, r4 - 800829a: 4628 mov r0, r5 - 800829c: f000 fdb4 bl 8008e08 <__mdiff> - 80082a0: 68c2 ldr r2, [r0, #12] - 80082a2: 4607 mov r7, r0 - 80082a4: 9b0b ldr r3, [sp, #44] ; 0x2c - 80082a6: bb02 cbnz r2, 80082ea <_dtoa_r+0xa82> - 80082a8: 4601 mov r1, r0 - 80082aa: 4650 mov r0, sl - 80082ac: f000 fd90 bl 8008dd0 <__mcmp> - 80082b0: 4602 mov r2, r0 - 80082b2: 9b0b ldr r3, [sp, #44] ; 0x2c - 80082b4: 4639 mov r1, r7 - 80082b6: 4628 mov r0, r5 - 80082b8: e9cd 320b strd r3, r2, [sp, #44] ; 0x2c - 80082bc: f000 fb4e bl 800895c <_Bfree> - 80082c0: 9b22 ldr r3, [sp, #136] ; 0x88 - 80082c2: 9a0c ldr r2, [sp, #48] ; 0x30 - 80082c4: 9f02 ldr r7, [sp, #8] - 80082c6: ea43 0102 orr.w r1, r3, r2 - 80082ca: 9b09 ldr r3, [sp, #36] ; 0x24 - 80082cc: 430b orrs r3, r1 - 80082ce: 9b0b ldr r3, [sp, #44] ; 0x2c - 80082d0: d10d bne.n 80082ee <_dtoa_r+0xa86> - 80082d2: 2b39 cmp r3, #57 ; 0x39 - 80082d4: d027 beq.n 8008326 <_dtoa_r+0xabe> - 80082d6: 9a06 ldr r2, [sp, #24] - 80082d8: 2a00 cmp r2, #0 - 80082da: dd01 ble.n 80082e0 <_dtoa_r+0xa78> - 80082dc: 9b04 ldr r3, [sp, #16] - 80082de: 3331 adds r3, #49 ; 0x31 - 80082e0: f88b 3000 strb.w r3, [fp] - 80082e4: e776 b.n 80081d4 <_dtoa_r+0x96c> - 80082e6: 4630 mov r0, r6 - 80082e8: e7b9 b.n 800825e <_dtoa_r+0x9f6> - 80082ea: 2201 movs r2, #1 - 80082ec: e7e2 b.n 80082b4 <_dtoa_r+0xa4c> - 80082ee: 9906 ldr r1, [sp, #24] - 80082f0: 2900 cmp r1, #0 - 80082f2: db04 blt.n 80082fe <_dtoa_r+0xa96> - 80082f4: 9822 ldr r0, [sp, #136] ; 0x88 - 80082f6: 4301 orrs r1, r0 - 80082f8: 9809 ldr r0, [sp, #36] ; 0x24 - 80082fa: 4301 orrs r1, r0 - 80082fc: d120 bne.n 8008340 <_dtoa_r+0xad8> - 80082fe: 2a00 cmp r2, #0 - 8008300: ddee ble.n 80082e0 <_dtoa_r+0xa78> - 8008302: 4651 mov r1, sl - 8008304: 2201 movs r2, #1 - 8008306: 4628 mov r0, r5 - 8008308: 9302 str r3, [sp, #8] - 800830a: f000 fcf5 bl 8008cf8 <__lshift> - 800830e: 4621 mov r1, r4 - 8008310: 4682 mov sl, r0 - 8008312: f000 fd5d bl 8008dd0 <__mcmp> - 8008316: 2800 cmp r0, #0 - 8008318: 9b02 ldr r3, [sp, #8] - 800831a: dc02 bgt.n 8008322 <_dtoa_r+0xaba> - 800831c: d1e0 bne.n 80082e0 <_dtoa_r+0xa78> - 800831e: 07da lsls r2, r3, #31 - 8008320: d5de bpl.n 80082e0 <_dtoa_r+0xa78> - 8008322: 2b39 cmp r3, #57 ; 0x39 - 8008324: d1da bne.n 80082dc <_dtoa_r+0xa74> - 8008326: 2339 movs r3, #57 ; 0x39 - 8008328: f88b 3000 strb.w r3, [fp] - 800832c: 463b mov r3, r7 - 800832e: 461f mov r7, r3 - 8008330: f817 2c01 ldrb.w r2, [r7, #-1] - 8008334: 3b01 subs r3, #1 - 8008336: 2a39 cmp r2, #57 ; 0x39 - 8008338: d050 beq.n 80083dc <_dtoa_r+0xb74> - 800833a: 3201 adds r2, #1 - 800833c: 701a strb r2, [r3, #0] - 800833e: e749 b.n 80081d4 <_dtoa_r+0x96c> - 8008340: 2a00 cmp r2, #0 - 8008342: dd03 ble.n 800834c <_dtoa_r+0xae4> - 8008344: 2b39 cmp r3, #57 ; 0x39 - 8008346: d0ee beq.n 8008326 <_dtoa_r+0xabe> - 8008348: 3301 adds r3, #1 - 800834a: e7c9 b.n 80082e0 <_dtoa_r+0xa78> - 800834c: 9a02 ldr r2, [sp, #8] - 800834e: 990a ldr r1, [sp, #40] ; 0x28 - 8008350: f802 3c01 strb.w r3, [r2, #-1] - 8008354: 428a cmp r2, r1 - 8008356: d02a beq.n 80083ae <_dtoa_r+0xb46> - 8008358: 4651 mov r1, sl - 800835a: 2300 movs r3, #0 - 800835c: 220a movs r2, #10 - 800835e: 4628 mov r0, r5 - 8008360: f000 fb1e bl 80089a0 <__multadd> - 8008364: 45b0 cmp r8, r6 - 8008366: 4682 mov sl, r0 - 8008368: f04f 0300 mov.w r3, #0 - 800836c: f04f 020a mov.w r2, #10 - 8008370: 4641 mov r1, r8 - 8008372: 4628 mov r0, r5 - 8008374: d107 bne.n 8008386 <_dtoa_r+0xb1e> - 8008376: f000 fb13 bl 80089a0 <__multadd> - 800837a: 4680 mov r8, r0 - 800837c: 4606 mov r6, r0 - 800837e: 9b02 ldr r3, [sp, #8] - 8008380: 3301 adds r3, #1 - 8008382: 9302 str r3, [sp, #8] - 8008384: e777 b.n 8008276 <_dtoa_r+0xa0e> - 8008386: f000 fb0b bl 80089a0 <__multadd> - 800838a: 4631 mov r1, r6 - 800838c: 4680 mov r8, r0 - 800838e: 2300 movs r3, #0 - 8008390: 220a movs r2, #10 - 8008392: 4628 mov r0, r5 - 8008394: f000 fb04 bl 80089a0 <__multadd> - 8008398: 4606 mov r6, r0 - 800839a: e7f0 b.n 800837e <_dtoa_r+0xb16> - 800839c: f1bb 0f00 cmp.w fp, #0 - 80083a0: bfcc ite gt - 80083a2: 465f movgt r7, fp - 80083a4: 2701 movle r7, #1 - 80083a6: f04f 0800 mov.w r8, #0 - 80083aa: 9a08 ldr r2, [sp, #32] - 80083ac: 4417 add r7, r2 - 80083ae: 4651 mov r1, sl - 80083b0: 2201 movs r2, #1 - 80083b2: 4628 mov r0, r5 - 80083b4: 9302 str r3, [sp, #8] - 80083b6: f000 fc9f bl 8008cf8 <__lshift> - 80083ba: 4621 mov r1, r4 - 80083bc: 4682 mov sl, r0 - 80083be: f000 fd07 bl 8008dd0 <__mcmp> - 80083c2: 2800 cmp r0, #0 - 80083c4: dcb2 bgt.n 800832c <_dtoa_r+0xac4> - 80083c6: d102 bne.n 80083ce <_dtoa_r+0xb66> - 80083c8: 9b02 ldr r3, [sp, #8] - 80083ca: 07db lsls r3, r3, #31 - 80083cc: d4ae bmi.n 800832c <_dtoa_r+0xac4> - 80083ce: 463b mov r3, r7 - 80083d0: 461f mov r7, r3 - 80083d2: f813 2d01 ldrb.w r2, [r3, #-1]! - 80083d6: 2a30 cmp r2, #48 ; 0x30 - 80083d8: d0fa beq.n 80083d0 <_dtoa_r+0xb68> - 80083da: e6fb b.n 80081d4 <_dtoa_r+0x96c> - 80083dc: 9a08 ldr r2, [sp, #32] - 80083de: 429a cmp r2, r3 - 80083e0: d1a5 bne.n 800832e <_dtoa_r+0xac6> - 80083e2: 2331 movs r3, #49 ; 0x31 - 80083e4: f109 0901 add.w r9, r9, #1 - 80083e8: 7013 strb r3, [r2, #0] - 80083ea: e6f3 b.n 80081d4 <_dtoa_r+0x96c> - 80083ec: 4b13 ldr r3, [pc, #76] ; (800843c <_dtoa_r+0xbd4>) - 80083ee: f7ff baa7 b.w 8007940 <_dtoa_r+0xd8> - 80083f2: 9b26 ldr r3, [sp, #152] ; 0x98 - 80083f4: 2b00 cmp r3, #0 - 80083f6: f47f aa80 bne.w 80078fa <_dtoa_r+0x92> - 80083fa: 4b11 ldr r3, [pc, #68] ; (8008440 <_dtoa_r+0xbd8>) - 80083fc: f7ff baa0 b.w 8007940 <_dtoa_r+0xd8> - 8008400: f1bb 0f00 cmp.w fp, #0 - 8008404: dc03 bgt.n 800840e <_dtoa_r+0xba6> - 8008406: 9b22 ldr r3, [sp, #136] ; 0x88 - 8008408: 2b02 cmp r3, #2 - 800840a: f73f aecc bgt.w 80081a6 <_dtoa_r+0x93e> - 800840e: 9f08 ldr r7, [sp, #32] - 8008410: 4621 mov r1, r4 - 8008412: 4650 mov r0, sl - 8008414: f7ff f998 bl 8007748 - 8008418: 9a08 ldr r2, [sp, #32] - 800841a: f100 0330 add.w r3, r0, #48 ; 0x30 - 800841e: f807 3b01 strb.w r3, [r7], #1 - 8008422: 1aba subs r2, r7, r2 - 8008424: 4593 cmp fp, r2 - 8008426: ddb9 ble.n 800839c <_dtoa_r+0xb34> - 8008428: 4651 mov r1, sl - 800842a: 2300 movs r3, #0 - 800842c: 220a movs r2, #10 - 800842e: 4628 mov r0, r5 - 8008430: f000 fab6 bl 80089a0 <__multadd> - 8008434: 4682 mov sl, r0 - 8008436: e7eb b.n 8008410 <_dtoa_r+0xba8> - 8008438: 0800a50f .word 0x0800a50f - 800843c: 0800a468 .word 0x0800a468 - 8008440: 0800a48c .word 0x0800a48c - -08008444 <__sflush_r>: - 8008444: 898a ldrh r2, [r1, #12] - 8008446: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 800844a: 4605 mov r5, r0 - 800844c: 0710 lsls r0, r2, #28 - 800844e: 460c mov r4, r1 - 8008450: d458 bmi.n 8008504 <__sflush_r+0xc0> - 8008452: 684b ldr r3, [r1, #4] - 8008454: 2b00 cmp r3, #0 - 8008456: dc05 bgt.n 8008464 <__sflush_r+0x20> - 8008458: 6c0b ldr r3, [r1, #64] ; 0x40 - 800845a: 2b00 cmp r3, #0 - 800845c: dc02 bgt.n 8008464 <__sflush_r+0x20> - 800845e: 2000 movs r0, #0 - 8008460: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8008464: 6ae6 ldr r6, [r4, #44] ; 0x2c - 8008466: 2e00 cmp r6, #0 - 8008468: d0f9 beq.n 800845e <__sflush_r+0x1a> - 800846a: 2300 movs r3, #0 - 800846c: f412 5280 ands.w r2, r2, #4096 ; 0x1000 - 8008470: 682f ldr r7, [r5, #0] - 8008472: 602b str r3, [r5, #0] - 8008474: d032 beq.n 80084dc <__sflush_r+0x98> - 8008476: 6d60 ldr r0, [r4, #84] ; 0x54 - 8008478: 89a3 ldrh r3, [r4, #12] - 800847a: 075a lsls r2, r3, #29 - 800847c: d505 bpl.n 800848a <__sflush_r+0x46> - 800847e: 6863 ldr r3, [r4, #4] - 8008480: 1ac0 subs r0, r0, r3 - 8008482: 6b63 ldr r3, [r4, #52] ; 0x34 - 8008484: b10b cbz r3, 800848a <__sflush_r+0x46> - 8008486: 6c23 ldr r3, [r4, #64] ; 0x40 - 8008488: 1ac0 subs r0, r0, r3 - 800848a: 2300 movs r3, #0 - 800848c: 4602 mov r2, r0 - 800848e: 6ae6 ldr r6, [r4, #44] ; 0x2c - 8008490: 4628 mov r0, r5 - 8008492: 6a21 ldr r1, [r4, #32] - 8008494: 47b0 blx r6 - 8008496: 1c43 adds r3, r0, #1 - 8008498: 89a3 ldrh r3, [r4, #12] - 800849a: d106 bne.n 80084aa <__sflush_r+0x66> - 800849c: 6829 ldr r1, [r5, #0] - 800849e: 291d cmp r1, #29 - 80084a0: d82c bhi.n 80084fc <__sflush_r+0xb8> - 80084a2: 4a2a ldr r2, [pc, #168] ; (800854c <__sflush_r+0x108>) - 80084a4: 40ca lsrs r2, r1 - 80084a6: 07d6 lsls r6, r2, #31 - 80084a8: d528 bpl.n 80084fc <__sflush_r+0xb8> - 80084aa: 2200 movs r2, #0 - 80084ac: 6062 str r2, [r4, #4] - 80084ae: 6922 ldr r2, [r4, #16] - 80084b0: 04d9 lsls r1, r3, #19 - 80084b2: 6022 str r2, [r4, #0] - 80084b4: d504 bpl.n 80084c0 <__sflush_r+0x7c> - 80084b6: 1c42 adds r2, r0, #1 - 80084b8: d101 bne.n 80084be <__sflush_r+0x7a> - 80084ba: 682b ldr r3, [r5, #0] - 80084bc: b903 cbnz r3, 80084c0 <__sflush_r+0x7c> - 80084be: 6560 str r0, [r4, #84] ; 0x54 - 80084c0: 6b61 ldr r1, [r4, #52] ; 0x34 - 80084c2: 602f str r7, [r5, #0] - 80084c4: 2900 cmp r1, #0 - 80084c6: d0ca beq.n 800845e <__sflush_r+0x1a> - 80084c8: f104 0344 add.w r3, r4, #68 ; 0x44 - 80084cc: 4299 cmp r1, r3 - 80084ce: d002 beq.n 80084d6 <__sflush_r+0x92> - 80084d0: 4628 mov r0, r5 - 80084d2: f7fe fb43 bl 8006b5c <_free_r> - 80084d6: 2000 movs r0, #0 - 80084d8: 6360 str r0, [r4, #52] ; 0x34 - 80084da: e7c1 b.n 8008460 <__sflush_r+0x1c> - 80084dc: 6a21 ldr r1, [r4, #32] - 80084de: 2301 movs r3, #1 - 80084e0: 4628 mov r0, r5 - 80084e2: 47b0 blx r6 - 80084e4: 1c41 adds r1, r0, #1 - 80084e6: d1c7 bne.n 8008478 <__sflush_r+0x34> - 80084e8: 682b ldr r3, [r5, #0] - 80084ea: 2b00 cmp r3, #0 - 80084ec: d0c4 beq.n 8008478 <__sflush_r+0x34> - 80084ee: 2b1d cmp r3, #29 - 80084f0: d001 beq.n 80084f6 <__sflush_r+0xb2> - 80084f2: 2b16 cmp r3, #22 - 80084f4: d101 bne.n 80084fa <__sflush_r+0xb6> - 80084f6: 602f str r7, [r5, #0] - 80084f8: e7b1 b.n 800845e <__sflush_r+0x1a> - 80084fa: 89a3 ldrh r3, [r4, #12] - 80084fc: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8008500: 81a3 strh r3, [r4, #12] - 8008502: e7ad b.n 8008460 <__sflush_r+0x1c> - 8008504: 690f ldr r7, [r1, #16] - 8008506: 2f00 cmp r7, #0 - 8008508: d0a9 beq.n 800845e <__sflush_r+0x1a> - 800850a: 0793 lsls r3, r2, #30 - 800850c: bf18 it ne - 800850e: 2300 movne r3, #0 - 8008510: 680e ldr r6, [r1, #0] - 8008512: bf08 it eq - 8008514: 694b ldreq r3, [r1, #20] - 8008516: eba6 0807 sub.w r8, r6, r7 - 800851a: 600f str r7, [r1, #0] - 800851c: 608b str r3, [r1, #8] - 800851e: f1b8 0f00 cmp.w r8, #0 - 8008522: dd9c ble.n 800845e <__sflush_r+0x1a> - 8008524: 4643 mov r3, r8 - 8008526: 463a mov r2, r7 - 8008528: 4628 mov r0, r5 - 800852a: 6a21 ldr r1, [r4, #32] - 800852c: 6aa6 ldr r6, [r4, #40] ; 0x28 - 800852e: 47b0 blx r6 - 8008530: 2800 cmp r0, #0 - 8008532: dc06 bgt.n 8008542 <__sflush_r+0xfe> - 8008534: 89a3 ldrh r3, [r4, #12] - 8008536: f04f 30ff mov.w r0, #4294967295 - 800853a: f043 0340 orr.w r3, r3, #64 ; 0x40 - 800853e: 81a3 strh r3, [r4, #12] - 8008540: e78e b.n 8008460 <__sflush_r+0x1c> - 8008542: 4407 add r7, r0 - 8008544: eba8 0800 sub.w r8, r8, r0 - 8008548: e7e9 b.n 800851e <__sflush_r+0xda> +080084b4 <__swbuf_r>: + 80084b4: b5f8 push {r3, r4, r5, r6, r7, lr} + 80084b6: 460e mov r6, r1 + 80084b8: 4614 mov r4, r2 + 80084ba: 4605 mov r5, r0 + 80084bc: b118 cbz r0, 80084c6 <__swbuf_r+0x12> + 80084be: 6983 ldr r3, [r0, #24] + 80084c0: b90b cbnz r3, 80084c6 <__swbuf_r+0x12> + 80084c2: f001 f84d bl 8009560 <__sinit> + 80084c6: 4b21 ldr r3, [pc, #132] ; (800854c <__swbuf_r+0x98>) + 80084c8: 429c cmp r4, r3 + 80084ca: d12b bne.n 8008524 <__swbuf_r+0x70> + 80084cc: 686c ldr r4, [r5, #4] + 80084ce: 69a3 ldr r3, [r4, #24] + 80084d0: 60a3 str r3, [r4, #8] + 80084d2: 89a3 ldrh r3, [r4, #12] + 80084d4: 071a lsls r2, r3, #28 + 80084d6: d52f bpl.n 8008538 <__swbuf_r+0x84> + 80084d8: 6923 ldr r3, [r4, #16] + 80084da: b36b cbz r3, 8008538 <__swbuf_r+0x84> + 80084dc: 6923 ldr r3, [r4, #16] + 80084de: 6820 ldr r0, [r4, #0] + 80084e0: b2f6 uxtb r6, r6 + 80084e2: 1ac0 subs r0, r0, r3 + 80084e4: 6963 ldr r3, [r4, #20] + 80084e6: 4637 mov r7, r6 + 80084e8: 4283 cmp r3, r0 + 80084ea: dc04 bgt.n 80084f6 <__swbuf_r+0x42> + 80084ec: 4621 mov r1, r4 + 80084ee: 4628 mov r0, r5 + 80084f0: f000 ffa2 bl 8009438 <_fflush_r> + 80084f4: bb30 cbnz r0, 8008544 <__swbuf_r+0x90> + 80084f6: 68a3 ldr r3, [r4, #8] + 80084f8: 3001 adds r0, #1 + 80084fa: 3b01 subs r3, #1 + 80084fc: 60a3 str r3, [r4, #8] + 80084fe: 6823 ldr r3, [r4, #0] + 8008500: 1c5a adds r2, r3, #1 + 8008502: 6022 str r2, [r4, #0] + 8008504: 701e strb r6, [r3, #0] + 8008506: 6963 ldr r3, [r4, #20] + 8008508: 4283 cmp r3, r0 + 800850a: d004 beq.n 8008516 <__swbuf_r+0x62> + 800850c: 89a3 ldrh r3, [r4, #12] + 800850e: 07db lsls r3, r3, #31 + 8008510: d506 bpl.n 8008520 <__swbuf_r+0x6c> + 8008512: 2e0a cmp r6, #10 + 8008514: d104 bne.n 8008520 <__swbuf_r+0x6c> + 8008516: 4621 mov r1, r4 + 8008518: 4628 mov r0, r5 + 800851a: f000 ff8d bl 8009438 <_fflush_r> + 800851e: b988 cbnz r0, 8008544 <__swbuf_r+0x90> + 8008520: 4638 mov r0, r7 + 8008522: bdf8 pop {r3, r4, r5, r6, r7, pc} + 8008524: 4b0a ldr r3, [pc, #40] ; (8008550 <__swbuf_r+0x9c>) + 8008526: 429c cmp r4, r3 + 8008528: d101 bne.n 800852e <__swbuf_r+0x7a> + 800852a: 68ac ldr r4, [r5, #8] + 800852c: e7cf b.n 80084ce <__swbuf_r+0x1a> + 800852e: 4b09 ldr r3, [pc, #36] ; (8008554 <__swbuf_r+0xa0>) + 8008530: 429c cmp r4, r3 + 8008532: bf08 it eq + 8008534: 68ec ldreq r4, [r5, #12] + 8008536: e7ca b.n 80084ce <__swbuf_r+0x1a> + 8008538: 4621 mov r1, r4 + 800853a: 4628 mov r0, r5 + 800853c: f000 f80c bl 8008558 <__swsetup_r> + 8008540: 2800 cmp r0, #0 + 8008542: d0cb beq.n 80084dc <__swbuf_r+0x28> + 8008544: f04f 37ff mov.w r7, #4294967295 + 8008548: e7ea b.n 8008520 <__swbuf_r+0x6c> 800854a: bf00 nop - 800854c: 20400001 .word 0x20400001 + 800854c: 0800b448 .word 0x0800b448 + 8008550: 0800b468 .word 0x0800b468 + 8008554: 0800b428 .word 0x0800b428 -08008550 <_fflush_r>: - 8008550: b538 push {r3, r4, r5, lr} - 8008552: 690b ldr r3, [r1, #16] - 8008554: 4605 mov r5, r0 - 8008556: 460c mov r4, r1 - 8008558: b913 cbnz r3, 8008560 <_fflush_r+0x10> - 800855a: 2500 movs r5, #0 - 800855c: 4628 mov r0, r5 - 800855e: bd38 pop {r3, r4, r5, pc} - 8008560: b118 cbz r0, 800856a <_fflush_r+0x1a> - 8008562: 6983 ldr r3, [r0, #24] - 8008564: b90b cbnz r3, 800856a <_fflush_r+0x1a> - 8008566: f000 f887 bl 8008678 <__sinit> - 800856a: 4b14 ldr r3, [pc, #80] ; (80085bc <_fflush_r+0x6c>) - 800856c: 429c cmp r4, r3 - 800856e: d11b bne.n 80085a8 <_fflush_r+0x58> - 8008570: 686c ldr r4, [r5, #4] - 8008572: f9b4 300c ldrsh.w r3, [r4, #12] - 8008576: 2b00 cmp r3, #0 - 8008578: d0ef beq.n 800855a <_fflush_r+0xa> - 800857a: 6e62 ldr r2, [r4, #100] ; 0x64 - 800857c: 07d0 lsls r0, r2, #31 - 800857e: d404 bmi.n 800858a <_fflush_r+0x3a> - 8008580: 0599 lsls r1, r3, #22 - 8008582: d402 bmi.n 800858a <_fflush_r+0x3a> - 8008584: 6da0 ldr r0, [r4, #88] ; 0x58 - 8008586: f000 f91a bl 80087be <__retarget_lock_acquire_recursive> - 800858a: 4628 mov r0, r5 - 800858c: 4621 mov r1, r4 - 800858e: f7ff ff59 bl 8008444 <__sflush_r> - 8008592: 6e63 ldr r3, [r4, #100] ; 0x64 - 8008594: 4605 mov r5, r0 - 8008596: 07da lsls r2, r3, #31 - 8008598: d4e0 bmi.n 800855c <_fflush_r+0xc> - 800859a: 89a3 ldrh r3, [r4, #12] - 800859c: 059b lsls r3, r3, #22 - 800859e: d4dd bmi.n 800855c <_fflush_r+0xc> - 80085a0: 6da0 ldr r0, [r4, #88] ; 0x58 - 80085a2: f000 f90d bl 80087c0 <__retarget_lock_release_recursive> - 80085a6: e7d9 b.n 800855c <_fflush_r+0xc> - 80085a8: 4b05 ldr r3, [pc, #20] ; (80085c0 <_fflush_r+0x70>) - 80085aa: 429c cmp r4, r3 - 80085ac: d101 bne.n 80085b2 <_fflush_r+0x62> - 80085ae: 68ac ldr r4, [r5, #8] - 80085b0: e7df b.n 8008572 <_fflush_r+0x22> - 80085b2: 4b04 ldr r3, [pc, #16] ; (80085c4 <_fflush_r+0x74>) - 80085b4: 429c cmp r4, r3 - 80085b6: bf08 it eq - 80085b8: 68ec ldreq r4, [r5, #12] - 80085ba: e7da b.n 8008572 <_fflush_r+0x22> - 80085bc: 0800a540 .word 0x0800a540 - 80085c0: 0800a560 .word 0x0800a560 - 80085c4: 0800a520 .word 0x0800a520 +08008558 <__swsetup_r>: + 8008558: 4b32 ldr r3, [pc, #200] ; (8008624 <__swsetup_r+0xcc>) + 800855a: b570 push {r4, r5, r6, lr} + 800855c: 681d ldr r5, [r3, #0] + 800855e: 4606 mov r6, r0 + 8008560: 460c mov r4, r1 + 8008562: b125 cbz r5, 800856e <__swsetup_r+0x16> + 8008564: 69ab ldr r3, [r5, #24] + 8008566: b913 cbnz r3, 800856e <__swsetup_r+0x16> + 8008568: 4628 mov r0, r5 + 800856a: f000 fff9 bl 8009560 <__sinit> + 800856e: 4b2e ldr r3, [pc, #184] ; (8008628 <__swsetup_r+0xd0>) + 8008570: 429c cmp r4, r3 + 8008572: d10f bne.n 8008594 <__swsetup_r+0x3c> + 8008574: 686c ldr r4, [r5, #4] + 8008576: 89a3 ldrh r3, [r4, #12] + 8008578: f9b4 200c ldrsh.w r2, [r4, #12] + 800857c: 0719 lsls r1, r3, #28 + 800857e: d42c bmi.n 80085da <__swsetup_r+0x82> + 8008580: 06dd lsls r5, r3, #27 + 8008582: d411 bmi.n 80085a8 <__swsetup_r+0x50> + 8008584: 2309 movs r3, #9 + 8008586: 6033 str r3, [r6, #0] + 8008588: f042 0340 orr.w r3, r2, #64 ; 0x40 + 800858c: f04f 30ff mov.w r0, #4294967295 + 8008590: 81a3 strh r3, [r4, #12] + 8008592: e03e b.n 8008612 <__swsetup_r+0xba> + 8008594: 4b25 ldr r3, [pc, #148] ; (800862c <__swsetup_r+0xd4>) + 8008596: 429c cmp r4, r3 + 8008598: d101 bne.n 800859e <__swsetup_r+0x46> + 800859a: 68ac ldr r4, [r5, #8] + 800859c: e7eb b.n 8008576 <__swsetup_r+0x1e> + 800859e: 4b24 ldr r3, [pc, #144] ; (8008630 <__swsetup_r+0xd8>) + 80085a0: 429c cmp r4, r3 + 80085a2: bf08 it eq + 80085a4: 68ec ldreq r4, [r5, #12] + 80085a6: e7e6 b.n 8008576 <__swsetup_r+0x1e> + 80085a8: 0758 lsls r0, r3, #29 + 80085aa: d512 bpl.n 80085d2 <__swsetup_r+0x7a> + 80085ac: 6b61 ldr r1, [r4, #52] ; 0x34 + 80085ae: b141 cbz r1, 80085c2 <__swsetup_r+0x6a> + 80085b0: f104 0344 add.w r3, r4, #68 ; 0x44 + 80085b4: 4299 cmp r1, r3 + 80085b6: d002 beq.n 80085be <__swsetup_r+0x66> + 80085b8: 4630 mov r0, r6 + 80085ba: f7ff fa45 bl 8007a48 <_free_r> + 80085be: 2300 movs r3, #0 + 80085c0: 6363 str r3, [r4, #52] ; 0x34 + 80085c2: 89a3 ldrh r3, [r4, #12] + 80085c4: f023 0324 bic.w r3, r3, #36 ; 0x24 + 80085c8: 81a3 strh r3, [r4, #12] + 80085ca: 2300 movs r3, #0 + 80085cc: 6063 str r3, [r4, #4] + 80085ce: 6923 ldr r3, [r4, #16] + 80085d0: 6023 str r3, [r4, #0] + 80085d2: 89a3 ldrh r3, [r4, #12] + 80085d4: f043 0308 orr.w r3, r3, #8 + 80085d8: 81a3 strh r3, [r4, #12] + 80085da: 6923 ldr r3, [r4, #16] + 80085dc: b94b cbnz r3, 80085f2 <__swsetup_r+0x9a> + 80085de: 89a3 ldrh r3, [r4, #12] + 80085e0: f403 7320 and.w r3, r3, #640 ; 0x280 + 80085e4: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 80085e8: d003 beq.n 80085f2 <__swsetup_r+0x9a> + 80085ea: 4621 mov r1, r4 + 80085ec: 4630 mov r0, r6 + 80085ee: f001 f881 bl 80096f4 <__smakebuf_r> + 80085f2: 89a0 ldrh r0, [r4, #12] + 80085f4: f9b4 200c ldrsh.w r2, [r4, #12] + 80085f8: f010 0301 ands.w r3, r0, #1 + 80085fc: d00a beq.n 8008614 <__swsetup_r+0xbc> + 80085fe: 2300 movs r3, #0 + 8008600: 60a3 str r3, [r4, #8] + 8008602: 6963 ldr r3, [r4, #20] + 8008604: 425b negs r3, r3 + 8008606: 61a3 str r3, [r4, #24] + 8008608: 6923 ldr r3, [r4, #16] + 800860a: b943 cbnz r3, 800861e <__swsetup_r+0xc6> + 800860c: f010 0080 ands.w r0, r0, #128 ; 0x80 + 8008610: d1ba bne.n 8008588 <__swsetup_r+0x30> + 8008612: bd70 pop {r4, r5, r6, pc} + 8008614: 0781 lsls r1, r0, #30 + 8008616: bf58 it pl + 8008618: 6963 ldrpl r3, [r4, #20] + 800861a: 60a3 str r3, [r4, #8] + 800861c: e7f4 b.n 8008608 <__swsetup_r+0xb0> + 800861e: 2000 movs r0, #0 + 8008620: e7f7 b.n 8008612 <__swsetup_r+0xba> + 8008622: bf00 nop + 8008624: 2000000c .word 0x2000000c + 8008628: 0800b448 .word 0x0800b448 + 800862c: 0800b468 .word 0x0800b468 + 8008630: 0800b428 .word 0x0800b428 -080085c8 : - 80085c8: 2300 movs r3, #0 - 80085ca: b510 push {r4, lr} - 80085cc: 4604 mov r4, r0 - 80085ce: e9c0 3300 strd r3, r3, [r0] - 80085d2: e9c0 3304 strd r3, r3, [r0, #16] - 80085d6: 6083 str r3, [r0, #8] - 80085d8: 8181 strh r1, [r0, #12] - 80085da: 6643 str r3, [r0, #100] ; 0x64 - 80085dc: 81c2 strh r2, [r0, #14] - 80085de: 6183 str r3, [r0, #24] - 80085e0: 4619 mov r1, r3 - 80085e2: 2208 movs r2, #8 - 80085e4: 305c adds r0, #92 ; 0x5c - 80085e6: f7fe fab1 bl 8006b4c - 80085ea: 4b05 ldr r3, [pc, #20] ; (8008600 ) - 80085ec: 6224 str r4, [r4, #32] - 80085ee: 6263 str r3, [r4, #36] ; 0x24 - 80085f0: 4b04 ldr r3, [pc, #16] ; (8008604 ) - 80085f2: 62a3 str r3, [r4, #40] ; 0x28 - 80085f4: 4b04 ldr r3, [pc, #16] ; (8008608 ) - 80085f6: 62e3 str r3, [r4, #44] ; 0x2c - 80085f8: 4b04 ldr r3, [pc, #16] ; (800860c ) - 80085fa: 6323 str r3, [r4, #48] ; 0x30 - 80085fc: bd10 pop {r4, pc} - 80085fe: bf00 nop - 8008600: 08009565 .word 0x08009565 - 8008604: 08009587 .word 0x08009587 - 8008608: 080095bf .word 0x080095bf - 800860c: 080095e3 .word 0x080095e3 - -08008610 <_cleanup_r>: - 8008610: 4901 ldr r1, [pc, #4] ; (8008618 <_cleanup_r+0x8>) - 8008612: f000 b8af b.w 8008774 <_fwalk_reent> - 8008616: bf00 nop - 8008618: 08008551 .word 0x08008551 - -0800861c <__sfmoreglue>: - 800861c: b570 push {r4, r5, r6, lr} - 800861e: 2568 movs r5, #104 ; 0x68 - 8008620: 1e4a subs r2, r1, #1 - 8008622: 4355 muls r5, r2 - 8008624: 460e mov r6, r1 - 8008626: f105 0174 add.w r1, r5, #116 ; 0x74 - 800862a: f7fe fae3 bl 8006bf4 <_malloc_r> - 800862e: 4604 mov r4, r0 - 8008630: b140 cbz r0, 8008644 <__sfmoreglue+0x28> - 8008632: 2100 movs r1, #0 - 8008634: e9c0 1600 strd r1, r6, [r0] - 8008638: 300c adds r0, #12 - 800863a: 60a0 str r0, [r4, #8] - 800863c: f105 0268 add.w r2, r5, #104 ; 0x68 - 8008640: f7fe fa84 bl 8006b4c - 8008644: 4620 mov r0, r4 - 8008646: bd70 pop {r4, r5, r6, pc} - -08008648 <__sfp_lock_acquire>: - 8008648: 4801 ldr r0, [pc, #4] ; (8008650 <__sfp_lock_acquire+0x8>) - 800864a: f000 b8b8 b.w 80087be <__retarget_lock_acquire_recursive> - 800864e: bf00 nop - 8008650: 2000258a .word 0x2000258a - -08008654 <__sfp_lock_release>: - 8008654: 4801 ldr r0, [pc, #4] ; (800865c <__sfp_lock_release+0x8>) - 8008656: f000 b8b3 b.w 80087c0 <__retarget_lock_release_recursive> - 800865a: bf00 nop - 800865c: 2000258a .word 0x2000258a - -08008660 <__sinit_lock_acquire>: - 8008660: 4801 ldr r0, [pc, #4] ; (8008668 <__sinit_lock_acquire+0x8>) - 8008662: f000 b8ac b.w 80087be <__retarget_lock_acquire_recursive> - 8008666: bf00 nop - 8008668: 20002585 .word 0x20002585 - -0800866c <__sinit_lock_release>: - 800866c: 4801 ldr r0, [pc, #4] ; (8008674 <__sinit_lock_release+0x8>) - 800866e: f000 b8a7 b.w 80087c0 <__retarget_lock_release_recursive> - 8008672: bf00 nop - 8008674: 20002585 .word 0x20002585 - -08008678 <__sinit>: - 8008678: b510 push {r4, lr} - 800867a: 4604 mov r4, r0 - 800867c: f7ff fff0 bl 8008660 <__sinit_lock_acquire> - 8008680: 69a3 ldr r3, [r4, #24] - 8008682: b11b cbz r3, 800868c <__sinit+0x14> - 8008684: e8bd 4010 ldmia.w sp!, {r4, lr} - 8008688: f7ff bff0 b.w 800866c <__sinit_lock_release> - 800868c: e9c4 3312 strd r3, r3, [r4, #72] ; 0x48 - 8008690: 6523 str r3, [r4, #80] ; 0x50 - 8008692: 4b13 ldr r3, [pc, #76] ; (80086e0 <__sinit+0x68>) - 8008694: 4a13 ldr r2, [pc, #76] ; (80086e4 <__sinit+0x6c>) - 8008696: 681b ldr r3, [r3, #0] - 8008698: 62a2 str r2, [r4, #40] ; 0x28 - 800869a: 42a3 cmp r3, r4 - 800869c: bf08 it eq - 800869e: 2301 moveq r3, #1 - 80086a0: 4620 mov r0, r4 - 80086a2: bf08 it eq - 80086a4: 61a3 streq r3, [r4, #24] - 80086a6: f000 f81f bl 80086e8 <__sfp> - 80086aa: 6060 str r0, [r4, #4] - 80086ac: 4620 mov r0, r4 - 80086ae: f000 f81b bl 80086e8 <__sfp> - 80086b2: 60a0 str r0, [r4, #8] - 80086b4: 4620 mov r0, r4 - 80086b6: f000 f817 bl 80086e8 <__sfp> - 80086ba: 2200 movs r2, #0 - 80086bc: 2104 movs r1, #4 - 80086be: 60e0 str r0, [r4, #12] - 80086c0: 6860 ldr r0, [r4, #4] - 80086c2: f7ff ff81 bl 80085c8 - 80086c6: 2201 movs r2, #1 - 80086c8: 2109 movs r1, #9 - 80086ca: 68a0 ldr r0, [r4, #8] - 80086cc: f7ff ff7c bl 80085c8 - 80086d0: 2202 movs r2, #2 - 80086d2: 2112 movs r1, #18 - 80086d4: 68e0 ldr r0, [r4, #12] - 80086d6: f7ff ff77 bl 80085c8 - 80086da: 2301 movs r3, #1 - 80086dc: 61a3 str r3, [r4, #24] - 80086de: e7d1 b.n 8008684 <__sinit+0xc> - 80086e0: 0800a454 .word 0x0800a454 - 80086e4: 08008611 .word 0x08008611 - -080086e8 <__sfp>: - 80086e8: b5f8 push {r3, r4, r5, r6, r7, lr} - 80086ea: 4607 mov r7, r0 - 80086ec: f7ff ffac bl 8008648 <__sfp_lock_acquire> - 80086f0: 4b1e ldr r3, [pc, #120] ; (800876c <__sfp+0x84>) - 80086f2: 681e ldr r6, [r3, #0] - 80086f4: 69b3 ldr r3, [r6, #24] - 80086f6: b913 cbnz r3, 80086fe <__sfp+0x16> - 80086f8: 4630 mov r0, r6 - 80086fa: f7ff ffbd bl 8008678 <__sinit> - 80086fe: 3648 adds r6, #72 ; 0x48 - 8008700: e9d6 3401 ldrd r3, r4, [r6, #4] - 8008704: 3b01 subs r3, #1 - 8008706: d503 bpl.n 8008710 <__sfp+0x28> - 8008708: 6833 ldr r3, [r6, #0] - 800870a: b30b cbz r3, 8008750 <__sfp+0x68> - 800870c: 6836 ldr r6, [r6, #0] - 800870e: e7f7 b.n 8008700 <__sfp+0x18> - 8008710: f9b4 500c ldrsh.w r5, [r4, #12] - 8008714: b9d5 cbnz r5, 800874c <__sfp+0x64> - 8008716: 4b16 ldr r3, [pc, #88] ; (8008770 <__sfp+0x88>) - 8008718: f104 0058 add.w r0, r4, #88 ; 0x58 - 800871c: 60e3 str r3, [r4, #12] - 800871e: 6665 str r5, [r4, #100] ; 0x64 - 8008720: f000 f84c bl 80087bc <__retarget_lock_init_recursive> - 8008724: f7ff ff96 bl 8008654 <__sfp_lock_release> - 8008728: 2208 movs r2, #8 - 800872a: 4629 mov r1, r5 - 800872c: e9c4 5501 strd r5, r5, [r4, #4] - 8008730: e9c4 5504 strd r5, r5, [r4, #16] - 8008734: 6025 str r5, [r4, #0] - 8008736: 61a5 str r5, [r4, #24] - 8008738: f104 005c add.w r0, r4, #92 ; 0x5c - 800873c: f7fe fa06 bl 8006b4c - 8008740: e9c4 550d strd r5, r5, [r4, #52] ; 0x34 - 8008744: e9c4 5512 strd r5, r5, [r4, #72] ; 0x48 - 8008748: 4620 mov r0, r4 - 800874a: bdf8 pop {r3, r4, r5, r6, r7, pc} - 800874c: 3468 adds r4, #104 ; 0x68 - 800874e: e7d9 b.n 8008704 <__sfp+0x1c> - 8008750: 2104 movs r1, #4 - 8008752: 4638 mov r0, r7 - 8008754: f7ff ff62 bl 800861c <__sfmoreglue> - 8008758: 4604 mov r4, r0 - 800875a: 6030 str r0, [r6, #0] - 800875c: 2800 cmp r0, #0 - 800875e: d1d5 bne.n 800870c <__sfp+0x24> - 8008760: f7ff ff78 bl 8008654 <__sfp_lock_release> - 8008764: 230c movs r3, #12 - 8008766: 603b str r3, [r7, #0] - 8008768: e7ee b.n 8008748 <__sfp+0x60> - 800876a: bf00 nop - 800876c: 0800a454 .word 0x0800a454 - 8008770: ffff0001 .word 0xffff0001 - -08008774 <_fwalk_reent>: - 8008774: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 8008778: 4606 mov r6, r0 - 800877a: 4688 mov r8, r1 - 800877c: 2700 movs r7, #0 - 800877e: f100 0448 add.w r4, r0, #72 ; 0x48 - 8008782: e9d4 9501 ldrd r9, r5, [r4, #4] - 8008786: f1b9 0901 subs.w r9, r9, #1 - 800878a: d505 bpl.n 8008798 <_fwalk_reent+0x24> - 800878c: 6824 ldr r4, [r4, #0] - 800878e: 2c00 cmp r4, #0 - 8008790: d1f7 bne.n 8008782 <_fwalk_reent+0xe> - 8008792: 4638 mov r0, r7 - 8008794: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 8008798: 89ab ldrh r3, [r5, #12] - 800879a: 2b01 cmp r3, #1 - 800879c: d907 bls.n 80087ae <_fwalk_reent+0x3a> - 800879e: f9b5 300e ldrsh.w r3, [r5, #14] - 80087a2: 3301 adds r3, #1 - 80087a4: d003 beq.n 80087ae <_fwalk_reent+0x3a> - 80087a6: 4629 mov r1, r5 - 80087a8: 4630 mov r0, r6 - 80087aa: 47c0 blx r8 - 80087ac: 4307 orrs r7, r0 - 80087ae: 3568 adds r5, #104 ; 0x68 - 80087b0: e7e9 b.n 8008786 <_fwalk_reent+0x12> +08008634 : + 8008634: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} + 8008638: 6903 ldr r3, [r0, #16] + 800863a: 690c ldr r4, [r1, #16] + 800863c: 4607 mov r7, r0 + 800863e: 42a3 cmp r3, r4 + 8008640: f2c0 8083 blt.w 800874a + 8008644: 3c01 subs r4, #1 + 8008646: f100 0514 add.w r5, r0, #20 + 800864a: f101 0814 add.w r8, r1, #20 + 800864e: eb05 0384 add.w r3, r5, r4, lsl #2 + 8008652: 9301 str r3, [sp, #4] + 8008654: f858 3024 ldr.w r3, [r8, r4, lsl #2] + 8008658: f855 2024 ldr.w r2, [r5, r4, lsl #2] + 800865c: 3301 adds r3, #1 + 800865e: 429a cmp r2, r3 + 8008660: fbb2 f6f3 udiv r6, r2, r3 + 8008664: ea4f 0b84 mov.w fp, r4, lsl #2 + 8008668: eb08 0984 add.w r9, r8, r4, lsl #2 + 800866c: d332 bcc.n 80086d4 + 800866e: f04f 0e00 mov.w lr, #0 + 8008672: 4640 mov r0, r8 + 8008674: 46ac mov ip, r5 + 8008676: 46f2 mov sl, lr + 8008678: f850 2b04 ldr.w r2, [r0], #4 + 800867c: b293 uxth r3, r2 + 800867e: fb06 e303 mla r3, r6, r3, lr + 8008682: 0c12 lsrs r2, r2, #16 + 8008684: ea4f 4e13 mov.w lr, r3, lsr #16 + 8008688: fb06 e202 mla r2, r6, r2, lr + 800868c: b29b uxth r3, r3 + 800868e: ebaa 0303 sub.w r3, sl, r3 + 8008692: f8dc a000 ldr.w sl, [ip] + 8008696: ea4f 4e12 mov.w lr, r2, lsr #16 + 800869a: fa1f fa8a uxth.w sl, sl + 800869e: 4453 add r3, sl + 80086a0: fa1f fa82 uxth.w sl, r2 + 80086a4: f8dc 2000 ldr.w r2, [ip] + 80086a8: 4581 cmp r9, r0 + 80086aa: ebca 4212 rsb r2, sl, r2, lsr #16 + 80086ae: eb02 4223 add.w r2, r2, r3, asr #16 + 80086b2: b29b uxth r3, r3 + 80086b4: ea43 4302 orr.w r3, r3, r2, lsl #16 + 80086b8: ea4f 4a22 mov.w sl, r2, asr #16 + 80086bc: f84c 3b04 str.w r3, [ip], #4 + 80086c0: d2da bcs.n 8008678 + 80086c2: f855 300b ldr.w r3, [r5, fp] + 80086c6: b92b cbnz r3, 80086d4 + 80086c8: 9b01 ldr r3, [sp, #4] + 80086ca: 3b04 subs r3, #4 + 80086cc: 429d cmp r5, r3 + 80086ce: 461a mov r2, r3 + 80086d0: d32f bcc.n 8008732 + 80086d2: 613c str r4, [r7, #16] + 80086d4: 4638 mov r0, r7 + 80086d6: f001 faef bl 8009cb8 <__mcmp> + 80086da: 2800 cmp r0, #0 + 80086dc: db25 blt.n 800872a + 80086de: 4628 mov r0, r5 + 80086e0: f04f 0c00 mov.w ip, #0 + 80086e4: 3601 adds r6, #1 + 80086e6: f858 1b04 ldr.w r1, [r8], #4 + 80086ea: f8d0 e000 ldr.w lr, [r0] + 80086ee: b28b uxth r3, r1 + 80086f0: ebac 0303 sub.w r3, ip, r3 + 80086f4: fa1f f28e uxth.w r2, lr + 80086f8: 4413 add r3, r2 + 80086fa: 0c0a lsrs r2, r1, #16 + 80086fc: ebc2 421e rsb r2, r2, lr, lsr #16 + 8008700: eb02 4223 add.w r2, r2, r3, asr #16 + 8008704: b29b uxth r3, r3 + 8008706: ea43 4302 orr.w r3, r3, r2, lsl #16 + 800870a: 45c1 cmp r9, r8 + 800870c: ea4f 4c22 mov.w ip, r2, asr #16 + 8008710: f840 3b04 str.w r3, [r0], #4 + 8008714: d2e7 bcs.n 80086e6 + 8008716: f855 2024 ldr.w r2, [r5, r4, lsl #2] + 800871a: eb05 0384 add.w r3, r5, r4, lsl #2 + 800871e: b922 cbnz r2, 800872a + 8008720: 3b04 subs r3, #4 + 8008722: 429d cmp r5, r3 + 8008724: 461a mov r2, r3 + 8008726: d30a bcc.n 800873e + 8008728: 613c str r4, [r7, #16] + 800872a: 4630 mov r0, r6 + 800872c: b003 add sp, #12 + 800872e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 8008732: 6812 ldr r2, [r2, #0] + 8008734: 3b04 subs r3, #4 + 8008736: 2a00 cmp r2, #0 + 8008738: d1cb bne.n 80086d2 + 800873a: 3c01 subs r4, #1 + 800873c: e7c6 b.n 80086cc + 800873e: 6812 ldr r2, [r2, #0] + 8008740: 3b04 subs r3, #4 + 8008742: 2a00 cmp r2, #0 + 8008744: d1f0 bne.n 8008728 + 8008746: 3c01 subs r4, #1 + 8008748: e7eb b.n 8008722 + 800874a: 2000 movs r0, #0 + 800874c: e7ee b.n 800872c ... -080087b4 <_localeconv_r>: - 80087b4: 4800 ldr r0, [pc, #0] ; (80087b8 <_localeconv_r+0x4>) - 80087b6: 4770 bx lr - 80087b8: 20000160 .word 0x20000160 +08008750 <_dtoa_r>: + 8008750: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 8008754: 4616 mov r6, r2 + 8008756: 461f mov r7, r3 + 8008758: 6a44 ldr r4, [r0, #36] ; 0x24 + 800875a: b099 sub sp, #100 ; 0x64 + 800875c: 4605 mov r5, r0 + 800875e: e9cd 6704 strd r6, r7, [sp, #16] + 8008762: f8dd 8094 ldr.w r8, [sp, #148] ; 0x94 + 8008766: b974 cbnz r4, 8008786 <_dtoa_r+0x36> + 8008768: 2010 movs r0, #16 + 800876a: f7ff f955 bl 8007a18 + 800876e: 4602 mov r2, r0 + 8008770: 6268 str r0, [r5, #36] ; 0x24 + 8008772: b920 cbnz r0, 800877e <_dtoa_r+0x2e> + 8008774: 21ea movs r1, #234 ; 0xea + 8008776: 4bae ldr r3, [pc, #696] ; (8008a30 <_dtoa_r+0x2e0>) + 8008778: 48ae ldr r0, [pc, #696] ; (8008a34 <_dtoa_r+0x2e4>) + 800877a: f001 febd bl 800a4f8 <__assert_func> + 800877e: e9c0 4401 strd r4, r4, [r0, #4] + 8008782: 6004 str r4, [r0, #0] + 8008784: 60c4 str r4, [r0, #12] + 8008786: 6a6b ldr r3, [r5, #36] ; 0x24 + 8008788: 6819 ldr r1, [r3, #0] + 800878a: b151 cbz r1, 80087a2 <_dtoa_r+0x52> + 800878c: 685a ldr r2, [r3, #4] + 800878e: 2301 movs r3, #1 + 8008790: 4093 lsls r3, r2 + 8008792: 604a str r2, [r1, #4] + 8008794: 608b str r3, [r1, #8] + 8008796: 4628 mov r0, r5 + 8008798: f001 f854 bl 8009844 <_Bfree> + 800879c: 2200 movs r2, #0 + 800879e: 6a6b ldr r3, [r5, #36] ; 0x24 + 80087a0: 601a str r2, [r3, #0] + 80087a2: 1e3b subs r3, r7, #0 + 80087a4: bfaf iteee ge + 80087a6: 2300 movge r3, #0 + 80087a8: 2201 movlt r2, #1 + 80087aa: f023 4300 biclt.w r3, r3, #2147483648 ; 0x80000000 + 80087ae: 9305 strlt r3, [sp, #20] + 80087b0: bfa8 it ge + 80087b2: f8c8 3000 strge.w r3, [r8] + 80087b6: f8dd 9014 ldr.w r9, [sp, #20] + 80087ba: 4b9f ldr r3, [pc, #636] ; (8008a38 <_dtoa_r+0x2e8>) + 80087bc: bfb8 it lt + 80087be: f8c8 2000 strlt.w r2, [r8] + 80087c2: ea33 0309 bics.w r3, r3, r9 + 80087c6: d119 bne.n 80087fc <_dtoa_r+0xac> + 80087c8: f242 730f movw r3, #9999 ; 0x270f + 80087cc: 9a24 ldr r2, [sp, #144] ; 0x90 + 80087ce: 6013 str r3, [r2, #0] + 80087d0: f3c9 0313 ubfx r3, r9, #0, #20 + 80087d4: 4333 orrs r3, r6 + 80087d6: f000 8580 beq.w 80092da <_dtoa_r+0xb8a> + 80087da: 9b26 ldr r3, [sp, #152] ; 0x98 + 80087dc: b953 cbnz r3, 80087f4 <_dtoa_r+0xa4> + 80087de: 4b97 ldr r3, [pc, #604] ; (8008a3c <_dtoa_r+0x2ec>) + 80087e0: e022 b.n 8008828 <_dtoa_r+0xd8> + 80087e2: 4b97 ldr r3, [pc, #604] ; (8008a40 <_dtoa_r+0x2f0>) + 80087e4: 9308 str r3, [sp, #32] + 80087e6: 3308 adds r3, #8 + 80087e8: 9a26 ldr r2, [sp, #152] ; 0x98 + 80087ea: 6013 str r3, [r2, #0] + 80087ec: 9808 ldr r0, [sp, #32] + 80087ee: b019 add sp, #100 ; 0x64 + 80087f0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 80087f4: 4b91 ldr r3, [pc, #580] ; (8008a3c <_dtoa_r+0x2ec>) + 80087f6: 9308 str r3, [sp, #32] + 80087f8: 3303 adds r3, #3 + 80087fa: e7f5 b.n 80087e8 <_dtoa_r+0x98> + 80087fc: e9dd 3404 ldrd r3, r4, [sp, #16] + 8008800: e9cd 340c strd r3, r4, [sp, #48] ; 0x30 + 8008804: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 + 8008808: 2200 movs r2, #0 + 800880a: 2300 movs r3, #0 + 800880c: f7f8 f938 bl 8000a80 <__aeabi_dcmpeq> + 8008810: 4680 mov r8, r0 + 8008812: b158 cbz r0, 800882c <_dtoa_r+0xdc> + 8008814: 2301 movs r3, #1 + 8008816: 9a24 ldr r2, [sp, #144] ; 0x90 + 8008818: 6013 str r3, [r2, #0] + 800881a: 9b26 ldr r3, [sp, #152] ; 0x98 + 800881c: 2b00 cmp r3, #0 + 800881e: f000 8559 beq.w 80092d4 <_dtoa_r+0xb84> + 8008822: 4888 ldr r0, [pc, #544] ; (8008a44 <_dtoa_r+0x2f4>) + 8008824: 6018 str r0, [r3, #0] + 8008826: 1e43 subs r3, r0, #1 + 8008828: 9308 str r3, [sp, #32] + 800882a: e7df b.n 80087ec <_dtoa_r+0x9c> + 800882c: ab16 add r3, sp, #88 ; 0x58 + 800882e: 9301 str r3, [sp, #4] + 8008830: ab17 add r3, sp, #92 ; 0x5c + 8008832: 9300 str r3, [sp, #0] + 8008834: 4628 mov r0, r5 + 8008836: e9dd 230c ldrd r2, r3, [sp, #48] ; 0x30 + 800883a: f001 fae9 bl 8009e10 <__d2b> + 800883e: f3c9 540a ubfx r4, r9, #20, #11 + 8008842: 4682 mov sl, r0 + 8008844: 2c00 cmp r4, #0 + 8008846: d07e beq.n 8008946 <_dtoa_r+0x1f6> + 8008848: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 + 800884c: 9b0d ldr r3, [sp, #52] ; 0x34 + 800884e: f2a4 34ff subw r4, r4, #1023 ; 0x3ff + 8008852: f3c3 0313 ubfx r3, r3, #0, #20 + 8008856: f043 517f orr.w r1, r3, #1069547520 ; 0x3fc00000 + 800885a: f441 1140 orr.w r1, r1, #3145728 ; 0x300000 + 800885e: f8cd 804c str.w r8, [sp, #76] ; 0x4c + 8008862: 2200 movs r2, #0 + 8008864: 4b78 ldr r3, [pc, #480] ; (8008a48 <_dtoa_r+0x2f8>) + 8008866: f7f7 fceb bl 8000240 <__aeabi_dsub> + 800886a: a36b add r3, pc, #428 ; (adr r3, 8008a18 <_dtoa_r+0x2c8>) + 800886c: e9d3 2300 ldrd r2, r3, [r3] + 8008870: f7f7 fe9e bl 80005b0 <__aeabi_dmul> + 8008874: a36a add r3, pc, #424 ; (adr r3, 8008a20 <_dtoa_r+0x2d0>) + 8008876: e9d3 2300 ldrd r2, r3, [r3] + 800887a: f7f7 fce3 bl 8000244 <__adddf3> + 800887e: 4606 mov r6, r0 + 8008880: 4620 mov r0, r4 + 8008882: 460f mov r7, r1 + 8008884: f7f7 fe2a bl 80004dc <__aeabi_i2d> + 8008888: a367 add r3, pc, #412 ; (adr r3, 8008a28 <_dtoa_r+0x2d8>) + 800888a: e9d3 2300 ldrd r2, r3, [r3] + 800888e: f7f7 fe8f bl 80005b0 <__aeabi_dmul> + 8008892: 4602 mov r2, r0 + 8008894: 460b mov r3, r1 + 8008896: 4630 mov r0, r6 + 8008898: 4639 mov r1, r7 + 800889a: f7f7 fcd3 bl 8000244 <__adddf3> + 800889e: 4606 mov r6, r0 + 80088a0: 460f mov r7, r1 + 80088a2: f7f8 f935 bl 8000b10 <__aeabi_d2iz> + 80088a6: 2200 movs r2, #0 + 80088a8: 4681 mov r9, r0 + 80088aa: 2300 movs r3, #0 + 80088ac: 4630 mov r0, r6 + 80088ae: 4639 mov r1, r7 + 80088b0: f7f8 f8f0 bl 8000a94 <__aeabi_dcmplt> + 80088b4: b148 cbz r0, 80088ca <_dtoa_r+0x17a> + 80088b6: 4648 mov r0, r9 + 80088b8: f7f7 fe10 bl 80004dc <__aeabi_i2d> + 80088bc: 4632 mov r2, r6 + 80088be: 463b mov r3, r7 + 80088c0: f7f8 f8de bl 8000a80 <__aeabi_dcmpeq> + 80088c4: b908 cbnz r0, 80088ca <_dtoa_r+0x17a> + 80088c6: f109 39ff add.w r9, r9, #4294967295 + 80088ca: f1b9 0f16 cmp.w r9, #22 + 80088ce: d857 bhi.n 8008980 <_dtoa_r+0x230> + 80088d0: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 + 80088d4: 4b5d ldr r3, [pc, #372] ; (8008a4c <_dtoa_r+0x2fc>) + 80088d6: eb03 03c9 add.w r3, r3, r9, lsl #3 + 80088da: e9d3 2300 ldrd r2, r3, [r3] + 80088de: f7f8 f8d9 bl 8000a94 <__aeabi_dcmplt> + 80088e2: 2800 cmp r0, #0 + 80088e4: d04e beq.n 8008984 <_dtoa_r+0x234> + 80088e6: 2300 movs r3, #0 + 80088e8: f109 39ff add.w r9, r9, #4294967295 + 80088ec: 930f str r3, [sp, #60] ; 0x3c + 80088ee: 9b16 ldr r3, [sp, #88] ; 0x58 + 80088f0: 1b1c subs r4, r3, r4 + 80088f2: 1e63 subs r3, r4, #1 + 80088f4: 9309 str r3, [sp, #36] ; 0x24 + 80088f6: bf49 itett mi + 80088f8: f1c4 0301 rsbmi r3, r4, #1 + 80088fc: 2300 movpl r3, #0 + 80088fe: 9306 strmi r3, [sp, #24] + 8008900: 2300 movmi r3, #0 + 8008902: bf54 ite pl + 8008904: 9306 strpl r3, [sp, #24] + 8008906: 9309 strmi r3, [sp, #36] ; 0x24 + 8008908: f1b9 0f00 cmp.w r9, #0 + 800890c: db3c blt.n 8008988 <_dtoa_r+0x238> + 800890e: 9b09 ldr r3, [sp, #36] ; 0x24 + 8008910: f8cd 9038 str.w r9, [sp, #56] ; 0x38 + 8008914: 444b add r3, r9 + 8008916: 9309 str r3, [sp, #36] ; 0x24 + 8008918: 2300 movs r3, #0 + 800891a: 930a str r3, [sp, #40] ; 0x28 + 800891c: 9b22 ldr r3, [sp, #136] ; 0x88 + 800891e: 2b09 cmp r3, #9 + 8008920: d86c bhi.n 80089fc <_dtoa_r+0x2ac> + 8008922: 2b05 cmp r3, #5 + 8008924: bfc4 itt gt + 8008926: 3b04 subgt r3, #4 + 8008928: 9322 strgt r3, [sp, #136] ; 0x88 + 800892a: 9b22 ldr r3, [sp, #136] ; 0x88 + 800892c: bfc8 it gt + 800892e: 2400 movgt r4, #0 + 8008930: f1a3 0302 sub.w r3, r3, #2 + 8008934: bfd8 it le + 8008936: 2401 movle r4, #1 + 8008938: 2b03 cmp r3, #3 + 800893a: f200 808b bhi.w 8008a54 <_dtoa_r+0x304> + 800893e: e8df f003 tbb [pc, r3] + 8008942: 4f2d .short 0x4f2d + 8008944: 5b4d .short 0x5b4d + 8008946: e9dd 4316 ldrd r4, r3, [sp, #88] ; 0x58 + 800894a: 441c add r4, r3 + 800894c: f204 4332 addw r3, r4, #1074 ; 0x432 + 8008950: 2b20 cmp r3, #32 + 8008952: bfc3 ittte gt + 8008954: f1c3 0340 rsbgt r3, r3, #64 ; 0x40 + 8008958: f204 4012 addwgt r0, r4, #1042 ; 0x412 + 800895c: fa09 f303 lslgt.w r3, r9, r3 + 8008960: f1c3 0320 rsble r3, r3, #32 + 8008964: bfc6 itte gt + 8008966: fa26 f000 lsrgt.w r0, r6, r0 + 800896a: 4318 orrgt r0, r3 + 800896c: fa06 f003 lslle.w r0, r6, r3 + 8008970: f7f7 fda4 bl 80004bc <__aeabi_ui2d> + 8008974: 2301 movs r3, #1 + 8008976: f1a1 71f8 sub.w r1, r1, #32505856 ; 0x1f00000 + 800897a: 3c01 subs r4, #1 + 800897c: 9313 str r3, [sp, #76] ; 0x4c + 800897e: e770 b.n 8008862 <_dtoa_r+0x112> + 8008980: 2301 movs r3, #1 + 8008982: e7b3 b.n 80088ec <_dtoa_r+0x19c> + 8008984: 900f str r0, [sp, #60] ; 0x3c + 8008986: e7b2 b.n 80088ee <_dtoa_r+0x19e> + 8008988: 9b06 ldr r3, [sp, #24] + 800898a: eba3 0309 sub.w r3, r3, r9 + 800898e: 9306 str r3, [sp, #24] + 8008990: f1c9 0300 rsb r3, r9, #0 + 8008994: 930a str r3, [sp, #40] ; 0x28 + 8008996: 2300 movs r3, #0 + 8008998: 930e str r3, [sp, #56] ; 0x38 + 800899a: e7bf b.n 800891c <_dtoa_r+0x1cc> + 800899c: 2300 movs r3, #0 + 800899e: 930b str r3, [sp, #44] ; 0x2c + 80089a0: 9b23 ldr r3, [sp, #140] ; 0x8c + 80089a2: 2b00 cmp r3, #0 + 80089a4: dc59 bgt.n 8008a5a <_dtoa_r+0x30a> + 80089a6: f04f 0b01 mov.w fp, #1 + 80089aa: 465b mov r3, fp + 80089ac: f8cd b008 str.w fp, [sp, #8] + 80089b0: f8cd b08c str.w fp, [sp, #140] ; 0x8c + 80089b4: 2200 movs r2, #0 + 80089b6: 6a68 ldr r0, [r5, #36] ; 0x24 + 80089b8: 6042 str r2, [r0, #4] + 80089ba: 2204 movs r2, #4 + 80089bc: f102 0614 add.w r6, r2, #20 + 80089c0: 429e cmp r6, r3 + 80089c2: 6841 ldr r1, [r0, #4] + 80089c4: d94f bls.n 8008a66 <_dtoa_r+0x316> + 80089c6: 4628 mov r0, r5 + 80089c8: f000 fefc bl 80097c4 <_Balloc> + 80089cc: 9008 str r0, [sp, #32] + 80089ce: 2800 cmp r0, #0 + 80089d0: d14d bne.n 8008a6e <_dtoa_r+0x31e> + 80089d2: 4602 mov r2, r0 + 80089d4: f44f 71d5 mov.w r1, #426 ; 0x1aa + 80089d8: 4b1d ldr r3, [pc, #116] ; (8008a50 <_dtoa_r+0x300>) + 80089da: e6cd b.n 8008778 <_dtoa_r+0x28> + 80089dc: 2301 movs r3, #1 + 80089de: e7de b.n 800899e <_dtoa_r+0x24e> + 80089e0: 2300 movs r3, #0 + 80089e2: 930b str r3, [sp, #44] ; 0x2c + 80089e4: 9b23 ldr r3, [sp, #140] ; 0x8c + 80089e6: eb09 0b03 add.w fp, r9, r3 + 80089ea: f10b 0301 add.w r3, fp, #1 + 80089ee: 2b01 cmp r3, #1 + 80089f0: 9302 str r3, [sp, #8] + 80089f2: bfb8 it lt + 80089f4: 2301 movlt r3, #1 + 80089f6: e7dd b.n 80089b4 <_dtoa_r+0x264> + 80089f8: 2301 movs r3, #1 + 80089fa: e7f2 b.n 80089e2 <_dtoa_r+0x292> + 80089fc: 2401 movs r4, #1 + 80089fe: 2300 movs r3, #0 + 8008a00: 940b str r4, [sp, #44] ; 0x2c + 8008a02: 9322 str r3, [sp, #136] ; 0x88 + 8008a04: f04f 3bff mov.w fp, #4294967295 + 8008a08: 2200 movs r2, #0 + 8008a0a: 2312 movs r3, #18 + 8008a0c: f8cd b008 str.w fp, [sp, #8] + 8008a10: 9223 str r2, [sp, #140] ; 0x8c + 8008a12: e7cf b.n 80089b4 <_dtoa_r+0x264> + 8008a14: f3af 8000 nop.w + 8008a18: 636f4361 .word 0x636f4361 + 8008a1c: 3fd287a7 .word 0x3fd287a7 + 8008a20: 8b60c8b3 .word 0x8b60c8b3 + 8008a24: 3fc68a28 .word 0x3fc68a28 + 8008a28: 509f79fb .word 0x509f79fb + 8008a2c: 3fd34413 .word 0x3fd34413 + 8008a30: 0800b3a1 .word 0x0800b3a1 + 8008a34: 0800b3b8 .word 0x0800b3b8 + 8008a38: 7ff00000 .word 0x7ff00000 + 8008a3c: 0800b39d .word 0x0800b39d + 8008a40: 0800b394 .word 0x0800b394 + 8008a44: 0800b371 .word 0x0800b371 + 8008a48: 3ff80000 .word 0x3ff80000 + 8008a4c: 0800b510 .word 0x0800b510 + 8008a50: 0800b417 .word 0x0800b417 + 8008a54: 2301 movs r3, #1 + 8008a56: 930b str r3, [sp, #44] ; 0x2c + 8008a58: e7d4 b.n 8008a04 <_dtoa_r+0x2b4> + 8008a5a: f8dd b08c ldr.w fp, [sp, #140] ; 0x8c + 8008a5e: 465b mov r3, fp + 8008a60: f8cd b008 str.w fp, [sp, #8] + 8008a64: e7a6 b.n 80089b4 <_dtoa_r+0x264> + 8008a66: 3101 adds r1, #1 + 8008a68: 6041 str r1, [r0, #4] + 8008a6a: 0052 lsls r2, r2, #1 + 8008a6c: e7a6 b.n 80089bc <_dtoa_r+0x26c> + 8008a6e: 6a6b ldr r3, [r5, #36] ; 0x24 + 8008a70: 9a08 ldr r2, [sp, #32] + 8008a72: 601a str r2, [r3, #0] + 8008a74: 9b02 ldr r3, [sp, #8] + 8008a76: 2b0e cmp r3, #14 + 8008a78: f200 80a8 bhi.w 8008bcc <_dtoa_r+0x47c> + 8008a7c: 2c00 cmp r4, #0 + 8008a7e: f000 80a5 beq.w 8008bcc <_dtoa_r+0x47c> + 8008a82: f1b9 0f00 cmp.w r9, #0 + 8008a86: dd34 ble.n 8008af2 <_dtoa_r+0x3a2> + 8008a88: 4a9a ldr r2, [pc, #616] ; (8008cf4 <_dtoa_r+0x5a4>) + 8008a8a: f009 030f and.w r3, r9, #15 + 8008a8e: eb02 03c3 add.w r3, r2, r3, lsl #3 + 8008a92: f419 7f80 tst.w r9, #256 ; 0x100 + 8008a96: e9d3 3400 ldrd r3, r4, [r3] + 8008a9a: e9cd 3410 strd r3, r4, [sp, #64] ; 0x40 + 8008a9e: ea4f 1429 mov.w r4, r9, asr #4 + 8008aa2: d016 beq.n 8008ad2 <_dtoa_r+0x382> + 8008aa4: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 + 8008aa8: 4b93 ldr r3, [pc, #588] ; (8008cf8 <_dtoa_r+0x5a8>) + 8008aaa: 2703 movs r7, #3 + 8008aac: e9d3 2308 ldrd r2, r3, [r3, #32] + 8008ab0: f7f7 fea8 bl 8000804 <__aeabi_ddiv> + 8008ab4: e9cd 0104 strd r0, r1, [sp, #16] + 8008ab8: f004 040f and.w r4, r4, #15 + 8008abc: 4e8e ldr r6, [pc, #568] ; (8008cf8 <_dtoa_r+0x5a8>) + 8008abe: b954 cbnz r4, 8008ad6 <_dtoa_r+0x386> + 8008ac0: e9dd 2310 ldrd r2, r3, [sp, #64] ; 0x40 + 8008ac4: e9dd 0104 ldrd r0, r1, [sp, #16] + 8008ac8: f7f7 fe9c bl 8000804 <__aeabi_ddiv> + 8008acc: e9cd 0104 strd r0, r1, [sp, #16] + 8008ad0: e029 b.n 8008b26 <_dtoa_r+0x3d6> + 8008ad2: 2702 movs r7, #2 + 8008ad4: e7f2 b.n 8008abc <_dtoa_r+0x36c> + 8008ad6: 07e1 lsls r1, r4, #31 + 8008ad8: d508 bpl.n 8008aec <_dtoa_r+0x39c> + 8008ada: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 + 8008ade: e9d6 2300 ldrd r2, r3, [r6] + 8008ae2: f7f7 fd65 bl 80005b0 <__aeabi_dmul> + 8008ae6: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 + 8008aea: 3701 adds r7, #1 + 8008aec: 1064 asrs r4, r4, #1 + 8008aee: 3608 adds r6, #8 + 8008af0: e7e5 b.n 8008abe <_dtoa_r+0x36e> + 8008af2: f000 80a5 beq.w 8008c40 <_dtoa_r+0x4f0> + 8008af6: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 + 8008afa: f1c9 0400 rsb r4, r9, #0 + 8008afe: 4b7d ldr r3, [pc, #500] ; (8008cf4 <_dtoa_r+0x5a4>) + 8008b00: f004 020f and.w r2, r4, #15 + 8008b04: eb03 03c2 add.w r3, r3, r2, lsl #3 + 8008b08: e9d3 2300 ldrd r2, r3, [r3] + 8008b0c: f7f7 fd50 bl 80005b0 <__aeabi_dmul> + 8008b10: 2702 movs r7, #2 + 8008b12: 2300 movs r3, #0 + 8008b14: e9cd 0104 strd r0, r1, [sp, #16] + 8008b18: 4e77 ldr r6, [pc, #476] ; (8008cf8 <_dtoa_r+0x5a8>) + 8008b1a: 1124 asrs r4, r4, #4 + 8008b1c: 2c00 cmp r4, #0 + 8008b1e: f040 8084 bne.w 8008c2a <_dtoa_r+0x4da> + 8008b22: 2b00 cmp r3, #0 + 8008b24: d1d2 bne.n 8008acc <_dtoa_r+0x37c> + 8008b26: 9b0f ldr r3, [sp, #60] ; 0x3c + 8008b28: 2b00 cmp r3, #0 + 8008b2a: f000 808b beq.w 8008c44 <_dtoa_r+0x4f4> + 8008b2e: e9dd 3404 ldrd r3, r4, [sp, #16] + 8008b32: e9cd 3410 strd r3, r4, [sp, #64] ; 0x40 + 8008b36: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 + 8008b3a: 2200 movs r2, #0 + 8008b3c: 4b6f ldr r3, [pc, #444] ; (8008cfc <_dtoa_r+0x5ac>) + 8008b3e: f7f7 ffa9 bl 8000a94 <__aeabi_dcmplt> + 8008b42: 2800 cmp r0, #0 + 8008b44: d07e beq.n 8008c44 <_dtoa_r+0x4f4> + 8008b46: 9b02 ldr r3, [sp, #8] + 8008b48: 2b00 cmp r3, #0 + 8008b4a: d07b beq.n 8008c44 <_dtoa_r+0x4f4> + 8008b4c: f1bb 0f00 cmp.w fp, #0 + 8008b50: dd38 ble.n 8008bc4 <_dtoa_r+0x474> + 8008b52: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 + 8008b56: 2200 movs r2, #0 + 8008b58: 4b69 ldr r3, [pc, #420] ; (8008d00 <_dtoa_r+0x5b0>) + 8008b5a: f7f7 fd29 bl 80005b0 <__aeabi_dmul> + 8008b5e: 465c mov r4, fp + 8008b60: e9cd 0104 strd r0, r1, [sp, #16] + 8008b64: f109 38ff add.w r8, r9, #4294967295 + 8008b68: 3701 adds r7, #1 + 8008b6a: 4638 mov r0, r7 + 8008b6c: f7f7 fcb6 bl 80004dc <__aeabi_i2d> + 8008b70: e9dd 2304 ldrd r2, r3, [sp, #16] + 8008b74: f7f7 fd1c bl 80005b0 <__aeabi_dmul> + 8008b78: 2200 movs r2, #0 + 8008b7a: 4b62 ldr r3, [pc, #392] ; (8008d04 <_dtoa_r+0x5b4>) + 8008b7c: f7f7 fb62 bl 8000244 <__adddf3> + 8008b80: f1a1 7650 sub.w r6, r1, #54525952 ; 0x3400000 + 8008b84: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 + 8008b88: 9611 str r6, [sp, #68] ; 0x44 + 8008b8a: 2c00 cmp r4, #0 + 8008b8c: d15d bne.n 8008c4a <_dtoa_r+0x4fa> + 8008b8e: e9dd 0104 ldrd r0, r1, [sp, #16] + 8008b92: 2200 movs r2, #0 + 8008b94: 4b5c ldr r3, [pc, #368] ; (8008d08 <_dtoa_r+0x5b8>) + 8008b96: f7f7 fb53 bl 8000240 <__aeabi_dsub> + 8008b9a: 4602 mov r2, r0 + 8008b9c: 460b mov r3, r1 + 8008b9e: e9cd 2304 strd r2, r3, [sp, #16] + 8008ba2: 4633 mov r3, r6 + 8008ba4: 9a10 ldr r2, [sp, #64] ; 0x40 + 8008ba6: f7f7 ff93 bl 8000ad0 <__aeabi_dcmpgt> + 8008baa: 2800 cmp r0, #0 + 8008bac: f040 829e bne.w 80090ec <_dtoa_r+0x99c> + 8008bb0: e9dd 0104 ldrd r0, r1, [sp, #16] + 8008bb4: 9a10 ldr r2, [sp, #64] ; 0x40 + 8008bb6: f106 4300 add.w r3, r6, #2147483648 ; 0x80000000 + 8008bba: f7f7 ff6b bl 8000a94 <__aeabi_dcmplt> + 8008bbe: 2800 cmp r0, #0 + 8008bc0: f040 8292 bne.w 80090e8 <_dtoa_r+0x998> + 8008bc4: e9dd 340c ldrd r3, r4, [sp, #48] ; 0x30 + 8008bc8: e9cd 3404 strd r3, r4, [sp, #16] + 8008bcc: 9b17 ldr r3, [sp, #92] ; 0x5c + 8008bce: 2b00 cmp r3, #0 + 8008bd0: f2c0 8153 blt.w 8008e7a <_dtoa_r+0x72a> + 8008bd4: f1b9 0f0e cmp.w r9, #14 + 8008bd8: f300 814f bgt.w 8008e7a <_dtoa_r+0x72a> + 8008bdc: 4b45 ldr r3, [pc, #276] ; (8008cf4 <_dtoa_r+0x5a4>) + 8008bde: eb03 03c9 add.w r3, r3, r9, lsl #3 + 8008be2: e9d3 3400 ldrd r3, r4, [r3] + 8008be6: e9cd 3406 strd r3, r4, [sp, #24] + 8008bea: 9b23 ldr r3, [sp, #140] ; 0x8c + 8008bec: 2b00 cmp r3, #0 + 8008bee: f280 80db bge.w 8008da8 <_dtoa_r+0x658> + 8008bf2: 9b02 ldr r3, [sp, #8] + 8008bf4: 2b00 cmp r3, #0 + 8008bf6: f300 80d7 bgt.w 8008da8 <_dtoa_r+0x658> + 8008bfa: f040 8274 bne.w 80090e6 <_dtoa_r+0x996> + 8008bfe: e9dd 0106 ldrd r0, r1, [sp, #24] + 8008c02: 2200 movs r2, #0 + 8008c04: 4b40 ldr r3, [pc, #256] ; (8008d08 <_dtoa_r+0x5b8>) + 8008c06: f7f7 fcd3 bl 80005b0 <__aeabi_dmul> + 8008c0a: e9dd 2304 ldrd r2, r3, [sp, #16] + 8008c0e: f7f7 ff55 bl 8000abc <__aeabi_dcmpge> + 8008c12: 9c02 ldr r4, [sp, #8] + 8008c14: 4626 mov r6, r4 + 8008c16: 2800 cmp r0, #0 + 8008c18: f040 824a bne.w 80090b0 <_dtoa_r+0x960> + 8008c1c: 2331 movs r3, #49 ; 0x31 + 8008c1e: 9f08 ldr r7, [sp, #32] + 8008c20: f109 0901 add.w r9, r9, #1 + 8008c24: f807 3b01 strb.w r3, [r7], #1 + 8008c28: e246 b.n 80090b8 <_dtoa_r+0x968> + 8008c2a: 07e2 lsls r2, r4, #31 + 8008c2c: d505 bpl.n 8008c3a <_dtoa_r+0x4ea> + 8008c2e: e9d6 2300 ldrd r2, r3, [r6] + 8008c32: f7f7 fcbd bl 80005b0 <__aeabi_dmul> + 8008c36: 2301 movs r3, #1 + 8008c38: 3701 adds r7, #1 + 8008c3a: 1064 asrs r4, r4, #1 + 8008c3c: 3608 adds r6, #8 + 8008c3e: e76d b.n 8008b1c <_dtoa_r+0x3cc> + 8008c40: 2702 movs r7, #2 + 8008c42: e770 b.n 8008b26 <_dtoa_r+0x3d6> + 8008c44: 46c8 mov r8, r9 + 8008c46: 9c02 ldr r4, [sp, #8] + 8008c48: e78f b.n 8008b6a <_dtoa_r+0x41a> + 8008c4a: 9908 ldr r1, [sp, #32] + 8008c4c: 4b29 ldr r3, [pc, #164] ; (8008cf4 <_dtoa_r+0x5a4>) + 8008c4e: 4421 add r1, r4 + 8008c50: 9112 str r1, [sp, #72] ; 0x48 + 8008c52: 990b ldr r1, [sp, #44] ; 0x2c + 8008c54: eb03 03c4 add.w r3, r3, r4, lsl #3 + 8008c58: e9dd 6710 ldrd r6, r7, [sp, #64] ; 0x40 + 8008c5c: e953 2302 ldrd r2, r3, [r3, #-8] + 8008c60: 2900 cmp r1, #0 + 8008c62: d055 beq.n 8008d10 <_dtoa_r+0x5c0> + 8008c64: 2000 movs r0, #0 + 8008c66: 4929 ldr r1, [pc, #164] ; (8008d0c <_dtoa_r+0x5bc>) + 8008c68: f7f7 fdcc bl 8000804 <__aeabi_ddiv> + 8008c6c: 463b mov r3, r7 + 8008c6e: 4632 mov r2, r6 + 8008c70: f7f7 fae6 bl 8000240 <__aeabi_dsub> + 8008c74: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 + 8008c78: 9f08 ldr r7, [sp, #32] + 8008c7a: e9dd 0104 ldrd r0, r1, [sp, #16] + 8008c7e: f7f7 ff47 bl 8000b10 <__aeabi_d2iz> + 8008c82: 4604 mov r4, r0 + 8008c84: f7f7 fc2a bl 80004dc <__aeabi_i2d> + 8008c88: 4602 mov r2, r0 + 8008c8a: 460b mov r3, r1 + 8008c8c: e9dd 0104 ldrd r0, r1, [sp, #16] + 8008c90: f7f7 fad6 bl 8000240 <__aeabi_dsub> + 8008c94: 4602 mov r2, r0 + 8008c96: 460b mov r3, r1 + 8008c98: 3430 adds r4, #48 ; 0x30 + 8008c9a: e9cd 2304 strd r2, r3, [sp, #16] + 8008c9e: e9dd 2310 ldrd r2, r3, [sp, #64] ; 0x40 + 8008ca2: f807 4b01 strb.w r4, [r7], #1 + 8008ca6: f7f7 fef5 bl 8000a94 <__aeabi_dcmplt> + 8008caa: 2800 cmp r0, #0 + 8008cac: d174 bne.n 8008d98 <_dtoa_r+0x648> + 8008cae: e9dd 2304 ldrd r2, r3, [sp, #16] + 8008cb2: 2000 movs r0, #0 + 8008cb4: 4911 ldr r1, [pc, #68] ; (8008cfc <_dtoa_r+0x5ac>) + 8008cb6: f7f7 fac3 bl 8000240 <__aeabi_dsub> + 8008cba: e9dd 2310 ldrd r2, r3, [sp, #64] ; 0x40 + 8008cbe: f7f7 fee9 bl 8000a94 <__aeabi_dcmplt> + 8008cc2: 2800 cmp r0, #0 + 8008cc4: f040 80b6 bne.w 8008e34 <_dtoa_r+0x6e4> + 8008cc8: 9b12 ldr r3, [sp, #72] ; 0x48 + 8008cca: 429f cmp r7, r3 + 8008ccc: f43f af7a beq.w 8008bc4 <_dtoa_r+0x474> + 8008cd0: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 + 8008cd4: 2200 movs r2, #0 + 8008cd6: 4b0a ldr r3, [pc, #40] ; (8008d00 <_dtoa_r+0x5b0>) + 8008cd8: f7f7 fc6a bl 80005b0 <__aeabi_dmul> + 8008cdc: 2200 movs r2, #0 + 8008cde: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 + 8008ce2: e9dd 0104 ldrd r0, r1, [sp, #16] + 8008ce6: 4b06 ldr r3, [pc, #24] ; (8008d00 <_dtoa_r+0x5b0>) + 8008ce8: f7f7 fc62 bl 80005b0 <__aeabi_dmul> + 8008cec: e9cd 0104 strd r0, r1, [sp, #16] + 8008cf0: e7c3 b.n 8008c7a <_dtoa_r+0x52a> + 8008cf2: bf00 nop + 8008cf4: 0800b510 .word 0x0800b510 + 8008cf8: 0800b4e8 .word 0x0800b4e8 + 8008cfc: 3ff00000 .word 0x3ff00000 + 8008d00: 40240000 .word 0x40240000 + 8008d04: 401c0000 .word 0x401c0000 + 8008d08: 40140000 .word 0x40140000 + 8008d0c: 3fe00000 .word 0x3fe00000 + 8008d10: 4630 mov r0, r6 + 8008d12: 4639 mov r1, r7 + 8008d14: f7f7 fc4c bl 80005b0 <__aeabi_dmul> + 8008d18: 9b12 ldr r3, [sp, #72] ; 0x48 + 8008d1a: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 + 8008d1e: 9c08 ldr r4, [sp, #32] + 8008d20: 9314 str r3, [sp, #80] ; 0x50 + 8008d22: e9dd 0104 ldrd r0, r1, [sp, #16] + 8008d26: f7f7 fef3 bl 8000b10 <__aeabi_d2iz> + 8008d2a: 9015 str r0, [sp, #84] ; 0x54 + 8008d2c: f7f7 fbd6 bl 80004dc <__aeabi_i2d> + 8008d30: 4602 mov r2, r0 + 8008d32: 460b mov r3, r1 + 8008d34: e9dd 0104 ldrd r0, r1, [sp, #16] + 8008d38: f7f7 fa82 bl 8000240 <__aeabi_dsub> + 8008d3c: 9b15 ldr r3, [sp, #84] ; 0x54 + 8008d3e: 4606 mov r6, r0 + 8008d40: 3330 adds r3, #48 ; 0x30 + 8008d42: f804 3b01 strb.w r3, [r4], #1 + 8008d46: 9b12 ldr r3, [sp, #72] ; 0x48 + 8008d48: 460f mov r7, r1 + 8008d4a: 429c cmp r4, r3 + 8008d4c: f04f 0200 mov.w r2, #0 + 8008d50: d124 bne.n 8008d9c <_dtoa_r+0x64c> + 8008d52: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 + 8008d56: 4bb3 ldr r3, [pc, #716] ; (8009024 <_dtoa_r+0x8d4>) + 8008d58: f7f7 fa74 bl 8000244 <__adddf3> + 8008d5c: 4602 mov r2, r0 + 8008d5e: 460b mov r3, r1 + 8008d60: 4630 mov r0, r6 + 8008d62: 4639 mov r1, r7 + 8008d64: f7f7 feb4 bl 8000ad0 <__aeabi_dcmpgt> + 8008d68: 2800 cmp r0, #0 + 8008d6a: d162 bne.n 8008e32 <_dtoa_r+0x6e2> + 8008d6c: e9dd 2310 ldrd r2, r3, [sp, #64] ; 0x40 + 8008d70: 2000 movs r0, #0 + 8008d72: 49ac ldr r1, [pc, #688] ; (8009024 <_dtoa_r+0x8d4>) + 8008d74: f7f7 fa64 bl 8000240 <__aeabi_dsub> + 8008d78: 4602 mov r2, r0 + 8008d7a: 460b mov r3, r1 + 8008d7c: 4630 mov r0, r6 + 8008d7e: 4639 mov r1, r7 + 8008d80: f7f7 fe88 bl 8000a94 <__aeabi_dcmplt> + 8008d84: 2800 cmp r0, #0 + 8008d86: f43f af1d beq.w 8008bc4 <_dtoa_r+0x474> + 8008d8a: 9f14 ldr r7, [sp, #80] ; 0x50 + 8008d8c: 1e7b subs r3, r7, #1 + 8008d8e: 9314 str r3, [sp, #80] ; 0x50 + 8008d90: f817 3c01 ldrb.w r3, [r7, #-1] + 8008d94: 2b30 cmp r3, #48 ; 0x30 + 8008d96: d0f8 beq.n 8008d8a <_dtoa_r+0x63a> + 8008d98: 46c1 mov r9, r8 + 8008d9a: e03a b.n 8008e12 <_dtoa_r+0x6c2> + 8008d9c: 4ba2 ldr r3, [pc, #648] ; (8009028 <_dtoa_r+0x8d8>) + 8008d9e: f7f7 fc07 bl 80005b0 <__aeabi_dmul> + 8008da2: e9cd 0104 strd r0, r1, [sp, #16] + 8008da6: e7bc b.n 8008d22 <_dtoa_r+0x5d2> + 8008da8: 9f08 ldr r7, [sp, #32] + 8008daa: e9dd 2306 ldrd r2, r3, [sp, #24] + 8008dae: e9dd 0104 ldrd r0, r1, [sp, #16] + 8008db2: f7f7 fd27 bl 8000804 <__aeabi_ddiv> + 8008db6: f7f7 feab bl 8000b10 <__aeabi_d2iz> + 8008dba: 4604 mov r4, r0 + 8008dbc: f7f7 fb8e bl 80004dc <__aeabi_i2d> + 8008dc0: e9dd 2306 ldrd r2, r3, [sp, #24] + 8008dc4: f7f7 fbf4 bl 80005b0 <__aeabi_dmul> + 8008dc8: f104 0630 add.w r6, r4, #48 ; 0x30 + 8008dcc: 460b mov r3, r1 + 8008dce: 4602 mov r2, r0 + 8008dd0: e9dd 0104 ldrd r0, r1, [sp, #16] + 8008dd4: f7f7 fa34 bl 8000240 <__aeabi_dsub> + 8008dd8: f807 6b01 strb.w r6, [r7], #1 + 8008ddc: 9e08 ldr r6, [sp, #32] + 8008dde: 9b02 ldr r3, [sp, #8] + 8008de0: 1bbe subs r6, r7, r6 + 8008de2: 42b3 cmp r3, r6 + 8008de4: d13a bne.n 8008e5c <_dtoa_r+0x70c> + 8008de6: 4602 mov r2, r0 + 8008de8: 460b mov r3, r1 + 8008dea: f7f7 fa2b bl 8000244 <__adddf3> + 8008dee: 4602 mov r2, r0 + 8008df0: 460b mov r3, r1 + 8008df2: e9cd 2302 strd r2, r3, [sp, #8] + 8008df6: e9dd 2306 ldrd r2, r3, [sp, #24] + 8008dfa: f7f7 fe69 bl 8000ad0 <__aeabi_dcmpgt> + 8008dfe: bb58 cbnz r0, 8008e58 <_dtoa_r+0x708> + 8008e00: e9dd 2306 ldrd r2, r3, [sp, #24] + 8008e04: e9dd 0102 ldrd r0, r1, [sp, #8] + 8008e08: f7f7 fe3a bl 8000a80 <__aeabi_dcmpeq> + 8008e0c: b108 cbz r0, 8008e12 <_dtoa_r+0x6c2> + 8008e0e: 07e1 lsls r1, r4, #31 + 8008e10: d422 bmi.n 8008e58 <_dtoa_r+0x708> + 8008e12: 4628 mov r0, r5 + 8008e14: 4651 mov r1, sl + 8008e16: f000 fd15 bl 8009844 <_Bfree> + 8008e1a: 2300 movs r3, #0 + 8008e1c: 703b strb r3, [r7, #0] + 8008e1e: 9b24 ldr r3, [sp, #144] ; 0x90 + 8008e20: f109 0001 add.w r0, r9, #1 + 8008e24: 6018 str r0, [r3, #0] + 8008e26: 9b26 ldr r3, [sp, #152] ; 0x98 + 8008e28: 2b00 cmp r3, #0 + 8008e2a: f43f acdf beq.w 80087ec <_dtoa_r+0x9c> + 8008e2e: 601f str r7, [r3, #0] + 8008e30: e4dc b.n 80087ec <_dtoa_r+0x9c> + 8008e32: 4627 mov r7, r4 + 8008e34: 463b mov r3, r7 + 8008e36: 461f mov r7, r3 + 8008e38: f813 2d01 ldrb.w r2, [r3, #-1]! + 8008e3c: 2a39 cmp r2, #57 ; 0x39 + 8008e3e: d107 bne.n 8008e50 <_dtoa_r+0x700> + 8008e40: 9a08 ldr r2, [sp, #32] + 8008e42: 429a cmp r2, r3 + 8008e44: d1f7 bne.n 8008e36 <_dtoa_r+0x6e6> + 8008e46: 2230 movs r2, #48 ; 0x30 + 8008e48: 9908 ldr r1, [sp, #32] + 8008e4a: f108 0801 add.w r8, r8, #1 + 8008e4e: 700a strb r2, [r1, #0] + 8008e50: 781a ldrb r2, [r3, #0] + 8008e52: 3201 adds r2, #1 + 8008e54: 701a strb r2, [r3, #0] + 8008e56: e79f b.n 8008d98 <_dtoa_r+0x648> + 8008e58: 46c8 mov r8, r9 + 8008e5a: e7eb b.n 8008e34 <_dtoa_r+0x6e4> + 8008e5c: 2200 movs r2, #0 + 8008e5e: 4b72 ldr r3, [pc, #456] ; (8009028 <_dtoa_r+0x8d8>) + 8008e60: f7f7 fba6 bl 80005b0 <__aeabi_dmul> + 8008e64: 4602 mov r2, r0 + 8008e66: 460b mov r3, r1 + 8008e68: e9cd 2304 strd r2, r3, [sp, #16] + 8008e6c: 2200 movs r2, #0 + 8008e6e: 2300 movs r3, #0 + 8008e70: f7f7 fe06 bl 8000a80 <__aeabi_dcmpeq> + 8008e74: 2800 cmp r0, #0 + 8008e76: d098 beq.n 8008daa <_dtoa_r+0x65a> + 8008e78: e7cb b.n 8008e12 <_dtoa_r+0x6c2> + 8008e7a: 9a0b ldr r2, [sp, #44] ; 0x2c + 8008e7c: 2a00 cmp r2, #0 + 8008e7e: f000 80cd beq.w 800901c <_dtoa_r+0x8cc> + 8008e82: 9a22 ldr r2, [sp, #136] ; 0x88 + 8008e84: 2a01 cmp r2, #1 + 8008e86: f300 80af bgt.w 8008fe8 <_dtoa_r+0x898> + 8008e8a: 9a13 ldr r2, [sp, #76] ; 0x4c + 8008e8c: 2a00 cmp r2, #0 + 8008e8e: f000 80a7 beq.w 8008fe0 <_dtoa_r+0x890> + 8008e92: f203 4333 addw r3, r3, #1075 ; 0x433 + 8008e96: 9c0a ldr r4, [sp, #40] ; 0x28 + 8008e98: 9f06 ldr r7, [sp, #24] + 8008e9a: 9a06 ldr r2, [sp, #24] + 8008e9c: 2101 movs r1, #1 + 8008e9e: 441a add r2, r3 + 8008ea0: 9206 str r2, [sp, #24] + 8008ea2: 9a09 ldr r2, [sp, #36] ; 0x24 + 8008ea4: 4628 mov r0, r5 + 8008ea6: 441a add r2, r3 + 8008ea8: 9209 str r2, [sp, #36] ; 0x24 + 8008eaa: f000 fd85 bl 80099b8 <__i2b> + 8008eae: 4606 mov r6, r0 + 8008eb0: 2f00 cmp r7, #0 + 8008eb2: dd0c ble.n 8008ece <_dtoa_r+0x77e> + 8008eb4: 9b09 ldr r3, [sp, #36] ; 0x24 + 8008eb6: 2b00 cmp r3, #0 + 8008eb8: dd09 ble.n 8008ece <_dtoa_r+0x77e> + 8008eba: 42bb cmp r3, r7 + 8008ebc: bfa8 it ge + 8008ebe: 463b movge r3, r7 + 8008ec0: 9a06 ldr r2, [sp, #24] + 8008ec2: 1aff subs r7, r7, r3 + 8008ec4: 1ad2 subs r2, r2, r3 + 8008ec6: 9206 str r2, [sp, #24] + 8008ec8: 9a09 ldr r2, [sp, #36] ; 0x24 + 8008eca: 1ad3 subs r3, r2, r3 + 8008ecc: 9309 str r3, [sp, #36] ; 0x24 + 8008ece: 9b0a ldr r3, [sp, #40] ; 0x28 + 8008ed0: b1f3 cbz r3, 8008f10 <_dtoa_r+0x7c0> + 8008ed2: 9b0b ldr r3, [sp, #44] ; 0x2c + 8008ed4: 2b00 cmp r3, #0 + 8008ed6: f000 80a9 beq.w 800902c <_dtoa_r+0x8dc> + 8008eda: 2c00 cmp r4, #0 + 8008edc: dd10 ble.n 8008f00 <_dtoa_r+0x7b0> + 8008ede: 4631 mov r1, r6 + 8008ee0: 4622 mov r2, r4 + 8008ee2: 4628 mov r0, r5 + 8008ee4: f000 fe22 bl 8009b2c <__pow5mult> + 8008ee8: 4652 mov r2, sl + 8008eea: 4601 mov r1, r0 + 8008eec: 4606 mov r6, r0 + 8008eee: 4628 mov r0, r5 + 8008ef0: f000 fd78 bl 80099e4 <__multiply> + 8008ef4: 4680 mov r8, r0 + 8008ef6: 4651 mov r1, sl + 8008ef8: 4628 mov r0, r5 + 8008efa: f000 fca3 bl 8009844 <_Bfree> + 8008efe: 46c2 mov sl, r8 + 8008f00: 9b0a ldr r3, [sp, #40] ; 0x28 + 8008f02: 1b1a subs r2, r3, r4 + 8008f04: d004 beq.n 8008f10 <_dtoa_r+0x7c0> + 8008f06: 4651 mov r1, sl + 8008f08: 4628 mov r0, r5 + 8008f0a: f000 fe0f bl 8009b2c <__pow5mult> + 8008f0e: 4682 mov sl, r0 + 8008f10: 2101 movs r1, #1 + 8008f12: 4628 mov r0, r5 + 8008f14: f000 fd50 bl 80099b8 <__i2b> + 8008f18: 9b0e ldr r3, [sp, #56] ; 0x38 + 8008f1a: 4604 mov r4, r0 + 8008f1c: 2b00 cmp r3, #0 + 8008f1e: f340 8087 ble.w 8009030 <_dtoa_r+0x8e0> + 8008f22: 461a mov r2, r3 + 8008f24: 4601 mov r1, r0 + 8008f26: 4628 mov r0, r5 + 8008f28: f000 fe00 bl 8009b2c <__pow5mult> + 8008f2c: 9b22 ldr r3, [sp, #136] ; 0x88 + 8008f2e: 4604 mov r4, r0 + 8008f30: 2b01 cmp r3, #1 + 8008f32: f340 8080 ble.w 8009036 <_dtoa_r+0x8e6> + 8008f36: f04f 0800 mov.w r8, #0 + 8008f3a: 6923 ldr r3, [r4, #16] + 8008f3c: eb04 0383 add.w r3, r4, r3, lsl #2 + 8008f40: 6918 ldr r0, [r3, #16] + 8008f42: f000 fceb bl 800991c <__hi0bits> + 8008f46: f1c0 0020 rsb r0, r0, #32 + 8008f4a: 9b09 ldr r3, [sp, #36] ; 0x24 + 8008f4c: 4418 add r0, r3 + 8008f4e: f010 001f ands.w r0, r0, #31 + 8008f52: f000 8092 beq.w 800907a <_dtoa_r+0x92a> + 8008f56: f1c0 0320 rsb r3, r0, #32 + 8008f5a: 2b04 cmp r3, #4 + 8008f5c: f340 808a ble.w 8009074 <_dtoa_r+0x924> + 8008f60: f1c0 001c rsb r0, r0, #28 + 8008f64: 9b06 ldr r3, [sp, #24] + 8008f66: 4407 add r7, r0 + 8008f68: 4403 add r3, r0 + 8008f6a: 9306 str r3, [sp, #24] + 8008f6c: 9b09 ldr r3, [sp, #36] ; 0x24 + 8008f6e: 4403 add r3, r0 + 8008f70: 9309 str r3, [sp, #36] ; 0x24 + 8008f72: 9b06 ldr r3, [sp, #24] + 8008f74: 2b00 cmp r3, #0 + 8008f76: dd05 ble.n 8008f84 <_dtoa_r+0x834> + 8008f78: 4651 mov r1, sl + 8008f7a: 461a mov r2, r3 + 8008f7c: 4628 mov r0, r5 + 8008f7e: f000 fe2f bl 8009be0 <__lshift> + 8008f82: 4682 mov sl, r0 + 8008f84: 9b09 ldr r3, [sp, #36] ; 0x24 + 8008f86: 2b00 cmp r3, #0 + 8008f88: dd05 ble.n 8008f96 <_dtoa_r+0x846> + 8008f8a: 4621 mov r1, r4 + 8008f8c: 461a mov r2, r3 + 8008f8e: 4628 mov r0, r5 + 8008f90: f000 fe26 bl 8009be0 <__lshift> + 8008f94: 4604 mov r4, r0 + 8008f96: 9b0f ldr r3, [sp, #60] ; 0x3c + 8008f98: 2b00 cmp r3, #0 + 8008f9a: d070 beq.n 800907e <_dtoa_r+0x92e> + 8008f9c: 4621 mov r1, r4 + 8008f9e: 4650 mov r0, sl + 8008fa0: f000 fe8a bl 8009cb8 <__mcmp> + 8008fa4: 2800 cmp r0, #0 + 8008fa6: da6a bge.n 800907e <_dtoa_r+0x92e> + 8008fa8: 2300 movs r3, #0 + 8008faa: 4651 mov r1, sl + 8008fac: 220a movs r2, #10 + 8008fae: 4628 mov r0, r5 + 8008fb0: f000 fc6a bl 8009888 <__multadd> + 8008fb4: 9b0b ldr r3, [sp, #44] ; 0x2c + 8008fb6: 4682 mov sl, r0 + 8008fb8: f109 39ff add.w r9, r9, #4294967295 + 8008fbc: 2b00 cmp r3, #0 + 8008fbe: f000 8193 beq.w 80092e8 <_dtoa_r+0xb98> + 8008fc2: 4631 mov r1, r6 + 8008fc4: 2300 movs r3, #0 + 8008fc6: 220a movs r2, #10 + 8008fc8: 4628 mov r0, r5 + 8008fca: f000 fc5d bl 8009888 <__multadd> + 8008fce: f1bb 0f00 cmp.w fp, #0 + 8008fd2: 4606 mov r6, r0 + 8008fd4: f300 8093 bgt.w 80090fe <_dtoa_r+0x9ae> + 8008fd8: 9b22 ldr r3, [sp, #136] ; 0x88 + 8008fda: 2b02 cmp r3, #2 + 8008fdc: dc57 bgt.n 800908e <_dtoa_r+0x93e> + 8008fde: e08e b.n 80090fe <_dtoa_r+0x9ae> + 8008fe0: 9b16 ldr r3, [sp, #88] ; 0x58 + 8008fe2: f1c3 0336 rsb r3, r3, #54 ; 0x36 + 8008fe6: e756 b.n 8008e96 <_dtoa_r+0x746> + 8008fe8: 9b02 ldr r3, [sp, #8] + 8008fea: 1e5c subs r4, r3, #1 + 8008fec: 9b0a ldr r3, [sp, #40] ; 0x28 + 8008fee: 42a3 cmp r3, r4 + 8008ff0: bfb7 itett lt + 8008ff2: 9b0a ldrlt r3, [sp, #40] ; 0x28 + 8008ff4: 1b1c subge r4, r3, r4 + 8008ff6: 1ae2 sublt r2, r4, r3 + 8008ff8: 9b0e ldrlt r3, [sp, #56] ; 0x38 + 8008ffa: bfbe ittt lt + 8008ffc: 940a strlt r4, [sp, #40] ; 0x28 + 8008ffe: 189b addlt r3, r3, r2 + 8009000: 930e strlt r3, [sp, #56] ; 0x38 + 8009002: 9b02 ldr r3, [sp, #8] + 8009004: bfb8 it lt + 8009006: 2400 movlt r4, #0 + 8009008: 2b00 cmp r3, #0 + 800900a: bfbb ittet lt + 800900c: 9b06 ldrlt r3, [sp, #24] + 800900e: 9a02 ldrlt r2, [sp, #8] + 8009010: 9f06 ldrge r7, [sp, #24] + 8009012: 1a9f sublt r7, r3, r2 + 8009014: bfac ite ge + 8009016: 9b02 ldrge r3, [sp, #8] + 8009018: 2300 movlt r3, #0 + 800901a: e73e b.n 8008e9a <_dtoa_r+0x74a> + 800901c: 9c0a ldr r4, [sp, #40] ; 0x28 + 800901e: 9f06 ldr r7, [sp, #24] + 8009020: 9e0b ldr r6, [sp, #44] ; 0x2c + 8009022: e745 b.n 8008eb0 <_dtoa_r+0x760> + 8009024: 3fe00000 .word 0x3fe00000 + 8009028: 40240000 .word 0x40240000 + 800902c: 9a0a ldr r2, [sp, #40] ; 0x28 + 800902e: e76a b.n 8008f06 <_dtoa_r+0x7b6> + 8009030: 9b22 ldr r3, [sp, #136] ; 0x88 + 8009032: 2b01 cmp r3, #1 + 8009034: dc19 bgt.n 800906a <_dtoa_r+0x91a> + 8009036: 9b04 ldr r3, [sp, #16] + 8009038: b9bb cbnz r3, 800906a <_dtoa_r+0x91a> + 800903a: 9b05 ldr r3, [sp, #20] + 800903c: f3c3 0313 ubfx r3, r3, #0, #20 + 8009040: b99b cbnz r3, 800906a <_dtoa_r+0x91a> + 8009042: 9b05 ldr r3, [sp, #20] + 8009044: f023 4300 bic.w r3, r3, #2147483648 ; 0x80000000 + 8009048: 0d1b lsrs r3, r3, #20 + 800904a: 051b lsls r3, r3, #20 + 800904c: b183 cbz r3, 8009070 <_dtoa_r+0x920> + 800904e: f04f 0801 mov.w r8, #1 + 8009052: 9b06 ldr r3, [sp, #24] + 8009054: 3301 adds r3, #1 + 8009056: 9306 str r3, [sp, #24] + 8009058: 9b09 ldr r3, [sp, #36] ; 0x24 + 800905a: 3301 adds r3, #1 + 800905c: 9309 str r3, [sp, #36] ; 0x24 + 800905e: 9b0e ldr r3, [sp, #56] ; 0x38 + 8009060: 2b00 cmp r3, #0 + 8009062: f47f af6a bne.w 8008f3a <_dtoa_r+0x7ea> + 8009066: 2001 movs r0, #1 + 8009068: e76f b.n 8008f4a <_dtoa_r+0x7fa> + 800906a: f04f 0800 mov.w r8, #0 + 800906e: e7f6 b.n 800905e <_dtoa_r+0x90e> + 8009070: 4698 mov r8, r3 + 8009072: e7f4 b.n 800905e <_dtoa_r+0x90e> + 8009074: f43f af7d beq.w 8008f72 <_dtoa_r+0x822> + 8009078: 4618 mov r0, r3 + 800907a: 301c adds r0, #28 + 800907c: e772 b.n 8008f64 <_dtoa_r+0x814> + 800907e: 9b02 ldr r3, [sp, #8] + 8009080: 2b00 cmp r3, #0 + 8009082: dc36 bgt.n 80090f2 <_dtoa_r+0x9a2> + 8009084: 9b22 ldr r3, [sp, #136] ; 0x88 + 8009086: 2b02 cmp r3, #2 + 8009088: dd33 ble.n 80090f2 <_dtoa_r+0x9a2> + 800908a: f8dd b008 ldr.w fp, [sp, #8] + 800908e: f1bb 0f00 cmp.w fp, #0 + 8009092: d10d bne.n 80090b0 <_dtoa_r+0x960> + 8009094: 4621 mov r1, r4 + 8009096: 465b mov r3, fp + 8009098: 2205 movs r2, #5 + 800909a: 4628 mov r0, r5 + 800909c: f000 fbf4 bl 8009888 <__multadd> + 80090a0: 4601 mov r1, r0 + 80090a2: 4604 mov r4, r0 + 80090a4: 4650 mov r0, sl + 80090a6: f000 fe07 bl 8009cb8 <__mcmp> + 80090aa: 2800 cmp r0, #0 + 80090ac: f73f adb6 bgt.w 8008c1c <_dtoa_r+0x4cc> + 80090b0: 9b23 ldr r3, [sp, #140] ; 0x8c + 80090b2: 9f08 ldr r7, [sp, #32] + 80090b4: ea6f 0903 mvn.w r9, r3 + 80090b8: f04f 0800 mov.w r8, #0 + 80090bc: 4621 mov r1, r4 + 80090be: 4628 mov r0, r5 + 80090c0: f000 fbc0 bl 8009844 <_Bfree> + 80090c4: 2e00 cmp r6, #0 + 80090c6: f43f aea4 beq.w 8008e12 <_dtoa_r+0x6c2> + 80090ca: f1b8 0f00 cmp.w r8, #0 + 80090ce: d005 beq.n 80090dc <_dtoa_r+0x98c> + 80090d0: 45b0 cmp r8, r6 + 80090d2: d003 beq.n 80090dc <_dtoa_r+0x98c> + 80090d4: 4641 mov r1, r8 + 80090d6: 4628 mov r0, r5 + 80090d8: f000 fbb4 bl 8009844 <_Bfree> + 80090dc: 4631 mov r1, r6 + 80090de: 4628 mov r0, r5 + 80090e0: f000 fbb0 bl 8009844 <_Bfree> + 80090e4: e695 b.n 8008e12 <_dtoa_r+0x6c2> + 80090e6: 2400 movs r4, #0 + 80090e8: 4626 mov r6, r4 + 80090ea: e7e1 b.n 80090b0 <_dtoa_r+0x960> + 80090ec: 46c1 mov r9, r8 + 80090ee: 4626 mov r6, r4 + 80090f0: e594 b.n 8008c1c <_dtoa_r+0x4cc> + 80090f2: 9b0b ldr r3, [sp, #44] ; 0x2c + 80090f4: f8dd b008 ldr.w fp, [sp, #8] + 80090f8: 2b00 cmp r3, #0 + 80090fa: f000 80fc beq.w 80092f6 <_dtoa_r+0xba6> + 80090fe: 2f00 cmp r7, #0 + 8009100: dd05 ble.n 800910e <_dtoa_r+0x9be> + 8009102: 4631 mov r1, r6 + 8009104: 463a mov r2, r7 + 8009106: 4628 mov r0, r5 + 8009108: f000 fd6a bl 8009be0 <__lshift> + 800910c: 4606 mov r6, r0 + 800910e: f1b8 0f00 cmp.w r8, #0 + 8009112: d05c beq.n 80091ce <_dtoa_r+0xa7e> + 8009114: 4628 mov r0, r5 + 8009116: 6871 ldr r1, [r6, #4] + 8009118: f000 fb54 bl 80097c4 <_Balloc> + 800911c: 4607 mov r7, r0 + 800911e: b928 cbnz r0, 800912c <_dtoa_r+0x9dc> + 8009120: 4602 mov r2, r0 + 8009122: f240 21ea movw r1, #746 ; 0x2ea + 8009126: 4b7e ldr r3, [pc, #504] ; (8009320 <_dtoa_r+0xbd0>) + 8009128: f7ff bb26 b.w 8008778 <_dtoa_r+0x28> + 800912c: 6932 ldr r2, [r6, #16] + 800912e: f106 010c add.w r1, r6, #12 + 8009132: 3202 adds r2, #2 + 8009134: 0092 lsls r2, r2, #2 + 8009136: 300c adds r0, #12 + 8009138: f000 fb2a bl 8009790 + 800913c: 2201 movs r2, #1 + 800913e: 4639 mov r1, r7 + 8009140: 4628 mov r0, r5 + 8009142: f000 fd4d bl 8009be0 <__lshift> + 8009146: 46b0 mov r8, r6 + 8009148: 4606 mov r6, r0 + 800914a: 9b08 ldr r3, [sp, #32] + 800914c: 3301 adds r3, #1 + 800914e: 9302 str r3, [sp, #8] + 8009150: 9b08 ldr r3, [sp, #32] + 8009152: 445b add r3, fp + 8009154: 930a str r3, [sp, #40] ; 0x28 + 8009156: 9b04 ldr r3, [sp, #16] + 8009158: f003 0301 and.w r3, r3, #1 + 800915c: 9309 str r3, [sp, #36] ; 0x24 + 800915e: 9b02 ldr r3, [sp, #8] + 8009160: 4621 mov r1, r4 + 8009162: 4650 mov r0, sl + 8009164: f103 3bff add.w fp, r3, #4294967295 + 8009168: f7ff fa64 bl 8008634 + 800916c: 4603 mov r3, r0 + 800916e: 4641 mov r1, r8 + 8009170: 3330 adds r3, #48 ; 0x30 + 8009172: 9004 str r0, [sp, #16] + 8009174: 4650 mov r0, sl + 8009176: 930b str r3, [sp, #44] ; 0x2c + 8009178: f000 fd9e bl 8009cb8 <__mcmp> + 800917c: 4632 mov r2, r6 + 800917e: 9006 str r0, [sp, #24] + 8009180: 4621 mov r1, r4 + 8009182: 4628 mov r0, r5 + 8009184: f000 fdb4 bl 8009cf0 <__mdiff> + 8009188: 68c2 ldr r2, [r0, #12] + 800918a: 4607 mov r7, r0 + 800918c: 9b0b ldr r3, [sp, #44] ; 0x2c + 800918e: bb02 cbnz r2, 80091d2 <_dtoa_r+0xa82> + 8009190: 4601 mov r1, r0 + 8009192: 4650 mov r0, sl + 8009194: f000 fd90 bl 8009cb8 <__mcmp> + 8009198: 4602 mov r2, r0 + 800919a: 9b0b ldr r3, [sp, #44] ; 0x2c + 800919c: 4639 mov r1, r7 + 800919e: 4628 mov r0, r5 + 80091a0: e9cd 320b strd r3, r2, [sp, #44] ; 0x2c + 80091a4: f000 fb4e bl 8009844 <_Bfree> + 80091a8: 9b22 ldr r3, [sp, #136] ; 0x88 + 80091aa: 9a0c ldr r2, [sp, #48] ; 0x30 + 80091ac: 9f02 ldr r7, [sp, #8] + 80091ae: ea43 0102 orr.w r1, r3, r2 + 80091b2: 9b09 ldr r3, [sp, #36] ; 0x24 + 80091b4: 430b orrs r3, r1 + 80091b6: 9b0b ldr r3, [sp, #44] ; 0x2c + 80091b8: d10d bne.n 80091d6 <_dtoa_r+0xa86> + 80091ba: 2b39 cmp r3, #57 ; 0x39 + 80091bc: d027 beq.n 800920e <_dtoa_r+0xabe> + 80091be: 9a06 ldr r2, [sp, #24] + 80091c0: 2a00 cmp r2, #0 + 80091c2: dd01 ble.n 80091c8 <_dtoa_r+0xa78> + 80091c4: 9b04 ldr r3, [sp, #16] + 80091c6: 3331 adds r3, #49 ; 0x31 + 80091c8: f88b 3000 strb.w r3, [fp] + 80091cc: e776 b.n 80090bc <_dtoa_r+0x96c> + 80091ce: 4630 mov r0, r6 + 80091d0: e7b9 b.n 8009146 <_dtoa_r+0x9f6> + 80091d2: 2201 movs r2, #1 + 80091d4: e7e2 b.n 800919c <_dtoa_r+0xa4c> + 80091d6: 9906 ldr r1, [sp, #24] + 80091d8: 2900 cmp r1, #0 + 80091da: db04 blt.n 80091e6 <_dtoa_r+0xa96> + 80091dc: 9822 ldr r0, [sp, #136] ; 0x88 + 80091de: 4301 orrs r1, r0 + 80091e0: 9809 ldr r0, [sp, #36] ; 0x24 + 80091e2: 4301 orrs r1, r0 + 80091e4: d120 bne.n 8009228 <_dtoa_r+0xad8> + 80091e6: 2a00 cmp r2, #0 + 80091e8: ddee ble.n 80091c8 <_dtoa_r+0xa78> + 80091ea: 4651 mov r1, sl + 80091ec: 2201 movs r2, #1 + 80091ee: 4628 mov r0, r5 + 80091f0: 9302 str r3, [sp, #8] + 80091f2: f000 fcf5 bl 8009be0 <__lshift> + 80091f6: 4621 mov r1, r4 + 80091f8: 4682 mov sl, r0 + 80091fa: f000 fd5d bl 8009cb8 <__mcmp> + 80091fe: 2800 cmp r0, #0 + 8009200: 9b02 ldr r3, [sp, #8] + 8009202: dc02 bgt.n 800920a <_dtoa_r+0xaba> + 8009204: d1e0 bne.n 80091c8 <_dtoa_r+0xa78> + 8009206: 07da lsls r2, r3, #31 + 8009208: d5de bpl.n 80091c8 <_dtoa_r+0xa78> + 800920a: 2b39 cmp r3, #57 ; 0x39 + 800920c: d1da bne.n 80091c4 <_dtoa_r+0xa74> + 800920e: 2339 movs r3, #57 ; 0x39 + 8009210: f88b 3000 strb.w r3, [fp] + 8009214: 463b mov r3, r7 + 8009216: 461f mov r7, r3 + 8009218: f817 2c01 ldrb.w r2, [r7, #-1] + 800921c: 3b01 subs r3, #1 + 800921e: 2a39 cmp r2, #57 ; 0x39 + 8009220: d050 beq.n 80092c4 <_dtoa_r+0xb74> + 8009222: 3201 adds r2, #1 + 8009224: 701a strb r2, [r3, #0] + 8009226: e749 b.n 80090bc <_dtoa_r+0x96c> + 8009228: 2a00 cmp r2, #0 + 800922a: dd03 ble.n 8009234 <_dtoa_r+0xae4> + 800922c: 2b39 cmp r3, #57 ; 0x39 + 800922e: d0ee beq.n 800920e <_dtoa_r+0xabe> + 8009230: 3301 adds r3, #1 + 8009232: e7c9 b.n 80091c8 <_dtoa_r+0xa78> + 8009234: 9a02 ldr r2, [sp, #8] + 8009236: 990a ldr r1, [sp, #40] ; 0x28 + 8009238: f802 3c01 strb.w r3, [r2, #-1] + 800923c: 428a cmp r2, r1 + 800923e: d02a beq.n 8009296 <_dtoa_r+0xb46> + 8009240: 4651 mov r1, sl + 8009242: 2300 movs r3, #0 + 8009244: 220a movs r2, #10 + 8009246: 4628 mov r0, r5 + 8009248: f000 fb1e bl 8009888 <__multadd> + 800924c: 45b0 cmp r8, r6 + 800924e: 4682 mov sl, r0 + 8009250: f04f 0300 mov.w r3, #0 + 8009254: f04f 020a mov.w r2, #10 + 8009258: 4641 mov r1, r8 + 800925a: 4628 mov r0, r5 + 800925c: d107 bne.n 800926e <_dtoa_r+0xb1e> + 800925e: f000 fb13 bl 8009888 <__multadd> + 8009262: 4680 mov r8, r0 + 8009264: 4606 mov r6, r0 + 8009266: 9b02 ldr r3, [sp, #8] + 8009268: 3301 adds r3, #1 + 800926a: 9302 str r3, [sp, #8] + 800926c: e777 b.n 800915e <_dtoa_r+0xa0e> + 800926e: f000 fb0b bl 8009888 <__multadd> + 8009272: 4631 mov r1, r6 + 8009274: 4680 mov r8, r0 + 8009276: 2300 movs r3, #0 + 8009278: 220a movs r2, #10 + 800927a: 4628 mov r0, r5 + 800927c: f000 fb04 bl 8009888 <__multadd> + 8009280: 4606 mov r6, r0 + 8009282: e7f0 b.n 8009266 <_dtoa_r+0xb16> + 8009284: f1bb 0f00 cmp.w fp, #0 + 8009288: bfcc ite gt + 800928a: 465f movgt r7, fp + 800928c: 2701 movle r7, #1 + 800928e: f04f 0800 mov.w r8, #0 + 8009292: 9a08 ldr r2, [sp, #32] + 8009294: 4417 add r7, r2 + 8009296: 4651 mov r1, sl + 8009298: 2201 movs r2, #1 + 800929a: 4628 mov r0, r5 + 800929c: 9302 str r3, [sp, #8] + 800929e: f000 fc9f bl 8009be0 <__lshift> + 80092a2: 4621 mov r1, r4 + 80092a4: 4682 mov sl, r0 + 80092a6: f000 fd07 bl 8009cb8 <__mcmp> + 80092aa: 2800 cmp r0, #0 + 80092ac: dcb2 bgt.n 8009214 <_dtoa_r+0xac4> + 80092ae: d102 bne.n 80092b6 <_dtoa_r+0xb66> + 80092b0: 9b02 ldr r3, [sp, #8] + 80092b2: 07db lsls r3, r3, #31 + 80092b4: d4ae bmi.n 8009214 <_dtoa_r+0xac4> + 80092b6: 463b mov r3, r7 + 80092b8: 461f mov r7, r3 + 80092ba: f813 2d01 ldrb.w r2, [r3, #-1]! + 80092be: 2a30 cmp r2, #48 ; 0x30 + 80092c0: d0fa beq.n 80092b8 <_dtoa_r+0xb68> + 80092c2: e6fb b.n 80090bc <_dtoa_r+0x96c> + 80092c4: 9a08 ldr r2, [sp, #32] + 80092c6: 429a cmp r2, r3 + 80092c8: d1a5 bne.n 8009216 <_dtoa_r+0xac6> + 80092ca: 2331 movs r3, #49 ; 0x31 + 80092cc: f109 0901 add.w r9, r9, #1 + 80092d0: 7013 strb r3, [r2, #0] + 80092d2: e6f3 b.n 80090bc <_dtoa_r+0x96c> + 80092d4: 4b13 ldr r3, [pc, #76] ; (8009324 <_dtoa_r+0xbd4>) + 80092d6: f7ff baa7 b.w 8008828 <_dtoa_r+0xd8> + 80092da: 9b26 ldr r3, [sp, #152] ; 0x98 + 80092dc: 2b00 cmp r3, #0 + 80092de: f47f aa80 bne.w 80087e2 <_dtoa_r+0x92> + 80092e2: 4b11 ldr r3, [pc, #68] ; (8009328 <_dtoa_r+0xbd8>) + 80092e4: f7ff baa0 b.w 8008828 <_dtoa_r+0xd8> + 80092e8: f1bb 0f00 cmp.w fp, #0 + 80092ec: dc03 bgt.n 80092f6 <_dtoa_r+0xba6> + 80092ee: 9b22 ldr r3, [sp, #136] ; 0x88 + 80092f0: 2b02 cmp r3, #2 + 80092f2: f73f aecc bgt.w 800908e <_dtoa_r+0x93e> + 80092f6: 9f08 ldr r7, [sp, #32] + 80092f8: 4621 mov r1, r4 + 80092fa: 4650 mov r0, sl + 80092fc: f7ff f99a bl 8008634 + 8009300: 9a08 ldr r2, [sp, #32] + 8009302: f100 0330 add.w r3, r0, #48 ; 0x30 + 8009306: f807 3b01 strb.w r3, [r7], #1 + 800930a: 1aba subs r2, r7, r2 + 800930c: 4593 cmp fp, r2 + 800930e: ddb9 ble.n 8009284 <_dtoa_r+0xb34> + 8009310: 4651 mov r1, sl + 8009312: 2300 movs r3, #0 + 8009314: 220a movs r2, #10 + 8009316: 4628 mov r0, r5 + 8009318: f000 fab6 bl 8009888 <__multadd> + 800931c: 4682 mov sl, r0 + 800931e: e7eb b.n 80092f8 <_dtoa_r+0xba8> + 8009320: 0800b417 .word 0x0800b417 + 8009324: 0800b370 .word 0x0800b370 + 8009328: 0800b394 .word 0x0800b394 -080087bc <__retarget_lock_init_recursive>: - 80087bc: 4770 bx lr +0800932c <__sflush_r>: + 800932c: 898a ldrh r2, [r1, #12] + 800932e: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} + 8009332: 4605 mov r5, r0 + 8009334: 0710 lsls r0, r2, #28 + 8009336: 460c mov r4, r1 + 8009338: d458 bmi.n 80093ec <__sflush_r+0xc0> + 800933a: 684b ldr r3, [r1, #4] + 800933c: 2b00 cmp r3, #0 + 800933e: dc05 bgt.n 800934c <__sflush_r+0x20> + 8009340: 6c0b ldr r3, [r1, #64] ; 0x40 + 8009342: 2b00 cmp r3, #0 + 8009344: dc02 bgt.n 800934c <__sflush_r+0x20> + 8009346: 2000 movs r0, #0 + 8009348: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} + 800934c: 6ae6 ldr r6, [r4, #44] ; 0x2c + 800934e: 2e00 cmp r6, #0 + 8009350: d0f9 beq.n 8009346 <__sflush_r+0x1a> + 8009352: 2300 movs r3, #0 + 8009354: f412 5280 ands.w r2, r2, #4096 ; 0x1000 + 8009358: 682f ldr r7, [r5, #0] + 800935a: 602b str r3, [r5, #0] + 800935c: d032 beq.n 80093c4 <__sflush_r+0x98> + 800935e: 6d60 ldr r0, [r4, #84] ; 0x54 + 8009360: 89a3 ldrh r3, [r4, #12] + 8009362: 075a lsls r2, r3, #29 + 8009364: d505 bpl.n 8009372 <__sflush_r+0x46> + 8009366: 6863 ldr r3, [r4, #4] + 8009368: 1ac0 subs r0, r0, r3 + 800936a: 6b63 ldr r3, [r4, #52] ; 0x34 + 800936c: b10b cbz r3, 8009372 <__sflush_r+0x46> + 800936e: 6c23 ldr r3, [r4, #64] ; 0x40 + 8009370: 1ac0 subs r0, r0, r3 + 8009372: 2300 movs r3, #0 + 8009374: 4602 mov r2, r0 + 8009376: 6ae6 ldr r6, [r4, #44] ; 0x2c + 8009378: 4628 mov r0, r5 + 800937a: 6a21 ldr r1, [r4, #32] + 800937c: 47b0 blx r6 + 800937e: 1c43 adds r3, r0, #1 + 8009380: 89a3 ldrh r3, [r4, #12] + 8009382: d106 bne.n 8009392 <__sflush_r+0x66> + 8009384: 6829 ldr r1, [r5, #0] + 8009386: 291d cmp r1, #29 + 8009388: d82c bhi.n 80093e4 <__sflush_r+0xb8> + 800938a: 4a2a ldr r2, [pc, #168] ; (8009434 <__sflush_r+0x108>) + 800938c: 40ca lsrs r2, r1 + 800938e: 07d6 lsls r6, r2, #31 + 8009390: d528 bpl.n 80093e4 <__sflush_r+0xb8> + 8009392: 2200 movs r2, #0 + 8009394: 6062 str r2, [r4, #4] + 8009396: 6922 ldr r2, [r4, #16] + 8009398: 04d9 lsls r1, r3, #19 + 800939a: 6022 str r2, [r4, #0] + 800939c: d504 bpl.n 80093a8 <__sflush_r+0x7c> + 800939e: 1c42 adds r2, r0, #1 + 80093a0: d101 bne.n 80093a6 <__sflush_r+0x7a> + 80093a2: 682b ldr r3, [r5, #0] + 80093a4: b903 cbnz r3, 80093a8 <__sflush_r+0x7c> + 80093a6: 6560 str r0, [r4, #84] ; 0x54 + 80093a8: 6b61 ldr r1, [r4, #52] ; 0x34 + 80093aa: 602f str r7, [r5, #0] + 80093ac: 2900 cmp r1, #0 + 80093ae: d0ca beq.n 8009346 <__sflush_r+0x1a> + 80093b0: f104 0344 add.w r3, r4, #68 ; 0x44 + 80093b4: 4299 cmp r1, r3 + 80093b6: d002 beq.n 80093be <__sflush_r+0x92> + 80093b8: 4628 mov r0, r5 + 80093ba: f7fe fb45 bl 8007a48 <_free_r> + 80093be: 2000 movs r0, #0 + 80093c0: 6360 str r0, [r4, #52] ; 0x34 + 80093c2: e7c1 b.n 8009348 <__sflush_r+0x1c> + 80093c4: 6a21 ldr r1, [r4, #32] + 80093c6: 2301 movs r3, #1 + 80093c8: 4628 mov r0, r5 + 80093ca: 47b0 blx r6 + 80093cc: 1c41 adds r1, r0, #1 + 80093ce: d1c7 bne.n 8009360 <__sflush_r+0x34> + 80093d0: 682b ldr r3, [r5, #0] + 80093d2: 2b00 cmp r3, #0 + 80093d4: d0c4 beq.n 8009360 <__sflush_r+0x34> + 80093d6: 2b1d cmp r3, #29 + 80093d8: d001 beq.n 80093de <__sflush_r+0xb2> + 80093da: 2b16 cmp r3, #22 + 80093dc: d101 bne.n 80093e2 <__sflush_r+0xb6> + 80093de: 602f str r7, [r5, #0] + 80093e0: e7b1 b.n 8009346 <__sflush_r+0x1a> + 80093e2: 89a3 ldrh r3, [r4, #12] + 80093e4: f043 0340 orr.w r3, r3, #64 ; 0x40 + 80093e8: 81a3 strh r3, [r4, #12] + 80093ea: e7ad b.n 8009348 <__sflush_r+0x1c> + 80093ec: 690f ldr r7, [r1, #16] + 80093ee: 2f00 cmp r7, #0 + 80093f0: d0a9 beq.n 8009346 <__sflush_r+0x1a> + 80093f2: 0793 lsls r3, r2, #30 + 80093f4: bf18 it ne + 80093f6: 2300 movne r3, #0 + 80093f8: 680e ldr r6, [r1, #0] + 80093fa: bf08 it eq + 80093fc: 694b ldreq r3, [r1, #20] + 80093fe: eba6 0807 sub.w r8, r6, r7 + 8009402: 600f str r7, [r1, #0] + 8009404: 608b str r3, [r1, #8] + 8009406: f1b8 0f00 cmp.w r8, #0 + 800940a: dd9c ble.n 8009346 <__sflush_r+0x1a> + 800940c: 4643 mov r3, r8 + 800940e: 463a mov r2, r7 + 8009410: 4628 mov r0, r5 + 8009412: 6a21 ldr r1, [r4, #32] + 8009414: 6aa6 ldr r6, [r4, #40] ; 0x28 + 8009416: 47b0 blx r6 + 8009418: 2800 cmp r0, #0 + 800941a: dc06 bgt.n 800942a <__sflush_r+0xfe> + 800941c: 89a3 ldrh r3, [r4, #12] + 800941e: f04f 30ff mov.w r0, #4294967295 + 8009422: f043 0340 orr.w r3, r3, #64 ; 0x40 + 8009426: 81a3 strh r3, [r4, #12] + 8009428: e78e b.n 8009348 <__sflush_r+0x1c> + 800942a: 4407 add r7, r0 + 800942c: eba8 0800 sub.w r8, r8, r0 + 8009430: e7e9 b.n 8009406 <__sflush_r+0xda> + 8009432: bf00 nop + 8009434: 20400001 .word 0x20400001 -080087be <__retarget_lock_acquire_recursive>: - 80087be: 4770 bx lr +08009438 <_fflush_r>: + 8009438: b538 push {r3, r4, r5, lr} + 800943a: 690b ldr r3, [r1, #16] + 800943c: 4605 mov r5, r0 + 800943e: 460c mov r4, r1 + 8009440: b913 cbnz r3, 8009448 <_fflush_r+0x10> + 8009442: 2500 movs r5, #0 + 8009444: 4628 mov r0, r5 + 8009446: bd38 pop {r3, r4, r5, pc} + 8009448: b118 cbz r0, 8009452 <_fflush_r+0x1a> + 800944a: 6983 ldr r3, [r0, #24] + 800944c: b90b cbnz r3, 8009452 <_fflush_r+0x1a> + 800944e: f000 f887 bl 8009560 <__sinit> + 8009452: 4b14 ldr r3, [pc, #80] ; (80094a4 <_fflush_r+0x6c>) + 8009454: 429c cmp r4, r3 + 8009456: d11b bne.n 8009490 <_fflush_r+0x58> + 8009458: 686c ldr r4, [r5, #4] + 800945a: f9b4 300c ldrsh.w r3, [r4, #12] + 800945e: 2b00 cmp r3, #0 + 8009460: d0ef beq.n 8009442 <_fflush_r+0xa> + 8009462: 6e62 ldr r2, [r4, #100] ; 0x64 + 8009464: 07d0 lsls r0, r2, #31 + 8009466: d404 bmi.n 8009472 <_fflush_r+0x3a> + 8009468: 0599 lsls r1, r3, #22 + 800946a: d402 bmi.n 8009472 <_fflush_r+0x3a> + 800946c: 6da0 ldr r0, [r4, #88] ; 0x58 + 800946e: f000 f91a bl 80096a6 <__retarget_lock_acquire_recursive> + 8009472: 4628 mov r0, r5 + 8009474: 4621 mov r1, r4 + 8009476: f7ff ff59 bl 800932c <__sflush_r> + 800947a: 6e63 ldr r3, [r4, #100] ; 0x64 + 800947c: 4605 mov r5, r0 + 800947e: 07da lsls r2, r3, #31 + 8009480: d4e0 bmi.n 8009444 <_fflush_r+0xc> + 8009482: 89a3 ldrh r3, [r4, #12] + 8009484: 059b lsls r3, r3, #22 + 8009486: d4dd bmi.n 8009444 <_fflush_r+0xc> + 8009488: 6da0 ldr r0, [r4, #88] ; 0x58 + 800948a: f000 f90d bl 80096a8 <__retarget_lock_release_recursive> + 800948e: e7d9 b.n 8009444 <_fflush_r+0xc> + 8009490: 4b05 ldr r3, [pc, #20] ; (80094a8 <_fflush_r+0x70>) + 8009492: 429c cmp r4, r3 + 8009494: d101 bne.n 800949a <_fflush_r+0x62> + 8009496: 68ac ldr r4, [r5, #8] + 8009498: e7df b.n 800945a <_fflush_r+0x22> + 800949a: 4b04 ldr r3, [pc, #16] ; (80094ac <_fflush_r+0x74>) + 800949c: 429c cmp r4, r3 + 800949e: bf08 it eq + 80094a0: 68ec ldreq r4, [r5, #12] + 80094a2: e7da b.n 800945a <_fflush_r+0x22> + 80094a4: 0800b448 .word 0x0800b448 + 80094a8: 0800b468 .word 0x0800b468 + 80094ac: 0800b428 .word 0x0800b428 -080087c0 <__retarget_lock_release_recursive>: - 80087c0: 4770 bx lr +080094b0 : + 80094b0: 2300 movs r3, #0 + 80094b2: b510 push {r4, lr} + 80094b4: 4604 mov r4, r0 + 80094b6: e9c0 3300 strd r3, r3, [r0] + 80094ba: e9c0 3304 strd r3, r3, [r0, #16] + 80094be: 6083 str r3, [r0, #8] + 80094c0: 8181 strh r1, [r0, #12] + 80094c2: 6643 str r3, [r0, #100] ; 0x64 + 80094c4: 81c2 strh r2, [r0, #14] + 80094c6: 6183 str r3, [r0, #24] + 80094c8: 4619 mov r1, r3 + 80094ca: 2208 movs r2, #8 + 80094cc: 305c adds r0, #92 ; 0x5c + 80094ce: f7fe fab3 bl 8007a38 + 80094d2: 4b05 ldr r3, [pc, #20] ; (80094e8 ) + 80094d4: 6224 str r4, [r4, #32] + 80094d6: 6263 str r3, [r4, #36] ; 0x24 + 80094d8: 4b04 ldr r3, [pc, #16] ; (80094ec ) + 80094da: 62a3 str r3, [r4, #40] ; 0x28 + 80094dc: 4b04 ldr r3, [pc, #16] ; (80094f0 ) + 80094de: 62e3 str r3, [r4, #44] ; 0x2c + 80094e0: 4b04 ldr r3, [pc, #16] ; (80094f4 ) + 80094e2: 6323 str r3, [r4, #48] ; 0x30 + 80094e4: bd10 pop {r4, pc} + 80094e6: bf00 nop + 80094e8: 0800a44d .word 0x0800a44d + 80094ec: 0800a46f .word 0x0800a46f + 80094f0: 0800a4a7 .word 0x0800a4a7 + 80094f4: 0800a4cb .word 0x0800a4cb -080087c2 <__swhatbuf_r>: - 80087c2: b570 push {r4, r5, r6, lr} - 80087c4: 460e mov r6, r1 - 80087c6: f9b1 100e ldrsh.w r1, [r1, #14] - 80087ca: 4614 mov r4, r2 - 80087cc: 2900 cmp r1, #0 - 80087ce: 461d mov r5, r3 - 80087d0: b096 sub sp, #88 ; 0x58 - 80087d2: da07 bge.n 80087e4 <__swhatbuf_r+0x22> - 80087d4: 2300 movs r3, #0 - 80087d6: 602b str r3, [r5, #0] - 80087d8: 89b3 ldrh r3, [r6, #12] - 80087da: 061a lsls r2, r3, #24 - 80087dc: d410 bmi.n 8008800 <__swhatbuf_r+0x3e> - 80087de: f44f 6380 mov.w r3, #1024 ; 0x400 - 80087e2: e00e b.n 8008802 <__swhatbuf_r+0x40> - 80087e4: 466a mov r2, sp - 80087e6: f000 ff53 bl 8009690 <_fstat_r> - 80087ea: 2800 cmp r0, #0 - 80087ec: dbf2 blt.n 80087d4 <__swhatbuf_r+0x12> - 80087ee: 9a01 ldr r2, [sp, #4] - 80087f0: f402 4270 and.w r2, r2, #61440 ; 0xf000 - 80087f4: f5a2 5300 sub.w r3, r2, #8192 ; 0x2000 - 80087f8: 425a negs r2, r3 - 80087fa: 415a adcs r2, r3 - 80087fc: 602a str r2, [r5, #0] - 80087fe: e7ee b.n 80087de <__swhatbuf_r+0x1c> - 8008800: 2340 movs r3, #64 ; 0x40 - 8008802: 2000 movs r0, #0 - 8008804: 6023 str r3, [r4, #0] - 8008806: b016 add sp, #88 ; 0x58 - 8008808: bd70 pop {r4, r5, r6, pc} - ... +080094f8 <_cleanup_r>: + 80094f8: 4901 ldr r1, [pc, #4] ; (8009500 <_cleanup_r+0x8>) + 80094fa: f000 b8af b.w 800965c <_fwalk_reent> + 80094fe: bf00 nop + 8009500: 08009439 .word 0x08009439 -0800880c <__smakebuf_r>: - 800880c: 898b ldrh r3, [r1, #12] - 800880e: b573 push {r0, r1, r4, r5, r6, lr} - 8008810: 079d lsls r5, r3, #30 - 8008812: 4606 mov r6, r0 - 8008814: 460c mov r4, r1 - 8008816: d507 bpl.n 8008828 <__smakebuf_r+0x1c> - 8008818: f104 0347 add.w r3, r4, #71 ; 0x47 - 800881c: 6023 str r3, [r4, #0] - 800881e: 6123 str r3, [r4, #16] - 8008820: 2301 movs r3, #1 - 8008822: 6163 str r3, [r4, #20] - 8008824: b002 add sp, #8 - 8008826: bd70 pop {r4, r5, r6, pc} - 8008828: 466a mov r2, sp - 800882a: ab01 add r3, sp, #4 - 800882c: f7ff ffc9 bl 80087c2 <__swhatbuf_r> - 8008830: 9900 ldr r1, [sp, #0] - 8008832: 4605 mov r5, r0 - 8008834: 4630 mov r0, r6 - 8008836: f7fe f9dd bl 8006bf4 <_malloc_r> - 800883a: b948 cbnz r0, 8008850 <__smakebuf_r+0x44> - 800883c: f9b4 300c ldrsh.w r3, [r4, #12] - 8008840: 059a lsls r2, r3, #22 - 8008842: d4ef bmi.n 8008824 <__smakebuf_r+0x18> - 8008844: f023 0303 bic.w r3, r3, #3 - 8008848: f043 0302 orr.w r3, r3, #2 - 800884c: 81a3 strh r3, [r4, #12] - 800884e: e7e3 b.n 8008818 <__smakebuf_r+0xc> - 8008850: 4b0d ldr r3, [pc, #52] ; (8008888 <__smakebuf_r+0x7c>) - 8008852: 62b3 str r3, [r6, #40] ; 0x28 - 8008854: 89a3 ldrh r3, [r4, #12] - 8008856: 6020 str r0, [r4, #0] - 8008858: f043 0380 orr.w r3, r3, #128 ; 0x80 - 800885c: 81a3 strh r3, [r4, #12] - 800885e: 9b00 ldr r3, [sp, #0] - 8008860: 6120 str r0, [r4, #16] - 8008862: 6163 str r3, [r4, #20] - 8008864: 9b01 ldr r3, [sp, #4] - 8008866: b15b cbz r3, 8008880 <__smakebuf_r+0x74> - 8008868: 4630 mov r0, r6 - 800886a: f9b4 100e ldrsh.w r1, [r4, #14] - 800886e: f000 ff21 bl 80096b4 <_isatty_r> - 8008872: b128 cbz r0, 8008880 <__smakebuf_r+0x74> - 8008874: 89a3 ldrh r3, [r4, #12] - 8008876: f023 0303 bic.w r3, r3, #3 - 800887a: f043 0301 orr.w r3, r3, #1 - 800887e: 81a3 strh r3, [r4, #12] - 8008880: 89a0 ldrh r0, [r4, #12] - 8008882: 4305 orrs r5, r0 - 8008884: 81a5 strh r5, [r4, #12] - 8008886: e7cd b.n 8008824 <__smakebuf_r+0x18> - 8008888: 08008611 .word 0x08008611 +08009504 <__sfmoreglue>: + 8009504: b570 push {r4, r5, r6, lr} + 8009506: 2568 movs r5, #104 ; 0x68 + 8009508: 1e4a subs r2, r1, #1 + 800950a: 4355 muls r5, r2 + 800950c: 460e mov r6, r1 + 800950e: f105 0174 add.w r1, r5, #116 ; 0x74 + 8009512: f7fe fae5 bl 8007ae0 <_malloc_r> + 8009516: 4604 mov r4, r0 + 8009518: b140 cbz r0, 800952c <__sfmoreglue+0x28> + 800951a: 2100 movs r1, #0 + 800951c: e9c0 1600 strd r1, r6, [r0] + 8009520: 300c adds r0, #12 + 8009522: 60a0 str r0, [r4, #8] + 8009524: f105 0268 add.w r2, r5, #104 ; 0x68 + 8009528: f7fe fa86 bl 8007a38 + 800952c: 4620 mov r0, r4 + 800952e: bd70 pop {r4, r5, r6, pc} -0800888c : - 800888c: 4603 mov r3, r0 - 800888e: b510 push {r4, lr} - 8008890: b2c9 uxtb r1, r1 - 8008892: 4402 add r2, r0 - 8008894: 4293 cmp r3, r2 - 8008896: 4618 mov r0, r3 - 8008898: d101 bne.n 800889e - 800889a: 2000 movs r0, #0 - 800889c: e003 b.n 80088a6 - 800889e: 7804 ldrb r4, [r0, #0] - 80088a0: 3301 adds r3, #1 - 80088a2: 428c cmp r4, r1 - 80088a4: d1f6 bne.n 8008894 - 80088a6: bd10 pop {r4, pc} +08009530 <__sfp_lock_acquire>: + 8009530: 4801 ldr r0, [pc, #4] ; (8009538 <__sfp_lock_acquire+0x8>) + 8009532: f000 b8b8 b.w 80096a6 <__retarget_lock_acquire_recursive> + 8009536: bf00 nop + 8009538: 200025de .word 0x200025de -080088a8 : - 80088a8: 440a add r2, r1 - 80088aa: 4291 cmp r1, r2 - 80088ac: f100 33ff add.w r3, r0, #4294967295 - 80088b0: d100 bne.n 80088b4 - 80088b2: 4770 bx lr - 80088b4: b510 push {r4, lr} - 80088b6: f811 4b01 ldrb.w r4, [r1], #1 - 80088ba: 4291 cmp r1, r2 - 80088bc: f803 4f01 strb.w r4, [r3, #1]! - 80088c0: d1f9 bne.n 80088b6 - 80088c2: bd10 pop {r4, pc} - -080088c4 <__malloc_lock>: - 80088c4: 4801 ldr r0, [pc, #4] ; (80088cc <__malloc_lock+0x8>) - 80088c6: f7ff bf7a b.w 80087be <__retarget_lock_acquire_recursive> - 80088ca: bf00 nop - 80088cc: 20002586 .word 0x20002586 - -080088d0 <__malloc_unlock>: - 80088d0: 4801 ldr r0, [pc, #4] ; (80088d8 <__malloc_unlock+0x8>) - 80088d2: f7ff bf75 b.w 80087c0 <__retarget_lock_release_recursive> - 80088d6: bf00 nop - 80088d8: 20002586 .word 0x20002586 - -080088dc <_Balloc>: - 80088dc: b570 push {r4, r5, r6, lr} - 80088de: 6a46 ldr r6, [r0, #36] ; 0x24 - 80088e0: 4604 mov r4, r0 - 80088e2: 460d mov r5, r1 - 80088e4: b976 cbnz r6, 8008904 <_Balloc+0x28> - 80088e6: 2010 movs r0, #16 - 80088e8: f7fe f920 bl 8006b2c - 80088ec: 4602 mov r2, r0 - 80088ee: 6260 str r0, [r4, #36] ; 0x24 - 80088f0: b920 cbnz r0, 80088fc <_Balloc+0x20> - 80088f2: 2166 movs r1, #102 ; 0x66 - 80088f4: 4b17 ldr r3, [pc, #92] ; (8008954 <_Balloc+0x78>) - 80088f6: 4818 ldr r0, [pc, #96] ; (8008958 <_Balloc+0x7c>) - 80088f8: f000 fe8a bl 8009610 <__assert_func> - 80088fc: e9c0 6601 strd r6, r6, [r0, #4] - 8008900: 6006 str r6, [r0, #0] - 8008902: 60c6 str r6, [r0, #12] - 8008904: 6a66 ldr r6, [r4, #36] ; 0x24 - 8008906: 68f3 ldr r3, [r6, #12] - 8008908: b183 cbz r3, 800892c <_Balloc+0x50> - 800890a: 6a63 ldr r3, [r4, #36] ; 0x24 - 800890c: 68db ldr r3, [r3, #12] - 800890e: f853 0025 ldr.w r0, [r3, r5, lsl #2] - 8008912: b9b8 cbnz r0, 8008944 <_Balloc+0x68> - 8008914: 2101 movs r1, #1 - 8008916: fa01 f605 lsl.w r6, r1, r5 - 800891a: 1d72 adds r2, r6, #5 - 800891c: 4620 mov r0, r4 - 800891e: 0092 lsls r2, r2, #2 - 8008920: f000 fb5e bl 8008fe0 <_calloc_r> - 8008924: b160 cbz r0, 8008940 <_Balloc+0x64> - 8008926: e9c0 5601 strd r5, r6, [r0, #4] - 800892a: e00e b.n 800894a <_Balloc+0x6e> - 800892c: 2221 movs r2, #33 ; 0x21 - 800892e: 2104 movs r1, #4 - 8008930: 4620 mov r0, r4 - 8008932: f000 fb55 bl 8008fe0 <_calloc_r> - 8008936: 6a63 ldr r3, [r4, #36] ; 0x24 - 8008938: 60f0 str r0, [r6, #12] - 800893a: 68db ldr r3, [r3, #12] - 800893c: 2b00 cmp r3, #0 - 800893e: d1e4 bne.n 800890a <_Balloc+0x2e> - 8008940: 2000 movs r0, #0 - 8008942: bd70 pop {r4, r5, r6, pc} - 8008944: 6802 ldr r2, [r0, #0] - 8008946: f843 2025 str.w r2, [r3, r5, lsl #2] - 800894a: 2300 movs r3, #0 - 800894c: e9c0 3303 strd r3, r3, [r0, #12] - 8008950: e7f7 b.n 8008942 <_Balloc+0x66> - 8008952: bf00 nop - 8008954: 0800a499 .word 0x0800a499 - 8008958: 0800a580 .word 0x0800a580 - -0800895c <_Bfree>: - 800895c: b570 push {r4, r5, r6, lr} - 800895e: 6a46 ldr r6, [r0, #36] ; 0x24 - 8008960: 4605 mov r5, r0 - 8008962: 460c mov r4, r1 - 8008964: b976 cbnz r6, 8008984 <_Bfree+0x28> - 8008966: 2010 movs r0, #16 - 8008968: f7fe f8e0 bl 8006b2c - 800896c: 4602 mov r2, r0 - 800896e: 6268 str r0, [r5, #36] ; 0x24 - 8008970: b920 cbnz r0, 800897c <_Bfree+0x20> - 8008972: 218a movs r1, #138 ; 0x8a - 8008974: 4b08 ldr r3, [pc, #32] ; (8008998 <_Bfree+0x3c>) - 8008976: 4809 ldr r0, [pc, #36] ; (800899c <_Bfree+0x40>) - 8008978: f000 fe4a bl 8009610 <__assert_func> - 800897c: e9c0 6601 strd r6, r6, [r0, #4] - 8008980: 6006 str r6, [r0, #0] - 8008982: 60c6 str r6, [r0, #12] - 8008984: b13c cbz r4, 8008996 <_Bfree+0x3a> - 8008986: 6a6b ldr r3, [r5, #36] ; 0x24 - 8008988: 6862 ldr r2, [r4, #4] - 800898a: 68db ldr r3, [r3, #12] - 800898c: f853 1022 ldr.w r1, [r3, r2, lsl #2] - 8008990: 6021 str r1, [r4, #0] - 8008992: f843 4022 str.w r4, [r3, r2, lsl #2] - 8008996: bd70 pop {r4, r5, r6, pc} - 8008998: 0800a499 .word 0x0800a499 - 800899c: 0800a580 .word 0x0800a580 - -080089a0 <__multadd>: - 80089a0: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 80089a4: 4698 mov r8, r3 - 80089a6: 460c mov r4, r1 - 80089a8: 2300 movs r3, #0 - 80089aa: 690e ldr r6, [r1, #16] - 80089ac: 4607 mov r7, r0 - 80089ae: f101 0014 add.w r0, r1, #20 - 80089b2: 6805 ldr r5, [r0, #0] - 80089b4: 3301 adds r3, #1 - 80089b6: b2a9 uxth r1, r5 - 80089b8: fb02 8101 mla r1, r2, r1, r8 - 80089bc: 0c2d lsrs r5, r5, #16 - 80089be: ea4f 4c11 mov.w ip, r1, lsr #16 - 80089c2: fb02 c505 mla r5, r2, r5, ip - 80089c6: b289 uxth r1, r1 - 80089c8: eb01 4105 add.w r1, r1, r5, lsl #16 - 80089cc: 429e cmp r6, r3 - 80089ce: ea4f 4815 mov.w r8, r5, lsr #16 - 80089d2: f840 1b04 str.w r1, [r0], #4 - 80089d6: dcec bgt.n 80089b2 <__multadd+0x12> - 80089d8: f1b8 0f00 cmp.w r8, #0 - 80089dc: d022 beq.n 8008a24 <__multadd+0x84> - 80089de: 68a3 ldr r3, [r4, #8] - 80089e0: 42b3 cmp r3, r6 - 80089e2: dc19 bgt.n 8008a18 <__multadd+0x78> - 80089e4: 6861 ldr r1, [r4, #4] - 80089e6: 4638 mov r0, r7 - 80089e8: 3101 adds r1, #1 - 80089ea: f7ff ff77 bl 80088dc <_Balloc> - 80089ee: 4605 mov r5, r0 - 80089f0: b928 cbnz r0, 80089fe <__multadd+0x5e> - 80089f2: 4602 mov r2, r0 - 80089f4: 21b5 movs r1, #181 ; 0xb5 - 80089f6: 4b0d ldr r3, [pc, #52] ; (8008a2c <__multadd+0x8c>) - 80089f8: 480d ldr r0, [pc, #52] ; (8008a30 <__multadd+0x90>) - 80089fa: f000 fe09 bl 8009610 <__assert_func> - 80089fe: 6922 ldr r2, [r4, #16] - 8008a00: f104 010c add.w r1, r4, #12 - 8008a04: 3202 adds r2, #2 - 8008a06: 0092 lsls r2, r2, #2 - 8008a08: 300c adds r0, #12 - 8008a0a: f7ff ff4d bl 80088a8 - 8008a0e: 4621 mov r1, r4 - 8008a10: 4638 mov r0, r7 - 8008a12: f7ff ffa3 bl 800895c <_Bfree> - 8008a16: 462c mov r4, r5 - 8008a18: eb04 0386 add.w r3, r4, r6, lsl #2 - 8008a1c: 3601 adds r6, #1 - 8008a1e: f8c3 8014 str.w r8, [r3, #20] - 8008a22: 6126 str r6, [r4, #16] - 8008a24: 4620 mov r0, r4 - 8008a26: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8008a2a: bf00 nop - 8008a2c: 0800a50f .word 0x0800a50f - 8008a30: 0800a580 .word 0x0800a580 - -08008a34 <__hi0bits>: - 8008a34: 0c02 lsrs r2, r0, #16 - 8008a36: 0412 lsls r2, r2, #16 - 8008a38: 4603 mov r3, r0 - 8008a3a: b9ca cbnz r2, 8008a70 <__hi0bits+0x3c> - 8008a3c: 0403 lsls r3, r0, #16 - 8008a3e: 2010 movs r0, #16 - 8008a40: f013 4f7f tst.w r3, #4278190080 ; 0xff000000 - 8008a44: bf04 itt eq - 8008a46: 021b lsleq r3, r3, #8 - 8008a48: 3008 addeq r0, #8 - 8008a4a: f013 4f70 tst.w r3, #4026531840 ; 0xf0000000 - 8008a4e: bf04 itt eq - 8008a50: 011b lsleq r3, r3, #4 - 8008a52: 3004 addeq r0, #4 - 8008a54: f013 4f40 tst.w r3, #3221225472 ; 0xc0000000 - 8008a58: bf04 itt eq - 8008a5a: 009b lsleq r3, r3, #2 - 8008a5c: 3002 addeq r0, #2 - 8008a5e: 2b00 cmp r3, #0 - 8008a60: db05 blt.n 8008a6e <__hi0bits+0x3a> - 8008a62: f013 4f80 tst.w r3, #1073741824 ; 0x40000000 - 8008a66: f100 0001 add.w r0, r0, #1 - 8008a6a: bf08 it eq - 8008a6c: 2020 moveq r0, #32 - 8008a6e: 4770 bx lr - 8008a70: 2000 movs r0, #0 - 8008a72: e7e5 b.n 8008a40 <__hi0bits+0xc> - -08008a74 <__lo0bits>: - 8008a74: 6803 ldr r3, [r0, #0] - 8008a76: 4602 mov r2, r0 - 8008a78: f013 0007 ands.w r0, r3, #7 - 8008a7c: d00b beq.n 8008a96 <__lo0bits+0x22> - 8008a7e: 07d9 lsls r1, r3, #31 - 8008a80: d422 bmi.n 8008ac8 <__lo0bits+0x54> - 8008a82: 0798 lsls r0, r3, #30 - 8008a84: bf49 itett mi - 8008a86: 085b lsrmi r3, r3, #1 - 8008a88: 089b lsrpl r3, r3, #2 - 8008a8a: 2001 movmi r0, #1 - 8008a8c: 6013 strmi r3, [r2, #0] - 8008a8e: bf5c itt pl - 8008a90: 2002 movpl r0, #2 - 8008a92: 6013 strpl r3, [r2, #0] - 8008a94: 4770 bx lr - 8008a96: b299 uxth r1, r3 - 8008a98: b909 cbnz r1, 8008a9e <__lo0bits+0x2a> - 8008a9a: 2010 movs r0, #16 - 8008a9c: 0c1b lsrs r3, r3, #16 - 8008a9e: f013 0fff tst.w r3, #255 ; 0xff - 8008aa2: bf04 itt eq - 8008aa4: 0a1b lsreq r3, r3, #8 - 8008aa6: 3008 addeq r0, #8 - 8008aa8: 0719 lsls r1, r3, #28 - 8008aaa: bf04 itt eq - 8008aac: 091b lsreq r3, r3, #4 - 8008aae: 3004 addeq r0, #4 - 8008ab0: 0799 lsls r1, r3, #30 - 8008ab2: bf04 itt eq - 8008ab4: 089b lsreq r3, r3, #2 - 8008ab6: 3002 addeq r0, #2 - 8008ab8: 07d9 lsls r1, r3, #31 - 8008aba: d403 bmi.n 8008ac4 <__lo0bits+0x50> - 8008abc: 085b lsrs r3, r3, #1 - 8008abe: f100 0001 add.w r0, r0, #1 - 8008ac2: d003 beq.n 8008acc <__lo0bits+0x58> - 8008ac4: 6013 str r3, [r2, #0] - 8008ac6: 4770 bx lr - 8008ac8: 2000 movs r0, #0 - 8008aca: 4770 bx lr - 8008acc: 2020 movs r0, #32 - 8008ace: 4770 bx lr - -08008ad0 <__i2b>: - 8008ad0: b510 push {r4, lr} - 8008ad2: 460c mov r4, r1 - 8008ad4: 2101 movs r1, #1 - 8008ad6: f7ff ff01 bl 80088dc <_Balloc> - 8008ada: 4602 mov r2, r0 - 8008adc: b928 cbnz r0, 8008aea <__i2b+0x1a> - 8008ade: f44f 71a0 mov.w r1, #320 ; 0x140 - 8008ae2: 4b04 ldr r3, [pc, #16] ; (8008af4 <__i2b+0x24>) - 8008ae4: 4804 ldr r0, [pc, #16] ; (8008af8 <__i2b+0x28>) - 8008ae6: f000 fd93 bl 8009610 <__assert_func> - 8008aea: 2301 movs r3, #1 - 8008aec: 6144 str r4, [r0, #20] - 8008aee: 6103 str r3, [r0, #16] - 8008af0: bd10 pop {r4, pc} - 8008af2: bf00 nop - 8008af4: 0800a50f .word 0x0800a50f - 8008af8: 0800a580 .word 0x0800a580 - -08008afc <__multiply>: - 8008afc: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8008b00: 4614 mov r4, r2 - 8008b02: 690a ldr r2, [r1, #16] - 8008b04: 6923 ldr r3, [r4, #16] - 8008b06: 460d mov r5, r1 - 8008b08: 429a cmp r2, r3 - 8008b0a: bfbe ittt lt - 8008b0c: 460b movlt r3, r1 - 8008b0e: 4625 movlt r5, r4 - 8008b10: 461c movlt r4, r3 - 8008b12: f8d5 a010 ldr.w sl, [r5, #16] - 8008b16: f8d4 9010 ldr.w r9, [r4, #16] - 8008b1a: 68ab ldr r3, [r5, #8] - 8008b1c: 6869 ldr r1, [r5, #4] - 8008b1e: eb0a 0709 add.w r7, sl, r9 - 8008b22: 42bb cmp r3, r7 - 8008b24: b085 sub sp, #20 - 8008b26: bfb8 it lt - 8008b28: 3101 addlt r1, #1 - 8008b2a: f7ff fed7 bl 80088dc <_Balloc> - 8008b2e: b930 cbnz r0, 8008b3e <__multiply+0x42> - 8008b30: 4602 mov r2, r0 - 8008b32: f240 115d movw r1, #349 ; 0x15d - 8008b36: 4b41 ldr r3, [pc, #260] ; (8008c3c <__multiply+0x140>) - 8008b38: 4841 ldr r0, [pc, #260] ; (8008c40 <__multiply+0x144>) - 8008b3a: f000 fd69 bl 8009610 <__assert_func> - 8008b3e: f100 0614 add.w r6, r0, #20 - 8008b42: 4633 mov r3, r6 - 8008b44: 2200 movs r2, #0 - 8008b46: eb06 0887 add.w r8, r6, r7, lsl #2 - 8008b4a: 4543 cmp r3, r8 - 8008b4c: d31e bcc.n 8008b8c <__multiply+0x90> - 8008b4e: f105 0c14 add.w ip, r5, #20 - 8008b52: f104 0314 add.w r3, r4, #20 - 8008b56: eb0c 0c8a add.w ip, ip, sl, lsl #2 - 8008b5a: eb03 0289 add.w r2, r3, r9, lsl #2 - 8008b5e: 9202 str r2, [sp, #8] - 8008b60: ebac 0205 sub.w r2, ip, r5 - 8008b64: 3a15 subs r2, #21 - 8008b66: f022 0203 bic.w r2, r2, #3 - 8008b6a: 3204 adds r2, #4 - 8008b6c: f105 0115 add.w r1, r5, #21 - 8008b70: 458c cmp ip, r1 - 8008b72: bf38 it cc - 8008b74: 2204 movcc r2, #4 - 8008b76: 9201 str r2, [sp, #4] - 8008b78: 9a02 ldr r2, [sp, #8] - 8008b7a: 9303 str r3, [sp, #12] - 8008b7c: 429a cmp r2, r3 - 8008b7e: d808 bhi.n 8008b92 <__multiply+0x96> - 8008b80: 2f00 cmp r7, #0 - 8008b82: dc55 bgt.n 8008c30 <__multiply+0x134> - 8008b84: 6107 str r7, [r0, #16] - 8008b86: b005 add sp, #20 - 8008b88: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8008b8c: f843 2b04 str.w r2, [r3], #4 - 8008b90: e7db b.n 8008b4a <__multiply+0x4e> - 8008b92: f8b3 a000 ldrh.w sl, [r3] - 8008b96: f1ba 0f00 cmp.w sl, #0 - 8008b9a: d020 beq.n 8008bde <__multiply+0xe2> - 8008b9c: 46b1 mov r9, r6 - 8008b9e: 2200 movs r2, #0 - 8008ba0: f105 0e14 add.w lr, r5, #20 - 8008ba4: f85e 4b04 ldr.w r4, [lr], #4 - 8008ba8: f8d9 b000 ldr.w fp, [r9] - 8008bac: b2a1 uxth r1, r4 - 8008bae: fa1f fb8b uxth.w fp, fp - 8008bb2: fb0a b101 mla r1, sl, r1, fp - 8008bb6: 4411 add r1, r2 - 8008bb8: f8d9 2000 ldr.w r2, [r9] - 8008bbc: 0c24 lsrs r4, r4, #16 - 8008bbe: 0c12 lsrs r2, r2, #16 - 8008bc0: fb0a 2404 mla r4, sl, r4, r2 - 8008bc4: eb04 4411 add.w r4, r4, r1, lsr #16 - 8008bc8: b289 uxth r1, r1 - 8008bca: ea41 4104 orr.w r1, r1, r4, lsl #16 - 8008bce: 45f4 cmp ip, lr - 8008bd0: ea4f 4214 mov.w r2, r4, lsr #16 - 8008bd4: f849 1b04 str.w r1, [r9], #4 - 8008bd8: d8e4 bhi.n 8008ba4 <__multiply+0xa8> - 8008bda: 9901 ldr r1, [sp, #4] - 8008bdc: 5072 str r2, [r6, r1] - 8008bde: 9a03 ldr r2, [sp, #12] - 8008be0: 3304 adds r3, #4 - 8008be2: f8b2 9002 ldrh.w r9, [r2, #2] - 8008be6: f1b9 0f00 cmp.w r9, #0 - 8008bea: d01f beq.n 8008c2c <__multiply+0x130> - 8008bec: 46b6 mov lr, r6 - 8008bee: f04f 0a00 mov.w sl, #0 - 8008bf2: 6834 ldr r4, [r6, #0] - 8008bf4: f105 0114 add.w r1, r5, #20 - 8008bf8: 880a ldrh r2, [r1, #0] - 8008bfa: f8be b002 ldrh.w fp, [lr, #2] - 8008bfe: b2a4 uxth r4, r4 - 8008c00: fb09 b202 mla r2, r9, r2, fp - 8008c04: 4492 add sl, r2 - 8008c06: ea44 440a orr.w r4, r4, sl, lsl #16 - 8008c0a: f84e 4b04 str.w r4, [lr], #4 - 8008c0e: f851 4b04 ldr.w r4, [r1], #4 - 8008c12: f8be 2000 ldrh.w r2, [lr] - 8008c16: 0c24 lsrs r4, r4, #16 - 8008c18: fb09 2404 mla r4, r9, r4, r2 - 8008c1c: 458c cmp ip, r1 - 8008c1e: eb04 441a add.w r4, r4, sl, lsr #16 - 8008c22: ea4f 4a14 mov.w sl, r4, lsr #16 - 8008c26: d8e7 bhi.n 8008bf8 <__multiply+0xfc> - 8008c28: 9a01 ldr r2, [sp, #4] - 8008c2a: 50b4 str r4, [r6, r2] - 8008c2c: 3604 adds r6, #4 - 8008c2e: e7a3 b.n 8008b78 <__multiply+0x7c> - 8008c30: f858 3d04 ldr.w r3, [r8, #-4]! - 8008c34: 2b00 cmp r3, #0 - 8008c36: d1a5 bne.n 8008b84 <__multiply+0x88> - 8008c38: 3f01 subs r7, #1 - 8008c3a: e7a1 b.n 8008b80 <__multiply+0x84> - 8008c3c: 0800a50f .word 0x0800a50f - 8008c40: 0800a580 .word 0x0800a580 - -08008c44 <__pow5mult>: - 8008c44: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 8008c48: 4615 mov r5, r2 - 8008c4a: f012 0203 ands.w r2, r2, #3 - 8008c4e: 4606 mov r6, r0 - 8008c50: 460f mov r7, r1 - 8008c52: d007 beq.n 8008c64 <__pow5mult+0x20> - 8008c54: 4c25 ldr r4, [pc, #148] ; (8008cec <__pow5mult+0xa8>) - 8008c56: 3a01 subs r2, #1 - 8008c58: 2300 movs r3, #0 - 8008c5a: f854 2022 ldr.w r2, [r4, r2, lsl #2] - 8008c5e: f7ff fe9f bl 80089a0 <__multadd> - 8008c62: 4607 mov r7, r0 - 8008c64: 10ad asrs r5, r5, #2 - 8008c66: d03d beq.n 8008ce4 <__pow5mult+0xa0> - 8008c68: 6a74 ldr r4, [r6, #36] ; 0x24 - 8008c6a: b97c cbnz r4, 8008c8c <__pow5mult+0x48> - 8008c6c: 2010 movs r0, #16 - 8008c6e: f7fd ff5d bl 8006b2c - 8008c72: 4602 mov r2, r0 - 8008c74: 6270 str r0, [r6, #36] ; 0x24 - 8008c76: b928 cbnz r0, 8008c84 <__pow5mult+0x40> - 8008c78: f44f 71d7 mov.w r1, #430 ; 0x1ae - 8008c7c: 4b1c ldr r3, [pc, #112] ; (8008cf0 <__pow5mult+0xac>) - 8008c7e: 481d ldr r0, [pc, #116] ; (8008cf4 <__pow5mult+0xb0>) - 8008c80: f000 fcc6 bl 8009610 <__assert_func> - 8008c84: e9c0 4401 strd r4, r4, [r0, #4] - 8008c88: 6004 str r4, [r0, #0] - 8008c8a: 60c4 str r4, [r0, #12] - 8008c8c: f8d6 8024 ldr.w r8, [r6, #36] ; 0x24 - 8008c90: f8d8 4008 ldr.w r4, [r8, #8] - 8008c94: b94c cbnz r4, 8008caa <__pow5mult+0x66> - 8008c96: f240 2171 movw r1, #625 ; 0x271 - 8008c9a: 4630 mov r0, r6 - 8008c9c: f7ff ff18 bl 8008ad0 <__i2b> - 8008ca0: 2300 movs r3, #0 - 8008ca2: 4604 mov r4, r0 - 8008ca4: f8c8 0008 str.w r0, [r8, #8] - 8008ca8: 6003 str r3, [r0, #0] - 8008caa: f04f 0900 mov.w r9, #0 - 8008cae: 07eb lsls r3, r5, #31 - 8008cb0: d50a bpl.n 8008cc8 <__pow5mult+0x84> - 8008cb2: 4639 mov r1, r7 - 8008cb4: 4622 mov r2, r4 - 8008cb6: 4630 mov r0, r6 - 8008cb8: f7ff ff20 bl 8008afc <__multiply> - 8008cbc: 4680 mov r8, r0 - 8008cbe: 4639 mov r1, r7 - 8008cc0: 4630 mov r0, r6 - 8008cc2: f7ff fe4b bl 800895c <_Bfree> - 8008cc6: 4647 mov r7, r8 - 8008cc8: 106d asrs r5, r5, #1 - 8008cca: d00b beq.n 8008ce4 <__pow5mult+0xa0> - 8008ccc: 6820 ldr r0, [r4, #0] - 8008cce: b938 cbnz r0, 8008ce0 <__pow5mult+0x9c> - 8008cd0: 4622 mov r2, r4 - 8008cd2: 4621 mov r1, r4 - 8008cd4: 4630 mov r0, r6 - 8008cd6: f7ff ff11 bl 8008afc <__multiply> - 8008cda: 6020 str r0, [r4, #0] - 8008cdc: f8c0 9000 str.w r9, [r0] - 8008ce0: 4604 mov r4, r0 - 8008ce2: e7e4 b.n 8008cae <__pow5mult+0x6a> - 8008ce4: 4638 mov r0, r7 - 8008ce6: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 8008cea: bf00 nop - 8008cec: 0800a6d0 .word 0x0800a6d0 - 8008cf0: 0800a499 .word 0x0800a499 - 8008cf4: 0800a580 .word 0x0800a580 - -08008cf8 <__lshift>: - 8008cf8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8008cfc: 460c mov r4, r1 - 8008cfe: 4607 mov r7, r0 - 8008d00: 4691 mov r9, r2 - 8008d02: 6923 ldr r3, [r4, #16] - 8008d04: 6849 ldr r1, [r1, #4] - 8008d06: eb03 1862 add.w r8, r3, r2, asr #5 - 8008d0a: 68a3 ldr r3, [r4, #8] - 8008d0c: ea4f 1a62 mov.w sl, r2, asr #5 - 8008d10: f108 0601 add.w r6, r8, #1 - 8008d14: 42b3 cmp r3, r6 - 8008d16: db0b blt.n 8008d30 <__lshift+0x38> - 8008d18: 4638 mov r0, r7 - 8008d1a: f7ff fddf bl 80088dc <_Balloc> - 8008d1e: 4605 mov r5, r0 - 8008d20: b948 cbnz r0, 8008d36 <__lshift+0x3e> - 8008d22: 4602 mov r2, r0 - 8008d24: f240 11d9 movw r1, #473 ; 0x1d9 - 8008d28: 4b27 ldr r3, [pc, #156] ; (8008dc8 <__lshift+0xd0>) - 8008d2a: 4828 ldr r0, [pc, #160] ; (8008dcc <__lshift+0xd4>) - 8008d2c: f000 fc70 bl 8009610 <__assert_func> - 8008d30: 3101 adds r1, #1 - 8008d32: 005b lsls r3, r3, #1 - 8008d34: e7ee b.n 8008d14 <__lshift+0x1c> - 8008d36: 2300 movs r3, #0 - 8008d38: f100 0114 add.w r1, r0, #20 - 8008d3c: f100 0210 add.w r2, r0, #16 - 8008d40: 4618 mov r0, r3 - 8008d42: 4553 cmp r3, sl - 8008d44: db33 blt.n 8008dae <__lshift+0xb6> - 8008d46: 6920 ldr r0, [r4, #16] - 8008d48: ea2a 7aea bic.w sl, sl, sl, asr #31 - 8008d4c: f104 0314 add.w r3, r4, #20 - 8008d50: f019 091f ands.w r9, r9, #31 - 8008d54: eb01 018a add.w r1, r1, sl, lsl #2 - 8008d58: eb03 0c80 add.w ip, r3, r0, lsl #2 - 8008d5c: d02b beq.n 8008db6 <__lshift+0xbe> - 8008d5e: 468a mov sl, r1 - 8008d60: 2200 movs r2, #0 - 8008d62: f1c9 0e20 rsb lr, r9, #32 - 8008d66: 6818 ldr r0, [r3, #0] - 8008d68: fa00 f009 lsl.w r0, r0, r9 - 8008d6c: 4302 orrs r2, r0 - 8008d6e: f84a 2b04 str.w r2, [sl], #4 - 8008d72: f853 2b04 ldr.w r2, [r3], #4 - 8008d76: 459c cmp ip, r3 - 8008d78: fa22 f20e lsr.w r2, r2, lr - 8008d7c: d8f3 bhi.n 8008d66 <__lshift+0x6e> - 8008d7e: ebac 0304 sub.w r3, ip, r4 - 8008d82: 3b15 subs r3, #21 - 8008d84: f023 0303 bic.w r3, r3, #3 - 8008d88: 3304 adds r3, #4 - 8008d8a: f104 0015 add.w r0, r4, #21 - 8008d8e: 4584 cmp ip, r0 - 8008d90: bf38 it cc - 8008d92: 2304 movcc r3, #4 - 8008d94: 50ca str r2, [r1, r3] - 8008d96: b10a cbz r2, 8008d9c <__lshift+0xa4> - 8008d98: f108 0602 add.w r6, r8, #2 - 8008d9c: 3e01 subs r6, #1 - 8008d9e: 4638 mov r0, r7 - 8008da0: 4621 mov r1, r4 - 8008da2: 612e str r6, [r5, #16] - 8008da4: f7ff fdda bl 800895c <_Bfree> - 8008da8: 4628 mov r0, r5 - 8008daa: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8008dae: f842 0f04 str.w r0, [r2, #4]! - 8008db2: 3301 adds r3, #1 - 8008db4: e7c5 b.n 8008d42 <__lshift+0x4a> - 8008db6: 3904 subs r1, #4 - 8008db8: f853 2b04 ldr.w r2, [r3], #4 - 8008dbc: 459c cmp ip, r3 - 8008dbe: f841 2f04 str.w r2, [r1, #4]! - 8008dc2: d8f9 bhi.n 8008db8 <__lshift+0xc0> - 8008dc4: e7ea b.n 8008d9c <__lshift+0xa4> - 8008dc6: bf00 nop - 8008dc8: 0800a50f .word 0x0800a50f - 8008dcc: 0800a580 .word 0x0800a580 - -08008dd0 <__mcmp>: - 8008dd0: 4603 mov r3, r0 - 8008dd2: 690a ldr r2, [r1, #16] - 8008dd4: 6900 ldr r0, [r0, #16] - 8008dd6: b530 push {r4, r5, lr} - 8008dd8: 1a80 subs r0, r0, r2 - 8008dda: d10d bne.n 8008df8 <__mcmp+0x28> - 8008ddc: 3314 adds r3, #20 - 8008dde: 3114 adds r1, #20 - 8008de0: eb03 0482 add.w r4, r3, r2, lsl #2 - 8008de4: eb01 0182 add.w r1, r1, r2, lsl #2 - 8008de8: f854 5d04 ldr.w r5, [r4, #-4]! - 8008dec: f851 2d04 ldr.w r2, [r1, #-4]! - 8008df0: 4295 cmp r5, r2 - 8008df2: d002 beq.n 8008dfa <__mcmp+0x2a> - 8008df4: d304 bcc.n 8008e00 <__mcmp+0x30> - 8008df6: 2001 movs r0, #1 - 8008df8: bd30 pop {r4, r5, pc} - 8008dfa: 42a3 cmp r3, r4 - 8008dfc: d3f4 bcc.n 8008de8 <__mcmp+0x18> - 8008dfe: e7fb b.n 8008df8 <__mcmp+0x28> - 8008e00: f04f 30ff mov.w r0, #4294967295 - 8008e04: e7f8 b.n 8008df8 <__mcmp+0x28> - ... - -08008e08 <__mdiff>: - 8008e08: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8008e0c: 460c mov r4, r1 - 8008e0e: 4606 mov r6, r0 - 8008e10: 4611 mov r1, r2 - 8008e12: 4620 mov r0, r4 - 8008e14: 4692 mov sl, r2 - 8008e16: f7ff ffdb bl 8008dd0 <__mcmp> - 8008e1a: 1e05 subs r5, r0, #0 - 8008e1c: d111 bne.n 8008e42 <__mdiff+0x3a> - 8008e1e: 4629 mov r1, r5 - 8008e20: 4630 mov r0, r6 - 8008e22: f7ff fd5b bl 80088dc <_Balloc> - 8008e26: 4602 mov r2, r0 - 8008e28: b928 cbnz r0, 8008e36 <__mdiff+0x2e> - 8008e2a: f240 2132 movw r1, #562 ; 0x232 - 8008e2e: 4b3c ldr r3, [pc, #240] ; (8008f20 <__mdiff+0x118>) - 8008e30: 483c ldr r0, [pc, #240] ; (8008f24 <__mdiff+0x11c>) - 8008e32: f000 fbed bl 8009610 <__assert_func> - 8008e36: 2301 movs r3, #1 - 8008e38: e9c0 3504 strd r3, r5, [r0, #16] - 8008e3c: 4610 mov r0, r2 - 8008e3e: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8008e42: bfa4 itt ge - 8008e44: 4653 movge r3, sl - 8008e46: 46a2 movge sl, r4 - 8008e48: 4630 mov r0, r6 - 8008e4a: f8da 1004 ldr.w r1, [sl, #4] - 8008e4e: bfa6 itte ge - 8008e50: 461c movge r4, r3 - 8008e52: 2500 movge r5, #0 - 8008e54: 2501 movlt r5, #1 - 8008e56: f7ff fd41 bl 80088dc <_Balloc> - 8008e5a: 4602 mov r2, r0 - 8008e5c: b918 cbnz r0, 8008e66 <__mdiff+0x5e> - 8008e5e: f44f 7110 mov.w r1, #576 ; 0x240 - 8008e62: 4b2f ldr r3, [pc, #188] ; (8008f20 <__mdiff+0x118>) - 8008e64: e7e4 b.n 8008e30 <__mdiff+0x28> - 8008e66: f100 0814 add.w r8, r0, #20 - 8008e6a: f8da 7010 ldr.w r7, [sl, #16] - 8008e6e: 60c5 str r5, [r0, #12] - 8008e70: f04f 0c00 mov.w ip, #0 - 8008e74: f10a 0514 add.w r5, sl, #20 - 8008e78: f10a 0010 add.w r0, sl, #16 - 8008e7c: 46c2 mov sl, r8 - 8008e7e: 6926 ldr r6, [r4, #16] - 8008e80: f104 0914 add.w r9, r4, #20 - 8008e84: eb05 0e87 add.w lr, r5, r7, lsl #2 - 8008e88: eb09 0686 add.w r6, r9, r6, lsl #2 - 8008e8c: f850 bf04 ldr.w fp, [r0, #4]! - 8008e90: f859 3b04 ldr.w r3, [r9], #4 - 8008e94: fa1f f18b uxth.w r1, fp - 8008e98: 4461 add r1, ip - 8008e9a: fa1f fc83 uxth.w ip, r3 - 8008e9e: 0c1b lsrs r3, r3, #16 - 8008ea0: eba1 010c sub.w r1, r1, ip - 8008ea4: ebc3 431b rsb r3, r3, fp, lsr #16 - 8008ea8: eb03 4321 add.w r3, r3, r1, asr #16 - 8008eac: b289 uxth r1, r1 - 8008eae: ea4f 4c23 mov.w ip, r3, asr #16 - 8008eb2: 454e cmp r6, r9 - 8008eb4: ea41 4303 orr.w r3, r1, r3, lsl #16 - 8008eb8: f84a 3b04 str.w r3, [sl], #4 - 8008ebc: d8e6 bhi.n 8008e8c <__mdiff+0x84> - 8008ebe: 1b33 subs r3, r6, r4 - 8008ec0: 3b15 subs r3, #21 - 8008ec2: f023 0303 bic.w r3, r3, #3 - 8008ec6: 3415 adds r4, #21 - 8008ec8: 3304 adds r3, #4 - 8008eca: 42a6 cmp r6, r4 - 8008ecc: bf38 it cc - 8008ece: 2304 movcc r3, #4 - 8008ed0: 441d add r5, r3 - 8008ed2: 4443 add r3, r8 - 8008ed4: 461e mov r6, r3 - 8008ed6: 462c mov r4, r5 - 8008ed8: 4574 cmp r4, lr - 8008eda: d30e bcc.n 8008efa <__mdiff+0xf2> - 8008edc: f10e 0103 add.w r1, lr, #3 - 8008ee0: 1b49 subs r1, r1, r5 - 8008ee2: f021 0103 bic.w r1, r1, #3 - 8008ee6: 3d03 subs r5, #3 - 8008ee8: 45ae cmp lr, r5 - 8008eea: bf38 it cc - 8008eec: 2100 movcc r1, #0 - 8008eee: 4419 add r1, r3 - 8008ef0: f851 3d04 ldr.w r3, [r1, #-4]! - 8008ef4: b18b cbz r3, 8008f1a <__mdiff+0x112> - 8008ef6: 6117 str r7, [r2, #16] - 8008ef8: e7a0 b.n 8008e3c <__mdiff+0x34> - 8008efa: f854 8b04 ldr.w r8, [r4], #4 - 8008efe: fa1f f188 uxth.w r1, r8 - 8008f02: 4461 add r1, ip - 8008f04: 1408 asrs r0, r1, #16 - 8008f06: eb00 4018 add.w r0, r0, r8, lsr #16 - 8008f0a: b289 uxth r1, r1 - 8008f0c: ea41 4100 orr.w r1, r1, r0, lsl #16 - 8008f10: ea4f 4c20 mov.w ip, r0, asr #16 - 8008f14: f846 1b04 str.w r1, [r6], #4 - 8008f18: e7de b.n 8008ed8 <__mdiff+0xd0> - 8008f1a: 3f01 subs r7, #1 - 8008f1c: e7e8 b.n 8008ef0 <__mdiff+0xe8> - 8008f1e: bf00 nop - 8008f20: 0800a50f .word 0x0800a50f - 8008f24: 0800a580 .word 0x0800a580 - -08008f28 <__d2b>: - 8008f28: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} - 8008f2c: 2101 movs r1, #1 - 8008f2e: e9dd 7608 ldrd r7, r6, [sp, #32] - 8008f32: 4690 mov r8, r2 - 8008f34: 461d mov r5, r3 - 8008f36: f7ff fcd1 bl 80088dc <_Balloc> - 8008f3a: 4604 mov r4, r0 - 8008f3c: b930 cbnz r0, 8008f4c <__d2b+0x24> - 8008f3e: 4602 mov r2, r0 - 8008f40: f240 310a movw r1, #778 ; 0x30a - 8008f44: 4b24 ldr r3, [pc, #144] ; (8008fd8 <__d2b+0xb0>) - 8008f46: 4825 ldr r0, [pc, #148] ; (8008fdc <__d2b+0xb4>) - 8008f48: f000 fb62 bl 8009610 <__assert_func> - 8008f4c: f3c5 0313 ubfx r3, r5, #0, #20 - 8008f50: f3c5 550a ubfx r5, r5, #20, #11 - 8008f54: bb2d cbnz r5, 8008fa2 <__d2b+0x7a> - 8008f56: 9301 str r3, [sp, #4] - 8008f58: f1b8 0300 subs.w r3, r8, #0 - 8008f5c: d026 beq.n 8008fac <__d2b+0x84> - 8008f5e: 4668 mov r0, sp - 8008f60: 9300 str r3, [sp, #0] - 8008f62: f7ff fd87 bl 8008a74 <__lo0bits> - 8008f66: 9900 ldr r1, [sp, #0] - 8008f68: b1f0 cbz r0, 8008fa8 <__d2b+0x80> - 8008f6a: 9a01 ldr r2, [sp, #4] - 8008f6c: f1c0 0320 rsb r3, r0, #32 - 8008f70: fa02 f303 lsl.w r3, r2, r3 - 8008f74: 430b orrs r3, r1 - 8008f76: 40c2 lsrs r2, r0 - 8008f78: 6163 str r3, [r4, #20] - 8008f7a: 9201 str r2, [sp, #4] - 8008f7c: 9b01 ldr r3, [sp, #4] - 8008f7e: 2b00 cmp r3, #0 - 8008f80: bf14 ite ne - 8008f82: 2102 movne r1, #2 - 8008f84: 2101 moveq r1, #1 - 8008f86: 61a3 str r3, [r4, #24] - 8008f88: 6121 str r1, [r4, #16] - 8008f8a: b1c5 cbz r5, 8008fbe <__d2b+0x96> - 8008f8c: f2a5 4533 subw r5, r5, #1075 ; 0x433 - 8008f90: 4405 add r5, r0 - 8008f92: f1c0 0035 rsb r0, r0, #53 ; 0x35 - 8008f96: 603d str r5, [r7, #0] - 8008f98: 6030 str r0, [r6, #0] - 8008f9a: 4620 mov r0, r4 - 8008f9c: b002 add sp, #8 - 8008f9e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8008fa2: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 - 8008fa6: e7d6 b.n 8008f56 <__d2b+0x2e> - 8008fa8: 6161 str r1, [r4, #20] - 8008faa: e7e7 b.n 8008f7c <__d2b+0x54> - 8008fac: a801 add r0, sp, #4 - 8008fae: f7ff fd61 bl 8008a74 <__lo0bits> - 8008fb2: 2101 movs r1, #1 - 8008fb4: 9b01 ldr r3, [sp, #4] - 8008fb6: 6121 str r1, [r4, #16] - 8008fb8: 6163 str r3, [r4, #20] - 8008fba: 3020 adds r0, #32 - 8008fbc: e7e5 b.n 8008f8a <__d2b+0x62> - 8008fbe: eb04 0381 add.w r3, r4, r1, lsl #2 - 8008fc2: f2a0 4032 subw r0, r0, #1074 ; 0x432 - 8008fc6: 6038 str r0, [r7, #0] - 8008fc8: 6918 ldr r0, [r3, #16] - 8008fca: f7ff fd33 bl 8008a34 <__hi0bits> - 8008fce: ebc0 1141 rsb r1, r0, r1, lsl #5 - 8008fd2: 6031 str r1, [r6, #0] - 8008fd4: e7e1 b.n 8008f9a <__d2b+0x72> - 8008fd6: bf00 nop - 8008fd8: 0800a50f .word 0x0800a50f - 8008fdc: 0800a580 .word 0x0800a580 - -08008fe0 <_calloc_r>: - 8008fe0: b538 push {r3, r4, r5, lr} - 8008fe2: fb02 f501 mul.w r5, r2, r1 - 8008fe6: 4629 mov r1, r5 - 8008fe8: f7fd fe04 bl 8006bf4 <_malloc_r> - 8008fec: 4604 mov r4, r0 - 8008fee: b118 cbz r0, 8008ff8 <_calloc_r+0x18> - 8008ff0: 462a mov r2, r5 - 8008ff2: 2100 movs r1, #0 - 8008ff4: f7fd fdaa bl 8006b4c - 8008ff8: 4620 mov r0, r4 - 8008ffa: bd38 pop {r3, r4, r5, pc} - -08008ffc <__ssputs_r>: - 8008ffc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8009000: 688e ldr r6, [r1, #8] - 8009002: 4682 mov sl, r0 - 8009004: 429e cmp r6, r3 - 8009006: 460c mov r4, r1 - 8009008: 4690 mov r8, r2 - 800900a: 461f mov r7, r3 - 800900c: d838 bhi.n 8009080 <__ssputs_r+0x84> - 800900e: 898a ldrh r2, [r1, #12] - 8009010: f412 6f90 tst.w r2, #1152 ; 0x480 - 8009014: d032 beq.n 800907c <__ssputs_r+0x80> - 8009016: 6825 ldr r5, [r4, #0] - 8009018: 6909 ldr r1, [r1, #16] - 800901a: 3301 adds r3, #1 - 800901c: eba5 0901 sub.w r9, r5, r1 - 8009020: 6965 ldr r5, [r4, #20] - 8009022: 444b add r3, r9 - 8009024: eb05 0545 add.w r5, r5, r5, lsl #1 - 8009028: eb05 75d5 add.w r5, r5, r5, lsr #31 - 800902c: 106d asrs r5, r5, #1 - 800902e: 429d cmp r5, r3 - 8009030: bf38 it cc - 8009032: 461d movcc r5, r3 - 8009034: 0553 lsls r3, r2, #21 - 8009036: d531 bpl.n 800909c <__ssputs_r+0xa0> - 8009038: 4629 mov r1, r5 - 800903a: f7fd fddb bl 8006bf4 <_malloc_r> - 800903e: 4606 mov r6, r0 - 8009040: b950 cbnz r0, 8009058 <__ssputs_r+0x5c> - 8009042: 230c movs r3, #12 - 8009044: f04f 30ff mov.w r0, #4294967295 - 8009048: f8ca 3000 str.w r3, [sl] - 800904c: 89a3 ldrh r3, [r4, #12] - 800904e: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8009052: 81a3 strh r3, [r4, #12] - 8009054: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8009058: 464a mov r2, r9 - 800905a: 6921 ldr r1, [r4, #16] - 800905c: f7ff fc24 bl 80088a8 - 8009060: 89a3 ldrh r3, [r4, #12] - 8009062: f423 6390 bic.w r3, r3, #1152 ; 0x480 - 8009066: f043 0380 orr.w r3, r3, #128 ; 0x80 - 800906a: 81a3 strh r3, [r4, #12] - 800906c: 6126 str r6, [r4, #16] - 800906e: 444e add r6, r9 - 8009070: 6026 str r6, [r4, #0] - 8009072: 463e mov r6, r7 - 8009074: 6165 str r5, [r4, #20] - 8009076: eba5 0509 sub.w r5, r5, r9 - 800907a: 60a5 str r5, [r4, #8] - 800907c: 42be cmp r6, r7 - 800907e: d900 bls.n 8009082 <__ssputs_r+0x86> - 8009080: 463e mov r6, r7 - 8009082: 4632 mov r2, r6 - 8009084: 4641 mov r1, r8 - 8009086: 6820 ldr r0, [r4, #0] - 8009088: f000 fb48 bl 800971c - 800908c: 68a3 ldr r3, [r4, #8] - 800908e: 6822 ldr r2, [r4, #0] - 8009090: 1b9b subs r3, r3, r6 - 8009092: 4432 add r2, r6 - 8009094: 2000 movs r0, #0 - 8009096: 60a3 str r3, [r4, #8] - 8009098: 6022 str r2, [r4, #0] - 800909a: e7db b.n 8009054 <__ssputs_r+0x58> - 800909c: 462a mov r2, r5 - 800909e: f000 fb57 bl 8009750 <_realloc_r> - 80090a2: 4606 mov r6, r0 - 80090a4: 2800 cmp r0, #0 - 80090a6: d1e1 bne.n 800906c <__ssputs_r+0x70> - 80090a8: 4650 mov r0, sl - 80090aa: 6921 ldr r1, [r4, #16] - 80090ac: f7fd fd56 bl 8006b5c <_free_r> - 80090b0: e7c7 b.n 8009042 <__ssputs_r+0x46> - ... - -080090b4 <_svfiprintf_r>: - 80090b4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 80090b8: 4698 mov r8, r3 - 80090ba: 898b ldrh r3, [r1, #12] - 80090bc: 4607 mov r7, r0 - 80090be: 061b lsls r3, r3, #24 - 80090c0: 460d mov r5, r1 - 80090c2: 4614 mov r4, r2 - 80090c4: b09d sub sp, #116 ; 0x74 - 80090c6: d50e bpl.n 80090e6 <_svfiprintf_r+0x32> - 80090c8: 690b ldr r3, [r1, #16] - 80090ca: b963 cbnz r3, 80090e6 <_svfiprintf_r+0x32> - 80090cc: 2140 movs r1, #64 ; 0x40 - 80090ce: f7fd fd91 bl 8006bf4 <_malloc_r> - 80090d2: 6028 str r0, [r5, #0] - 80090d4: 6128 str r0, [r5, #16] - 80090d6: b920 cbnz r0, 80090e2 <_svfiprintf_r+0x2e> - 80090d8: 230c movs r3, #12 - 80090da: 603b str r3, [r7, #0] - 80090dc: f04f 30ff mov.w r0, #4294967295 - 80090e0: e0d1 b.n 8009286 <_svfiprintf_r+0x1d2> - 80090e2: 2340 movs r3, #64 ; 0x40 - 80090e4: 616b str r3, [r5, #20] - 80090e6: 2300 movs r3, #0 - 80090e8: 9309 str r3, [sp, #36] ; 0x24 - 80090ea: 2320 movs r3, #32 - 80090ec: f88d 3029 strb.w r3, [sp, #41] ; 0x29 - 80090f0: 2330 movs r3, #48 ; 0x30 - 80090f2: f04f 0901 mov.w r9, #1 - 80090f6: f8cd 800c str.w r8, [sp, #12] - 80090fa: f8df 81a4 ldr.w r8, [pc, #420] ; 80092a0 <_svfiprintf_r+0x1ec> - 80090fe: f88d 302a strb.w r3, [sp, #42] ; 0x2a - 8009102: 4623 mov r3, r4 - 8009104: 469a mov sl, r3 - 8009106: f813 2b01 ldrb.w r2, [r3], #1 - 800910a: b10a cbz r2, 8009110 <_svfiprintf_r+0x5c> - 800910c: 2a25 cmp r2, #37 ; 0x25 - 800910e: d1f9 bne.n 8009104 <_svfiprintf_r+0x50> - 8009110: ebba 0b04 subs.w fp, sl, r4 - 8009114: d00b beq.n 800912e <_svfiprintf_r+0x7a> - 8009116: 465b mov r3, fp - 8009118: 4622 mov r2, r4 - 800911a: 4629 mov r1, r5 - 800911c: 4638 mov r0, r7 - 800911e: f7ff ff6d bl 8008ffc <__ssputs_r> - 8009122: 3001 adds r0, #1 - 8009124: f000 80aa beq.w 800927c <_svfiprintf_r+0x1c8> - 8009128: 9a09 ldr r2, [sp, #36] ; 0x24 - 800912a: 445a add r2, fp - 800912c: 9209 str r2, [sp, #36] ; 0x24 - 800912e: f89a 3000 ldrb.w r3, [sl] - 8009132: 2b00 cmp r3, #0 - 8009134: f000 80a2 beq.w 800927c <_svfiprintf_r+0x1c8> - 8009138: 2300 movs r3, #0 - 800913a: f04f 32ff mov.w r2, #4294967295 - 800913e: e9cd 2305 strd r2, r3, [sp, #20] - 8009142: f10a 0a01 add.w sl, sl, #1 - 8009146: 9304 str r3, [sp, #16] - 8009148: 9307 str r3, [sp, #28] - 800914a: f88d 3053 strb.w r3, [sp, #83] ; 0x53 - 800914e: 931a str r3, [sp, #104] ; 0x68 - 8009150: 4654 mov r4, sl - 8009152: 2205 movs r2, #5 - 8009154: f814 1b01 ldrb.w r1, [r4], #1 - 8009158: 4851 ldr r0, [pc, #324] ; (80092a0 <_svfiprintf_r+0x1ec>) - 800915a: f7ff fb97 bl 800888c - 800915e: 9a04 ldr r2, [sp, #16] - 8009160: b9d8 cbnz r0, 800919a <_svfiprintf_r+0xe6> - 8009162: 06d0 lsls r0, r2, #27 - 8009164: bf44 itt mi - 8009166: 2320 movmi r3, #32 - 8009168: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 - 800916c: 0711 lsls r1, r2, #28 - 800916e: bf44 itt mi - 8009170: 232b movmi r3, #43 ; 0x2b - 8009172: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 - 8009176: f89a 3000 ldrb.w r3, [sl] - 800917a: 2b2a cmp r3, #42 ; 0x2a - 800917c: d015 beq.n 80091aa <_svfiprintf_r+0xf6> - 800917e: 4654 mov r4, sl - 8009180: 2000 movs r0, #0 - 8009182: f04f 0c0a mov.w ip, #10 - 8009186: 9a07 ldr r2, [sp, #28] - 8009188: 4621 mov r1, r4 - 800918a: f811 3b01 ldrb.w r3, [r1], #1 - 800918e: 3b30 subs r3, #48 ; 0x30 - 8009190: 2b09 cmp r3, #9 - 8009192: d94e bls.n 8009232 <_svfiprintf_r+0x17e> - 8009194: b1b0 cbz r0, 80091c4 <_svfiprintf_r+0x110> - 8009196: 9207 str r2, [sp, #28] - 8009198: e014 b.n 80091c4 <_svfiprintf_r+0x110> - 800919a: eba0 0308 sub.w r3, r0, r8 - 800919e: fa09 f303 lsl.w r3, r9, r3 - 80091a2: 4313 orrs r3, r2 - 80091a4: 46a2 mov sl, r4 - 80091a6: 9304 str r3, [sp, #16] - 80091a8: e7d2 b.n 8009150 <_svfiprintf_r+0x9c> - 80091aa: 9b03 ldr r3, [sp, #12] - 80091ac: 1d19 adds r1, r3, #4 - 80091ae: 681b ldr r3, [r3, #0] - 80091b0: 9103 str r1, [sp, #12] - 80091b2: 2b00 cmp r3, #0 - 80091b4: bfbb ittet lt - 80091b6: 425b neglt r3, r3 - 80091b8: f042 0202 orrlt.w r2, r2, #2 - 80091bc: 9307 strge r3, [sp, #28] - 80091be: 9307 strlt r3, [sp, #28] - 80091c0: bfb8 it lt - 80091c2: 9204 strlt r2, [sp, #16] - 80091c4: 7823 ldrb r3, [r4, #0] - 80091c6: 2b2e cmp r3, #46 ; 0x2e - 80091c8: d10c bne.n 80091e4 <_svfiprintf_r+0x130> - 80091ca: 7863 ldrb r3, [r4, #1] - 80091cc: 2b2a cmp r3, #42 ; 0x2a - 80091ce: d135 bne.n 800923c <_svfiprintf_r+0x188> - 80091d0: 9b03 ldr r3, [sp, #12] - 80091d2: 3402 adds r4, #2 - 80091d4: 1d1a adds r2, r3, #4 - 80091d6: 681b ldr r3, [r3, #0] - 80091d8: 9203 str r2, [sp, #12] - 80091da: 2b00 cmp r3, #0 - 80091dc: bfb8 it lt - 80091de: f04f 33ff movlt.w r3, #4294967295 - 80091e2: 9305 str r3, [sp, #20] - 80091e4: f8df a0c8 ldr.w sl, [pc, #200] ; 80092b0 <_svfiprintf_r+0x1fc> - 80091e8: 2203 movs r2, #3 - 80091ea: 4650 mov r0, sl - 80091ec: 7821 ldrb r1, [r4, #0] - 80091ee: f7ff fb4d bl 800888c - 80091f2: b140 cbz r0, 8009206 <_svfiprintf_r+0x152> - 80091f4: 2340 movs r3, #64 ; 0x40 - 80091f6: eba0 000a sub.w r0, r0, sl - 80091fa: fa03 f000 lsl.w r0, r3, r0 - 80091fe: 9b04 ldr r3, [sp, #16] - 8009200: 3401 adds r4, #1 - 8009202: 4303 orrs r3, r0 - 8009204: 9304 str r3, [sp, #16] - 8009206: f814 1b01 ldrb.w r1, [r4], #1 - 800920a: 2206 movs r2, #6 - 800920c: 4825 ldr r0, [pc, #148] ; (80092a4 <_svfiprintf_r+0x1f0>) - 800920e: f88d 1028 strb.w r1, [sp, #40] ; 0x28 - 8009212: f7ff fb3b bl 800888c - 8009216: 2800 cmp r0, #0 - 8009218: d038 beq.n 800928c <_svfiprintf_r+0x1d8> - 800921a: 4b23 ldr r3, [pc, #140] ; (80092a8 <_svfiprintf_r+0x1f4>) - 800921c: bb1b cbnz r3, 8009266 <_svfiprintf_r+0x1b2> - 800921e: 9b03 ldr r3, [sp, #12] - 8009220: 3307 adds r3, #7 - 8009222: f023 0307 bic.w r3, r3, #7 - 8009226: 3308 adds r3, #8 - 8009228: 9303 str r3, [sp, #12] - 800922a: 9b09 ldr r3, [sp, #36] ; 0x24 - 800922c: 4433 add r3, r6 - 800922e: 9309 str r3, [sp, #36] ; 0x24 - 8009230: e767 b.n 8009102 <_svfiprintf_r+0x4e> - 8009232: 460c mov r4, r1 - 8009234: 2001 movs r0, #1 - 8009236: fb0c 3202 mla r2, ip, r2, r3 - 800923a: e7a5 b.n 8009188 <_svfiprintf_r+0xd4> - 800923c: 2300 movs r3, #0 - 800923e: f04f 0c0a mov.w ip, #10 - 8009242: 4619 mov r1, r3 - 8009244: 3401 adds r4, #1 - 8009246: 9305 str r3, [sp, #20] - 8009248: 4620 mov r0, r4 - 800924a: f810 2b01 ldrb.w r2, [r0], #1 - 800924e: 3a30 subs r2, #48 ; 0x30 - 8009250: 2a09 cmp r2, #9 - 8009252: d903 bls.n 800925c <_svfiprintf_r+0x1a8> - 8009254: 2b00 cmp r3, #0 - 8009256: d0c5 beq.n 80091e4 <_svfiprintf_r+0x130> - 8009258: 9105 str r1, [sp, #20] - 800925a: e7c3 b.n 80091e4 <_svfiprintf_r+0x130> - 800925c: 4604 mov r4, r0 - 800925e: 2301 movs r3, #1 - 8009260: fb0c 2101 mla r1, ip, r1, r2 - 8009264: e7f0 b.n 8009248 <_svfiprintf_r+0x194> - 8009266: ab03 add r3, sp, #12 - 8009268: 9300 str r3, [sp, #0] - 800926a: 462a mov r2, r5 - 800926c: 4638 mov r0, r7 - 800926e: 4b0f ldr r3, [pc, #60] ; (80092ac <_svfiprintf_r+0x1f8>) - 8009270: a904 add r1, sp, #16 - 8009272: f7fd fdb7 bl 8006de4 <_printf_float> - 8009276: 1c42 adds r2, r0, #1 - 8009278: 4606 mov r6, r0 - 800927a: d1d6 bne.n 800922a <_svfiprintf_r+0x176> - 800927c: 89ab ldrh r3, [r5, #12] - 800927e: 065b lsls r3, r3, #25 - 8009280: f53f af2c bmi.w 80090dc <_svfiprintf_r+0x28> - 8009284: 9809 ldr r0, [sp, #36] ; 0x24 - 8009286: b01d add sp, #116 ; 0x74 - 8009288: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800928c: ab03 add r3, sp, #12 - 800928e: 9300 str r3, [sp, #0] - 8009290: 462a mov r2, r5 - 8009292: 4638 mov r0, r7 - 8009294: 4b05 ldr r3, [pc, #20] ; (80092ac <_svfiprintf_r+0x1f8>) - 8009296: a904 add r1, sp, #16 - 8009298: f7fe f840 bl 800731c <_printf_i> - 800929c: e7eb b.n 8009276 <_svfiprintf_r+0x1c2> - 800929e: bf00 nop - 80092a0: 0800a6dc .word 0x0800a6dc - 80092a4: 0800a6e6 .word 0x0800a6e6 - 80092a8: 08006de5 .word 0x08006de5 - 80092ac: 08008ffd .word 0x08008ffd - 80092b0: 0800a6e2 .word 0x0800a6e2 - -080092b4 <__sfputc_r>: - 80092b4: 6893 ldr r3, [r2, #8] - 80092b6: b410 push {r4} - 80092b8: 3b01 subs r3, #1 - 80092ba: 2b00 cmp r3, #0 - 80092bc: 6093 str r3, [r2, #8] - 80092be: da07 bge.n 80092d0 <__sfputc_r+0x1c> - 80092c0: 6994 ldr r4, [r2, #24] - 80092c2: 42a3 cmp r3, r4 - 80092c4: db01 blt.n 80092ca <__sfputc_r+0x16> - 80092c6: 290a cmp r1, #10 - 80092c8: d102 bne.n 80092d0 <__sfputc_r+0x1c> - 80092ca: bc10 pop {r4} - 80092cc: f7fe b97c b.w 80075c8 <__swbuf_r> - 80092d0: 6813 ldr r3, [r2, #0] - 80092d2: 1c58 adds r0, r3, #1 - 80092d4: 6010 str r0, [r2, #0] - 80092d6: 7019 strb r1, [r3, #0] - 80092d8: 4608 mov r0, r1 - 80092da: bc10 pop {r4} - 80092dc: 4770 bx lr - -080092de <__sfputs_r>: - 80092de: b5f8 push {r3, r4, r5, r6, r7, lr} - 80092e0: 4606 mov r6, r0 - 80092e2: 460f mov r7, r1 - 80092e4: 4614 mov r4, r2 - 80092e6: 18d5 adds r5, r2, r3 - 80092e8: 42ac cmp r4, r5 - 80092ea: d101 bne.n 80092f0 <__sfputs_r+0x12> - 80092ec: 2000 movs r0, #0 - 80092ee: e007 b.n 8009300 <__sfputs_r+0x22> - 80092f0: 463a mov r2, r7 - 80092f2: 4630 mov r0, r6 - 80092f4: f814 1b01 ldrb.w r1, [r4], #1 - 80092f8: f7ff ffdc bl 80092b4 <__sfputc_r> - 80092fc: 1c43 adds r3, r0, #1 - 80092fe: d1f3 bne.n 80092e8 <__sfputs_r+0xa> - 8009300: bdf8 pop {r3, r4, r5, r6, r7, pc} - ... - -08009304 <_vfiprintf_r>: - 8009304: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8009308: 460d mov r5, r1 - 800930a: 4614 mov r4, r2 - 800930c: 4698 mov r8, r3 - 800930e: 4606 mov r6, r0 - 8009310: b09d sub sp, #116 ; 0x74 - 8009312: b118 cbz r0, 800931c <_vfiprintf_r+0x18> - 8009314: 6983 ldr r3, [r0, #24] - 8009316: b90b cbnz r3, 800931c <_vfiprintf_r+0x18> - 8009318: f7ff f9ae bl 8008678 <__sinit> - 800931c: 4b89 ldr r3, [pc, #548] ; (8009544 <_vfiprintf_r+0x240>) - 800931e: 429d cmp r5, r3 - 8009320: d11b bne.n 800935a <_vfiprintf_r+0x56> - 8009322: 6875 ldr r5, [r6, #4] - 8009324: 6e6b ldr r3, [r5, #100] ; 0x64 - 8009326: 07d9 lsls r1, r3, #31 - 8009328: d405 bmi.n 8009336 <_vfiprintf_r+0x32> - 800932a: 89ab ldrh r3, [r5, #12] - 800932c: 059a lsls r2, r3, #22 - 800932e: d402 bmi.n 8009336 <_vfiprintf_r+0x32> - 8009330: 6da8 ldr r0, [r5, #88] ; 0x58 - 8009332: f7ff fa44 bl 80087be <__retarget_lock_acquire_recursive> - 8009336: 89ab ldrh r3, [r5, #12] - 8009338: 071b lsls r3, r3, #28 - 800933a: d501 bpl.n 8009340 <_vfiprintf_r+0x3c> - 800933c: 692b ldr r3, [r5, #16] - 800933e: b9eb cbnz r3, 800937c <_vfiprintf_r+0x78> - 8009340: 4629 mov r1, r5 - 8009342: 4630 mov r0, r6 - 8009344: f7fe f992 bl 800766c <__swsetup_r> - 8009348: b1c0 cbz r0, 800937c <_vfiprintf_r+0x78> - 800934a: 6e6b ldr r3, [r5, #100] ; 0x64 - 800934c: 07dc lsls r4, r3, #31 - 800934e: d50e bpl.n 800936e <_vfiprintf_r+0x6a> - 8009350: f04f 30ff mov.w r0, #4294967295 - 8009354: b01d add sp, #116 ; 0x74 - 8009356: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800935a: 4b7b ldr r3, [pc, #492] ; (8009548 <_vfiprintf_r+0x244>) - 800935c: 429d cmp r5, r3 - 800935e: d101 bne.n 8009364 <_vfiprintf_r+0x60> - 8009360: 68b5 ldr r5, [r6, #8] - 8009362: e7df b.n 8009324 <_vfiprintf_r+0x20> - 8009364: 4b79 ldr r3, [pc, #484] ; (800954c <_vfiprintf_r+0x248>) - 8009366: 429d cmp r5, r3 - 8009368: bf08 it eq - 800936a: 68f5 ldreq r5, [r6, #12] - 800936c: e7da b.n 8009324 <_vfiprintf_r+0x20> - 800936e: 89ab ldrh r3, [r5, #12] - 8009370: 0598 lsls r0, r3, #22 - 8009372: d4ed bmi.n 8009350 <_vfiprintf_r+0x4c> - 8009374: 6da8 ldr r0, [r5, #88] ; 0x58 - 8009376: f7ff fa23 bl 80087c0 <__retarget_lock_release_recursive> - 800937a: e7e9 b.n 8009350 <_vfiprintf_r+0x4c> - 800937c: 2300 movs r3, #0 - 800937e: 9309 str r3, [sp, #36] ; 0x24 - 8009380: 2320 movs r3, #32 - 8009382: f88d 3029 strb.w r3, [sp, #41] ; 0x29 - 8009386: 2330 movs r3, #48 ; 0x30 - 8009388: f04f 0901 mov.w r9, #1 - 800938c: f8cd 800c str.w r8, [sp, #12] - 8009390: f8df 81bc ldr.w r8, [pc, #444] ; 8009550 <_vfiprintf_r+0x24c> - 8009394: f88d 302a strb.w r3, [sp, #42] ; 0x2a - 8009398: 4623 mov r3, r4 - 800939a: 469a mov sl, r3 - 800939c: f813 2b01 ldrb.w r2, [r3], #1 - 80093a0: b10a cbz r2, 80093a6 <_vfiprintf_r+0xa2> - 80093a2: 2a25 cmp r2, #37 ; 0x25 - 80093a4: d1f9 bne.n 800939a <_vfiprintf_r+0x96> - 80093a6: ebba 0b04 subs.w fp, sl, r4 - 80093aa: d00b beq.n 80093c4 <_vfiprintf_r+0xc0> - 80093ac: 465b mov r3, fp - 80093ae: 4622 mov r2, r4 - 80093b0: 4629 mov r1, r5 - 80093b2: 4630 mov r0, r6 - 80093b4: f7ff ff93 bl 80092de <__sfputs_r> - 80093b8: 3001 adds r0, #1 - 80093ba: f000 80aa beq.w 8009512 <_vfiprintf_r+0x20e> - 80093be: 9a09 ldr r2, [sp, #36] ; 0x24 - 80093c0: 445a add r2, fp - 80093c2: 9209 str r2, [sp, #36] ; 0x24 - 80093c4: f89a 3000 ldrb.w r3, [sl] - 80093c8: 2b00 cmp r3, #0 - 80093ca: f000 80a2 beq.w 8009512 <_vfiprintf_r+0x20e> - 80093ce: 2300 movs r3, #0 - 80093d0: f04f 32ff mov.w r2, #4294967295 - 80093d4: e9cd 2305 strd r2, r3, [sp, #20] - 80093d8: f10a 0a01 add.w sl, sl, #1 - 80093dc: 9304 str r3, [sp, #16] - 80093de: 9307 str r3, [sp, #28] - 80093e0: f88d 3053 strb.w r3, [sp, #83] ; 0x53 - 80093e4: 931a str r3, [sp, #104] ; 0x68 - 80093e6: 4654 mov r4, sl - 80093e8: 2205 movs r2, #5 - 80093ea: f814 1b01 ldrb.w r1, [r4], #1 - 80093ee: 4858 ldr r0, [pc, #352] ; (8009550 <_vfiprintf_r+0x24c>) - 80093f0: f7ff fa4c bl 800888c - 80093f4: 9a04 ldr r2, [sp, #16] - 80093f6: b9d8 cbnz r0, 8009430 <_vfiprintf_r+0x12c> - 80093f8: 06d1 lsls r1, r2, #27 - 80093fa: bf44 itt mi - 80093fc: 2320 movmi r3, #32 - 80093fe: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 - 8009402: 0713 lsls r3, r2, #28 - 8009404: bf44 itt mi - 8009406: 232b movmi r3, #43 ; 0x2b - 8009408: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 - 800940c: f89a 3000 ldrb.w r3, [sl] - 8009410: 2b2a cmp r3, #42 ; 0x2a - 8009412: d015 beq.n 8009440 <_vfiprintf_r+0x13c> - 8009414: 4654 mov r4, sl - 8009416: 2000 movs r0, #0 - 8009418: f04f 0c0a mov.w ip, #10 - 800941c: 9a07 ldr r2, [sp, #28] - 800941e: 4621 mov r1, r4 - 8009420: f811 3b01 ldrb.w r3, [r1], #1 - 8009424: 3b30 subs r3, #48 ; 0x30 - 8009426: 2b09 cmp r3, #9 - 8009428: d94e bls.n 80094c8 <_vfiprintf_r+0x1c4> - 800942a: b1b0 cbz r0, 800945a <_vfiprintf_r+0x156> - 800942c: 9207 str r2, [sp, #28] - 800942e: e014 b.n 800945a <_vfiprintf_r+0x156> - 8009430: eba0 0308 sub.w r3, r0, r8 - 8009434: fa09 f303 lsl.w r3, r9, r3 - 8009438: 4313 orrs r3, r2 - 800943a: 46a2 mov sl, r4 - 800943c: 9304 str r3, [sp, #16] - 800943e: e7d2 b.n 80093e6 <_vfiprintf_r+0xe2> - 8009440: 9b03 ldr r3, [sp, #12] - 8009442: 1d19 adds r1, r3, #4 - 8009444: 681b ldr r3, [r3, #0] - 8009446: 9103 str r1, [sp, #12] - 8009448: 2b00 cmp r3, #0 - 800944a: bfbb ittet lt - 800944c: 425b neglt r3, r3 - 800944e: f042 0202 orrlt.w r2, r2, #2 - 8009452: 9307 strge r3, [sp, #28] - 8009454: 9307 strlt r3, [sp, #28] - 8009456: bfb8 it lt - 8009458: 9204 strlt r2, [sp, #16] - 800945a: 7823 ldrb r3, [r4, #0] - 800945c: 2b2e cmp r3, #46 ; 0x2e - 800945e: d10c bne.n 800947a <_vfiprintf_r+0x176> - 8009460: 7863 ldrb r3, [r4, #1] - 8009462: 2b2a cmp r3, #42 ; 0x2a - 8009464: d135 bne.n 80094d2 <_vfiprintf_r+0x1ce> - 8009466: 9b03 ldr r3, [sp, #12] - 8009468: 3402 adds r4, #2 - 800946a: 1d1a adds r2, r3, #4 - 800946c: 681b ldr r3, [r3, #0] - 800946e: 9203 str r2, [sp, #12] - 8009470: 2b00 cmp r3, #0 - 8009472: bfb8 it lt - 8009474: f04f 33ff movlt.w r3, #4294967295 - 8009478: 9305 str r3, [sp, #20] - 800947a: f8df a0e4 ldr.w sl, [pc, #228] ; 8009560 <_vfiprintf_r+0x25c> - 800947e: 2203 movs r2, #3 - 8009480: 4650 mov r0, sl - 8009482: 7821 ldrb r1, [r4, #0] - 8009484: f7ff fa02 bl 800888c - 8009488: b140 cbz r0, 800949c <_vfiprintf_r+0x198> - 800948a: 2340 movs r3, #64 ; 0x40 - 800948c: eba0 000a sub.w r0, r0, sl - 8009490: fa03 f000 lsl.w r0, r3, r0 - 8009494: 9b04 ldr r3, [sp, #16] - 8009496: 3401 adds r4, #1 - 8009498: 4303 orrs r3, r0 - 800949a: 9304 str r3, [sp, #16] - 800949c: f814 1b01 ldrb.w r1, [r4], #1 - 80094a0: 2206 movs r2, #6 - 80094a2: 482c ldr r0, [pc, #176] ; (8009554 <_vfiprintf_r+0x250>) - 80094a4: f88d 1028 strb.w r1, [sp, #40] ; 0x28 - 80094a8: f7ff f9f0 bl 800888c - 80094ac: 2800 cmp r0, #0 - 80094ae: d03f beq.n 8009530 <_vfiprintf_r+0x22c> - 80094b0: 4b29 ldr r3, [pc, #164] ; (8009558 <_vfiprintf_r+0x254>) - 80094b2: bb1b cbnz r3, 80094fc <_vfiprintf_r+0x1f8> - 80094b4: 9b03 ldr r3, [sp, #12] - 80094b6: 3307 adds r3, #7 - 80094b8: f023 0307 bic.w r3, r3, #7 - 80094bc: 3308 adds r3, #8 - 80094be: 9303 str r3, [sp, #12] - 80094c0: 9b09 ldr r3, [sp, #36] ; 0x24 - 80094c2: 443b add r3, r7 - 80094c4: 9309 str r3, [sp, #36] ; 0x24 - 80094c6: e767 b.n 8009398 <_vfiprintf_r+0x94> - 80094c8: 460c mov r4, r1 - 80094ca: 2001 movs r0, #1 - 80094cc: fb0c 3202 mla r2, ip, r2, r3 - 80094d0: e7a5 b.n 800941e <_vfiprintf_r+0x11a> - 80094d2: 2300 movs r3, #0 - 80094d4: f04f 0c0a mov.w ip, #10 - 80094d8: 4619 mov r1, r3 - 80094da: 3401 adds r4, #1 - 80094dc: 9305 str r3, [sp, #20] - 80094de: 4620 mov r0, r4 - 80094e0: f810 2b01 ldrb.w r2, [r0], #1 - 80094e4: 3a30 subs r2, #48 ; 0x30 - 80094e6: 2a09 cmp r2, #9 - 80094e8: d903 bls.n 80094f2 <_vfiprintf_r+0x1ee> - 80094ea: 2b00 cmp r3, #0 - 80094ec: d0c5 beq.n 800947a <_vfiprintf_r+0x176> - 80094ee: 9105 str r1, [sp, #20] - 80094f0: e7c3 b.n 800947a <_vfiprintf_r+0x176> - 80094f2: 4604 mov r4, r0 - 80094f4: 2301 movs r3, #1 - 80094f6: fb0c 2101 mla r1, ip, r1, r2 - 80094fa: e7f0 b.n 80094de <_vfiprintf_r+0x1da> - 80094fc: ab03 add r3, sp, #12 - 80094fe: 9300 str r3, [sp, #0] - 8009500: 462a mov r2, r5 - 8009502: 4630 mov r0, r6 - 8009504: 4b15 ldr r3, [pc, #84] ; (800955c <_vfiprintf_r+0x258>) - 8009506: a904 add r1, sp, #16 - 8009508: f7fd fc6c bl 8006de4 <_printf_float> - 800950c: 4607 mov r7, r0 - 800950e: 1c78 adds r0, r7, #1 - 8009510: d1d6 bne.n 80094c0 <_vfiprintf_r+0x1bc> - 8009512: 6e6b ldr r3, [r5, #100] ; 0x64 - 8009514: 07d9 lsls r1, r3, #31 - 8009516: d405 bmi.n 8009524 <_vfiprintf_r+0x220> - 8009518: 89ab ldrh r3, [r5, #12] - 800951a: 059a lsls r2, r3, #22 - 800951c: d402 bmi.n 8009524 <_vfiprintf_r+0x220> - 800951e: 6da8 ldr r0, [r5, #88] ; 0x58 - 8009520: f7ff f94e bl 80087c0 <__retarget_lock_release_recursive> - 8009524: 89ab ldrh r3, [r5, #12] - 8009526: 065b lsls r3, r3, #25 - 8009528: f53f af12 bmi.w 8009350 <_vfiprintf_r+0x4c> - 800952c: 9809 ldr r0, [sp, #36] ; 0x24 - 800952e: e711 b.n 8009354 <_vfiprintf_r+0x50> - 8009530: ab03 add r3, sp, #12 - 8009532: 9300 str r3, [sp, #0] - 8009534: 462a mov r2, r5 - 8009536: 4630 mov r0, r6 - 8009538: 4b08 ldr r3, [pc, #32] ; (800955c <_vfiprintf_r+0x258>) - 800953a: a904 add r1, sp, #16 - 800953c: f7fd feee bl 800731c <_printf_i> - 8009540: e7e4 b.n 800950c <_vfiprintf_r+0x208> +0800953c <__sfp_lock_release>: + 800953c: 4801 ldr r0, [pc, #4] ; (8009544 <__sfp_lock_release+0x8>) + 800953e: f000 b8b3 b.w 80096a8 <__retarget_lock_release_recursive> 8009542: bf00 nop - 8009544: 0800a540 .word 0x0800a540 - 8009548: 0800a560 .word 0x0800a560 - 800954c: 0800a520 .word 0x0800a520 - 8009550: 0800a6dc .word 0x0800a6dc - 8009554: 0800a6e6 .word 0x0800a6e6 - 8009558: 08006de5 .word 0x08006de5 - 800955c: 080092df .word 0x080092df - 8009560: 0800a6e2 .word 0x0800a6e2 + 8009544: 200025de .word 0x200025de -08009564 <__sread>: - 8009564: b510 push {r4, lr} - 8009566: 460c mov r4, r1 - 8009568: f9b1 100e ldrsh.w r1, [r1, #14] - 800956c: f000 f916 bl 800979c <_read_r> - 8009570: 2800 cmp r0, #0 - 8009572: bfab itete ge - 8009574: 6d63 ldrge r3, [r4, #84] ; 0x54 - 8009576: 89a3 ldrhlt r3, [r4, #12] - 8009578: 181b addge r3, r3, r0 - 800957a: f423 5380 biclt.w r3, r3, #4096 ; 0x1000 - 800957e: bfac ite ge - 8009580: 6563 strge r3, [r4, #84] ; 0x54 - 8009582: 81a3 strhlt r3, [r4, #12] - 8009584: bd10 pop {r4, pc} +08009548 <__sinit_lock_acquire>: + 8009548: 4801 ldr r0, [pc, #4] ; (8009550 <__sinit_lock_acquire+0x8>) + 800954a: f000 b8ac b.w 80096a6 <__retarget_lock_acquire_recursive> + 800954e: bf00 nop + 8009550: 200025d9 .word 0x200025d9 -08009586 <__swrite>: - 8009586: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 800958a: 461f mov r7, r3 - 800958c: 898b ldrh r3, [r1, #12] - 800958e: 4605 mov r5, r0 - 8009590: 05db lsls r3, r3, #23 - 8009592: 460c mov r4, r1 - 8009594: 4616 mov r6, r2 - 8009596: d505 bpl.n 80095a4 <__swrite+0x1e> - 8009598: 2302 movs r3, #2 - 800959a: 2200 movs r2, #0 - 800959c: f9b1 100e ldrsh.w r1, [r1, #14] - 80095a0: f000 f898 bl 80096d4 <_lseek_r> - 80095a4: 89a3 ldrh r3, [r4, #12] - 80095a6: 4632 mov r2, r6 - 80095a8: f423 5380 bic.w r3, r3, #4096 ; 0x1000 - 80095ac: 81a3 strh r3, [r4, #12] - 80095ae: 4628 mov r0, r5 - 80095b0: 463b mov r3, r7 - 80095b2: f9b4 100e ldrsh.w r1, [r4, #14] - 80095b6: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 80095ba: f000 b817 b.w 80095ec <_write_r> +08009554 <__sinit_lock_release>: + 8009554: 4801 ldr r0, [pc, #4] ; (800955c <__sinit_lock_release+0x8>) + 8009556: f000 b8a7 b.w 80096a8 <__retarget_lock_release_recursive> + 800955a: bf00 nop + 800955c: 200025d9 .word 0x200025d9 -080095be <__sseek>: - 80095be: b510 push {r4, lr} - 80095c0: 460c mov r4, r1 - 80095c2: f9b1 100e ldrsh.w r1, [r1, #14] - 80095c6: f000 f885 bl 80096d4 <_lseek_r> - 80095ca: 1c43 adds r3, r0, #1 - 80095cc: 89a3 ldrh r3, [r4, #12] - 80095ce: bf15 itete ne - 80095d0: 6560 strne r0, [r4, #84] ; 0x54 - 80095d2: f423 5380 biceq.w r3, r3, #4096 ; 0x1000 - 80095d6: f443 5380 orrne.w r3, r3, #4096 ; 0x1000 - 80095da: 81a3 strheq r3, [r4, #12] - 80095dc: bf18 it ne - 80095de: 81a3 strhne r3, [r4, #12] - 80095e0: bd10 pop {r4, pc} +08009560 <__sinit>: + 8009560: b510 push {r4, lr} + 8009562: 4604 mov r4, r0 + 8009564: f7ff fff0 bl 8009548 <__sinit_lock_acquire> + 8009568: 69a3 ldr r3, [r4, #24] + 800956a: b11b cbz r3, 8009574 <__sinit+0x14> + 800956c: e8bd 4010 ldmia.w sp!, {r4, lr} + 8009570: f7ff bff0 b.w 8009554 <__sinit_lock_release> + 8009574: e9c4 3312 strd r3, r3, [r4, #72] ; 0x48 + 8009578: 6523 str r3, [r4, #80] ; 0x50 + 800957a: 4b13 ldr r3, [pc, #76] ; (80095c8 <__sinit+0x68>) + 800957c: 4a13 ldr r2, [pc, #76] ; (80095cc <__sinit+0x6c>) + 800957e: 681b ldr r3, [r3, #0] + 8009580: 62a2 str r2, [r4, #40] ; 0x28 + 8009582: 42a3 cmp r3, r4 + 8009584: bf08 it eq + 8009586: 2301 moveq r3, #1 + 8009588: 4620 mov r0, r4 + 800958a: bf08 it eq + 800958c: 61a3 streq r3, [r4, #24] + 800958e: f000 f81f bl 80095d0 <__sfp> + 8009592: 6060 str r0, [r4, #4] + 8009594: 4620 mov r0, r4 + 8009596: f000 f81b bl 80095d0 <__sfp> + 800959a: 60a0 str r0, [r4, #8] + 800959c: 4620 mov r0, r4 + 800959e: f000 f817 bl 80095d0 <__sfp> + 80095a2: 2200 movs r2, #0 + 80095a4: 2104 movs r1, #4 + 80095a6: 60e0 str r0, [r4, #12] + 80095a8: 6860 ldr r0, [r4, #4] + 80095aa: f7ff ff81 bl 80094b0 + 80095ae: 2201 movs r2, #1 + 80095b0: 2109 movs r1, #9 + 80095b2: 68a0 ldr r0, [r4, #8] + 80095b4: f7ff ff7c bl 80094b0 + 80095b8: 2202 movs r2, #2 + 80095ba: 2112 movs r1, #18 + 80095bc: 68e0 ldr r0, [r4, #12] + 80095be: f7ff ff77 bl 80094b0 + 80095c2: 2301 movs r3, #1 + 80095c4: 61a3 str r3, [r4, #24] + 80095c6: e7d1 b.n 800956c <__sinit+0xc> + 80095c8: 0800b35c .word 0x0800b35c + 80095cc: 080094f9 .word 0x080094f9 -080095e2 <__sclose>: - 80095e2: f9b1 100e ldrsh.w r1, [r1, #14] - 80095e6: f000 b831 b.w 800964c <_close_r> +080095d0 <__sfp>: + 80095d0: b5f8 push {r3, r4, r5, r6, r7, lr} + 80095d2: 4607 mov r7, r0 + 80095d4: f7ff ffac bl 8009530 <__sfp_lock_acquire> + 80095d8: 4b1e ldr r3, [pc, #120] ; (8009654 <__sfp+0x84>) + 80095da: 681e ldr r6, [r3, #0] + 80095dc: 69b3 ldr r3, [r6, #24] + 80095de: b913 cbnz r3, 80095e6 <__sfp+0x16> + 80095e0: 4630 mov r0, r6 + 80095e2: f7ff ffbd bl 8009560 <__sinit> + 80095e6: 3648 adds r6, #72 ; 0x48 + 80095e8: e9d6 3401 ldrd r3, r4, [r6, #4] + 80095ec: 3b01 subs r3, #1 + 80095ee: d503 bpl.n 80095f8 <__sfp+0x28> + 80095f0: 6833 ldr r3, [r6, #0] + 80095f2: b30b cbz r3, 8009638 <__sfp+0x68> + 80095f4: 6836 ldr r6, [r6, #0] + 80095f6: e7f7 b.n 80095e8 <__sfp+0x18> + 80095f8: f9b4 500c ldrsh.w r5, [r4, #12] + 80095fc: b9d5 cbnz r5, 8009634 <__sfp+0x64> + 80095fe: 4b16 ldr r3, [pc, #88] ; (8009658 <__sfp+0x88>) + 8009600: f104 0058 add.w r0, r4, #88 ; 0x58 + 8009604: 60e3 str r3, [r4, #12] + 8009606: 6665 str r5, [r4, #100] ; 0x64 + 8009608: f000 f84c bl 80096a4 <__retarget_lock_init_recursive> + 800960c: f7ff ff96 bl 800953c <__sfp_lock_release> + 8009610: 2208 movs r2, #8 + 8009612: 4629 mov r1, r5 + 8009614: e9c4 5501 strd r5, r5, [r4, #4] + 8009618: e9c4 5504 strd r5, r5, [r4, #16] + 800961c: 6025 str r5, [r4, #0] + 800961e: 61a5 str r5, [r4, #24] + 8009620: f104 005c add.w r0, r4, #92 ; 0x5c + 8009624: f7fe fa08 bl 8007a38 + 8009628: e9c4 550d strd r5, r5, [r4, #52] ; 0x34 + 800962c: e9c4 5512 strd r5, r5, [r4, #72] ; 0x48 + 8009630: 4620 mov r0, r4 + 8009632: bdf8 pop {r3, r4, r5, r6, r7, pc} + 8009634: 3468 adds r4, #104 ; 0x68 + 8009636: e7d9 b.n 80095ec <__sfp+0x1c> + 8009638: 2104 movs r1, #4 + 800963a: 4638 mov r0, r7 + 800963c: f7ff ff62 bl 8009504 <__sfmoreglue> + 8009640: 4604 mov r4, r0 + 8009642: 6030 str r0, [r6, #0] + 8009644: 2800 cmp r0, #0 + 8009646: d1d5 bne.n 80095f4 <__sfp+0x24> + 8009648: f7ff ff78 bl 800953c <__sfp_lock_release> + 800964c: 230c movs r3, #12 + 800964e: 603b str r3, [r7, #0] + 8009650: e7ee b.n 8009630 <__sfp+0x60> + 8009652: bf00 nop + 8009654: 0800b35c .word 0x0800b35c + 8009658: ffff0001 .word 0xffff0001 + +0800965c <_fwalk_reent>: + 800965c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + 8009660: 4606 mov r6, r0 + 8009662: 4688 mov r8, r1 + 8009664: 2700 movs r7, #0 + 8009666: f100 0448 add.w r4, r0, #72 ; 0x48 + 800966a: e9d4 9501 ldrd r9, r5, [r4, #4] + 800966e: f1b9 0901 subs.w r9, r9, #1 + 8009672: d505 bpl.n 8009680 <_fwalk_reent+0x24> + 8009674: 6824 ldr r4, [r4, #0] + 8009676: 2c00 cmp r4, #0 + 8009678: d1f7 bne.n 800966a <_fwalk_reent+0xe> + 800967a: 4638 mov r0, r7 + 800967c: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} + 8009680: 89ab ldrh r3, [r5, #12] + 8009682: 2b01 cmp r3, #1 + 8009684: d907 bls.n 8009696 <_fwalk_reent+0x3a> + 8009686: f9b5 300e ldrsh.w r3, [r5, #14] + 800968a: 3301 adds r3, #1 + 800968c: d003 beq.n 8009696 <_fwalk_reent+0x3a> + 800968e: 4629 mov r1, r5 + 8009690: 4630 mov r0, r6 + 8009692: 47c0 blx r8 + 8009694: 4307 orrs r7, r0 + 8009696: 3568 adds r5, #104 ; 0x68 + 8009698: e7e9 b.n 800966e <_fwalk_reent+0x12> ... -080095ec <_write_r>: - 80095ec: b538 push {r3, r4, r5, lr} - 80095ee: 4604 mov r4, r0 - 80095f0: 4608 mov r0, r1 - 80095f2: 4611 mov r1, r2 - 80095f4: 2200 movs r2, #0 - 80095f6: 4d05 ldr r5, [pc, #20] ; (800960c <_write_r+0x20>) - 80095f8: 602a str r2, [r5, #0] - 80095fa: 461a mov r2, r3 - 80095fc: f7f7 fdaa bl 8001154 <_write> - 8009600: 1c43 adds r3, r0, #1 - 8009602: d102 bne.n 800960a <_write_r+0x1e> - 8009604: 682b ldr r3, [r5, #0] - 8009606: b103 cbz r3, 800960a <_write_r+0x1e> - 8009608: 6023 str r3, [r4, #0] - 800960a: bd38 pop {r3, r4, r5, pc} - 800960c: 2000258c .word 0x2000258c +0800969c <_localeconv_r>: + 800969c: 4800 ldr r0, [pc, #0] ; (80096a0 <_localeconv_r+0x4>) + 800969e: 4770 bx lr + 80096a0: 20000160 .word 0x20000160 -08009610 <__assert_func>: - 8009610: b51f push {r0, r1, r2, r3, r4, lr} - 8009612: 4614 mov r4, r2 - 8009614: 461a mov r2, r3 - 8009616: 4b09 ldr r3, [pc, #36] ; (800963c <__assert_func+0x2c>) - 8009618: 4605 mov r5, r0 - 800961a: 681b ldr r3, [r3, #0] - 800961c: 68d8 ldr r0, [r3, #12] - 800961e: b14c cbz r4, 8009634 <__assert_func+0x24> - 8009620: 4b07 ldr r3, [pc, #28] ; (8009640 <__assert_func+0x30>) - 8009622: e9cd 3401 strd r3, r4, [sp, #4] - 8009626: 9100 str r1, [sp, #0] - 8009628: 462b mov r3, r5 - 800962a: 4906 ldr r1, [pc, #24] ; (8009644 <__assert_func+0x34>) - 800962c: f000 f81e bl 800966c - 8009630: f000 f8d3 bl 80097da - 8009634: 4b04 ldr r3, [pc, #16] ; (8009648 <__assert_func+0x38>) - 8009636: 461c mov r4, r3 - 8009638: e7f3 b.n 8009622 <__assert_func+0x12> - 800963a: bf00 nop - 800963c: 2000000c .word 0x2000000c - 8009640: 0800a6ed .word 0x0800a6ed - 8009644: 0800a6fa .word 0x0800a6fa - 8009648: 0800a728 .word 0x0800a728 +080096a4 <__retarget_lock_init_recursive>: + 80096a4: 4770 bx lr -0800964c <_close_r>: - 800964c: b538 push {r3, r4, r5, lr} - 800964e: 2300 movs r3, #0 - 8009650: 4d05 ldr r5, [pc, #20] ; (8009668 <_close_r+0x1c>) - 8009652: 4604 mov r4, r0 - 8009654: 4608 mov r0, r1 - 8009656: 602b str r3, [r5, #0] - 8009658: f7f8 f9a4 bl 80019a4 <_close> - 800965c: 1c43 adds r3, r0, #1 - 800965e: d102 bne.n 8009666 <_close_r+0x1a> - 8009660: 682b ldr r3, [r5, #0] - 8009662: b103 cbz r3, 8009666 <_close_r+0x1a> - 8009664: 6023 str r3, [r4, #0] - 8009666: bd38 pop {r3, r4, r5, pc} - 8009668: 2000258c .word 0x2000258c +080096a6 <__retarget_lock_acquire_recursive>: + 80096a6: 4770 bx lr -0800966c : - 800966c: b40e push {r1, r2, r3} - 800966e: b503 push {r0, r1, lr} - 8009670: 4601 mov r1, r0 - 8009672: ab03 add r3, sp, #12 - 8009674: 4805 ldr r0, [pc, #20] ; (800968c ) - 8009676: f853 2b04 ldr.w r2, [r3], #4 - 800967a: 6800 ldr r0, [r0, #0] - 800967c: 9301 str r3, [sp, #4] - 800967e: f7ff fe41 bl 8009304 <_vfiprintf_r> - 8009682: b002 add sp, #8 - 8009684: f85d eb04 ldr.w lr, [sp], #4 - 8009688: b003 add sp, #12 - 800968a: 4770 bx lr - 800968c: 2000000c .word 0x2000000c +080096a8 <__retarget_lock_release_recursive>: + 80096a8: 4770 bx lr -08009690 <_fstat_r>: - 8009690: b538 push {r3, r4, r5, lr} - 8009692: 2300 movs r3, #0 - 8009694: 4d06 ldr r5, [pc, #24] ; (80096b0 <_fstat_r+0x20>) - 8009696: 4604 mov r4, r0 - 8009698: 4608 mov r0, r1 - 800969a: 4611 mov r1, r2 - 800969c: 602b str r3, [r5, #0] - 800969e: f7f8 f98c bl 80019ba <_fstat> - 80096a2: 1c43 adds r3, r0, #1 - 80096a4: d102 bne.n 80096ac <_fstat_r+0x1c> - 80096a6: 682b ldr r3, [r5, #0] - 80096a8: b103 cbz r3, 80096ac <_fstat_r+0x1c> - 80096aa: 6023 str r3, [r4, #0] - 80096ac: bd38 pop {r3, r4, r5, pc} - 80096ae: bf00 nop - 80096b0: 2000258c .word 0x2000258c - -080096b4 <_isatty_r>: - 80096b4: b538 push {r3, r4, r5, lr} - 80096b6: 2300 movs r3, #0 - 80096b8: 4d05 ldr r5, [pc, #20] ; (80096d0 <_isatty_r+0x1c>) - 80096ba: 4604 mov r4, r0 - 80096bc: 4608 mov r0, r1 +080096aa <__swhatbuf_r>: + 80096aa: b570 push {r4, r5, r6, lr} + 80096ac: 460e mov r6, r1 + 80096ae: f9b1 100e ldrsh.w r1, [r1, #14] + 80096b2: 4614 mov r4, r2 + 80096b4: 2900 cmp r1, #0 + 80096b6: 461d mov r5, r3 + 80096b8: b096 sub sp, #88 ; 0x58 + 80096ba: da07 bge.n 80096cc <__swhatbuf_r+0x22> + 80096bc: 2300 movs r3, #0 80096be: 602b str r3, [r5, #0] - 80096c0: f7f8 f98a bl 80019d8 <_isatty> - 80096c4: 1c43 adds r3, r0, #1 - 80096c6: d102 bne.n 80096ce <_isatty_r+0x1a> - 80096c8: 682b ldr r3, [r5, #0] - 80096ca: b103 cbz r3, 80096ce <_isatty_r+0x1a> - 80096cc: 6023 str r3, [r4, #0] - 80096ce: bd38 pop {r3, r4, r5, pc} - 80096d0: 2000258c .word 0x2000258c + 80096c0: 89b3 ldrh r3, [r6, #12] + 80096c2: 061a lsls r2, r3, #24 + 80096c4: d410 bmi.n 80096e8 <__swhatbuf_r+0x3e> + 80096c6: f44f 6380 mov.w r3, #1024 ; 0x400 + 80096ca: e00e b.n 80096ea <__swhatbuf_r+0x40> + 80096cc: 466a mov r2, sp + 80096ce: f000 ff53 bl 800a578 <_fstat_r> + 80096d2: 2800 cmp r0, #0 + 80096d4: dbf2 blt.n 80096bc <__swhatbuf_r+0x12> + 80096d6: 9a01 ldr r2, [sp, #4] + 80096d8: f402 4270 and.w r2, r2, #61440 ; 0xf000 + 80096dc: f5a2 5300 sub.w r3, r2, #8192 ; 0x2000 + 80096e0: 425a negs r2, r3 + 80096e2: 415a adcs r2, r3 + 80096e4: 602a str r2, [r5, #0] + 80096e6: e7ee b.n 80096c6 <__swhatbuf_r+0x1c> + 80096e8: 2340 movs r3, #64 ; 0x40 + 80096ea: 2000 movs r0, #0 + 80096ec: 6023 str r3, [r4, #0] + 80096ee: b016 add sp, #88 ; 0x58 + 80096f0: bd70 pop {r4, r5, r6, pc} + ... -080096d4 <_lseek_r>: - 80096d4: b538 push {r3, r4, r5, lr} - 80096d6: 4604 mov r4, r0 - 80096d8: 4608 mov r0, r1 - 80096da: 4611 mov r1, r2 - 80096dc: 2200 movs r2, #0 - 80096de: 4d05 ldr r5, [pc, #20] ; (80096f4 <_lseek_r+0x20>) - 80096e0: 602a str r2, [r5, #0] - 80096e2: 461a mov r2, r3 - 80096e4: f7f8 f982 bl 80019ec <_lseek> - 80096e8: 1c43 adds r3, r0, #1 - 80096ea: d102 bne.n 80096f2 <_lseek_r+0x1e> - 80096ec: 682b ldr r3, [r5, #0] - 80096ee: b103 cbz r3, 80096f2 <_lseek_r+0x1e> - 80096f0: 6023 str r3, [r4, #0] - 80096f2: bd38 pop {r3, r4, r5, pc} - 80096f4: 2000258c .word 0x2000258c +080096f4 <__smakebuf_r>: + 80096f4: 898b ldrh r3, [r1, #12] + 80096f6: b573 push {r0, r1, r4, r5, r6, lr} + 80096f8: 079d lsls r5, r3, #30 + 80096fa: 4606 mov r6, r0 + 80096fc: 460c mov r4, r1 + 80096fe: d507 bpl.n 8009710 <__smakebuf_r+0x1c> + 8009700: f104 0347 add.w r3, r4, #71 ; 0x47 + 8009704: 6023 str r3, [r4, #0] + 8009706: 6123 str r3, [r4, #16] + 8009708: 2301 movs r3, #1 + 800970a: 6163 str r3, [r4, #20] + 800970c: b002 add sp, #8 + 800970e: bd70 pop {r4, r5, r6, pc} + 8009710: 466a mov r2, sp + 8009712: ab01 add r3, sp, #4 + 8009714: f7ff ffc9 bl 80096aa <__swhatbuf_r> + 8009718: 9900 ldr r1, [sp, #0] + 800971a: 4605 mov r5, r0 + 800971c: 4630 mov r0, r6 + 800971e: f7fe f9df bl 8007ae0 <_malloc_r> + 8009722: b948 cbnz r0, 8009738 <__smakebuf_r+0x44> + 8009724: f9b4 300c ldrsh.w r3, [r4, #12] + 8009728: 059a lsls r2, r3, #22 + 800972a: d4ef bmi.n 800970c <__smakebuf_r+0x18> + 800972c: f023 0303 bic.w r3, r3, #3 + 8009730: f043 0302 orr.w r3, r3, #2 + 8009734: 81a3 strh r3, [r4, #12] + 8009736: e7e3 b.n 8009700 <__smakebuf_r+0xc> + 8009738: 4b0d ldr r3, [pc, #52] ; (8009770 <__smakebuf_r+0x7c>) + 800973a: 62b3 str r3, [r6, #40] ; 0x28 + 800973c: 89a3 ldrh r3, [r4, #12] + 800973e: 6020 str r0, [r4, #0] + 8009740: f043 0380 orr.w r3, r3, #128 ; 0x80 + 8009744: 81a3 strh r3, [r4, #12] + 8009746: 9b00 ldr r3, [sp, #0] + 8009748: 6120 str r0, [r4, #16] + 800974a: 6163 str r3, [r4, #20] + 800974c: 9b01 ldr r3, [sp, #4] + 800974e: b15b cbz r3, 8009768 <__smakebuf_r+0x74> + 8009750: 4630 mov r0, r6 + 8009752: f9b4 100e ldrsh.w r1, [r4, #14] + 8009756: f000 ff21 bl 800a59c <_isatty_r> + 800975a: b128 cbz r0, 8009768 <__smakebuf_r+0x74> + 800975c: 89a3 ldrh r3, [r4, #12] + 800975e: f023 0303 bic.w r3, r3, #3 + 8009762: f043 0301 orr.w r3, r3, #1 + 8009766: 81a3 strh r3, [r4, #12] + 8009768: 89a0 ldrh r0, [r4, #12] + 800976a: 4305 orrs r5, r0 + 800976c: 81a5 strh r5, [r4, #12] + 800976e: e7cd b.n 800970c <__smakebuf_r+0x18> + 8009770: 080094f9 .word 0x080094f9 -080096f8 <__ascii_mbtowc>: - 80096f8: b082 sub sp, #8 - 80096fa: b901 cbnz r1, 80096fe <__ascii_mbtowc+0x6> - 80096fc: a901 add r1, sp, #4 - 80096fe: b142 cbz r2, 8009712 <__ascii_mbtowc+0x1a> - 8009700: b14b cbz r3, 8009716 <__ascii_mbtowc+0x1e> - 8009702: 7813 ldrb r3, [r2, #0] - 8009704: 600b str r3, [r1, #0] - 8009706: 7812 ldrb r2, [r2, #0] - 8009708: 1e10 subs r0, r2, #0 - 800970a: bf18 it ne - 800970c: 2001 movne r0, #1 - 800970e: b002 add sp, #8 - 8009710: 4770 bx lr - 8009712: 4610 mov r0, r2 - 8009714: e7fb b.n 800970e <__ascii_mbtowc+0x16> - 8009716: f06f 0001 mvn.w r0, #1 - 800971a: e7f8 b.n 800970e <__ascii_mbtowc+0x16> +08009774 : + 8009774: 4603 mov r3, r0 + 8009776: b510 push {r4, lr} + 8009778: b2c9 uxtb r1, r1 + 800977a: 4402 add r2, r0 + 800977c: 4293 cmp r3, r2 + 800977e: 4618 mov r0, r3 + 8009780: d101 bne.n 8009786 + 8009782: 2000 movs r0, #0 + 8009784: e003 b.n 800978e + 8009786: 7804 ldrb r4, [r0, #0] + 8009788: 3301 adds r3, #1 + 800978a: 428c cmp r4, r1 + 800978c: d1f6 bne.n 800977c + 800978e: bd10 pop {r4, pc} -0800971c : - 800971c: 4288 cmp r0, r1 - 800971e: b510 push {r4, lr} - 8009720: eb01 0402 add.w r4, r1, r2 - 8009724: d902 bls.n 800972c - 8009726: 4284 cmp r4, r0 - 8009728: 4623 mov r3, r4 - 800972a: d807 bhi.n 800973c - 800972c: 1e43 subs r3, r0, #1 - 800972e: 42a1 cmp r1, r4 - 8009730: d008 beq.n 8009744 - 8009732: f811 2b01 ldrb.w r2, [r1], #1 - 8009736: f803 2f01 strb.w r2, [r3, #1]! - 800973a: e7f8 b.n 800972e - 800973c: 4601 mov r1, r0 - 800973e: 4402 add r2, r0 - 8009740: 428a cmp r2, r1 - 8009742: d100 bne.n 8009746 - 8009744: bd10 pop {r4, pc} - 8009746: f813 4d01 ldrb.w r4, [r3, #-1]! - 800974a: f802 4d01 strb.w r4, [r2, #-1]! - 800974e: e7f7 b.n 8009740 +08009790 : + 8009790: 440a add r2, r1 + 8009792: 4291 cmp r1, r2 + 8009794: f100 33ff add.w r3, r0, #4294967295 + 8009798: d100 bne.n 800979c + 800979a: 4770 bx lr + 800979c: b510 push {r4, lr} + 800979e: f811 4b01 ldrb.w r4, [r1], #1 + 80097a2: 4291 cmp r1, r2 + 80097a4: f803 4f01 strb.w r4, [r3, #1]! + 80097a8: d1f9 bne.n 800979e + 80097aa: bd10 pop {r4, pc} -08009750 <_realloc_r>: - 8009750: b5f8 push {r3, r4, r5, r6, r7, lr} - 8009752: 4607 mov r7, r0 - 8009754: 4614 mov r4, r2 - 8009756: 460e mov r6, r1 - 8009758: b921 cbnz r1, 8009764 <_realloc_r+0x14> - 800975a: 4611 mov r1, r2 - 800975c: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} - 8009760: f7fd ba48 b.w 8006bf4 <_malloc_r> - 8009764: b922 cbnz r2, 8009770 <_realloc_r+0x20> - 8009766: f7fd f9f9 bl 8006b5c <_free_r> - 800976a: 4625 mov r5, r4 - 800976c: 4628 mov r0, r5 - 800976e: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8009770: f000 f83a bl 80097e8 <_malloc_usable_size_r> - 8009774: 42a0 cmp r0, r4 - 8009776: d20f bcs.n 8009798 <_realloc_r+0x48> - 8009778: 4621 mov r1, r4 - 800977a: 4638 mov r0, r7 - 800977c: f7fd fa3a bl 8006bf4 <_malloc_r> - 8009780: 4605 mov r5, r0 - 8009782: 2800 cmp r0, #0 - 8009784: d0f2 beq.n 800976c <_realloc_r+0x1c> - 8009786: 4631 mov r1, r6 - 8009788: 4622 mov r2, r4 - 800978a: f7ff f88d bl 80088a8 - 800978e: 4631 mov r1, r6 - 8009790: 4638 mov r0, r7 - 8009792: f7fd f9e3 bl 8006b5c <_free_r> - 8009796: e7e9 b.n 800976c <_realloc_r+0x1c> - 8009798: 4635 mov r5, r6 - 800979a: e7e7 b.n 800976c <_realloc_r+0x1c> +080097ac <__malloc_lock>: + 80097ac: 4801 ldr r0, [pc, #4] ; (80097b4 <__malloc_lock+0x8>) + 80097ae: f7ff bf7a b.w 80096a6 <__retarget_lock_acquire_recursive> + 80097b2: bf00 nop + 80097b4: 200025da .word 0x200025da -0800979c <_read_r>: - 800979c: b538 push {r3, r4, r5, lr} - 800979e: 4604 mov r4, r0 - 80097a0: 4608 mov r0, r1 - 80097a2: 4611 mov r1, r2 - 80097a4: 2200 movs r2, #0 - 80097a6: 4d05 ldr r5, [pc, #20] ; (80097bc <_read_r+0x20>) - 80097a8: 602a str r2, [r5, #0] - 80097aa: 461a mov r2, r3 - 80097ac: f7f8 f8dd bl 800196a <_read> - 80097b0: 1c43 adds r3, r0, #1 - 80097b2: d102 bne.n 80097ba <_read_r+0x1e> - 80097b4: 682b ldr r3, [r5, #0] - 80097b6: b103 cbz r3, 80097ba <_read_r+0x1e> - 80097b8: 6023 str r3, [r4, #0] - 80097ba: bd38 pop {r3, r4, r5, pc} - 80097bc: 2000258c .word 0x2000258c +080097b8 <__malloc_unlock>: + 80097b8: 4801 ldr r0, [pc, #4] ; (80097c0 <__malloc_unlock+0x8>) + 80097ba: f7ff bf75 b.w 80096a8 <__retarget_lock_release_recursive> + 80097be: bf00 nop + 80097c0: 200025da .word 0x200025da -080097c0 <__ascii_wctomb>: - 80097c0: 4603 mov r3, r0 - 80097c2: 4608 mov r0, r1 - 80097c4: b141 cbz r1, 80097d8 <__ascii_wctomb+0x18> - 80097c6: 2aff cmp r2, #255 ; 0xff - 80097c8: d904 bls.n 80097d4 <__ascii_wctomb+0x14> - 80097ca: 228a movs r2, #138 ; 0x8a - 80097cc: f04f 30ff mov.w r0, #4294967295 - 80097d0: 601a str r2, [r3, #0] - 80097d2: 4770 bx lr - 80097d4: 2001 movs r0, #1 - 80097d6: 700a strb r2, [r1, #0] - 80097d8: 4770 bx lr +080097c4 <_Balloc>: + 80097c4: b570 push {r4, r5, r6, lr} + 80097c6: 6a46 ldr r6, [r0, #36] ; 0x24 + 80097c8: 4604 mov r4, r0 + 80097ca: 460d mov r5, r1 + 80097cc: b976 cbnz r6, 80097ec <_Balloc+0x28> + 80097ce: 2010 movs r0, #16 + 80097d0: f7fe f922 bl 8007a18 + 80097d4: 4602 mov r2, r0 + 80097d6: 6260 str r0, [r4, #36] ; 0x24 + 80097d8: b920 cbnz r0, 80097e4 <_Balloc+0x20> + 80097da: 2166 movs r1, #102 ; 0x66 + 80097dc: 4b17 ldr r3, [pc, #92] ; (800983c <_Balloc+0x78>) + 80097de: 4818 ldr r0, [pc, #96] ; (8009840 <_Balloc+0x7c>) + 80097e0: f000 fe8a bl 800a4f8 <__assert_func> + 80097e4: e9c0 6601 strd r6, r6, [r0, #4] + 80097e8: 6006 str r6, [r0, #0] + 80097ea: 60c6 str r6, [r0, #12] + 80097ec: 6a66 ldr r6, [r4, #36] ; 0x24 + 80097ee: 68f3 ldr r3, [r6, #12] + 80097f0: b183 cbz r3, 8009814 <_Balloc+0x50> + 80097f2: 6a63 ldr r3, [r4, #36] ; 0x24 + 80097f4: 68db ldr r3, [r3, #12] + 80097f6: f853 0025 ldr.w r0, [r3, r5, lsl #2] + 80097fa: b9b8 cbnz r0, 800982c <_Balloc+0x68> + 80097fc: 2101 movs r1, #1 + 80097fe: fa01 f605 lsl.w r6, r1, r5 + 8009802: 1d72 adds r2, r6, #5 + 8009804: 4620 mov r0, r4 + 8009806: 0092 lsls r2, r2, #2 + 8009808: f000 fb5e bl 8009ec8 <_calloc_r> + 800980c: b160 cbz r0, 8009828 <_Balloc+0x64> + 800980e: e9c0 5601 strd r5, r6, [r0, #4] + 8009812: e00e b.n 8009832 <_Balloc+0x6e> + 8009814: 2221 movs r2, #33 ; 0x21 + 8009816: 2104 movs r1, #4 + 8009818: 4620 mov r0, r4 + 800981a: f000 fb55 bl 8009ec8 <_calloc_r> + 800981e: 6a63 ldr r3, [r4, #36] ; 0x24 + 8009820: 60f0 str r0, [r6, #12] + 8009822: 68db ldr r3, [r3, #12] + 8009824: 2b00 cmp r3, #0 + 8009826: d1e4 bne.n 80097f2 <_Balloc+0x2e> + 8009828: 2000 movs r0, #0 + 800982a: bd70 pop {r4, r5, r6, pc} + 800982c: 6802 ldr r2, [r0, #0] + 800982e: f843 2025 str.w r2, [r3, r5, lsl #2] + 8009832: 2300 movs r3, #0 + 8009834: e9c0 3303 strd r3, r3, [r0, #12] + 8009838: e7f7 b.n 800982a <_Balloc+0x66> + 800983a: bf00 nop + 800983c: 0800b3a1 .word 0x0800b3a1 + 8009840: 0800b488 .word 0x0800b488 -080097da : - 80097da: 2006 movs r0, #6 - 80097dc: b508 push {r3, lr} - 80097de: f000 f833 bl 8009848 - 80097e2: 2001 movs r0, #1 - 80097e4: f7f8 f8b7 bl 8001956 <_exit> +08009844 <_Bfree>: + 8009844: b570 push {r4, r5, r6, lr} + 8009846: 6a46 ldr r6, [r0, #36] ; 0x24 + 8009848: 4605 mov r5, r0 + 800984a: 460c mov r4, r1 + 800984c: b976 cbnz r6, 800986c <_Bfree+0x28> + 800984e: 2010 movs r0, #16 + 8009850: f7fe f8e2 bl 8007a18 + 8009854: 4602 mov r2, r0 + 8009856: 6268 str r0, [r5, #36] ; 0x24 + 8009858: b920 cbnz r0, 8009864 <_Bfree+0x20> + 800985a: 218a movs r1, #138 ; 0x8a + 800985c: 4b08 ldr r3, [pc, #32] ; (8009880 <_Bfree+0x3c>) + 800985e: 4809 ldr r0, [pc, #36] ; (8009884 <_Bfree+0x40>) + 8009860: f000 fe4a bl 800a4f8 <__assert_func> + 8009864: e9c0 6601 strd r6, r6, [r0, #4] + 8009868: 6006 str r6, [r0, #0] + 800986a: 60c6 str r6, [r0, #12] + 800986c: b13c cbz r4, 800987e <_Bfree+0x3a> + 800986e: 6a6b ldr r3, [r5, #36] ; 0x24 + 8009870: 6862 ldr r2, [r4, #4] + 8009872: 68db ldr r3, [r3, #12] + 8009874: f853 1022 ldr.w r1, [r3, r2, lsl #2] + 8009878: 6021 str r1, [r4, #0] + 800987a: f843 4022 str.w r4, [r3, r2, lsl #2] + 800987e: bd70 pop {r4, r5, r6, pc} + 8009880: 0800b3a1 .word 0x0800b3a1 + 8009884: 0800b488 .word 0x0800b488 -080097e8 <_malloc_usable_size_r>: - 80097e8: f851 3c04 ldr.w r3, [r1, #-4] - 80097ec: 1f18 subs r0, r3, #4 - 80097ee: 2b00 cmp r3, #0 - 80097f0: bfbc itt lt - 80097f2: 580b ldrlt r3, [r1, r0] - 80097f4: 18c0 addlt r0, r0, r3 - 80097f6: 4770 bx lr +08009888 <__multadd>: + 8009888: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} + 800988c: 4698 mov r8, r3 + 800988e: 460c mov r4, r1 + 8009890: 2300 movs r3, #0 + 8009892: 690e ldr r6, [r1, #16] + 8009894: 4607 mov r7, r0 + 8009896: f101 0014 add.w r0, r1, #20 + 800989a: 6805 ldr r5, [r0, #0] + 800989c: 3301 adds r3, #1 + 800989e: b2a9 uxth r1, r5 + 80098a0: fb02 8101 mla r1, r2, r1, r8 + 80098a4: 0c2d lsrs r5, r5, #16 + 80098a6: ea4f 4c11 mov.w ip, r1, lsr #16 + 80098aa: fb02 c505 mla r5, r2, r5, ip + 80098ae: b289 uxth r1, r1 + 80098b0: eb01 4105 add.w r1, r1, r5, lsl #16 + 80098b4: 429e cmp r6, r3 + 80098b6: ea4f 4815 mov.w r8, r5, lsr #16 + 80098ba: f840 1b04 str.w r1, [r0], #4 + 80098be: dcec bgt.n 800989a <__multadd+0x12> + 80098c0: f1b8 0f00 cmp.w r8, #0 + 80098c4: d022 beq.n 800990c <__multadd+0x84> + 80098c6: 68a3 ldr r3, [r4, #8] + 80098c8: 42b3 cmp r3, r6 + 80098ca: dc19 bgt.n 8009900 <__multadd+0x78> + 80098cc: 6861 ldr r1, [r4, #4] + 80098ce: 4638 mov r0, r7 + 80098d0: 3101 adds r1, #1 + 80098d2: f7ff ff77 bl 80097c4 <_Balloc> + 80098d6: 4605 mov r5, r0 + 80098d8: b928 cbnz r0, 80098e6 <__multadd+0x5e> + 80098da: 4602 mov r2, r0 + 80098dc: 21b5 movs r1, #181 ; 0xb5 + 80098de: 4b0d ldr r3, [pc, #52] ; (8009914 <__multadd+0x8c>) + 80098e0: 480d ldr r0, [pc, #52] ; (8009918 <__multadd+0x90>) + 80098e2: f000 fe09 bl 800a4f8 <__assert_func> + 80098e6: 6922 ldr r2, [r4, #16] + 80098e8: f104 010c add.w r1, r4, #12 + 80098ec: 3202 adds r2, #2 + 80098ee: 0092 lsls r2, r2, #2 + 80098f0: 300c adds r0, #12 + 80098f2: f7ff ff4d bl 8009790 + 80098f6: 4621 mov r1, r4 + 80098f8: 4638 mov r0, r7 + 80098fa: f7ff ffa3 bl 8009844 <_Bfree> + 80098fe: 462c mov r4, r5 + 8009900: eb04 0386 add.w r3, r4, r6, lsl #2 + 8009904: 3601 adds r6, #1 + 8009906: f8c3 8014 str.w r8, [r3, #20] + 800990a: 6126 str r6, [r4, #16] + 800990c: 4620 mov r0, r4 + 800990e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} + 8009912: bf00 nop + 8009914: 0800b417 .word 0x0800b417 + 8009918: 0800b488 .word 0x0800b488 -080097f8 <_raise_r>: - 80097f8: 291f cmp r1, #31 - 80097fa: b538 push {r3, r4, r5, lr} - 80097fc: 4604 mov r4, r0 - 80097fe: 460d mov r5, r1 - 8009800: d904 bls.n 800980c <_raise_r+0x14> - 8009802: 2316 movs r3, #22 - 8009804: 6003 str r3, [r0, #0] - 8009806: f04f 30ff mov.w r0, #4294967295 - 800980a: bd38 pop {r3, r4, r5, pc} - 800980c: 6c42 ldr r2, [r0, #68] ; 0x44 - 800980e: b112 cbz r2, 8009816 <_raise_r+0x1e> - 8009810: f852 3021 ldr.w r3, [r2, r1, lsl #2] - 8009814: b94b cbnz r3, 800982a <_raise_r+0x32> - 8009816: 4620 mov r0, r4 - 8009818: f000 f830 bl 800987c <_getpid_r> - 800981c: 462a mov r2, r5 - 800981e: 4601 mov r1, r0 - 8009820: 4620 mov r0, r4 - 8009822: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 8009826: f000 b817 b.w 8009858 <_kill_r> - 800982a: 2b01 cmp r3, #1 - 800982c: d00a beq.n 8009844 <_raise_r+0x4c> - 800982e: 1c59 adds r1, r3, #1 - 8009830: d103 bne.n 800983a <_raise_r+0x42> - 8009832: 2316 movs r3, #22 - 8009834: 6003 str r3, [r0, #0] - 8009836: 2001 movs r0, #1 - 8009838: e7e7 b.n 800980a <_raise_r+0x12> - 800983a: 2400 movs r4, #0 - 800983c: 4628 mov r0, r5 - 800983e: f842 4025 str.w r4, [r2, r5, lsl #2] - 8009842: 4798 blx r3 - 8009844: 2000 movs r0, #0 - 8009846: e7e0 b.n 800980a <_raise_r+0x12> +0800991c <__hi0bits>: + 800991c: 0c02 lsrs r2, r0, #16 + 800991e: 0412 lsls r2, r2, #16 + 8009920: 4603 mov r3, r0 + 8009922: b9ca cbnz r2, 8009958 <__hi0bits+0x3c> + 8009924: 0403 lsls r3, r0, #16 + 8009926: 2010 movs r0, #16 + 8009928: f013 4f7f tst.w r3, #4278190080 ; 0xff000000 + 800992c: bf04 itt eq + 800992e: 021b lsleq r3, r3, #8 + 8009930: 3008 addeq r0, #8 + 8009932: f013 4f70 tst.w r3, #4026531840 ; 0xf0000000 + 8009936: bf04 itt eq + 8009938: 011b lsleq r3, r3, #4 + 800993a: 3004 addeq r0, #4 + 800993c: f013 4f40 tst.w r3, #3221225472 ; 0xc0000000 + 8009940: bf04 itt eq + 8009942: 009b lsleq r3, r3, #2 + 8009944: 3002 addeq r0, #2 + 8009946: 2b00 cmp r3, #0 + 8009948: db05 blt.n 8009956 <__hi0bits+0x3a> + 800994a: f013 4f80 tst.w r3, #1073741824 ; 0x40000000 + 800994e: f100 0001 add.w r0, r0, #1 + 8009952: bf08 it eq + 8009954: 2020 moveq r0, #32 + 8009956: 4770 bx lr + 8009958: 2000 movs r0, #0 + 800995a: e7e5 b.n 8009928 <__hi0bits+0xc> -08009848 : - 8009848: 4b02 ldr r3, [pc, #8] ; (8009854 ) - 800984a: 4601 mov r1, r0 - 800984c: 6818 ldr r0, [r3, #0] - 800984e: f7ff bfd3 b.w 80097f8 <_raise_r> - 8009852: bf00 nop - 8009854: 2000000c .word 0x2000000c +0800995c <__lo0bits>: + 800995c: 6803 ldr r3, [r0, #0] + 800995e: 4602 mov r2, r0 + 8009960: f013 0007 ands.w r0, r3, #7 + 8009964: d00b beq.n 800997e <__lo0bits+0x22> + 8009966: 07d9 lsls r1, r3, #31 + 8009968: d422 bmi.n 80099b0 <__lo0bits+0x54> + 800996a: 0798 lsls r0, r3, #30 + 800996c: bf49 itett mi + 800996e: 085b lsrmi r3, r3, #1 + 8009970: 089b lsrpl r3, r3, #2 + 8009972: 2001 movmi r0, #1 + 8009974: 6013 strmi r3, [r2, #0] + 8009976: bf5c itt pl + 8009978: 2002 movpl r0, #2 + 800997a: 6013 strpl r3, [r2, #0] + 800997c: 4770 bx lr + 800997e: b299 uxth r1, r3 + 8009980: b909 cbnz r1, 8009986 <__lo0bits+0x2a> + 8009982: 2010 movs r0, #16 + 8009984: 0c1b lsrs r3, r3, #16 + 8009986: f013 0fff tst.w r3, #255 ; 0xff + 800998a: bf04 itt eq + 800998c: 0a1b lsreq r3, r3, #8 + 800998e: 3008 addeq r0, #8 + 8009990: 0719 lsls r1, r3, #28 + 8009992: bf04 itt eq + 8009994: 091b lsreq r3, r3, #4 + 8009996: 3004 addeq r0, #4 + 8009998: 0799 lsls r1, r3, #30 + 800999a: bf04 itt eq + 800999c: 089b lsreq r3, r3, #2 + 800999e: 3002 addeq r0, #2 + 80099a0: 07d9 lsls r1, r3, #31 + 80099a2: d403 bmi.n 80099ac <__lo0bits+0x50> + 80099a4: 085b lsrs r3, r3, #1 + 80099a6: f100 0001 add.w r0, r0, #1 + 80099aa: d003 beq.n 80099b4 <__lo0bits+0x58> + 80099ac: 6013 str r3, [r2, #0] + 80099ae: 4770 bx lr + 80099b0: 2000 movs r0, #0 + 80099b2: 4770 bx lr + 80099b4: 2020 movs r0, #32 + 80099b6: 4770 bx lr -08009858 <_kill_r>: - 8009858: b538 push {r3, r4, r5, lr} - 800985a: 2300 movs r3, #0 - 800985c: 4d06 ldr r5, [pc, #24] ; (8009878 <_kill_r+0x20>) - 800985e: 4604 mov r4, r0 - 8009860: 4608 mov r0, r1 - 8009862: 4611 mov r1, r2 - 8009864: 602b str r3, [r5, #0] - 8009866: f7f8 f866 bl 8001936 <_kill> - 800986a: 1c43 adds r3, r0, #1 - 800986c: d102 bne.n 8009874 <_kill_r+0x1c> - 800986e: 682b ldr r3, [r5, #0] - 8009870: b103 cbz r3, 8009874 <_kill_r+0x1c> - 8009872: 6023 str r3, [r4, #0] - 8009874: bd38 pop {r3, r4, r5, pc} - 8009876: bf00 nop - 8009878: 2000258c .word 0x2000258c +080099b8 <__i2b>: + 80099b8: b510 push {r4, lr} + 80099ba: 460c mov r4, r1 + 80099bc: 2101 movs r1, #1 + 80099be: f7ff ff01 bl 80097c4 <_Balloc> + 80099c2: 4602 mov r2, r0 + 80099c4: b928 cbnz r0, 80099d2 <__i2b+0x1a> + 80099c6: f44f 71a0 mov.w r1, #320 ; 0x140 + 80099ca: 4b04 ldr r3, [pc, #16] ; (80099dc <__i2b+0x24>) + 80099cc: 4804 ldr r0, [pc, #16] ; (80099e0 <__i2b+0x28>) + 80099ce: f000 fd93 bl 800a4f8 <__assert_func> + 80099d2: 2301 movs r3, #1 + 80099d4: 6144 str r4, [r0, #20] + 80099d6: 6103 str r3, [r0, #16] + 80099d8: bd10 pop {r4, pc} + 80099da: bf00 nop + 80099dc: 0800b417 .word 0x0800b417 + 80099e0: 0800b488 .word 0x0800b488 -0800987c <_getpid_r>: - 800987c: f7f8 b854 b.w 8001928 <_getpid> +080099e4 <__multiply>: + 80099e4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 80099e8: 4614 mov r4, r2 + 80099ea: 690a ldr r2, [r1, #16] + 80099ec: 6923 ldr r3, [r4, #16] + 80099ee: 460d mov r5, r1 + 80099f0: 429a cmp r2, r3 + 80099f2: bfbe ittt lt + 80099f4: 460b movlt r3, r1 + 80099f6: 4625 movlt r5, r4 + 80099f8: 461c movlt r4, r3 + 80099fa: f8d5 a010 ldr.w sl, [r5, #16] + 80099fe: f8d4 9010 ldr.w r9, [r4, #16] + 8009a02: 68ab ldr r3, [r5, #8] + 8009a04: 6869 ldr r1, [r5, #4] + 8009a06: eb0a 0709 add.w r7, sl, r9 + 8009a0a: 42bb cmp r3, r7 + 8009a0c: b085 sub sp, #20 + 8009a0e: bfb8 it lt + 8009a10: 3101 addlt r1, #1 + 8009a12: f7ff fed7 bl 80097c4 <_Balloc> + 8009a16: b930 cbnz r0, 8009a26 <__multiply+0x42> + 8009a18: 4602 mov r2, r0 + 8009a1a: f240 115d movw r1, #349 ; 0x15d + 8009a1e: 4b41 ldr r3, [pc, #260] ; (8009b24 <__multiply+0x140>) + 8009a20: 4841 ldr r0, [pc, #260] ; (8009b28 <__multiply+0x144>) + 8009a22: f000 fd69 bl 800a4f8 <__assert_func> + 8009a26: f100 0614 add.w r6, r0, #20 + 8009a2a: 4633 mov r3, r6 + 8009a2c: 2200 movs r2, #0 + 8009a2e: eb06 0887 add.w r8, r6, r7, lsl #2 + 8009a32: 4543 cmp r3, r8 + 8009a34: d31e bcc.n 8009a74 <__multiply+0x90> + 8009a36: f105 0c14 add.w ip, r5, #20 + 8009a3a: f104 0314 add.w r3, r4, #20 + 8009a3e: eb0c 0c8a add.w ip, ip, sl, lsl #2 + 8009a42: eb03 0289 add.w r2, r3, r9, lsl #2 + 8009a46: 9202 str r2, [sp, #8] + 8009a48: ebac 0205 sub.w r2, ip, r5 + 8009a4c: 3a15 subs r2, #21 + 8009a4e: f022 0203 bic.w r2, r2, #3 + 8009a52: 3204 adds r2, #4 + 8009a54: f105 0115 add.w r1, r5, #21 + 8009a58: 458c cmp ip, r1 + 8009a5a: bf38 it cc + 8009a5c: 2204 movcc r2, #4 + 8009a5e: 9201 str r2, [sp, #4] + 8009a60: 9a02 ldr r2, [sp, #8] + 8009a62: 9303 str r3, [sp, #12] + 8009a64: 429a cmp r2, r3 + 8009a66: d808 bhi.n 8009a7a <__multiply+0x96> + 8009a68: 2f00 cmp r7, #0 + 8009a6a: dc55 bgt.n 8009b18 <__multiply+0x134> + 8009a6c: 6107 str r7, [r0, #16] + 8009a6e: b005 add sp, #20 + 8009a70: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 8009a74: f843 2b04 str.w r2, [r3], #4 + 8009a78: e7db b.n 8009a32 <__multiply+0x4e> + 8009a7a: f8b3 a000 ldrh.w sl, [r3] + 8009a7e: f1ba 0f00 cmp.w sl, #0 + 8009a82: d020 beq.n 8009ac6 <__multiply+0xe2> + 8009a84: 46b1 mov r9, r6 + 8009a86: 2200 movs r2, #0 + 8009a88: f105 0e14 add.w lr, r5, #20 + 8009a8c: f85e 4b04 ldr.w r4, [lr], #4 + 8009a90: f8d9 b000 ldr.w fp, [r9] + 8009a94: b2a1 uxth r1, r4 + 8009a96: fa1f fb8b uxth.w fp, fp + 8009a9a: fb0a b101 mla r1, sl, r1, fp + 8009a9e: 4411 add r1, r2 + 8009aa0: f8d9 2000 ldr.w r2, [r9] + 8009aa4: 0c24 lsrs r4, r4, #16 + 8009aa6: 0c12 lsrs r2, r2, #16 + 8009aa8: fb0a 2404 mla r4, sl, r4, r2 + 8009aac: eb04 4411 add.w r4, r4, r1, lsr #16 + 8009ab0: b289 uxth r1, r1 + 8009ab2: ea41 4104 orr.w r1, r1, r4, lsl #16 + 8009ab6: 45f4 cmp ip, lr + 8009ab8: ea4f 4214 mov.w r2, r4, lsr #16 + 8009abc: f849 1b04 str.w r1, [r9], #4 + 8009ac0: d8e4 bhi.n 8009a8c <__multiply+0xa8> + 8009ac2: 9901 ldr r1, [sp, #4] + 8009ac4: 5072 str r2, [r6, r1] + 8009ac6: 9a03 ldr r2, [sp, #12] + 8009ac8: 3304 adds r3, #4 + 8009aca: f8b2 9002 ldrh.w r9, [r2, #2] + 8009ace: f1b9 0f00 cmp.w r9, #0 + 8009ad2: d01f beq.n 8009b14 <__multiply+0x130> + 8009ad4: 46b6 mov lr, r6 + 8009ad6: f04f 0a00 mov.w sl, #0 + 8009ada: 6834 ldr r4, [r6, #0] + 8009adc: f105 0114 add.w r1, r5, #20 + 8009ae0: 880a ldrh r2, [r1, #0] + 8009ae2: f8be b002 ldrh.w fp, [lr, #2] + 8009ae6: b2a4 uxth r4, r4 + 8009ae8: fb09 b202 mla r2, r9, r2, fp + 8009aec: 4492 add sl, r2 + 8009aee: ea44 440a orr.w r4, r4, sl, lsl #16 + 8009af2: f84e 4b04 str.w r4, [lr], #4 + 8009af6: f851 4b04 ldr.w r4, [r1], #4 + 8009afa: f8be 2000 ldrh.w r2, [lr] + 8009afe: 0c24 lsrs r4, r4, #16 + 8009b00: fb09 2404 mla r4, r9, r4, r2 + 8009b04: 458c cmp ip, r1 + 8009b06: eb04 441a add.w r4, r4, sl, lsr #16 + 8009b0a: ea4f 4a14 mov.w sl, r4, lsr #16 + 8009b0e: d8e7 bhi.n 8009ae0 <__multiply+0xfc> + 8009b10: 9a01 ldr r2, [sp, #4] + 8009b12: 50b4 str r4, [r6, r2] + 8009b14: 3604 adds r6, #4 + 8009b16: e7a3 b.n 8009a60 <__multiply+0x7c> + 8009b18: f858 3d04 ldr.w r3, [r8, #-4]! + 8009b1c: 2b00 cmp r3, #0 + 8009b1e: d1a5 bne.n 8009a6c <__multiply+0x88> + 8009b20: 3f01 subs r7, #1 + 8009b22: e7a1 b.n 8009a68 <__multiply+0x84> + 8009b24: 0800b417 .word 0x0800b417 + 8009b28: 0800b488 .word 0x0800b488 -08009880 <_init>: - 8009880: b5f8 push {r3, r4, r5, r6, r7, lr} - 8009882: bf00 nop - 8009884: bcf8 pop {r3, r4, r5, r6, r7} - 8009886: bc08 pop {r3} - 8009888: 469e mov lr, r3 - 800988a: 4770 bx lr +08009b2c <__pow5mult>: + 8009b2c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + 8009b30: 4615 mov r5, r2 + 8009b32: f012 0203 ands.w r2, r2, #3 + 8009b36: 4606 mov r6, r0 + 8009b38: 460f mov r7, r1 + 8009b3a: d007 beq.n 8009b4c <__pow5mult+0x20> + 8009b3c: 4c25 ldr r4, [pc, #148] ; (8009bd4 <__pow5mult+0xa8>) + 8009b3e: 3a01 subs r2, #1 + 8009b40: 2300 movs r3, #0 + 8009b42: f854 2022 ldr.w r2, [r4, r2, lsl #2] + 8009b46: f7ff fe9f bl 8009888 <__multadd> + 8009b4a: 4607 mov r7, r0 + 8009b4c: 10ad asrs r5, r5, #2 + 8009b4e: d03d beq.n 8009bcc <__pow5mult+0xa0> + 8009b50: 6a74 ldr r4, [r6, #36] ; 0x24 + 8009b52: b97c cbnz r4, 8009b74 <__pow5mult+0x48> + 8009b54: 2010 movs r0, #16 + 8009b56: f7fd ff5f bl 8007a18 + 8009b5a: 4602 mov r2, r0 + 8009b5c: 6270 str r0, [r6, #36] ; 0x24 + 8009b5e: b928 cbnz r0, 8009b6c <__pow5mult+0x40> + 8009b60: f44f 71d7 mov.w r1, #430 ; 0x1ae + 8009b64: 4b1c ldr r3, [pc, #112] ; (8009bd8 <__pow5mult+0xac>) + 8009b66: 481d ldr r0, [pc, #116] ; (8009bdc <__pow5mult+0xb0>) + 8009b68: f000 fcc6 bl 800a4f8 <__assert_func> + 8009b6c: e9c0 4401 strd r4, r4, [r0, #4] + 8009b70: 6004 str r4, [r0, #0] + 8009b72: 60c4 str r4, [r0, #12] + 8009b74: f8d6 8024 ldr.w r8, [r6, #36] ; 0x24 + 8009b78: f8d8 4008 ldr.w r4, [r8, #8] + 8009b7c: b94c cbnz r4, 8009b92 <__pow5mult+0x66> + 8009b7e: f240 2171 movw r1, #625 ; 0x271 + 8009b82: 4630 mov r0, r6 + 8009b84: f7ff ff18 bl 80099b8 <__i2b> + 8009b88: 2300 movs r3, #0 + 8009b8a: 4604 mov r4, r0 + 8009b8c: f8c8 0008 str.w r0, [r8, #8] + 8009b90: 6003 str r3, [r0, #0] + 8009b92: f04f 0900 mov.w r9, #0 + 8009b96: 07eb lsls r3, r5, #31 + 8009b98: d50a bpl.n 8009bb0 <__pow5mult+0x84> + 8009b9a: 4639 mov r1, r7 + 8009b9c: 4622 mov r2, r4 + 8009b9e: 4630 mov r0, r6 + 8009ba0: f7ff ff20 bl 80099e4 <__multiply> + 8009ba4: 4680 mov r8, r0 + 8009ba6: 4639 mov r1, r7 + 8009ba8: 4630 mov r0, r6 + 8009baa: f7ff fe4b bl 8009844 <_Bfree> + 8009bae: 4647 mov r7, r8 + 8009bb0: 106d asrs r5, r5, #1 + 8009bb2: d00b beq.n 8009bcc <__pow5mult+0xa0> + 8009bb4: 6820 ldr r0, [r4, #0] + 8009bb6: b938 cbnz r0, 8009bc8 <__pow5mult+0x9c> + 8009bb8: 4622 mov r2, r4 + 8009bba: 4621 mov r1, r4 + 8009bbc: 4630 mov r0, r6 + 8009bbe: f7ff ff11 bl 80099e4 <__multiply> + 8009bc2: 6020 str r0, [r4, #0] + 8009bc4: f8c0 9000 str.w r9, [r0] + 8009bc8: 4604 mov r4, r0 + 8009bca: e7e4 b.n 8009b96 <__pow5mult+0x6a> + 8009bcc: 4638 mov r0, r7 + 8009bce: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} + 8009bd2: bf00 nop + 8009bd4: 0800b5d8 .word 0x0800b5d8 + 8009bd8: 0800b3a1 .word 0x0800b3a1 + 8009bdc: 0800b488 .word 0x0800b488 -0800988c <_fini>: - 800988c: b5f8 push {r3, r4, r5, r6, r7, lr} - 800988e: bf00 nop - 8009890: bcf8 pop {r3, r4, r5, r6, r7} - 8009892: bc08 pop {r3} - 8009894: 469e mov lr, r3 - 8009896: 4770 bx lr +08009be0 <__lshift>: + 8009be0: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 8009be4: 460c mov r4, r1 + 8009be6: 4607 mov r7, r0 + 8009be8: 4691 mov r9, r2 + 8009bea: 6923 ldr r3, [r4, #16] + 8009bec: 6849 ldr r1, [r1, #4] + 8009bee: eb03 1862 add.w r8, r3, r2, asr #5 + 8009bf2: 68a3 ldr r3, [r4, #8] + 8009bf4: ea4f 1a62 mov.w sl, r2, asr #5 + 8009bf8: f108 0601 add.w r6, r8, #1 + 8009bfc: 42b3 cmp r3, r6 + 8009bfe: db0b blt.n 8009c18 <__lshift+0x38> + 8009c00: 4638 mov r0, r7 + 8009c02: f7ff fddf bl 80097c4 <_Balloc> + 8009c06: 4605 mov r5, r0 + 8009c08: b948 cbnz r0, 8009c1e <__lshift+0x3e> + 8009c0a: 4602 mov r2, r0 + 8009c0c: f240 11d9 movw r1, #473 ; 0x1d9 + 8009c10: 4b27 ldr r3, [pc, #156] ; (8009cb0 <__lshift+0xd0>) + 8009c12: 4828 ldr r0, [pc, #160] ; (8009cb4 <__lshift+0xd4>) + 8009c14: f000 fc70 bl 800a4f8 <__assert_func> + 8009c18: 3101 adds r1, #1 + 8009c1a: 005b lsls r3, r3, #1 + 8009c1c: e7ee b.n 8009bfc <__lshift+0x1c> + 8009c1e: 2300 movs r3, #0 + 8009c20: f100 0114 add.w r1, r0, #20 + 8009c24: f100 0210 add.w r2, r0, #16 + 8009c28: 4618 mov r0, r3 + 8009c2a: 4553 cmp r3, sl + 8009c2c: db33 blt.n 8009c96 <__lshift+0xb6> + 8009c2e: 6920 ldr r0, [r4, #16] + 8009c30: ea2a 7aea bic.w sl, sl, sl, asr #31 + 8009c34: f104 0314 add.w r3, r4, #20 + 8009c38: f019 091f ands.w r9, r9, #31 + 8009c3c: eb01 018a add.w r1, r1, sl, lsl #2 + 8009c40: eb03 0c80 add.w ip, r3, r0, lsl #2 + 8009c44: d02b beq.n 8009c9e <__lshift+0xbe> + 8009c46: 468a mov sl, r1 + 8009c48: 2200 movs r2, #0 + 8009c4a: f1c9 0e20 rsb lr, r9, #32 + 8009c4e: 6818 ldr r0, [r3, #0] + 8009c50: fa00 f009 lsl.w r0, r0, r9 + 8009c54: 4302 orrs r2, r0 + 8009c56: f84a 2b04 str.w r2, [sl], #4 + 8009c5a: f853 2b04 ldr.w r2, [r3], #4 + 8009c5e: 459c cmp ip, r3 + 8009c60: fa22 f20e lsr.w r2, r2, lr + 8009c64: d8f3 bhi.n 8009c4e <__lshift+0x6e> + 8009c66: ebac 0304 sub.w r3, ip, r4 + 8009c6a: 3b15 subs r3, #21 + 8009c6c: f023 0303 bic.w r3, r3, #3 + 8009c70: 3304 adds r3, #4 + 8009c72: f104 0015 add.w r0, r4, #21 + 8009c76: 4584 cmp ip, r0 + 8009c78: bf38 it cc + 8009c7a: 2304 movcc r3, #4 + 8009c7c: 50ca str r2, [r1, r3] + 8009c7e: b10a cbz r2, 8009c84 <__lshift+0xa4> + 8009c80: f108 0602 add.w r6, r8, #2 + 8009c84: 3e01 subs r6, #1 + 8009c86: 4638 mov r0, r7 + 8009c88: 4621 mov r1, r4 + 8009c8a: 612e str r6, [r5, #16] + 8009c8c: f7ff fdda bl 8009844 <_Bfree> + 8009c90: 4628 mov r0, r5 + 8009c92: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8009c96: f842 0f04 str.w r0, [r2, #4]! + 8009c9a: 3301 adds r3, #1 + 8009c9c: e7c5 b.n 8009c2a <__lshift+0x4a> + 8009c9e: 3904 subs r1, #4 + 8009ca0: f853 2b04 ldr.w r2, [r3], #4 + 8009ca4: 459c cmp ip, r3 + 8009ca6: f841 2f04 str.w r2, [r1, #4]! + 8009caa: d8f9 bhi.n 8009ca0 <__lshift+0xc0> + 8009cac: e7ea b.n 8009c84 <__lshift+0xa4> + 8009cae: bf00 nop + 8009cb0: 0800b417 .word 0x0800b417 + 8009cb4: 0800b488 .word 0x0800b488 + +08009cb8 <__mcmp>: + 8009cb8: 4603 mov r3, r0 + 8009cba: 690a ldr r2, [r1, #16] + 8009cbc: 6900 ldr r0, [r0, #16] + 8009cbe: b530 push {r4, r5, lr} + 8009cc0: 1a80 subs r0, r0, r2 + 8009cc2: d10d bne.n 8009ce0 <__mcmp+0x28> + 8009cc4: 3314 adds r3, #20 + 8009cc6: 3114 adds r1, #20 + 8009cc8: eb03 0482 add.w r4, r3, r2, lsl #2 + 8009ccc: eb01 0182 add.w r1, r1, r2, lsl #2 + 8009cd0: f854 5d04 ldr.w r5, [r4, #-4]! + 8009cd4: f851 2d04 ldr.w r2, [r1, #-4]! + 8009cd8: 4295 cmp r5, r2 + 8009cda: d002 beq.n 8009ce2 <__mcmp+0x2a> + 8009cdc: d304 bcc.n 8009ce8 <__mcmp+0x30> + 8009cde: 2001 movs r0, #1 + 8009ce0: bd30 pop {r4, r5, pc} + 8009ce2: 42a3 cmp r3, r4 + 8009ce4: d3f4 bcc.n 8009cd0 <__mcmp+0x18> + 8009ce6: e7fb b.n 8009ce0 <__mcmp+0x28> + 8009ce8: f04f 30ff mov.w r0, #4294967295 + 8009cec: e7f8 b.n 8009ce0 <__mcmp+0x28> + ... + +08009cf0 <__mdiff>: + 8009cf0: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} + 8009cf4: 460c mov r4, r1 + 8009cf6: 4606 mov r6, r0 + 8009cf8: 4611 mov r1, r2 + 8009cfa: 4620 mov r0, r4 + 8009cfc: 4692 mov sl, r2 + 8009cfe: f7ff ffdb bl 8009cb8 <__mcmp> + 8009d02: 1e05 subs r5, r0, #0 + 8009d04: d111 bne.n 8009d2a <__mdiff+0x3a> + 8009d06: 4629 mov r1, r5 + 8009d08: 4630 mov r0, r6 + 8009d0a: f7ff fd5b bl 80097c4 <_Balloc> + 8009d0e: 4602 mov r2, r0 + 8009d10: b928 cbnz r0, 8009d1e <__mdiff+0x2e> + 8009d12: f240 2132 movw r1, #562 ; 0x232 + 8009d16: 4b3c ldr r3, [pc, #240] ; (8009e08 <__mdiff+0x118>) + 8009d18: 483c ldr r0, [pc, #240] ; (8009e0c <__mdiff+0x11c>) + 8009d1a: f000 fbed bl 800a4f8 <__assert_func> + 8009d1e: 2301 movs r3, #1 + 8009d20: e9c0 3504 strd r3, r5, [r0, #16] + 8009d24: 4610 mov r0, r2 + 8009d26: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} + 8009d2a: bfa4 itt ge + 8009d2c: 4653 movge r3, sl + 8009d2e: 46a2 movge sl, r4 + 8009d30: 4630 mov r0, r6 + 8009d32: f8da 1004 ldr.w r1, [sl, #4] + 8009d36: bfa6 itte ge + 8009d38: 461c movge r4, r3 + 8009d3a: 2500 movge r5, #0 + 8009d3c: 2501 movlt r5, #1 + 8009d3e: f7ff fd41 bl 80097c4 <_Balloc> + 8009d42: 4602 mov r2, r0 + 8009d44: b918 cbnz r0, 8009d4e <__mdiff+0x5e> + 8009d46: f44f 7110 mov.w r1, #576 ; 0x240 + 8009d4a: 4b2f ldr r3, [pc, #188] ; (8009e08 <__mdiff+0x118>) + 8009d4c: e7e4 b.n 8009d18 <__mdiff+0x28> + 8009d4e: f100 0814 add.w r8, r0, #20 + 8009d52: f8da 7010 ldr.w r7, [sl, #16] + 8009d56: 60c5 str r5, [r0, #12] + 8009d58: f04f 0c00 mov.w ip, #0 + 8009d5c: f10a 0514 add.w r5, sl, #20 + 8009d60: f10a 0010 add.w r0, sl, #16 + 8009d64: 46c2 mov sl, r8 + 8009d66: 6926 ldr r6, [r4, #16] + 8009d68: f104 0914 add.w r9, r4, #20 + 8009d6c: eb05 0e87 add.w lr, r5, r7, lsl #2 + 8009d70: eb09 0686 add.w r6, r9, r6, lsl #2 + 8009d74: f850 bf04 ldr.w fp, [r0, #4]! + 8009d78: f859 3b04 ldr.w r3, [r9], #4 + 8009d7c: fa1f f18b uxth.w r1, fp + 8009d80: 4461 add r1, ip + 8009d82: fa1f fc83 uxth.w ip, r3 + 8009d86: 0c1b lsrs r3, r3, #16 + 8009d88: eba1 010c sub.w r1, r1, ip + 8009d8c: ebc3 431b rsb r3, r3, fp, lsr #16 + 8009d90: eb03 4321 add.w r3, r3, r1, asr #16 + 8009d94: b289 uxth r1, r1 + 8009d96: ea4f 4c23 mov.w ip, r3, asr #16 + 8009d9a: 454e cmp r6, r9 + 8009d9c: ea41 4303 orr.w r3, r1, r3, lsl #16 + 8009da0: f84a 3b04 str.w r3, [sl], #4 + 8009da4: d8e6 bhi.n 8009d74 <__mdiff+0x84> + 8009da6: 1b33 subs r3, r6, r4 + 8009da8: 3b15 subs r3, #21 + 8009daa: f023 0303 bic.w r3, r3, #3 + 8009dae: 3415 adds r4, #21 + 8009db0: 3304 adds r3, #4 + 8009db2: 42a6 cmp r6, r4 + 8009db4: bf38 it cc + 8009db6: 2304 movcc r3, #4 + 8009db8: 441d add r5, r3 + 8009dba: 4443 add r3, r8 + 8009dbc: 461e mov r6, r3 + 8009dbe: 462c mov r4, r5 + 8009dc0: 4574 cmp r4, lr + 8009dc2: d30e bcc.n 8009de2 <__mdiff+0xf2> + 8009dc4: f10e 0103 add.w r1, lr, #3 + 8009dc8: 1b49 subs r1, r1, r5 + 8009dca: f021 0103 bic.w r1, r1, #3 + 8009dce: 3d03 subs r5, #3 + 8009dd0: 45ae cmp lr, r5 + 8009dd2: bf38 it cc + 8009dd4: 2100 movcc r1, #0 + 8009dd6: 4419 add r1, r3 + 8009dd8: f851 3d04 ldr.w r3, [r1, #-4]! + 8009ddc: b18b cbz r3, 8009e02 <__mdiff+0x112> + 8009dde: 6117 str r7, [r2, #16] + 8009de0: e7a0 b.n 8009d24 <__mdiff+0x34> + 8009de2: f854 8b04 ldr.w r8, [r4], #4 + 8009de6: fa1f f188 uxth.w r1, r8 + 8009dea: 4461 add r1, ip + 8009dec: 1408 asrs r0, r1, #16 + 8009dee: eb00 4018 add.w r0, r0, r8, lsr #16 + 8009df2: b289 uxth r1, r1 + 8009df4: ea41 4100 orr.w r1, r1, r0, lsl #16 + 8009df8: ea4f 4c20 mov.w ip, r0, asr #16 + 8009dfc: f846 1b04 str.w r1, [r6], #4 + 8009e00: e7de b.n 8009dc0 <__mdiff+0xd0> + 8009e02: 3f01 subs r7, #1 + 8009e04: e7e8 b.n 8009dd8 <__mdiff+0xe8> + 8009e06: bf00 nop + 8009e08: 0800b417 .word 0x0800b417 + 8009e0c: 0800b488 .word 0x0800b488 + +08009e10 <__d2b>: + 8009e10: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} + 8009e14: 2101 movs r1, #1 + 8009e16: e9dd 7608 ldrd r7, r6, [sp, #32] + 8009e1a: 4690 mov r8, r2 + 8009e1c: 461d mov r5, r3 + 8009e1e: f7ff fcd1 bl 80097c4 <_Balloc> + 8009e22: 4604 mov r4, r0 + 8009e24: b930 cbnz r0, 8009e34 <__d2b+0x24> + 8009e26: 4602 mov r2, r0 + 8009e28: f240 310a movw r1, #778 ; 0x30a + 8009e2c: 4b24 ldr r3, [pc, #144] ; (8009ec0 <__d2b+0xb0>) + 8009e2e: 4825 ldr r0, [pc, #148] ; (8009ec4 <__d2b+0xb4>) + 8009e30: f000 fb62 bl 800a4f8 <__assert_func> + 8009e34: f3c5 0313 ubfx r3, r5, #0, #20 + 8009e38: f3c5 550a ubfx r5, r5, #20, #11 + 8009e3c: bb2d cbnz r5, 8009e8a <__d2b+0x7a> + 8009e3e: 9301 str r3, [sp, #4] + 8009e40: f1b8 0300 subs.w r3, r8, #0 + 8009e44: d026 beq.n 8009e94 <__d2b+0x84> + 8009e46: 4668 mov r0, sp + 8009e48: 9300 str r3, [sp, #0] + 8009e4a: f7ff fd87 bl 800995c <__lo0bits> + 8009e4e: 9900 ldr r1, [sp, #0] + 8009e50: b1f0 cbz r0, 8009e90 <__d2b+0x80> + 8009e52: 9a01 ldr r2, [sp, #4] + 8009e54: f1c0 0320 rsb r3, r0, #32 + 8009e58: fa02 f303 lsl.w r3, r2, r3 + 8009e5c: 430b orrs r3, r1 + 8009e5e: 40c2 lsrs r2, r0 + 8009e60: 6163 str r3, [r4, #20] + 8009e62: 9201 str r2, [sp, #4] + 8009e64: 9b01 ldr r3, [sp, #4] + 8009e66: 2b00 cmp r3, #0 + 8009e68: bf14 ite ne + 8009e6a: 2102 movne r1, #2 + 8009e6c: 2101 moveq r1, #1 + 8009e6e: 61a3 str r3, [r4, #24] + 8009e70: 6121 str r1, [r4, #16] + 8009e72: b1c5 cbz r5, 8009ea6 <__d2b+0x96> + 8009e74: f2a5 4533 subw r5, r5, #1075 ; 0x433 + 8009e78: 4405 add r5, r0 + 8009e7a: f1c0 0035 rsb r0, r0, #53 ; 0x35 + 8009e7e: 603d str r5, [r7, #0] + 8009e80: 6030 str r0, [r6, #0] + 8009e82: 4620 mov r0, r4 + 8009e84: b002 add sp, #8 + 8009e86: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} + 8009e8a: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 + 8009e8e: e7d6 b.n 8009e3e <__d2b+0x2e> + 8009e90: 6161 str r1, [r4, #20] + 8009e92: e7e7 b.n 8009e64 <__d2b+0x54> + 8009e94: a801 add r0, sp, #4 + 8009e96: f7ff fd61 bl 800995c <__lo0bits> + 8009e9a: 2101 movs r1, #1 + 8009e9c: 9b01 ldr r3, [sp, #4] + 8009e9e: 6121 str r1, [r4, #16] + 8009ea0: 6163 str r3, [r4, #20] + 8009ea2: 3020 adds r0, #32 + 8009ea4: e7e5 b.n 8009e72 <__d2b+0x62> + 8009ea6: eb04 0381 add.w r3, r4, r1, lsl #2 + 8009eaa: f2a0 4032 subw r0, r0, #1074 ; 0x432 + 8009eae: 6038 str r0, [r7, #0] + 8009eb0: 6918 ldr r0, [r3, #16] + 8009eb2: f7ff fd33 bl 800991c <__hi0bits> + 8009eb6: ebc0 1141 rsb r1, r0, r1, lsl #5 + 8009eba: 6031 str r1, [r6, #0] + 8009ebc: e7e1 b.n 8009e82 <__d2b+0x72> + 8009ebe: bf00 nop + 8009ec0: 0800b417 .word 0x0800b417 + 8009ec4: 0800b488 .word 0x0800b488 + +08009ec8 <_calloc_r>: + 8009ec8: b538 push {r3, r4, r5, lr} + 8009eca: fb02 f501 mul.w r5, r2, r1 + 8009ece: 4629 mov r1, r5 + 8009ed0: f7fd fe06 bl 8007ae0 <_malloc_r> + 8009ed4: 4604 mov r4, r0 + 8009ed6: b118 cbz r0, 8009ee0 <_calloc_r+0x18> + 8009ed8: 462a mov r2, r5 + 8009eda: 2100 movs r1, #0 + 8009edc: f7fd fdac bl 8007a38 + 8009ee0: 4620 mov r0, r4 + 8009ee2: bd38 pop {r3, r4, r5, pc} + +08009ee4 <__ssputs_r>: + 8009ee4: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 8009ee8: 688e ldr r6, [r1, #8] + 8009eea: 4682 mov sl, r0 + 8009eec: 429e cmp r6, r3 + 8009eee: 460c mov r4, r1 + 8009ef0: 4690 mov r8, r2 + 8009ef2: 461f mov r7, r3 + 8009ef4: d838 bhi.n 8009f68 <__ssputs_r+0x84> + 8009ef6: 898a ldrh r2, [r1, #12] + 8009ef8: f412 6f90 tst.w r2, #1152 ; 0x480 + 8009efc: d032 beq.n 8009f64 <__ssputs_r+0x80> + 8009efe: 6825 ldr r5, [r4, #0] + 8009f00: 6909 ldr r1, [r1, #16] + 8009f02: 3301 adds r3, #1 + 8009f04: eba5 0901 sub.w r9, r5, r1 + 8009f08: 6965 ldr r5, [r4, #20] + 8009f0a: 444b add r3, r9 + 8009f0c: eb05 0545 add.w r5, r5, r5, lsl #1 + 8009f10: eb05 75d5 add.w r5, r5, r5, lsr #31 + 8009f14: 106d asrs r5, r5, #1 + 8009f16: 429d cmp r5, r3 + 8009f18: bf38 it cc + 8009f1a: 461d movcc r5, r3 + 8009f1c: 0553 lsls r3, r2, #21 + 8009f1e: d531 bpl.n 8009f84 <__ssputs_r+0xa0> + 8009f20: 4629 mov r1, r5 + 8009f22: f7fd fddd bl 8007ae0 <_malloc_r> + 8009f26: 4606 mov r6, r0 + 8009f28: b950 cbnz r0, 8009f40 <__ssputs_r+0x5c> + 8009f2a: 230c movs r3, #12 + 8009f2c: f04f 30ff mov.w r0, #4294967295 + 8009f30: f8ca 3000 str.w r3, [sl] + 8009f34: 89a3 ldrh r3, [r4, #12] + 8009f36: f043 0340 orr.w r3, r3, #64 ; 0x40 + 8009f3a: 81a3 strh r3, [r4, #12] + 8009f3c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8009f40: 464a mov r2, r9 + 8009f42: 6921 ldr r1, [r4, #16] + 8009f44: f7ff fc24 bl 8009790 + 8009f48: 89a3 ldrh r3, [r4, #12] + 8009f4a: f423 6390 bic.w r3, r3, #1152 ; 0x480 + 8009f4e: f043 0380 orr.w r3, r3, #128 ; 0x80 + 8009f52: 81a3 strh r3, [r4, #12] + 8009f54: 6126 str r6, [r4, #16] + 8009f56: 444e add r6, r9 + 8009f58: 6026 str r6, [r4, #0] + 8009f5a: 463e mov r6, r7 + 8009f5c: 6165 str r5, [r4, #20] + 8009f5e: eba5 0509 sub.w r5, r5, r9 + 8009f62: 60a5 str r5, [r4, #8] + 8009f64: 42be cmp r6, r7 + 8009f66: d900 bls.n 8009f6a <__ssputs_r+0x86> + 8009f68: 463e mov r6, r7 + 8009f6a: 4632 mov r2, r6 + 8009f6c: 4641 mov r1, r8 + 8009f6e: 6820 ldr r0, [r4, #0] + 8009f70: f000 fb48 bl 800a604 + 8009f74: 68a3 ldr r3, [r4, #8] + 8009f76: 6822 ldr r2, [r4, #0] + 8009f78: 1b9b subs r3, r3, r6 + 8009f7a: 4432 add r2, r6 + 8009f7c: 2000 movs r0, #0 + 8009f7e: 60a3 str r3, [r4, #8] + 8009f80: 6022 str r2, [r4, #0] + 8009f82: e7db b.n 8009f3c <__ssputs_r+0x58> + 8009f84: 462a mov r2, r5 + 8009f86: f000 fb57 bl 800a638 <_realloc_r> + 8009f8a: 4606 mov r6, r0 + 8009f8c: 2800 cmp r0, #0 + 8009f8e: d1e1 bne.n 8009f54 <__ssputs_r+0x70> + 8009f90: 4650 mov r0, sl + 8009f92: 6921 ldr r1, [r4, #16] + 8009f94: f7fd fd58 bl 8007a48 <_free_r> + 8009f98: e7c7 b.n 8009f2a <__ssputs_r+0x46> + ... + +08009f9c <_svfiprintf_r>: + 8009f9c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 8009fa0: 4698 mov r8, r3 + 8009fa2: 898b ldrh r3, [r1, #12] + 8009fa4: 4607 mov r7, r0 + 8009fa6: 061b lsls r3, r3, #24 + 8009fa8: 460d mov r5, r1 + 8009faa: 4614 mov r4, r2 + 8009fac: b09d sub sp, #116 ; 0x74 + 8009fae: d50e bpl.n 8009fce <_svfiprintf_r+0x32> + 8009fb0: 690b ldr r3, [r1, #16] + 8009fb2: b963 cbnz r3, 8009fce <_svfiprintf_r+0x32> + 8009fb4: 2140 movs r1, #64 ; 0x40 + 8009fb6: f7fd fd93 bl 8007ae0 <_malloc_r> + 8009fba: 6028 str r0, [r5, #0] + 8009fbc: 6128 str r0, [r5, #16] + 8009fbe: b920 cbnz r0, 8009fca <_svfiprintf_r+0x2e> + 8009fc0: 230c movs r3, #12 + 8009fc2: 603b str r3, [r7, #0] + 8009fc4: f04f 30ff mov.w r0, #4294967295 + 8009fc8: e0d1 b.n 800a16e <_svfiprintf_r+0x1d2> + 8009fca: 2340 movs r3, #64 ; 0x40 + 8009fcc: 616b str r3, [r5, #20] + 8009fce: 2300 movs r3, #0 + 8009fd0: 9309 str r3, [sp, #36] ; 0x24 + 8009fd2: 2320 movs r3, #32 + 8009fd4: f88d 3029 strb.w r3, [sp, #41] ; 0x29 + 8009fd8: 2330 movs r3, #48 ; 0x30 + 8009fda: f04f 0901 mov.w r9, #1 + 8009fde: f8cd 800c str.w r8, [sp, #12] + 8009fe2: f8df 81a4 ldr.w r8, [pc, #420] ; 800a188 <_svfiprintf_r+0x1ec> + 8009fe6: f88d 302a strb.w r3, [sp, #42] ; 0x2a + 8009fea: 4623 mov r3, r4 + 8009fec: 469a mov sl, r3 + 8009fee: f813 2b01 ldrb.w r2, [r3], #1 + 8009ff2: b10a cbz r2, 8009ff8 <_svfiprintf_r+0x5c> + 8009ff4: 2a25 cmp r2, #37 ; 0x25 + 8009ff6: d1f9 bne.n 8009fec <_svfiprintf_r+0x50> + 8009ff8: ebba 0b04 subs.w fp, sl, r4 + 8009ffc: d00b beq.n 800a016 <_svfiprintf_r+0x7a> + 8009ffe: 465b mov r3, fp + 800a000: 4622 mov r2, r4 + 800a002: 4629 mov r1, r5 + 800a004: 4638 mov r0, r7 + 800a006: f7ff ff6d bl 8009ee4 <__ssputs_r> + 800a00a: 3001 adds r0, #1 + 800a00c: f000 80aa beq.w 800a164 <_svfiprintf_r+0x1c8> + 800a010: 9a09 ldr r2, [sp, #36] ; 0x24 + 800a012: 445a add r2, fp + 800a014: 9209 str r2, [sp, #36] ; 0x24 + 800a016: f89a 3000 ldrb.w r3, [sl] + 800a01a: 2b00 cmp r3, #0 + 800a01c: f000 80a2 beq.w 800a164 <_svfiprintf_r+0x1c8> + 800a020: 2300 movs r3, #0 + 800a022: f04f 32ff mov.w r2, #4294967295 + 800a026: e9cd 2305 strd r2, r3, [sp, #20] + 800a02a: f10a 0a01 add.w sl, sl, #1 + 800a02e: 9304 str r3, [sp, #16] + 800a030: 9307 str r3, [sp, #28] + 800a032: f88d 3053 strb.w r3, [sp, #83] ; 0x53 + 800a036: 931a str r3, [sp, #104] ; 0x68 + 800a038: 4654 mov r4, sl + 800a03a: 2205 movs r2, #5 + 800a03c: f814 1b01 ldrb.w r1, [r4], #1 + 800a040: 4851 ldr r0, [pc, #324] ; (800a188 <_svfiprintf_r+0x1ec>) + 800a042: f7ff fb97 bl 8009774 + 800a046: 9a04 ldr r2, [sp, #16] + 800a048: b9d8 cbnz r0, 800a082 <_svfiprintf_r+0xe6> + 800a04a: 06d0 lsls r0, r2, #27 + 800a04c: bf44 itt mi + 800a04e: 2320 movmi r3, #32 + 800a050: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 + 800a054: 0711 lsls r1, r2, #28 + 800a056: bf44 itt mi + 800a058: 232b movmi r3, #43 ; 0x2b + 800a05a: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 + 800a05e: f89a 3000 ldrb.w r3, [sl] + 800a062: 2b2a cmp r3, #42 ; 0x2a + 800a064: d015 beq.n 800a092 <_svfiprintf_r+0xf6> + 800a066: 4654 mov r4, sl + 800a068: 2000 movs r0, #0 + 800a06a: f04f 0c0a mov.w ip, #10 + 800a06e: 9a07 ldr r2, [sp, #28] + 800a070: 4621 mov r1, r4 + 800a072: f811 3b01 ldrb.w r3, [r1], #1 + 800a076: 3b30 subs r3, #48 ; 0x30 + 800a078: 2b09 cmp r3, #9 + 800a07a: d94e bls.n 800a11a <_svfiprintf_r+0x17e> + 800a07c: b1b0 cbz r0, 800a0ac <_svfiprintf_r+0x110> + 800a07e: 9207 str r2, [sp, #28] + 800a080: e014 b.n 800a0ac <_svfiprintf_r+0x110> + 800a082: eba0 0308 sub.w r3, r0, r8 + 800a086: fa09 f303 lsl.w r3, r9, r3 + 800a08a: 4313 orrs r3, r2 + 800a08c: 46a2 mov sl, r4 + 800a08e: 9304 str r3, [sp, #16] + 800a090: e7d2 b.n 800a038 <_svfiprintf_r+0x9c> + 800a092: 9b03 ldr r3, [sp, #12] + 800a094: 1d19 adds r1, r3, #4 + 800a096: 681b ldr r3, [r3, #0] + 800a098: 9103 str r1, [sp, #12] + 800a09a: 2b00 cmp r3, #0 + 800a09c: bfbb ittet lt + 800a09e: 425b neglt r3, r3 + 800a0a0: f042 0202 orrlt.w r2, r2, #2 + 800a0a4: 9307 strge r3, [sp, #28] + 800a0a6: 9307 strlt r3, [sp, #28] + 800a0a8: bfb8 it lt + 800a0aa: 9204 strlt r2, [sp, #16] + 800a0ac: 7823 ldrb r3, [r4, #0] + 800a0ae: 2b2e cmp r3, #46 ; 0x2e + 800a0b0: d10c bne.n 800a0cc <_svfiprintf_r+0x130> + 800a0b2: 7863 ldrb r3, [r4, #1] + 800a0b4: 2b2a cmp r3, #42 ; 0x2a + 800a0b6: d135 bne.n 800a124 <_svfiprintf_r+0x188> + 800a0b8: 9b03 ldr r3, [sp, #12] + 800a0ba: 3402 adds r4, #2 + 800a0bc: 1d1a adds r2, r3, #4 + 800a0be: 681b ldr r3, [r3, #0] + 800a0c0: 9203 str r2, [sp, #12] + 800a0c2: 2b00 cmp r3, #0 + 800a0c4: bfb8 it lt + 800a0c6: f04f 33ff movlt.w r3, #4294967295 + 800a0ca: 9305 str r3, [sp, #20] + 800a0cc: f8df a0c8 ldr.w sl, [pc, #200] ; 800a198 <_svfiprintf_r+0x1fc> + 800a0d0: 2203 movs r2, #3 + 800a0d2: 4650 mov r0, sl + 800a0d4: 7821 ldrb r1, [r4, #0] + 800a0d6: f7ff fb4d bl 8009774 + 800a0da: b140 cbz r0, 800a0ee <_svfiprintf_r+0x152> + 800a0dc: 2340 movs r3, #64 ; 0x40 + 800a0de: eba0 000a sub.w r0, r0, sl + 800a0e2: fa03 f000 lsl.w r0, r3, r0 + 800a0e6: 9b04 ldr r3, [sp, #16] + 800a0e8: 3401 adds r4, #1 + 800a0ea: 4303 orrs r3, r0 + 800a0ec: 9304 str r3, [sp, #16] + 800a0ee: f814 1b01 ldrb.w r1, [r4], #1 + 800a0f2: 2206 movs r2, #6 + 800a0f4: 4825 ldr r0, [pc, #148] ; (800a18c <_svfiprintf_r+0x1f0>) + 800a0f6: f88d 1028 strb.w r1, [sp, #40] ; 0x28 + 800a0fa: f7ff fb3b bl 8009774 + 800a0fe: 2800 cmp r0, #0 + 800a100: d038 beq.n 800a174 <_svfiprintf_r+0x1d8> + 800a102: 4b23 ldr r3, [pc, #140] ; (800a190 <_svfiprintf_r+0x1f4>) + 800a104: bb1b cbnz r3, 800a14e <_svfiprintf_r+0x1b2> + 800a106: 9b03 ldr r3, [sp, #12] + 800a108: 3307 adds r3, #7 + 800a10a: f023 0307 bic.w r3, r3, #7 + 800a10e: 3308 adds r3, #8 + 800a110: 9303 str r3, [sp, #12] + 800a112: 9b09 ldr r3, [sp, #36] ; 0x24 + 800a114: 4433 add r3, r6 + 800a116: 9309 str r3, [sp, #36] ; 0x24 + 800a118: e767 b.n 8009fea <_svfiprintf_r+0x4e> + 800a11a: 460c mov r4, r1 + 800a11c: 2001 movs r0, #1 + 800a11e: fb0c 3202 mla r2, ip, r2, r3 + 800a122: e7a5 b.n 800a070 <_svfiprintf_r+0xd4> + 800a124: 2300 movs r3, #0 + 800a126: f04f 0c0a mov.w ip, #10 + 800a12a: 4619 mov r1, r3 + 800a12c: 3401 adds r4, #1 + 800a12e: 9305 str r3, [sp, #20] + 800a130: 4620 mov r0, r4 + 800a132: f810 2b01 ldrb.w r2, [r0], #1 + 800a136: 3a30 subs r2, #48 ; 0x30 + 800a138: 2a09 cmp r2, #9 + 800a13a: d903 bls.n 800a144 <_svfiprintf_r+0x1a8> + 800a13c: 2b00 cmp r3, #0 + 800a13e: d0c5 beq.n 800a0cc <_svfiprintf_r+0x130> + 800a140: 9105 str r1, [sp, #20] + 800a142: e7c3 b.n 800a0cc <_svfiprintf_r+0x130> + 800a144: 4604 mov r4, r0 + 800a146: 2301 movs r3, #1 + 800a148: fb0c 2101 mla r1, ip, r1, r2 + 800a14c: e7f0 b.n 800a130 <_svfiprintf_r+0x194> + 800a14e: ab03 add r3, sp, #12 + 800a150: 9300 str r3, [sp, #0] + 800a152: 462a mov r2, r5 + 800a154: 4638 mov r0, r7 + 800a156: 4b0f ldr r3, [pc, #60] ; (800a194 <_svfiprintf_r+0x1f8>) + 800a158: a904 add r1, sp, #16 + 800a15a: f7fd fdb9 bl 8007cd0 <_printf_float> + 800a15e: 1c42 adds r2, r0, #1 + 800a160: 4606 mov r6, r0 + 800a162: d1d6 bne.n 800a112 <_svfiprintf_r+0x176> + 800a164: 89ab ldrh r3, [r5, #12] + 800a166: 065b lsls r3, r3, #25 + 800a168: f53f af2c bmi.w 8009fc4 <_svfiprintf_r+0x28> + 800a16c: 9809 ldr r0, [sp, #36] ; 0x24 + 800a16e: b01d add sp, #116 ; 0x74 + 800a170: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 800a174: ab03 add r3, sp, #12 + 800a176: 9300 str r3, [sp, #0] + 800a178: 462a mov r2, r5 + 800a17a: 4638 mov r0, r7 + 800a17c: 4b05 ldr r3, [pc, #20] ; (800a194 <_svfiprintf_r+0x1f8>) + 800a17e: a904 add r1, sp, #16 + 800a180: f7fe f842 bl 8008208 <_printf_i> + 800a184: e7eb b.n 800a15e <_svfiprintf_r+0x1c2> + 800a186: bf00 nop + 800a188: 0800b5e4 .word 0x0800b5e4 + 800a18c: 0800b5ee .word 0x0800b5ee + 800a190: 08007cd1 .word 0x08007cd1 + 800a194: 08009ee5 .word 0x08009ee5 + 800a198: 0800b5ea .word 0x0800b5ea + +0800a19c <__sfputc_r>: + 800a19c: 6893 ldr r3, [r2, #8] + 800a19e: b410 push {r4} + 800a1a0: 3b01 subs r3, #1 + 800a1a2: 2b00 cmp r3, #0 + 800a1a4: 6093 str r3, [r2, #8] + 800a1a6: da07 bge.n 800a1b8 <__sfputc_r+0x1c> + 800a1a8: 6994 ldr r4, [r2, #24] + 800a1aa: 42a3 cmp r3, r4 + 800a1ac: db01 blt.n 800a1b2 <__sfputc_r+0x16> + 800a1ae: 290a cmp r1, #10 + 800a1b0: d102 bne.n 800a1b8 <__sfputc_r+0x1c> + 800a1b2: bc10 pop {r4} + 800a1b4: f7fe b97e b.w 80084b4 <__swbuf_r> + 800a1b8: 6813 ldr r3, [r2, #0] + 800a1ba: 1c58 adds r0, r3, #1 + 800a1bc: 6010 str r0, [r2, #0] + 800a1be: 7019 strb r1, [r3, #0] + 800a1c0: 4608 mov r0, r1 + 800a1c2: bc10 pop {r4} + 800a1c4: 4770 bx lr + +0800a1c6 <__sfputs_r>: + 800a1c6: b5f8 push {r3, r4, r5, r6, r7, lr} + 800a1c8: 4606 mov r6, r0 + 800a1ca: 460f mov r7, r1 + 800a1cc: 4614 mov r4, r2 + 800a1ce: 18d5 adds r5, r2, r3 + 800a1d0: 42ac cmp r4, r5 + 800a1d2: d101 bne.n 800a1d8 <__sfputs_r+0x12> + 800a1d4: 2000 movs r0, #0 + 800a1d6: e007 b.n 800a1e8 <__sfputs_r+0x22> + 800a1d8: 463a mov r2, r7 + 800a1da: 4630 mov r0, r6 + 800a1dc: f814 1b01 ldrb.w r1, [r4], #1 + 800a1e0: f7ff ffdc bl 800a19c <__sfputc_r> + 800a1e4: 1c43 adds r3, r0, #1 + 800a1e6: d1f3 bne.n 800a1d0 <__sfputs_r+0xa> + 800a1e8: bdf8 pop {r3, r4, r5, r6, r7, pc} + ... + +0800a1ec <_vfiprintf_r>: + 800a1ec: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + 800a1f0: 460d mov r5, r1 + 800a1f2: 4614 mov r4, r2 + 800a1f4: 4698 mov r8, r3 + 800a1f6: 4606 mov r6, r0 + 800a1f8: b09d sub sp, #116 ; 0x74 + 800a1fa: b118 cbz r0, 800a204 <_vfiprintf_r+0x18> + 800a1fc: 6983 ldr r3, [r0, #24] + 800a1fe: b90b cbnz r3, 800a204 <_vfiprintf_r+0x18> + 800a200: f7ff f9ae bl 8009560 <__sinit> + 800a204: 4b89 ldr r3, [pc, #548] ; (800a42c <_vfiprintf_r+0x240>) + 800a206: 429d cmp r5, r3 + 800a208: d11b bne.n 800a242 <_vfiprintf_r+0x56> + 800a20a: 6875 ldr r5, [r6, #4] + 800a20c: 6e6b ldr r3, [r5, #100] ; 0x64 + 800a20e: 07d9 lsls r1, r3, #31 + 800a210: d405 bmi.n 800a21e <_vfiprintf_r+0x32> + 800a212: 89ab ldrh r3, [r5, #12] + 800a214: 059a lsls r2, r3, #22 + 800a216: d402 bmi.n 800a21e <_vfiprintf_r+0x32> + 800a218: 6da8 ldr r0, [r5, #88] ; 0x58 + 800a21a: f7ff fa44 bl 80096a6 <__retarget_lock_acquire_recursive> + 800a21e: 89ab ldrh r3, [r5, #12] + 800a220: 071b lsls r3, r3, #28 + 800a222: d501 bpl.n 800a228 <_vfiprintf_r+0x3c> + 800a224: 692b ldr r3, [r5, #16] + 800a226: b9eb cbnz r3, 800a264 <_vfiprintf_r+0x78> + 800a228: 4629 mov r1, r5 + 800a22a: 4630 mov r0, r6 + 800a22c: f7fe f994 bl 8008558 <__swsetup_r> + 800a230: b1c0 cbz r0, 800a264 <_vfiprintf_r+0x78> + 800a232: 6e6b ldr r3, [r5, #100] ; 0x64 + 800a234: 07dc lsls r4, r3, #31 + 800a236: d50e bpl.n 800a256 <_vfiprintf_r+0x6a> + 800a238: f04f 30ff mov.w r0, #4294967295 + 800a23c: b01d add sp, #116 ; 0x74 + 800a23e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + 800a242: 4b7b ldr r3, [pc, #492] ; (800a430 <_vfiprintf_r+0x244>) + 800a244: 429d cmp r5, r3 + 800a246: d101 bne.n 800a24c <_vfiprintf_r+0x60> + 800a248: 68b5 ldr r5, [r6, #8] + 800a24a: e7df b.n 800a20c <_vfiprintf_r+0x20> + 800a24c: 4b79 ldr r3, [pc, #484] ; (800a434 <_vfiprintf_r+0x248>) + 800a24e: 429d cmp r5, r3 + 800a250: bf08 it eq + 800a252: 68f5 ldreq r5, [r6, #12] + 800a254: e7da b.n 800a20c <_vfiprintf_r+0x20> + 800a256: 89ab ldrh r3, [r5, #12] + 800a258: 0598 lsls r0, r3, #22 + 800a25a: d4ed bmi.n 800a238 <_vfiprintf_r+0x4c> + 800a25c: 6da8 ldr r0, [r5, #88] ; 0x58 + 800a25e: f7ff fa23 bl 80096a8 <__retarget_lock_release_recursive> + 800a262: e7e9 b.n 800a238 <_vfiprintf_r+0x4c> + 800a264: 2300 movs r3, #0 + 800a266: 9309 str r3, [sp, #36] ; 0x24 + 800a268: 2320 movs r3, #32 + 800a26a: f88d 3029 strb.w r3, [sp, #41] ; 0x29 + 800a26e: 2330 movs r3, #48 ; 0x30 + 800a270: f04f 0901 mov.w r9, #1 + 800a274: f8cd 800c str.w r8, [sp, #12] + 800a278: f8df 81bc ldr.w r8, [pc, #444] ; 800a438 <_vfiprintf_r+0x24c> + 800a27c: f88d 302a strb.w r3, [sp, #42] ; 0x2a + 800a280: 4623 mov r3, r4 + 800a282: 469a mov sl, r3 + 800a284: f813 2b01 ldrb.w r2, [r3], #1 + 800a288: b10a cbz r2, 800a28e <_vfiprintf_r+0xa2> + 800a28a: 2a25 cmp r2, #37 ; 0x25 + 800a28c: d1f9 bne.n 800a282 <_vfiprintf_r+0x96> + 800a28e: ebba 0b04 subs.w fp, sl, r4 + 800a292: d00b beq.n 800a2ac <_vfiprintf_r+0xc0> + 800a294: 465b mov r3, fp + 800a296: 4622 mov r2, r4 + 800a298: 4629 mov r1, r5 + 800a29a: 4630 mov r0, r6 + 800a29c: f7ff ff93 bl 800a1c6 <__sfputs_r> + 800a2a0: 3001 adds r0, #1 + 800a2a2: f000 80aa beq.w 800a3fa <_vfiprintf_r+0x20e> + 800a2a6: 9a09 ldr r2, [sp, #36] ; 0x24 + 800a2a8: 445a add r2, fp + 800a2aa: 9209 str r2, [sp, #36] ; 0x24 + 800a2ac: f89a 3000 ldrb.w r3, [sl] + 800a2b0: 2b00 cmp r3, #0 + 800a2b2: f000 80a2 beq.w 800a3fa <_vfiprintf_r+0x20e> + 800a2b6: 2300 movs r3, #0 + 800a2b8: f04f 32ff mov.w r2, #4294967295 + 800a2bc: e9cd 2305 strd r2, r3, [sp, #20] + 800a2c0: f10a 0a01 add.w sl, sl, #1 + 800a2c4: 9304 str r3, [sp, #16] + 800a2c6: 9307 str r3, [sp, #28] + 800a2c8: f88d 3053 strb.w r3, [sp, #83] ; 0x53 + 800a2cc: 931a str r3, [sp, #104] ; 0x68 + 800a2ce: 4654 mov r4, sl + 800a2d0: 2205 movs r2, #5 + 800a2d2: f814 1b01 ldrb.w r1, [r4], #1 + 800a2d6: 4858 ldr r0, [pc, #352] ; (800a438 <_vfiprintf_r+0x24c>) + 800a2d8: f7ff fa4c bl 8009774 + 800a2dc: 9a04 ldr r2, [sp, #16] + 800a2de: b9d8 cbnz r0, 800a318 <_vfiprintf_r+0x12c> + 800a2e0: 06d1 lsls r1, r2, #27 + 800a2e2: bf44 itt mi + 800a2e4: 2320 movmi r3, #32 + 800a2e6: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 + 800a2ea: 0713 lsls r3, r2, #28 + 800a2ec: bf44 itt mi + 800a2ee: 232b movmi r3, #43 ; 0x2b + 800a2f0: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 + 800a2f4: f89a 3000 ldrb.w r3, [sl] + 800a2f8: 2b2a cmp r3, #42 ; 0x2a + 800a2fa: d015 beq.n 800a328 <_vfiprintf_r+0x13c> + 800a2fc: 4654 mov r4, sl + 800a2fe: 2000 movs r0, #0 + 800a300: f04f 0c0a mov.w ip, #10 + 800a304: 9a07 ldr r2, [sp, #28] + 800a306: 4621 mov r1, r4 + 800a308: f811 3b01 ldrb.w r3, [r1], #1 + 800a30c: 3b30 subs r3, #48 ; 0x30 + 800a30e: 2b09 cmp r3, #9 + 800a310: d94e bls.n 800a3b0 <_vfiprintf_r+0x1c4> + 800a312: b1b0 cbz r0, 800a342 <_vfiprintf_r+0x156> + 800a314: 9207 str r2, [sp, #28] + 800a316: e014 b.n 800a342 <_vfiprintf_r+0x156> + 800a318: eba0 0308 sub.w r3, r0, r8 + 800a31c: fa09 f303 lsl.w r3, r9, r3 + 800a320: 4313 orrs r3, r2 + 800a322: 46a2 mov sl, r4 + 800a324: 9304 str r3, [sp, #16] + 800a326: e7d2 b.n 800a2ce <_vfiprintf_r+0xe2> + 800a328: 9b03 ldr r3, [sp, #12] + 800a32a: 1d19 adds r1, r3, #4 + 800a32c: 681b ldr r3, [r3, #0] + 800a32e: 9103 str r1, [sp, #12] + 800a330: 2b00 cmp r3, #0 + 800a332: bfbb ittet lt + 800a334: 425b neglt r3, r3 + 800a336: f042 0202 orrlt.w r2, r2, #2 + 800a33a: 9307 strge r3, [sp, #28] + 800a33c: 9307 strlt r3, [sp, #28] + 800a33e: bfb8 it lt + 800a340: 9204 strlt r2, [sp, #16] + 800a342: 7823 ldrb r3, [r4, #0] + 800a344: 2b2e cmp r3, #46 ; 0x2e + 800a346: d10c bne.n 800a362 <_vfiprintf_r+0x176> + 800a348: 7863 ldrb r3, [r4, #1] + 800a34a: 2b2a cmp r3, #42 ; 0x2a + 800a34c: d135 bne.n 800a3ba <_vfiprintf_r+0x1ce> + 800a34e: 9b03 ldr r3, [sp, #12] + 800a350: 3402 adds r4, #2 + 800a352: 1d1a adds r2, r3, #4 + 800a354: 681b ldr r3, [r3, #0] + 800a356: 9203 str r2, [sp, #12] + 800a358: 2b00 cmp r3, #0 + 800a35a: bfb8 it lt + 800a35c: f04f 33ff movlt.w r3, #4294967295 + 800a360: 9305 str r3, [sp, #20] + 800a362: f8df a0e4 ldr.w sl, [pc, #228] ; 800a448 <_vfiprintf_r+0x25c> + 800a366: 2203 movs r2, #3 + 800a368: 4650 mov r0, sl + 800a36a: 7821 ldrb r1, [r4, #0] + 800a36c: f7ff fa02 bl 8009774 + 800a370: b140 cbz r0, 800a384 <_vfiprintf_r+0x198> + 800a372: 2340 movs r3, #64 ; 0x40 + 800a374: eba0 000a sub.w r0, r0, sl + 800a378: fa03 f000 lsl.w r0, r3, r0 + 800a37c: 9b04 ldr r3, [sp, #16] + 800a37e: 3401 adds r4, #1 + 800a380: 4303 orrs r3, r0 + 800a382: 9304 str r3, [sp, #16] + 800a384: f814 1b01 ldrb.w r1, [r4], #1 + 800a388: 2206 movs r2, #6 + 800a38a: 482c ldr r0, [pc, #176] ; (800a43c <_vfiprintf_r+0x250>) + 800a38c: f88d 1028 strb.w r1, [sp, #40] ; 0x28 + 800a390: f7ff f9f0 bl 8009774 + 800a394: 2800 cmp r0, #0 + 800a396: d03f beq.n 800a418 <_vfiprintf_r+0x22c> + 800a398: 4b29 ldr r3, [pc, #164] ; (800a440 <_vfiprintf_r+0x254>) + 800a39a: bb1b cbnz r3, 800a3e4 <_vfiprintf_r+0x1f8> + 800a39c: 9b03 ldr r3, [sp, #12] + 800a39e: 3307 adds r3, #7 + 800a3a0: f023 0307 bic.w r3, r3, #7 + 800a3a4: 3308 adds r3, #8 + 800a3a6: 9303 str r3, [sp, #12] + 800a3a8: 9b09 ldr r3, [sp, #36] ; 0x24 + 800a3aa: 443b add r3, r7 + 800a3ac: 9309 str r3, [sp, #36] ; 0x24 + 800a3ae: e767 b.n 800a280 <_vfiprintf_r+0x94> + 800a3b0: 460c mov r4, r1 + 800a3b2: 2001 movs r0, #1 + 800a3b4: fb0c 3202 mla r2, ip, r2, r3 + 800a3b8: e7a5 b.n 800a306 <_vfiprintf_r+0x11a> + 800a3ba: 2300 movs r3, #0 + 800a3bc: f04f 0c0a mov.w ip, #10 + 800a3c0: 4619 mov r1, r3 + 800a3c2: 3401 adds r4, #1 + 800a3c4: 9305 str r3, [sp, #20] + 800a3c6: 4620 mov r0, r4 + 800a3c8: f810 2b01 ldrb.w r2, [r0], #1 + 800a3cc: 3a30 subs r2, #48 ; 0x30 + 800a3ce: 2a09 cmp r2, #9 + 800a3d0: d903 bls.n 800a3da <_vfiprintf_r+0x1ee> + 800a3d2: 2b00 cmp r3, #0 + 800a3d4: d0c5 beq.n 800a362 <_vfiprintf_r+0x176> + 800a3d6: 9105 str r1, [sp, #20] + 800a3d8: e7c3 b.n 800a362 <_vfiprintf_r+0x176> + 800a3da: 4604 mov r4, r0 + 800a3dc: 2301 movs r3, #1 + 800a3de: fb0c 2101 mla r1, ip, r1, r2 + 800a3e2: e7f0 b.n 800a3c6 <_vfiprintf_r+0x1da> + 800a3e4: ab03 add r3, sp, #12 + 800a3e6: 9300 str r3, [sp, #0] + 800a3e8: 462a mov r2, r5 + 800a3ea: 4630 mov r0, r6 + 800a3ec: 4b15 ldr r3, [pc, #84] ; (800a444 <_vfiprintf_r+0x258>) + 800a3ee: a904 add r1, sp, #16 + 800a3f0: f7fd fc6e bl 8007cd0 <_printf_float> + 800a3f4: 4607 mov r7, r0 + 800a3f6: 1c78 adds r0, r7, #1 + 800a3f8: d1d6 bne.n 800a3a8 <_vfiprintf_r+0x1bc> + 800a3fa: 6e6b ldr r3, [r5, #100] ; 0x64 + 800a3fc: 07d9 lsls r1, r3, #31 + 800a3fe: d405 bmi.n 800a40c <_vfiprintf_r+0x220> + 800a400: 89ab ldrh r3, [r5, #12] + 800a402: 059a lsls r2, r3, #22 + 800a404: d402 bmi.n 800a40c <_vfiprintf_r+0x220> + 800a406: 6da8 ldr r0, [r5, #88] ; 0x58 + 800a408: f7ff f94e bl 80096a8 <__retarget_lock_release_recursive> + 800a40c: 89ab ldrh r3, [r5, #12] + 800a40e: 065b lsls r3, r3, #25 + 800a410: f53f af12 bmi.w 800a238 <_vfiprintf_r+0x4c> + 800a414: 9809 ldr r0, [sp, #36] ; 0x24 + 800a416: e711 b.n 800a23c <_vfiprintf_r+0x50> + 800a418: ab03 add r3, sp, #12 + 800a41a: 9300 str r3, [sp, #0] + 800a41c: 462a mov r2, r5 + 800a41e: 4630 mov r0, r6 + 800a420: 4b08 ldr r3, [pc, #32] ; (800a444 <_vfiprintf_r+0x258>) + 800a422: a904 add r1, sp, #16 + 800a424: f7fd fef0 bl 8008208 <_printf_i> + 800a428: e7e4 b.n 800a3f4 <_vfiprintf_r+0x208> + 800a42a: bf00 nop + 800a42c: 0800b448 .word 0x0800b448 + 800a430: 0800b468 .word 0x0800b468 + 800a434: 0800b428 .word 0x0800b428 + 800a438: 0800b5e4 .word 0x0800b5e4 + 800a43c: 0800b5ee .word 0x0800b5ee + 800a440: 08007cd1 .word 0x08007cd1 + 800a444: 0800a1c7 .word 0x0800a1c7 + 800a448: 0800b5ea .word 0x0800b5ea + +0800a44c <__sread>: + 800a44c: b510 push {r4, lr} + 800a44e: 460c mov r4, r1 + 800a450: f9b1 100e ldrsh.w r1, [r1, #14] + 800a454: f000 f916 bl 800a684 <_read_r> + 800a458: 2800 cmp r0, #0 + 800a45a: bfab itete ge + 800a45c: 6d63 ldrge r3, [r4, #84] ; 0x54 + 800a45e: 89a3 ldrhlt r3, [r4, #12] + 800a460: 181b addge r3, r3, r0 + 800a462: f423 5380 biclt.w r3, r3, #4096 ; 0x1000 + 800a466: bfac ite ge + 800a468: 6563 strge r3, [r4, #84] ; 0x54 + 800a46a: 81a3 strhlt r3, [r4, #12] + 800a46c: bd10 pop {r4, pc} + +0800a46e <__swrite>: + 800a46e: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} + 800a472: 461f mov r7, r3 + 800a474: 898b ldrh r3, [r1, #12] + 800a476: 4605 mov r5, r0 + 800a478: 05db lsls r3, r3, #23 + 800a47a: 460c mov r4, r1 + 800a47c: 4616 mov r6, r2 + 800a47e: d505 bpl.n 800a48c <__swrite+0x1e> + 800a480: 2302 movs r3, #2 + 800a482: 2200 movs r2, #0 + 800a484: f9b1 100e ldrsh.w r1, [r1, #14] + 800a488: f000 f898 bl 800a5bc <_lseek_r> + 800a48c: 89a3 ldrh r3, [r4, #12] + 800a48e: 4632 mov r2, r6 + 800a490: f423 5380 bic.w r3, r3, #4096 ; 0x1000 + 800a494: 81a3 strh r3, [r4, #12] + 800a496: 4628 mov r0, r5 + 800a498: 463b mov r3, r7 + 800a49a: f9b4 100e ldrsh.w r1, [r4, #14] + 800a49e: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} + 800a4a2: f000 b817 b.w 800a4d4 <_write_r> + +0800a4a6 <__sseek>: + 800a4a6: b510 push {r4, lr} + 800a4a8: 460c mov r4, r1 + 800a4aa: f9b1 100e ldrsh.w r1, [r1, #14] + 800a4ae: f000 f885 bl 800a5bc <_lseek_r> + 800a4b2: 1c43 adds r3, r0, #1 + 800a4b4: 89a3 ldrh r3, [r4, #12] + 800a4b6: bf15 itete ne + 800a4b8: 6560 strne r0, [r4, #84] ; 0x54 + 800a4ba: f423 5380 biceq.w r3, r3, #4096 ; 0x1000 + 800a4be: f443 5380 orrne.w r3, r3, #4096 ; 0x1000 + 800a4c2: 81a3 strheq r3, [r4, #12] + 800a4c4: bf18 it ne + 800a4c6: 81a3 strhne r3, [r4, #12] + 800a4c8: bd10 pop {r4, pc} + +0800a4ca <__sclose>: + 800a4ca: f9b1 100e ldrsh.w r1, [r1, #14] + 800a4ce: f000 b831 b.w 800a534 <_close_r> + ... + +0800a4d4 <_write_r>: + 800a4d4: b538 push {r3, r4, r5, lr} + 800a4d6: 4604 mov r4, r0 + 800a4d8: 4608 mov r0, r1 + 800a4da: 4611 mov r1, r2 + 800a4dc: 2200 movs r2, #0 + 800a4de: 4d05 ldr r5, [pc, #20] ; (800a4f4 <_write_r+0x20>) + 800a4e0: 602a str r2, [r5, #0] + 800a4e2: 461a mov r2, r3 + 800a4e4: f7f6 fe56 bl 8001194 <_write> + 800a4e8: 1c43 adds r3, r0, #1 + 800a4ea: d102 bne.n 800a4f2 <_write_r+0x1e> + 800a4ec: 682b ldr r3, [r5, #0] + 800a4ee: b103 cbz r3, 800a4f2 <_write_r+0x1e> + 800a4f0: 6023 str r3, [r4, #0] + 800a4f2: bd38 pop {r3, r4, r5, pc} + 800a4f4: 200025e0 .word 0x200025e0 + +0800a4f8 <__assert_func>: + 800a4f8: b51f push {r0, r1, r2, r3, r4, lr} + 800a4fa: 4614 mov r4, r2 + 800a4fc: 461a mov r2, r3 + 800a4fe: 4b09 ldr r3, [pc, #36] ; (800a524 <__assert_func+0x2c>) + 800a500: 4605 mov r5, r0 + 800a502: 681b ldr r3, [r3, #0] + 800a504: 68d8 ldr r0, [r3, #12] + 800a506: b14c cbz r4, 800a51c <__assert_func+0x24> + 800a508: 4b07 ldr r3, [pc, #28] ; (800a528 <__assert_func+0x30>) + 800a50a: e9cd 3401 strd r3, r4, [sp, #4] + 800a50e: 9100 str r1, [sp, #0] + 800a510: 462b mov r3, r5 + 800a512: 4906 ldr r1, [pc, #24] ; (800a52c <__assert_func+0x34>) + 800a514: f000 f81e bl 800a554 + 800a518: f000 f8d3 bl 800a6c2 + 800a51c: 4b04 ldr r3, [pc, #16] ; (800a530 <__assert_func+0x38>) + 800a51e: 461c mov r4, r3 + 800a520: e7f3 b.n 800a50a <__assert_func+0x12> + 800a522: bf00 nop + 800a524: 2000000c .word 0x2000000c + 800a528: 0800b5f5 .word 0x0800b5f5 + 800a52c: 0800b602 .word 0x0800b602 + 800a530: 0800b630 .word 0x0800b630 + +0800a534 <_close_r>: + 800a534: b538 push {r3, r4, r5, lr} + 800a536: 2300 movs r3, #0 + 800a538: 4d05 ldr r5, [pc, #20] ; (800a550 <_close_r+0x1c>) + 800a53a: 4604 mov r4, r0 + 800a53c: 4608 mov r0, r1 + 800a53e: 602b str r3, [r5, #0] + 800a540: f7f7 fb22 bl 8001b88 <_close> + 800a544: 1c43 adds r3, r0, #1 + 800a546: d102 bne.n 800a54e <_close_r+0x1a> + 800a548: 682b ldr r3, [r5, #0] + 800a54a: b103 cbz r3, 800a54e <_close_r+0x1a> + 800a54c: 6023 str r3, [r4, #0] + 800a54e: bd38 pop {r3, r4, r5, pc} + 800a550: 200025e0 .word 0x200025e0 + +0800a554 : + 800a554: b40e push {r1, r2, r3} + 800a556: b503 push {r0, r1, lr} + 800a558: 4601 mov r1, r0 + 800a55a: ab03 add r3, sp, #12 + 800a55c: 4805 ldr r0, [pc, #20] ; (800a574 ) + 800a55e: f853 2b04 ldr.w r2, [r3], #4 + 800a562: 6800 ldr r0, [r0, #0] + 800a564: 9301 str r3, [sp, #4] + 800a566: f7ff fe41 bl 800a1ec <_vfiprintf_r> + 800a56a: b002 add sp, #8 + 800a56c: f85d eb04 ldr.w lr, [sp], #4 + 800a570: b003 add sp, #12 + 800a572: 4770 bx lr + 800a574: 2000000c .word 0x2000000c + +0800a578 <_fstat_r>: + 800a578: b538 push {r3, r4, r5, lr} + 800a57a: 2300 movs r3, #0 + 800a57c: 4d06 ldr r5, [pc, #24] ; (800a598 <_fstat_r+0x20>) + 800a57e: 4604 mov r4, r0 + 800a580: 4608 mov r0, r1 + 800a582: 4611 mov r1, r2 + 800a584: 602b str r3, [r5, #0] + 800a586: f7f7 fb0a bl 8001b9e <_fstat> + 800a58a: 1c43 adds r3, r0, #1 + 800a58c: d102 bne.n 800a594 <_fstat_r+0x1c> + 800a58e: 682b ldr r3, [r5, #0] + 800a590: b103 cbz r3, 800a594 <_fstat_r+0x1c> + 800a592: 6023 str r3, [r4, #0] + 800a594: bd38 pop {r3, r4, r5, pc} + 800a596: bf00 nop + 800a598: 200025e0 .word 0x200025e0 + +0800a59c <_isatty_r>: + 800a59c: b538 push {r3, r4, r5, lr} + 800a59e: 2300 movs r3, #0 + 800a5a0: 4d05 ldr r5, [pc, #20] ; (800a5b8 <_isatty_r+0x1c>) + 800a5a2: 4604 mov r4, r0 + 800a5a4: 4608 mov r0, r1 + 800a5a6: 602b str r3, [r5, #0] + 800a5a8: f7f7 fb08 bl 8001bbc <_isatty> + 800a5ac: 1c43 adds r3, r0, #1 + 800a5ae: d102 bne.n 800a5b6 <_isatty_r+0x1a> + 800a5b0: 682b ldr r3, [r5, #0] + 800a5b2: b103 cbz r3, 800a5b6 <_isatty_r+0x1a> + 800a5b4: 6023 str r3, [r4, #0] + 800a5b6: bd38 pop {r3, r4, r5, pc} + 800a5b8: 200025e0 .word 0x200025e0 + +0800a5bc <_lseek_r>: + 800a5bc: b538 push {r3, r4, r5, lr} + 800a5be: 4604 mov r4, r0 + 800a5c0: 4608 mov r0, r1 + 800a5c2: 4611 mov r1, r2 + 800a5c4: 2200 movs r2, #0 + 800a5c6: 4d05 ldr r5, [pc, #20] ; (800a5dc <_lseek_r+0x20>) + 800a5c8: 602a str r2, [r5, #0] + 800a5ca: 461a mov r2, r3 + 800a5cc: f7f7 fb00 bl 8001bd0 <_lseek> + 800a5d0: 1c43 adds r3, r0, #1 + 800a5d2: d102 bne.n 800a5da <_lseek_r+0x1e> + 800a5d4: 682b ldr r3, [r5, #0] + 800a5d6: b103 cbz r3, 800a5da <_lseek_r+0x1e> + 800a5d8: 6023 str r3, [r4, #0] + 800a5da: bd38 pop {r3, r4, r5, pc} + 800a5dc: 200025e0 .word 0x200025e0 + +0800a5e0 <__ascii_mbtowc>: + 800a5e0: b082 sub sp, #8 + 800a5e2: b901 cbnz r1, 800a5e6 <__ascii_mbtowc+0x6> + 800a5e4: a901 add r1, sp, #4 + 800a5e6: b142 cbz r2, 800a5fa <__ascii_mbtowc+0x1a> + 800a5e8: b14b cbz r3, 800a5fe <__ascii_mbtowc+0x1e> + 800a5ea: 7813 ldrb r3, [r2, #0] + 800a5ec: 600b str r3, [r1, #0] + 800a5ee: 7812 ldrb r2, [r2, #0] + 800a5f0: 1e10 subs r0, r2, #0 + 800a5f2: bf18 it ne + 800a5f4: 2001 movne r0, #1 + 800a5f6: b002 add sp, #8 + 800a5f8: 4770 bx lr + 800a5fa: 4610 mov r0, r2 + 800a5fc: e7fb b.n 800a5f6 <__ascii_mbtowc+0x16> + 800a5fe: f06f 0001 mvn.w r0, #1 + 800a602: e7f8 b.n 800a5f6 <__ascii_mbtowc+0x16> + +0800a604 : + 800a604: 4288 cmp r0, r1 + 800a606: b510 push {r4, lr} + 800a608: eb01 0402 add.w r4, r1, r2 + 800a60c: d902 bls.n 800a614 + 800a60e: 4284 cmp r4, r0 + 800a610: 4623 mov r3, r4 + 800a612: d807 bhi.n 800a624 + 800a614: 1e43 subs r3, r0, #1 + 800a616: 42a1 cmp r1, r4 + 800a618: d008 beq.n 800a62c + 800a61a: f811 2b01 ldrb.w r2, [r1], #1 + 800a61e: f803 2f01 strb.w r2, [r3, #1]! + 800a622: e7f8 b.n 800a616 + 800a624: 4601 mov r1, r0 + 800a626: 4402 add r2, r0 + 800a628: 428a cmp r2, r1 + 800a62a: d100 bne.n 800a62e + 800a62c: bd10 pop {r4, pc} + 800a62e: f813 4d01 ldrb.w r4, [r3, #-1]! + 800a632: f802 4d01 strb.w r4, [r2, #-1]! + 800a636: e7f7 b.n 800a628 + +0800a638 <_realloc_r>: + 800a638: b5f8 push {r3, r4, r5, r6, r7, lr} + 800a63a: 4607 mov r7, r0 + 800a63c: 4614 mov r4, r2 + 800a63e: 460e mov r6, r1 + 800a640: b921 cbnz r1, 800a64c <_realloc_r+0x14> + 800a642: 4611 mov r1, r2 + 800a644: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} + 800a648: f7fd ba4a b.w 8007ae0 <_malloc_r> + 800a64c: b922 cbnz r2, 800a658 <_realloc_r+0x20> + 800a64e: f7fd f9fb bl 8007a48 <_free_r> + 800a652: 4625 mov r5, r4 + 800a654: 4628 mov r0, r5 + 800a656: bdf8 pop {r3, r4, r5, r6, r7, pc} + 800a658: f000 f83a bl 800a6d0 <_malloc_usable_size_r> + 800a65c: 42a0 cmp r0, r4 + 800a65e: d20f bcs.n 800a680 <_realloc_r+0x48> + 800a660: 4621 mov r1, r4 + 800a662: 4638 mov r0, r7 + 800a664: f7fd fa3c bl 8007ae0 <_malloc_r> + 800a668: 4605 mov r5, r0 + 800a66a: 2800 cmp r0, #0 + 800a66c: d0f2 beq.n 800a654 <_realloc_r+0x1c> + 800a66e: 4631 mov r1, r6 + 800a670: 4622 mov r2, r4 + 800a672: f7ff f88d bl 8009790 + 800a676: 4631 mov r1, r6 + 800a678: 4638 mov r0, r7 + 800a67a: f7fd f9e5 bl 8007a48 <_free_r> + 800a67e: e7e9 b.n 800a654 <_realloc_r+0x1c> + 800a680: 4635 mov r5, r6 + 800a682: e7e7 b.n 800a654 <_realloc_r+0x1c> + +0800a684 <_read_r>: + 800a684: b538 push {r3, r4, r5, lr} + 800a686: 4604 mov r4, r0 + 800a688: 4608 mov r0, r1 + 800a68a: 4611 mov r1, r2 + 800a68c: 2200 movs r2, #0 + 800a68e: 4d05 ldr r5, [pc, #20] ; (800a6a4 <_read_r+0x20>) + 800a690: 602a str r2, [r5, #0] + 800a692: 461a mov r2, r3 + 800a694: f7f7 fa5b bl 8001b4e <_read> + 800a698: 1c43 adds r3, r0, #1 + 800a69a: d102 bne.n 800a6a2 <_read_r+0x1e> + 800a69c: 682b ldr r3, [r5, #0] + 800a69e: b103 cbz r3, 800a6a2 <_read_r+0x1e> + 800a6a0: 6023 str r3, [r4, #0] + 800a6a2: bd38 pop {r3, r4, r5, pc} + 800a6a4: 200025e0 .word 0x200025e0 + +0800a6a8 <__ascii_wctomb>: + 800a6a8: 4603 mov r3, r0 + 800a6aa: 4608 mov r0, r1 + 800a6ac: b141 cbz r1, 800a6c0 <__ascii_wctomb+0x18> + 800a6ae: 2aff cmp r2, #255 ; 0xff + 800a6b0: d904 bls.n 800a6bc <__ascii_wctomb+0x14> + 800a6b2: 228a movs r2, #138 ; 0x8a + 800a6b4: f04f 30ff mov.w r0, #4294967295 + 800a6b8: 601a str r2, [r3, #0] + 800a6ba: 4770 bx lr + 800a6bc: 2001 movs r0, #1 + 800a6be: 700a strb r2, [r1, #0] + 800a6c0: 4770 bx lr + +0800a6c2 : + 800a6c2: 2006 movs r0, #6 + 800a6c4: b508 push {r3, lr} + 800a6c6: f000 f833 bl 800a730 + 800a6ca: 2001 movs r0, #1 + 800a6cc: f7f7 fa35 bl 8001b3a <_exit> + +0800a6d0 <_malloc_usable_size_r>: + 800a6d0: f851 3c04 ldr.w r3, [r1, #-4] + 800a6d4: 1f18 subs r0, r3, #4 + 800a6d6: 2b00 cmp r3, #0 + 800a6d8: bfbc itt lt + 800a6da: 580b ldrlt r3, [r1, r0] + 800a6dc: 18c0 addlt r0, r0, r3 + 800a6de: 4770 bx lr + +0800a6e0 <_raise_r>: + 800a6e0: 291f cmp r1, #31 + 800a6e2: b538 push {r3, r4, r5, lr} + 800a6e4: 4604 mov r4, r0 + 800a6e6: 460d mov r5, r1 + 800a6e8: d904 bls.n 800a6f4 <_raise_r+0x14> + 800a6ea: 2316 movs r3, #22 + 800a6ec: 6003 str r3, [r0, #0] + 800a6ee: f04f 30ff mov.w r0, #4294967295 + 800a6f2: bd38 pop {r3, r4, r5, pc} + 800a6f4: 6c42 ldr r2, [r0, #68] ; 0x44 + 800a6f6: b112 cbz r2, 800a6fe <_raise_r+0x1e> + 800a6f8: f852 3021 ldr.w r3, [r2, r1, lsl #2] + 800a6fc: b94b cbnz r3, 800a712 <_raise_r+0x32> + 800a6fe: 4620 mov r0, r4 + 800a700: f000 f830 bl 800a764 <_getpid_r> + 800a704: 462a mov r2, r5 + 800a706: 4601 mov r1, r0 + 800a708: 4620 mov r0, r4 + 800a70a: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} + 800a70e: f000 b817 b.w 800a740 <_kill_r> + 800a712: 2b01 cmp r3, #1 + 800a714: d00a beq.n 800a72c <_raise_r+0x4c> + 800a716: 1c59 adds r1, r3, #1 + 800a718: d103 bne.n 800a722 <_raise_r+0x42> + 800a71a: 2316 movs r3, #22 + 800a71c: 6003 str r3, [r0, #0] + 800a71e: 2001 movs r0, #1 + 800a720: e7e7 b.n 800a6f2 <_raise_r+0x12> + 800a722: 2400 movs r4, #0 + 800a724: 4628 mov r0, r5 + 800a726: f842 4025 str.w r4, [r2, r5, lsl #2] + 800a72a: 4798 blx r3 + 800a72c: 2000 movs r0, #0 + 800a72e: e7e0 b.n 800a6f2 <_raise_r+0x12> + +0800a730 : + 800a730: 4b02 ldr r3, [pc, #8] ; (800a73c ) + 800a732: 4601 mov r1, r0 + 800a734: 6818 ldr r0, [r3, #0] + 800a736: f7ff bfd3 b.w 800a6e0 <_raise_r> + 800a73a: bf00 nop + 800a73c: 2000000c .word 0x2000000c + +0800a740 <_kill_r>: + 800a740: b538 push {r3, r4, r5, lr} + 800a742: 2300 movs r3, #0 + 800a744: 4d06 ldr r5, [pc, #24] ; (800a760 <_kill_r+0x20>) + 800a746: 4604 mov r4, r0 + 800a748: 4608 mov r0, r1 + 800a74a: 4611 mov r1, r2 + 800a74c: 602b str r3, [r5, #0] + 800a74e: f7f7 f9e4 bl 8001b1a <_kill> + 800a752: 1c43 adds r3, r0, #1 + 800a754: d102 bne.n 800a75c <_kill_r+0x1c> + 800a756: 682b ldr r3, [r5, #0] + 800a758: b103 cbz r3, 800a75c <_kill_r+0x1c> + 800a75a: 6023 str r3, [r4, #0] + 800a75c: bd38 pop {r3, r4, r5, pc} + 800a75e: bf00 nop + 800a760: 200025e0 .word 0x200025e0 + +0800a764 <_getpid_r>: + 800a764: f7f7 b9d2 b.w 8001b0c <_getpid> + +0800a768 <_init>: + 800a768: b5f8 push {r3, r4, r5, r6, r7, lr} + 800a76a: bf00 nop + 800a76c: bcf8 pop {r3, r4, r5, r6, r7} + 800a76e: bc08 pop {r3} + 800a770: 469e mov lr, r3 + 800a772: 4770 bx lr + +0800a774 <_fini>: + 800a774: b5f8 push {r3, r4, r5, r6, r7, lr} + 800a776: bf00 nop + 800a778: bcf8 pop {r3, r4, r5, r6, r7} + 800a77a: bc08 pop {r3} + 800a77c: 469e mov lr, r3 + 800a77e: 4770 bx lr diff --git a/Debug/m3s.map b/Debug/m3s.map index 10f703f..1d67320 100644 --- a/Debug/m3s.map +++ b/Debug/m3s.map @@ -9,7 +9,7 @@ c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externalt c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-init.o) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (__libc_init_array) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-malloc.o) - ./HW_Devices/eeprom.o (malloc) + ./HW_Devices/buzzer.o (malloc) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memset.o) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/crt0.o (memset) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-freer.o) @@ -119,7 +119,7 @@ c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externalt c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldf3.o) ./SW_APPs/APP_blood.o (__aeabi_dmul) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_mulsf3.o) - ./SW_APPs/APP_blood.o (__aeabi_fmul) + ./HW_Devices/buzzer.o (__aeabi_fmul) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_addsubdf3.o) ./SW_APPs/APP_blood.o (__aeabi_dsub) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldivdf3.o) @@ -135,13 +135,15 @@ c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externalt c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_addsubsf3.o) ./HW_Devices/touch.o (__aeabi_fsub) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldivsf3.o) - ./HW_Devices/touch.o (__aeabi_fdiv) + ./HW_Devices/buzzer.o (__aeabi_fdiv) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_cmpsf2.o) ./SW_APPs/APP_blood.o (__aeabi_fcmplt) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_unordsf2.o) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libm.a(lib_a-wf_sqrt.o) (__aeabi_fcmpun) c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixsfsi.o) ./HW_Devices/touch.o (__aeabi_f2iz) +c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixunssfsi.o) + ./HW_Devices/buzzer.o (__aeabi_f2uiz) Allocating common symbols Common symbol size file @@ -153,9 +155,11 @@ __lock___atexit_recursive_mutex RFID 0x10 ./SW_APPs/APP_IDcard.o __lock___arc4random_mutex 0x1 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) +htim4 0x48 ./Core/Src/main.o errno 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-reent.o) fifo_ir 0x2 ./SW_APPs/APP_blood.o PA 0x1 ./SW_APPs/APP_IDcard.o +notes 0x4 ./HW_Devices/buzzer.o tconfig 0x18 ./HW_Devices/touch.o hi2c2 0x54 ./Core/Src/main.o uwTick 0x4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o @@ -171,6 +175,7 @@ s1 0x1080 ./SW_APPs/APP_blood.o idcard_str 0x20 ./SW_APPs/APP_IDcard.o __lock___malloc_recursive_mutex 0x1 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) +morse_input_buff 0x41 ./SW_APPs/APP_morsecode.o read_flag 0x1 ./SW_APPs/APP_IDcard.o idcard_window 0x4 ./SW_APPs/APP_IDcard.o k2 0x10 ./HW_Devices/key.o @@ -358,7 +363,7 @@ Discarded input sections .text.HAL_SPI_MspDeInit 0x0000000000000000 0x3c ./Core/Src/stm32f1xx_hal_msp.o .text.HAL_TIM_Base_MspDeInit - 0x0000000000000000 0x34 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000000000000 0x58 ./Core/Src/stm32f1xx_hal_msp.o .bss.FSMC_DeInitialized 0x0000000000000000 0x4 ./Core/Src/stm32f1xx_hal_msp.o .text.HAL_FSMC_MspDeInit @@ -2600,16 +2605,10 @@ Discarded input sections 0x0000000000000000 0x364 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_OC_Stop_DMA 0x0000000000000000 0x194 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.HAL_TIM_PWM_Init - 0x0000000000000000 0x9e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_PWM_DeInit 0x0000000000000000 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.HAL_TIM_PWM_MspInit - 0x0000000000000000 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_PWM_MspDeInit 0x0000000000000000 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.HAL_TIM_PWM_Start - 0x0000000000000000 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_PWM_Stop 0x0000000000000000 0xe0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_PWM_Start_IT @@ -2680,8 +2679,6 @@ Discarded input sections 0x0000000000000000 0xb0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_IC_ConfigChannel 0x0000000000000000 0x128 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.HAL_TIM_PWM_ConfigChannel - 0x0000000000000000 0x17c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_OnePulse_ConfigChannel 0x0000000000000000 0x184 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_DMABurst_WriteStart @@ -2700,8 +2697,6 @@ Discarded input sections 0x0000000000000000 0x4c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_ConfigOCrefClear 0x0000000000000000 0x188 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.HAL_TIM_ConfigClockSource - 0x0000000000000000 0x188 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_ConfigTI1Input 0x0000000000000000 0x36 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.HAL_TIM_SlaveConfigSynchro @@ -2758,34 +2753,16 @@ Discarded input sections 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.TIM_DMATriggerHalfCplt 0x0000000000000000 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.TIM_OC1_SetConfig - 0x0000000000000000 0xe0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.TIM_OC2_SetConfig - 0x0000000000000000 0xe8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.TIM_OC3_SetConfig - 0x0000000000000000 0xe8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.TIM_OC4_SetConfig - 0x0000000000000000 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.TIM_SlaveTimer_SetConfig 0x0000000000000000 0x11c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.TIM_TI1_SetConfig 0x0000000000000000 0xcc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.TIM_TI1_ConfigInputStage - 0x0000000000000000 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.TIM_TI2_SetConfig 0x0000000000000000 0x78 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.TIM_TI2_ConfigInputStage - 0x0000000000000000 0x5e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.TIM_TI3_SetConfig 0x0000000000000000 0x76 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .text.TIM_TI4_SetConfig 0x0000000000000000 0x78 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.TIM_ITRx_SetConfig - 0x0000000000000000 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.TIM_ETR_SetConfig - 0x0000000000000000 0x3e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .text.TIM_CCxChannelCmd - 0x0000000000000000 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .debug_macro 0x0000000000000000 0xa9c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .debug_macro 0x0000000000000000 0x227 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o @@ -3242,6 +3219,141 @@ Discarded input sections .debug_macro 0x0000000000000000 0x16 ./HW_Devices/LCD.o .debug_macro 0x0000000000000000 0x145 ./HW_Devices/LCD.o .debug_macro 0x0000000000000000 0xac ./HW_Devices/LCD.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .group 0x0000000000000000 0xc ./HW_Devices/buzzer.o + .text 0x0000000000000000 0x0 ./HW_Devices/buzzer.o + .data 0x0000000000000000 0x0 ./HW_Devices/buzzer.o + .bss 0x0000000000000000 0x0 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0xa9c ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x227 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x2e ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x22 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x22 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x8e ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x51 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x103 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x6a ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x1df ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x1c ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x22 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0xc3 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0xd23 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0xfd8c ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x6d ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x3468 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x174 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x5c ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x5be ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x4d5 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x1cb ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x114 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x1ea ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x27 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x144 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x1bc ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x30 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x3c ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x57 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x88 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x24f ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x356 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x287 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x141 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x217 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x8d1 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0xb5 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x52 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x18 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x3c ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x34 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x16 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x35 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x333 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x10 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x16 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x43 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x34 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x10 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x58 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x71 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x1c ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x12a ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x10 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x1c ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x52 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x22 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x10 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x40 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0xd5 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x1c ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x3d ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x16 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0x145 ./HW_Devices/buzzer.o + .debug_macro 0x0000000000000000 0xac ./HW_Devices/buzzer.o .group 0x0000000000000000 0xc ./HW_Devices/eeprom.o .group 0x0000000000000000 0xc ./HW_Devices/eeprom.o .group 0x0000000000000000 0xc ./HW_Devices/eeprom.o @@ -5069,6 +5181,8 @@ Discarded input sections 0x0000000000000000 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_unordsf2.o) .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixsfsi.o) .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixsfsi.o) + .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixunssfsi.o) + .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixunssfsi.o) .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtend.o @@ -5116,6 +5230,7 @@ LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o LOAD ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o LOAD ./HW_Devices/LCD.o +LOAD ./HW_Devices/buzzer.o LOAD ./HW_Devices/eeprom.o LOAD ./HW_Devices/iic.o LOAD ./HW_Devices/key.o @@ -5157,7 +5272,7 @@ LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte 0x0000000008000000 g_pfnVectors 0x00000000080001e4 . = ALIGN (0x4) -.text 0x00000000080001e8 0x96b0 +.text 0x00000000080001e8 0xa598 0x00000000080001e8 . = ALIGN (0x4) *(.text) .text 0x00000000080001e8 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o @@ -5231,795 +5346,853 @@ LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .text 0x00000000080010bc 0x4c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixsfsi.o) 0x00000000080010bc __aeabi_f2iz 0x00000000080010bc __fixsfsi + .text 0x0000000008001108 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixunssfsi.o) + 0x0000000008001108 __fixunssfsi + 0x0000000008001108 __aeabi_f2uiz *(.text*) .text.ITM_SendChar - 0x0000000008001108 0x4c ./Core/Src/main.o - .text._write 0x0000000008001154 0x3c ./Core/Src/main.o - 0x0000000008001154 _write - .text.main 0x0000000008001190 0x26 ./Core/Src/main.o - 0x0000000008001190 main + 0x0000000008001148 0x4c ./Core/Src/main.o + .text._write 0x0000000008001194 0x3c ./Core/Src/main.o + 0x0000000008001194 _write + .text.main 0x00000000080011d0 0x2a ./Core/Src/main.o + 0x00000000080011d0 main .text.SystemClock_Config - 0x00000000080011b6 0x8a ./Core/Src/main.o - 0x00000000080011b6 SystemClock_Config + 0x00000000080011fa 0x8a ./Core/Src/main.o + 0x00000000080011fa SystemClock_Config .text.MX_I2C2_Init - 0x0000000008001240 0x5c ./Core/Src/main.o + 0x0000000008001284 0x5c ./Core/Src/main.o .text.MX_SPI1_Init - 0x000000000800129c 0x6c ./Core/Src/main.o + 0x00000000080012e0 0x6c ./Core/Src/main.o + .text.MX_TIM4_Init + 0x000000000800134c 0xec ./Core/Src/main.o .text.MX_TIM6_Init - 0x0000000008001308 0x6c ./Core/Src/main.o + 0x0000000008001438 0x6c ./Core/Src/main.o .text.MX_GPIO_Init - 0x0000000008001374 0x1fc ./Core/Src/main.o + 0x00000000080014a4 0x1fc ./Core/Src/main.o .text.MX_FSMC_Init - 0x0000000008001570 0xc8 ./Core/Src/main.o + 0x00000000080016a0 0xc8 ./Core/Src/main.o .text.Error_Handler - 0x0000000008001638 0xa ./Core/Src/main.o - 0x0000000008001638 Error_Handler - *fill* 0x0000000008001642 0x2 + 0x0000000008001768 0xa ./Core/Src/main.o + 0x0000000008001768 Error_Handler + *fill* 0x0000000008001772 0x2 .text.HAL_MspInit - 0x0000000008001644 0x64 ./Core/Src/stm32f1xx_hal_msp.o - 0x0000000008001644 HAL_MspInit + 0x0000000008001774 0x64 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000008001774 HAL_MspInit .text.HAL_I2C_MspInit - 0x00000000080016a8 0x80 ./Core/Src/stm32f1xx_hal_msp.o - 0x00000000080016a8 HAL_I2C_MspInit + 0x00000000080017d8 0x80 ./Core/Src/stm32f1xx_hal_msp.o + 0x00000000080017d8 HAL_I2C_MspInit .text.HAL_SPI_MspInit - 0x0000000008001728 0x94 ./Core/Src/stm32f1xx_hal_msp.o - 0x0000000008001728 HAL_SPI_MspInit + 0x0000000008001858 0x94 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000008001858 HAL_SPI_MspInit .text.HAL_TIM_Base_MspInit - 0x00000000080017bc 0x4c ./Core/Src/stm32f1xx_hal_msp.o - 0x00000000080017bc HAL_TIM_Base_MspInit + 0x00000000080018ec 0x84 ./Core/Src/stm32f1xx_hal_msp.o + 0x00000000080018ec HAL_TIM_Base_MspInit + .text.HAL_TIM_MspPostInit + 0x0000000008001970 0x68 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000008001970 HAL_TIM_MspPostInit .text.HAL_FSMC_MspInit - 0x0000000008001808 0xa8 ./Core/Src/stm32f1xx_hal_msp.o + 0x00000000080019d8 0xa8 ./Core/Src/stm32f1xx_hal_msp.o .text.HAL_SRAM_MspInit - 0x00000000080018b0 0x14 ./Core/Src/stm32f1xx_hal_msp.o - 0x00000000080018b0 HAL_SRAM_MspInit + 0x0000000008001a80 0x14 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000008001a80 HAL_SRAM_MspInit .text.NMI_Handler - 0x00000000080018c4 0x6 ./Core/Src/stm32f1xx_it.o - 0x00000000080018c4 NMI_Handler + 0x0000000008001a94 0x6 ./Core/Src/stm32f1xx_it.o + 0x0000000008001a94 NMI_Handler .text.HardFault_Handler - 0x00000000080018ca 0x6 ./Core/Src/stm32f1xx_it.o - 0x00000000080018ca HardFault_Handler + 0x0000000008001a9a 0x6 ./Core/Src/stm32f1xx_it.o + 0x0000000008001a9a HardFault_Handler .text.MemManage_Handler - 0x00000000080018d0 0x6 ./Core/Src/stm32f1xx_it.o - 0x00000000080018d0 MemManage_Handler + 0x0000000008001aa0 0x6 ./Core/Src/stm32f1xx_it.o + 0x0000000008001aa0 MemManage_Handler .text.BusFault_Handler - 0x00000000080018d6 0x6 ./Core/Src/stm32f1xx_it.o - 0x00000000080018d6 BusFault_Handler + 0x0000000008001aa6 0x6 ./Core/Src/stm32f1xx_it.o + 0x0000000008001aa6 BusFault_Handler .text.UsageFault_Handler - 0x00000000080018dc 0x6 ./Core/Src/stm32f1xx_it.o - 0x00000000080018dc UsageFault_Handler + 0x0000000008001aac 0x6 ./Core/Src/stm32f1xx_it.o + 0x0000000008001aac UsageFault_Handler .text.SVC_Handler - 0x00000000080018e2 0xc ./Core/Src/stm32f1xx_it.o - 0x00000000080018e2 SVC_Handler + 0x0000000008001ab2 0xc ./Core/Src/stm32f1xx_it.o + 0x0000000008001ab2 SVC_Handler .text.DebugMon_Handler - 0x00000000080018ee 0xc ./Core/Src/stm32f1xx_it.o - 0x00000000080018ee DebugMon_Handler + 0x0000000008001abe 0xc ./Core/Src/stm32f1xx_it.o + 0x0000000008001abe DebugMon_Handler .text.PendSV_Handler - 0x00000000080018fa 0xc ./Core/Src/stm32f1xx_it.o - 0x00000000080018fa PendSV_Handler + 0x0000000008001aca 0xc ./Core/Src/stm32f1xx_it.o + 0x0000000008001aca PendSV_Handler .text.SysTick_Handler - 0x0000000008001906 0xc ./Core/Src/stm32f1xx_it.o - 0x0000000008001906 SysTick_Handler - *fill* 0x0000000008001912 0x2 + 0x0000000008001ad6 0xc ./Core/Src/stm32f1xx_it.o + 0x0000000008001ad6 SysTick_Handler + *fill* 0x0000000008001ae2 0x2 + .text.TIM4_IRQHandler + 0x0000000008001ae4 0x14 ./Core/Src/stm32f1xx_it.o + 0x0000000008001ae4 TIM4_IRQHandler .text.TIM6_IRQHandler - 0x0000000008001914 0x14 ./Core/Src/stm32f1xx_it.o - 0x0000000008001914 TIM6_IRQHandler - .text._getpid 0x0000000008001928 0xe ./Core/Src/syscalls.o - 0x0000000008001928 _getpid - .text._kill 0x0000000008001936 0x20 ./Core/Src/syscalls.o - 0x0000000008001936 _kill - .text._exit 0x0000000008001956 0x14 ./Core/Src/syscalls.o - 0x0000000008001956 _exit - .text._read 0x000000000800196a 0x3a ./Core/Src/syscalls.o - 0x000000000800196a _read - .text._close 0x00000000080019a4 0x16 ./Core/Src/syscalls.o - 0x00000000080019a4 _close - .text._fstat 0x00000000080019ba 0x1e ./Core/Src/syscalls.o - 0x00000000080019ba _fstat - .text._isatty 0x00000000080019d8 0x14 ./Core/Src/syscalls.o - 0x00000000080019d8 _isatty - .text._lseek 0x00000000080019ec 0x18 ./Core/Src/syscalls.o - 0x00000000080019ec _lseek - .text._sbrk 0x0000000008001a04 0x6c ./Core/Src/sysmem.o - 0x0000000008001a04 _sbrk + 0x0000000008001af8 0x14 ./Core/Src/stm32f1xx_it.o + 0x0000000008001af8 TIM6_IRQHandler + .text._getpid 0x0000000008001b0c 0xe ./Core/Src/syscalls.o + 0x0000000008001b0c _getpid + .text._kill 0x0000000008001b1a 0x20 ./Core/Src/syscalls.o + 0x0000000008001b1a _kill + .text._exit 0x0000000008001b3a 0x14 ./Core/Src/syscalls.o + 0x0000000008001b3a _exit + .text._read 0x0000000008001b4e 0x3a ./Core/Src/syscalls.o + 0x0000000008001b4e _read + .text._close 0x0000000008001b88 0x16 ./Core/Src/syscalls.o + 0x0000000008001b88 _close + .text._fstat 0x0000000008001b9e 0x1e ./Core/Src/syscalls.o + 0x0000000008001b9e _fstat + .text._isatty 0x0000000008001bbc 0x14 ./Core/Src/syscalls.o + 0x0000000008001bbc _isatty + .text._lseek 0x0000000008001bd0 0x18 ./Core/Src/syscalls.o + 0x0000000008001bd0 _lseek + .text._sbrk 0x0000000008001be8 0x6c ./Core/Src/sysmem.o + 0x0000000008001be8 _sbrk .text.SystemInit - 0x0000000008001a70 0xc ./Core/Src/system_stm32f1xx.o - 0x0000000008001a70 SystemInit + 0x0000000008001c54 0xc ./Core/Src/system_stm32f1xx.o + 0x0000000008001c54 SystemInit .text.Reset_Handler - 0x0000000008001a7c 0x48 ./Core/Startup/startup_stm32f103zetx.o - 0x0000000008001a7c Reset_Handler + 0x0000000008001c60 0x48 ./Core/Startup/startup_stm32f103zetx.o + 0x0000000008001c60 Reset_Handler .text.Default_Handler - 0x0000000008001ac4 0x2 ./Core/Startup/startup_stm32f103zetx.o - 0x0000000008001ac4 RTC_Alarm_IRQHandler - 0x0000000008001ac4 EXTI2_IRQHandler - 0x0000000008001ac4 TIM8_TRG_COM_IRQHandler - 0x0000000008001ac4 TIM8_CC_IRQHandler - 0x0000000008001ac4 TIM1_CC_IRQHandler - 0x0000000008001ac4 PVD_IRQHandler - 0x0000000008001ac4 SDIO_IRQHandler - 0x0000000008001ac4 EXTI3_IRQHandler - 0x0000000008001ac4 EXTI0_IRQHandler - 0x0000000008001ac4 I2C2_EV_IRQHandler - 0x0000000008001ac4 ADC1_2_IRQHandler - 0x0000000008001ac4 SPI1_IRQHandler - 0x0000000008001ac4 TAMPER_IRQHandler - 0x0000000008001ac4 TIM8_UP_IRQHandler - 0x0000000008001ac4 DMA2_Channel2_IRQHandler - 0x0000000008001ac4 DMA1_Channel4_IRQHandler - 0x0000000008001ac4 USART3_IRQHandler - 0x0000000008001ac4 RTC_IRQHandler - 0x0000000008001ac4 DMA1_Channel7_IRQHandler - 0x0000000008001ac4 CAN1_RX1_IRQHandler - 0x0000000008001ac4 UART5_IRQHandler - 0x0000000008001ac4 ADC3_IRQHandler - 0x0000000008001ac4 TIM4_IRQHandler - 0x0000000008001ac4 DMA2_Channel1_IRQHandler - 0x0000000008001ac4 I2C1_EV_IRQHandler - 0x0000000008001ac4 DMA1_Channel6_IRQHandler - 0x0000000008001ac4 UART4_IRQHandler - 0x0000000008001ac4 TIM3_IRQHandler - 0x0000000008001ac4 RCC_IRQHandler - 0x0000000008001ac4 TIM1_TRG_COM_IRQHandler - 0x0000000008001ac4 DMA1_Channel1_IRQHandler - 0x0000000008001ac4 Default_Handler - 0x0000000008001ac4 EXTI15_10_IRQHandler - 0x0000000008001ac4 TIM7_IRQHandler - 0x0000000008001ac4 TIM5_IRQHandler - 0x0000000008001ac4 EXTI9_5_IRQHandler - 0x0000000008001ac4 SPI2_IRQHandler - 0x0000000008001ac4 DMA1_Channel5_IRQHandler - 0x0000000008001ac4 EXTI4_IRQHandler - 0x0000000008001ac4 USB_LP_CAN1_RX0_IRQHandler - 0x0000000008001ac4 USB_HP_CAN1_TX_IRQHandler - 0x0000000008001ac4 DMA1_Channel3_IRQHandler - 0x0000000008001ac4 FSMC_IRQHandler - 0x0000000008001ac4 TIM1_UP_IRQHandler - 0x0000000008001ac4 WWDG_IRQHandler - 0x0000000008001ac4 TIM2_IRQHandler - 0x0000000008001ac4 TIM1_BRK_IRQHandler - 0x0000000008001ac4 EXTI1_IRQHandler - 0x0000000008001ac4 DMA2_Channel4_5_IRQHandler - 0x0000000008001ac4 USART2_IRQHandler - 0x0000000008001ac4 I2C2_ER_IRQHandler - 0x0000000008001ac4 DMA1_Channel2_IRQHandler - 0x0000000008001ac4 TIM8_BRK_IRQHandler - 0x0000000008001ac4 CAN1_SCE_IRQHandler - 0x0000000008001ac4 FLASH_IRQHandler - 0x0000000008001ac4 USART1_IRQHandler - 0x0000000008001ac4 SPI3_IRQHandler - 0x0000000008001ac4 I2C1_ER_IRQHandler - 0x0000000008001ac4 USBWakeUp_IRQHandler - 0x0000000008001ac4 DMA2_Channel3_IRQHandler - *fill* 0x0000000008001ac6 0x2 + 0x0000000008001ca8 0x2 ./Core/Startup/startup_stm32f103zetx.o + 0x0000000008001ca8 RTC_Alarm_IRQHandler + 0x0000000008001ca8 EXTI2_IRQHandler + 0x0000000008001ca8 TIM8_TRG_COM_IRQHandler + 0x0000000008001ca8 TIM8_CC_IRQHandler + 0x0000000008001ca8 TIM1_CC_IRQHandler + 0x0000000008001ca8 PVD_IRQHandler + 0x0000000008001ca8 SDIO_IRQHandler + 0x0000000008001ca8 EXTI3_IRQHandler + 0x0000000008001ca8 EXTI0_IRQHandler + 0x0000000008001ca8 I2C2_EV_IRQHandler + 0x0000000008001ca8 ADC1_2_IRQHandler + 0x0000000008001ca8 SPI1_IRQHandler + 0x0000000008001ca8 TAMPER_IRQHandler + 0x0000000008001ca8 TIM8_UP_IRQHandler + 0x0000000008001ca8 DMA2_Channel2_IRQHandler + 0x0000000008001ca8 DMA1_Channel4_IRQHandler + 0x0000000008001ca8 USART3_IRQHandler + 0x0000000008001ca8 RTC_IRQHandler + 0x0000000008001ca8 DMA1_Channel7_IRQHandler + 0x0000000008001ca8 CAN1_RX1_IRQHandler + 0x0000000008001ca8 UART5_IRQHandler + 0x0000000008001ca8 ADC3_IRQHandler + 0x0000000008001ca8 DMA2_Channel1_IRQHandler + 0x0000000008001ca8 I2C1_EV_IRQHandler + 0x0000000008001ca8 DMA1_Channel6_IRQHandler + 0x0000000008001ca8 UART4_IRQHandler + 0x0000000008001ca8 TIM3_IRQHandler + 0x0000000008001ca8 RCC_IRQHandler + 0x0000000008001ca8 TIM1_TRG_COM_IRQHandler + 0x0000000008001ca8 DMA1_Channel1_IRQHandler + 0x0000000008001ca8 Default_Handler + 0x0000000008001ca8 EXTI15_10_IRQHandler + 0x0000000008001ca8 TIM7_IRQHandler + 0x0000000008001ca8 TIM5_IRQHandler + 0x0000000008001ca8 EXTI9_5_IRQHandler + 0x0000000008001ca8 SPI2_IRQHandler + 0x0000000008001ca8 DMA1_Channel5_IRQHandler + 0x0000000008001ca8 EXTI4_IRQHandler + 0x0000000008001ca8 USB_LP_CAN1_RX0_IRQHandler + 0x0000000008001ca8 USB_HP_CAN1_TX_IRQHandler + 0x0000000008001ca8 DMA1_Channel3_IRQHandler + 0x0000000008001ca8 FSMC_IRQHandler + 0x0000000008001ca8 TIM1_UP_IRQHandler + 0x0000000008001ca8 WWDG_IRQHandler + 0x0000000008001ca8 TIM2_IRQHandler + 0x0000000008001ca8 TIM1_BRK_IRQHandler + 0x0000000008001ca8 EXTI1_IRQHandler + 0x0000000008001ca8 DMA2_Channel4_5_IRQHandler + 0x0000000008001ca8 USART2_IRQHandler + 0x0000000008001ca8 I2C2_ER_IRQHandler + 0x0000000008001ca8 DMA1_Channel2_IRQHandler + 0x0000000008001ca8 TIM8_BRK_IRQHandler + 0x0000000008001ca8 CAN1_SCE_IRQHandler + 0x0000000008001ca8 FLASH_IRQHandler + 0x0000000008001ca8 USART1_IRQHandler + 0x0000000008001ca8 SPI3_IRQHandler + 0x0000000008001ca8 I2C1_ER_IRQHandler + 0x0000000008001ca8 USBWakeUp_IRQHandler + 0x0000000008001ca8 DMA2_Channel3_IRQHandler + *fill* 0x0000000008001caa 0x2 .text.HAL_Init - 0x0000000008001ac8 0x2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x0000000008001ac8 HAL_Init + 0x0000000008001cac 0x2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008001cac HAL_Init .text.HAL_InitTick - 0x0000000008001af4 0x60 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x0000000008001af4 HAL_InitTick + 0x0000000008001cd8 0x60 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008001cd8 HAL_InitTick .text.HAL_IncTick - 0x0000000008001b54 0x24 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x0000000008001b54 HAL_IncTick + 0x0000000008001d38 0x24 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008001d38 HAL_IncTick .text.HAL_GetTick - 0x0000000008001b78 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x0000000008001b78 HAL_GetTick + 0x0000000008001d5c 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008001d5c HAL_GetTick .text.HAL_Delay - 0x0000000008001b8c 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x0000000008001b8c HAL_Delay + 0x0000000008001d70 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000008001d70 HAL_Delay .text.__NVIC_SetPriorityGrouping - 0x0000000008001bd4 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001db8 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.__NVIC_GetPriorityGrouping - 0x0000000008001c1c 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001e00 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.__NVIC_EnableIRQ - 0x0000000008001c38 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001e1c 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.__NVIC_SetPriority - 0x0000000008001c70 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001e54 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.NVIC_EncodePriority - 0x0000000008001cc4 0x64 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001ea8 0x64 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.SysTick_Config - 0x0000000008001d28 0x44 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001f0c 0x44 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .text.HAL_NVIC_SetPriorityGrouping - 0x0000000008001d6c 0x16 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - 0x0000000008001d6c HAL_NVIC_SetPriorityGrouping + 0x0000000008001f50 0x16 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001f50 HAL_NVIC_SetPriorityGrouping .text.HAL_NVIC_SetPriority - 0x0000000008001d82 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - 0x0000000008001d82 HAL_NVIC_SetPriority + 0x0000000008001f66 0x38 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001f66 HAL_NVIC_SetPriority .text.HAL_NVIC_EnableIRQ - 0x0000000008001dba 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - 0x0000000008001dba HAL_NVIC_EnableIRQ + 0x0000000008001f9e 0x1c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001f9e HAL_NVIC_EnableIRQ .text.HAL_SYSTICK_Config - 0x0000000008001dd6 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - 0x0000000008001dd6 HAL_SYSTICK_Config - *fill* 0x0000000008001dee 0x2 + 0x0000000008001fba 0x18 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000008001fba HAL_SYSTICK_Config + *fill* 0x0000000008001fd2 0x2 .text.HAL_GPIO_Init - 0x0000000008001df0 0x328 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - 0x0000000008001df0 HAL_GPIO_Init + 0x0000000008001fd4 0x328 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + 0x0000000008001fd4 HAL_GPIO_Init .text.HAL_GPIO_ReadPin - 0x0000000008002118 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - 0x0000000008002118 HAL_GPIO_ReadPin + 0x00000000080022fc 0x2e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + 0x00000000080022fc HAL_GPIO_ReadPin .text.HAL_GPIO_WritePin - 0x0000000008002146 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - 0x0000000008002146 HAL_GPIO_WritePin - *fill* 0x0000000008002176 0x2 + 0x000000000800232a 0x30 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + 0x000000000800232a HAL_GPIO_WritePin + *fill* 0x000000000800235a 0x2 .text.HAL_I2C_Init - 0x0000000008002178 0x288 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o - 0x0000000008002178 HAL_I2C_Init + 0x000000000800235c 0x288 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x000000000800235c HAL_I2C_Init .text.HAL_I2C_Mem_Write - 0x0000000008002400 0x1f4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o - 0x0000000008002400 HAL_I2C_Mem_Write + 0x00000000080025e4 0x1f4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x00000000080025e4 HAL_I2C_Mem_Write .text.HAL_I2C_Mem_Read - 0x00000000080025f4 0x4d0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o - 0x00000000080025f4 HAL_I2C_Mem_Read + 0x00000000080027d8 0x4d0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x00000000080027d8 HAL_I2C_Mem_Read .text.I2C_RequestMemoryWrite - 0x0000000008002ac4 0x12c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x0000000008002ca8 0x12c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o .text.I2C_RequestMemoryRead - 0x0000000008002bf0 0x1d0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x0000000008002dd4 0x1d0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o .text.I2C_WaitOnFlagUntilTimeout - 0x0000000008002dc0 0xae ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x0000000008002fa4 0xae ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o .text.I2C_WaitOnMasterAddressFlagUntilTimeout - 0x0000000008002e6e 0xfe ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x0000000008003052 0xfe ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o .text.I2C_WaitOnTXEFlagUntilTimeout - 0x0000000008002f6c 0x82 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x0000000008003150 0x82 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o .text.I2C_WaitOnBTFFlagUntilTimeout - 0x0000000008002fee 0x82 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x00000000080031d2 0x82 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o .text.I2C_WaitOnRXNEFlagUntilTimeout - 0x0000000008003070 0xac ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x0000000008003254 0xac ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o .text.I2C_IsAcknowledgeFailed - 0x000000000800311c 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x0000000008003300 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o .text.HAL_RCC_OscConfig - 0x0000000008003178 0x500 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x0000000008003178 HAL_RCC_OscConfig + 0x000000000800335c 0x500 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x000000000800335c HAL_RCC_OscConfig .text.HAL_RCC_ClockConfig - 0x0000000008003678 0x1d4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x0000000008003678 HAL_RCC_ClockConfig + 0x000000000800385c 0x1d4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x000000000800385c HAL_RCC_ClockConfig .text.HAL_RCC_GetSysClockFreq - 0x000000000800384c 0xc0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x000000000800384c HAL_RCC_GetSysClockFreq + 0x0000000008003a30 0xc0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008003a30 HAL_RCC_GetSysClockFreq .text.HAL_RCC_GetHCLKFreq - 0x000000000800390c 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x000000000800390c HAL_RCC_GetHCLKFreq + 0x0000000008003af0 0x14 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008003af0 HAL_RCC_GetHCLKFreq .text.HAL_RCC_GetPCLK1Freq - 0x0000000008003920 0x28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - 0x0000000008003920 HAL_RCC_GetPCLK1Freq + 0x0000000008003b04 0x28 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008003b04 HAL_RCC_GetPCLK1Freq .text.RCC_Delay - 0x0000000008003948 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000008003b2c 0x3c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o .text.HAL_SPI_Init - 0x0000000008003984 0x108 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o - 0x0000000008003984 HAL_SPI_Init + 0x0000000008003b68 0x108 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o + 0x0000000008003b68 HAL_SPI_Init .text.HAL_SRAM_Init - 0x0000000008003a8c 0x9a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - 0x0000000008003a8c HAL_SRAM_Init + 0x0000000008003c70 0x9a ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + 0x0000000008003c70 HAL_SRAM_Init .text.HAL_TIM_Base_Init - 0x0000000008003b26 0x9e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - 0x0000000008003b26 HAL_TIM_Base_Init + 0x0000000008003d0a 0x9e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008003d0a HAL_TIM_Base_Init .text.HAL_TIM_Base_Stop_IT - 0x0000000008003bc4 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - 0x0000000008003bc4 HAL_TIM_Base_Stop_IT + 0x0000000008003da8 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008003da8 HAL_TIM_Base_Stop_IT + .text.HAL_TIM_PWM_Init + 0x0000000008003e04 0x9e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008003e04 HAL_TIM_PWM_Init + .text.HAL_TIM_PWM_MspInit + 0x0000000008003ea2 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008003ea2 HAL_TIM_PWM_MspInit + .text.HAL_TIM_PWM_Start + 0x0000000008003eb4 0x174 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008003eb4 HAL_TIM_PWM_Start .text.HAL_TIM_IRQHandler - 0x0000000008003c20 0x210 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - 0x0000000008003c20 HAL_TIM_IRQHandler + 0x0000000008004028 0x210 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008004028 HAL_TIM_IRQHandler + .text.HAL_TIM_PWM_ConfigChannel + 0x0000000008004238 0x17c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008004238 HAL_TIM_PWM_ConfigChannel + .text.HAL_TIM_ConfigClockSource + 0x00000000080043b4 0x188 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x00000000080043b4 HAL_TIM_ConfigClockSource .text.HAL_TIM_OC_DelayElapsedCallback - 0x0000000008003e30 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - 0x0000000008003e30 HAL_TIM_OC_DelayElapsedCallback + 0x000000000800453c 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x000000000800453c HAL_TIM_OC_DelayElapsedCallback .text.HAL_TIM_IC_CaptureCallback - 0x0000000008003e42 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - 0x0000000008003e42 HAL_TIM_IC_CaptureCallback + 0x000000000800454e 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x000000000800454e HAL_TIM_IC_CaptureCallback .text.HAL_TIM_PWM_PulseFinishedCallback - 0x0000000008003e54 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - 0x0000000008003e54 HAL_TIM_PWM_PulseFinishedCallback + 0x0000000008004560 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008004560 HAL_TIM_PWM_PulseFinishedCallback .text.HAL_TIM_TriggerCallback - 0x0000000008003e66 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - 0x0000000008003e66 HAL_TIM_TriggerCallback + 0x0000000008004572 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008004572 HAL_TIM_TriggerCallback .text.TIM_Base_SetConfig - 0x0000000008003e78 0xf4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - 0x0000000008003e78 TIM_Base_SetConfig + 0x0000000008004584 0xf4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008004584 TIM_Base_SetConfig + .text.TIM_OC1_SetConfig + 0x0000000008004678 0xe0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .text.TIM_OC2_SetConfig + 0x0000000008004758 0xe8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008004758 TIM_OC2_SetConfig + .text.TIM_OC3_SetConfig + 0x0000000008004840 0xe8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .text.TIM_OC4_SetConfig + 0x0000000008004928 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .text.TIM_TI1_ConfigInputStage + 0x00000000080049d0 0x5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .text.TIM_TI2_ConfigInputStage + 0x0000000008004a2c 0x5e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .text.TIM_ITRx_SetConfig + 0x0000000008004a8a 0x34 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .text.TIM_ETR_SetConfig + 0x0000000008004abe 0x3e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008004abe TIM_ETR_SetConfig + .text.TIM_CCxChannelCmd + 0x0000000008004afc 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000008004afc TIM_CCxChannelCmd .text.HAL_TIMEx_MasterConfigSynchronization - 0x0000000008003f6c 0xd8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o - 0x0000000008003f6c HAL_TIMEx_MasterConfigSynchronization + 0x0000000008004b44 0xd8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + 0x0000000008004b44 HAL_TIMEx_MasterConfigSynchronization .text.HAL_TIMEx_CommutCallback - 0x0000000008004044 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o - 0x0000000008004044 HAL_TIMEx_CommutCallback + 0x0000000008004c1c 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + 0x0000000008004c1c HAL_TIMEx_CommutCallback .text.HAL_TIMEx_BreakCallback - 0x0000000008004056 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o - 0x0000000008004056 HAL_TIMEx_BreakCallback + 0x0000000008004c2e 0x12 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + 0x0000000008004c2e HAL_TIMEx_BreakCallback .text.FSMC_NORSRAM_Init - 0x0000000008004068 0xd4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - 0x0000000008004068 FSMC_NORSRAM_Init + 0x0000000008004c40 0xd4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + 0x0000000008004c40 FSMC_NORSRAM_Init .text.FSMC_NORSRAM_Timing_Init - 0x000000000800413c 0x68 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - 0x000000000800413c FSMC_NORSRAM_Timing_Init + 0x0000000008004d14 0x68 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + 0x0000000008004d14 FSMC_NORSRAM_Timing_Init .text.FSMC_NORSRAM_Extended_Timing_Init - 0x00000000080041a4 0x70 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - 0x00000000080041a4 FSMC_NORSRAM_Extended_Timing_Init + 0x0000000008004d7c 0x70 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + 0x0000000008004d7c FSMC_NORSRAM_Extended_Timing_Init .text.LCD_WR_REG - 0x0000000008004214 0x1c ./HW_Devices/LCD.o - 0x0000000008004214 LCD_WR_REG + 0x0000000008004dec 0x1c ./HW_Devices/LCD.o + 0x0000000008004dec LCD_WR_REG .text.LCD_WR_DATA - 0x0000000008004230 0x20 ./HW_Devices/LCD.o - 0x0000000008004230 LCD_WR_DATA + 0x0000000008004e08 0x20 ./HW_Devices/LCD.o + 0x0000000008004e08 LCD_WR_DATA .text.LCD_WriteReg - 0x0000000008004250 0x2c ./HW_Devices/LCD.o - 0x0000000008004250 LCD_WriteReg + 0x0000000008004e28 0x2c ./HW_Devices/LCD.o + 0x0000000008004e28 LCD_WriteReg .text.LCD_ReadReg - 0x000000000800427c 0x28 ./HW_Devices/LCD.o - 0x000000000800427c LCD_ReadReg + 0x0000000008004e54 0x28 ./HW_Devices/LCD.o + 0x0000000008004e54 LCD_ReadReg .text.LCD_Scan_Dir - 0x00000000080042a4 0x2dc ./HW_Devices/LCD.o - 0x00000000080042a4 LCD_Scan_Dir + 0x0000000008004e7c 0x2dc ./HW_Devices/LCD.o + 0x0000000008004e7c LCD_Scan_Dir .text.LCD_Display_Dir - 0x0000000008004580 0x18c ./HW_Devices/LCD.o - 0x0000000008004580 LCD_Display_Dir + 0x0000000008005158 0x18c ./HW_Devices/LCD.o + 0x0000000008005158 LCD_Display_Dir .text.LCDx_Init - 0x000000000800470c 0x1ec ./HW_Devices/LCD.o - 0x000000000800470c LCDx_Init + 0x00000000080052e4 0x1ec ./HW_Devices/LCD.o + 0x00000000080052e4 LCDx_Init .text.LCD_SetCursor - 0x00000000080048f8 0x120 ./HW_Devices/LCD.o - 0x00000000080048f8 LCD_SetCursor + 0x00000000080054d0 0x120 ./HW_Devices/LCD.o + 0x00000000080054d0 LCD_SetCursor .text.LCD_set_dot - 0x0000000008004a18 0x40 ./HW_Devices/LCD.o - 0x0000000008004a18 LCD_set_dot + 0x00000000080055f0 0x40 ./HW_Devices/LCD.o + 0x00000000080055f0 LCD_set_dot .text.LCD_Clear - 0x0000000008004a58 0xa4 ./HW_Devices/LCD.o - 0x0000000008004a58 LCD_Clear + 0x0000000008005630 0xa4 ./HW_Devices/LCD.o + 0x0000000008005630 LCD_Clear .text.LCD_DrawLine - 0x0000000008004afc 0x10a ./HW_Devices/LCD.o - 0x0000000008004afc LCD_DrawLine + 0x00000000080056d4 0x10a ./HW_Devices/LCD.o + 0x00000000080056d4 LCD_DrawLine .text.Draw_Circle - 0x0000000008004c06 0x156 ./HW_Devices/LCD.o - 0x0000000008004c06 Draw_Circle + 0x00000000080057de 0x156 ./HW_Devices/LCD.o + 0x00000000080057de Draw_Circle .text.LCD_ShowChar - 0x0000000008004d5c 0xf8 ./HW_Devices/LCD.o - 0x0000000008004d5c LCD_ShowChar + 0x0000000008005934 0xf8 ./HW_Devices/LCD.o + 0x0000000008005934 LCD_ShowChar .text.LCD_ShowString - 0x0000000008004e54 0x7c ./HW_Devices/LCD.o - 0x0000000008004e54 LCD_ShowString + 0x0000000008005a2c 0x7c ./HW_Devices/LCD.o + 0x0000000008005a2c LCD_ShowString + .text.play_ones + 0x0000000008005aa8 0x70 ./HW_Devices/buzzer.o + 0x0000000008005aa8 play_ones + .text.add_a_note + 0x0000000008005b18 0x74 ./HW_Devices/buzzer.o + 0x0000000008005b18 add_a_note + .text.delhead 0x0000000008005b8c 0x50 ./HW_Devices/buzzer.o + 0x0000000008005b8c delhead + .text.buzzer_play_server + 0x0000000008005bdc 0x74 ./HW_Devices/buzzer.o + 0x0000000008005bdc buzzer_play_server .text.EPPROM_SLOWWRITE_INIT - 0x0000000008004ed0 0x34 ./HW_Devices/eeprom.o - 0x0000000008004ed0 EPPROM_SLOWWRITE_INIT + 0x0000000008005c50 0x34 ./HW_Devices/eeprom.o + 0x0000000008005c50 EPPROM_SLOWWRITE_INIT .text.EEPROM_SLOWWRITE_SERVER - 0x0000000008004f04 0x8c ./HW_Devices/eeprom.o - 0x0000000008004f04 EEPROM_SLOWWRITE_SERVER + 0x0000000008005c84 0x8c ./HW_Devices/eeprom.o + 0x0000000008005c84 EEPROM_SLOWWRITE_SERVER .text.EEPROM_READ_BATY - 0x0000000008004f90 0x24 ./HW_Devices/eeprom.o - 0x0000000008004f90 EEPROM_READ_BATY + 0x0000000008005d10 0x24 ./HW_Devices/eeprom.o + 0x0000000008005d10 EEPROM_READ_BATY .text.EEPROM_WRITE_BATY - 0x0000000008004fb4 0x8c ./HW_Devices/eeprom.o - 0x0000000008004fb4 EEPROM_WRITE_BATY + 0x0000000008005d34 0x8c ./HW_Devices/eeprom.o + 0x0000000008005d34 EEPROM_WRITE_BATY .text.IIC_SAND_DATE - 0x0000000008005040 0x3c ./HW_Devices/iic.o - 0x0000000008005040 IIC_SAND_DATE + 0x0000000008005dc0 0x3c ./HW_Devices/iic.o + 0x0000000008005dc0 IIC_SAND_DATE .text.IIC_READ_DATE - 0x000000000800507c 0x3c ./HW_Devices/iic.o - 0x000000000800507c IIC_READ_DATE + 0x0000000008005dfc 0x3c ./HW_Devices/iic.o + 0x0000000008005dfc IIC_READ_DATE .text.GEI_BUTTON_CODE - 0x00000000080050b8 0xb8 ./HW_Devices/key.o - 0x00000000080050b8 GEI_BUTTON_CODE + 0x0000000008005e38 0xb8 ./HW_Devices/key.o + 0x0000000008005e38 GEI_BUTTON_CODE .text.TP_Write_Byte - 0x0000000008005170 0x6c ./HW_Devices/touch.o - 0x0000000008005170 TP_Write_Byte + 0x0000000008005ef0 0x6c ./HW_Devices/touch.o + 0x0000000008005ef0 TP_Write_Byte .text.TP_Read_AD - 0x00000000080051dc 0xc8 ./HW_Devices/touch.o - 0x00000000080051dc TP_Read_AD + 0x0000000008005f5c 0xc8 ./HW_Devices/touch.o + 0x0000000008005f5c TP_Read_AD .text.TP_Read_XOY - 0x00000000080052a4 0x104 ./HW_Devices/touch.o - 0x00000000080052a4 TP_Read_XOY + 0x0000000008006024 0x104 ./HW_Devices/touch.o + 0x0000000008006024 TP_Read_XOY .text.TP_Read_XY_ADC - 0x00000000080053a8 0x32 ./HW_Devices/touch.o - 0x00000000080053a8 TP_Read_XY_ADC + 0x0000000008006128 0x32 ./HW_Devices/touch.o + 0x0000000008006128 TP_Read_XY_ADC .text.TP_Read_XY2 - 0x00000000080053da 0xd0 ./HW_Devices/touch.o - 0x00000000080053da TP_Read_XY2 - *fill* 0x00000000080054aa 0x2 + 0x000000000800615a 0xd0 ./HW_Devices/touch.o + 0x000000000800615a TP_Read_XY2 + *fill* 0x000000000800622a 0x2 .text.TP_Server - 0x00000000080054ac 0xf0 ./HW_Devices/touch.o - 0x00000000080054ac TP_Server + 0x000000000800622c 0xf0 ./HW_Devices/touch.o + 0x000000000800622c TP_Server .text.TP_DrwaTrage - 0x000000000800559c 0xb8 ./HW_Devices/touch.o - 0x000000000800559c TP_DrwaTrage + 0x000000000800631c 0xb8 ./HW_Devices/touch.o + 0x000000000800631c TP_DrwaTrage .text.TP_adjustment - 0x0000000008005654 0x5c4 ./HW_Devices/touch.o - 0x0000000008005654 TP_adjustment + 0x00000000080063d4 0x5c4 ./HW_Devices/touch.o + 0x00000000080063d4 TP_adjustment .text.max30102_read_fifo - 0x0000000008005c18 0x100 ./SW_APPs/APP_blood.o - 0x0000000008005c18 max30102_read_fifo + 0x0000000008006998 0x100 ./SW_APPs/APP_blood.o + 0x0000000008006998 max30102_read_fifo .text.HAL_TIM_PeriodElapsedCallback - 0x0000000008005d18 0xac ./SW_APPs/APP_blood.o - 0x0000000008005d18 HAL_TIM_PeriodElapsedCallback + 0x0000000008006a98 0xac ./SW_APPs/APP_blood.o + 0x0000000008006a98 HAL_TIM_PeriodElapsedCallback .text.APP_morsecode_init - 0x0000000008005dc4 0x40 ./SW_APPs/APP_morsecode.o - 0x0000000008005dc4 APP_morsecode_init + 0x0000000008006b44 0x40 ./SW_APPs/APP_morsecode.o + 0x0000000008006b44 APP_morsecode_init .text.getmorsecode - 0x0000000008005e04 0x70 ./SW_APPs/APP_morsecode.o - 0x0000000008005e04 getmorsecode + 0x0000000008006b84 0x70 ./SW_APPs/APP_morsecode.o + 0x0000000008006b84 getmorsecode .text.APP_morsecode_loop - 0x0000000008005e74 0x598 ./SW_APPs/APP_morsecode.o - 0x0000000008005e74 APP_morsecode_loop + 0x0000000008006bf4 0x6f4 ./SW_APPs/APP_morsecode.o + 0x0000000008006bf4 APP_morsecode_loop .text.main_app - 0x000000000800640c 0xd0 ./SW_APPs/Main_APP.o - 0x000000000800640c main_app + 0x00000000080072e8 0xe0 ./SW_APPs/Main_APP.o + 0x00000000080072e8 main_app .text.Inteface_SetCursor - 0x00000000080064dc 0x34 ./SW_APPs/windows.o - 0x00000000080064dc Inteface_SetCursor + 0x00000000080073c8 0x34 ./SW_APPs/windows.o + 0x00000000080073c8 Inteface_SetCursor .text.Inteface_SetColor - 0x0000000008006510 0x20 ./SW_APPs/windows.o - 0x0000000008006510 Inteface_SetColor - .text.UI_Init 0x0000000008006530 0x66 ./SW_APPs/windows.o - 0x0000000008006530 UI_Init + 0x00000000080073fc 0x20 ./SW_APPs/windows.o + 0x00000000080073fc Inteface_SetColor + .text.UI_Init 0x000000000800741c 0x66 ./SW_APPs/windows.o + 0x000000000800741c UI_Init .text.New_Window - 0x0000000008006596 0xd2 ./SW_APPs/windows.o - 0x0000000008006596 New_Window + 0x0000000008007482 0xd2 ./SW_APPs/windows.o + 0x0000000008007482 New_Window .text.Refresh_Window - 0x0000000008006668 0x10a ./SW_APPs/windows.o - 0x0000000008006668 Refresh_Window + 0x0000000008007554 0x10a ./SW_APPs/windows.o + 0x0000000008007554 Refresh_Window .text.Refresh_UI - 0x0000000008006772 0x94 ./SW_APPs/windows.o - 0x0000000008006772 Refresh_UI - .text.Chack 0x0000000008006806 0xdc ./SW_APPs/windows.o - 0x0000000008006806 Chack - *fill* 0x00000000080068e2 0x2 + 0x000000000800765e 0x94 ./SW_APPs/windows.o + 0x000000000800765e Refresh_UI + .text.Chack 0x00000000080076f2 0xdc ./SW_APPs/windows.o + 0x00000000080076f2 Chack + *fill* 0x00000000080077ce 0x2 .text.UI_Server - 0x00000000080068e4 0x1f4 ./SW_APPs/windows.o - 0x00000000080068e4 UI_Server - .text.__errno 0x0000000008006ad8 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-errno.o) - 0x0000000008006ad8 __errno + 0x00000000080077d0 0x1f4 ./SW_APPs/windows.o + 0x00000000080077d0 UI_Server + .text.__errno 0x00000000080079c4 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-errno.o) + 0x00000000080079c4 __errno .text.__libc_init_array - 0x0000000008006ae4 0x48 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-init.o) - 0x0000000008006ae4 __libc_init_array - .text.malloc 0x0000000008006b2c 0x10 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-malloc.o) - 0x0000000008006b2c malloc - .text.free 0x0000000008006b3c 0x10 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-malloc.o) - 0x0000000008006b3c free - .text.memset 0x0000000008006b4c 0x10 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memset.o) - 0x0000000008006b4c memset - .text._free_r 0x0000000008006b5c 0x98 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-freer.o) - 0x0000000008006b5c _free_r + 0x00000000080079d0 0x48 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-init.o) + 0x00000000080079d0 __libc_init_array + .text.malloc 0x0000000008007a18 0x10 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-malloc.o) + 0x0000000008007a18 malloc + .text.free 0x0000000008007a28 0x10 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-malloc.o) + 0x0000000008007a28 free + .text.memset 0x0000000008007a38 0x10 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memset.o) + 0x0000000008007a38 memset + .text._free_r 0x0000000008007a48 0x98 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-freer.o) + 0x0000000008007a48 _free_r .text._malloc_r - 0x0000000008006bf4 0xb4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) - 0x0000000008006bf4 _malloc_r - .text.__cvt 0x0000000008006ca8 0xbe c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) - 0x0000000008006ca8 __cvt + 0x0000000008007ae0 0xb4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) + 0x0000000008007ae0 _malloc_r + .text.__cvt 0x0000000008007b94 0xbe c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) + 0x0000000008007b94 __cvt .text.__exponent - 0x0000000008006d66 0x7c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) - 0x0000000008006d66 __exponent - *fill* 0x0000000008006de2 0x2 + 0x0000000008007c52 0x7c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) + 0x0000000008007c52 __exponent + *fill* 0x0000000008007cce 0x2 .text._printf_float - 0x0000000008006de4 0x458 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) - 0x0000000008006de4 _printf_float + 0x0000000008007cd0 0x458 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) + 0x0000000008007cd0 _printf_float .text._printf_common - 0x000000000800723c 0xde c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) - 0x000000000800723c _printf_common - *fill* 0x000000000800731a 0x2 + 0x0000000008008128 0xde c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) + 0x0000000008008128 _printf_common + *fill* 0x0000000008008206 0x2 .text._printf_i - 0x000000000800731c 0x24c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) - 0x000000000800731c _printf_i - .text._sbrk_r 0x0000000008007568 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sbrkr.o) - 0x0000000008007568 _sbrk_r - .text.sprintf 0x0000000008007588 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sprintf.o) - 0x0000000008007588 siprintf - 0x0000000008007588 sprintf + 0x0000000008008208 0x24c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) + 0x0000000008008208 _printf_i + .text._sbrk_r 0x0000000008008454 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sbrkr.o) + 0x0000000008008454 _sbrk_r + .text.sprintf 0x0000000008008474 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sprintf.o) + 0x0000000008008474 siprintf + 0x0000000008008474 sprintf .text.__swbuf_r - 0x00000000080075c8 0xa4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wbuf.o) - 0x00000000080075c8 __swbuf_r + 0x00000000080084b4 0xa4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wbuf.o) + 0x00000000080084b4 __swbuf_r .text.__swsetup_r - 0x000000000800766c 0xdc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wsetup.o) - 0x000000000800766c __swsetup_r - .text.quorem 0x0000000008007748 0x11a c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-dtoa.o) - *fill* 0x0000000008007862 0x6 - .text._dtoa_r 0x0000000008007868 0xbdc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-dtoa.o) - 0x0000000008007868 _dtoa_r + 0x0000000008008558 0xdc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wsetup.o) + 0x0000000008008558 __swsetup_r + .text.quorem 0x0000000008008634 0x11a c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-dtoa.o) + *fill* 0x000000000800874e 0x2 + .text._dtoa_r 0x0000000008008750 0xbdc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-dtoa.o) + 0x0000000008008750 _dtoa_r .text.__sflush_r - 0x0000000008008444 0x10c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fflush.o) - 0x0000000008008444 __sflush_r + 0x000000000800932c 0x10c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fflush.o) + 0x000000000800932c __sflush_r .text._fflush_r - 0x0000000008008550 0x78 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fflush.o) - 0x0000000008008550 _fflush_r - .text.std 0x00000000080085c8 0x48 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x0000000008009438 0x78 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fflush.o) + 0x0000000008009438 _fflush_r + .text.std 0x00000000080094b0 0x48 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) .text._cleanup_r - 0x0000000008008610 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x0000000008008610 _cleanup_r + 0x00000000080094f8 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x00000000080094f8 _cleanup_r .text.__sfmoreglue - 0x000000000800861c 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x000000000800861c __sfmoreglue + 0x0000000008009504 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x0000000008009504 __sfmoreglue .text.__sfp_lock_acquire - 0x0000000008008648 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x0000000008008648 __sfp_lock_acquire + 0x0000000008009530 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x0000000008009530 __sfp_lock_acquire .text.__sfp_lock_release - 0x0000000008008654 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x0000000008008654 __sfp_lock_release + 0x000000000800953c 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x000000000800953c __sfp_lock_release .text.__sinit_lock_acquire - 0x0000000008008660 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x0000000008008660 __sinit_lock_acquire + 0x0000000008009548 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x0000000008009548 __sinit_lock_acquire .text.__sinit_lock_release - 0x000000000800866c 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x000000000800866c __sinit_lock_release - .text.__sinit 0x0000000008008678 0x70 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x0000000008008678 __sinit - .text.__sfp 0x00000000080086e8 0x8c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x00000000080086e8 __sfp + 0x0000000008009554 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x0000000008009554 __sinit_lock_release + .text.__sinit 0x0000000008009560 0x70 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x0000000008009560 __sinit + .text.__sfp 0x00000000080095d0 0x8c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x00000000080095d0 __sfp .text._fwalk_reent - 0x0000000008008774 0x3e c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fwalk.o) - 0x0000000008008774 _fwalk_reent - *fill* 0x00000000080087b2 0x2 + 0x000000000800965c 0x3e c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fwalk.o) + 0x000000000800965c _fwalk_reent + *fill* 0x000000000800969a 0x2 .text._localeconv_r - 0x00000000080087b4 0x8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-localeconv.o) - 0x00000000080087b4 _localeconv_r + 0x000000000800969c 0x8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-localeconv.o) + 0x000000000800969c _localeconv_r .text.__retarget_lock_init_recursive - 0x00000000080087bc 0x2 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) - 0x00000000080087bc __retarget_lock_init_recursive + 0x00000000080096a4 0x2 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) + 0x00000000080096a4 __retarget_lock_init_recursive .text.__retarget_lock_acquire_recursive - 0x00000000080087be 0x2 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) - 0x00000000080087be __retarget_lock_acquire_recursive + 0x00000000080096a6 0x2 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) + 0x00000000080096a6 __retarget_lock_acquire_recursive .text.__retarget_lock_release_recursive - 0x00000000080087c0 0x2 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) - 0x00000000080087c0 __retarget_lock_release_recursive + 0x00000000080096a8 0x2 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) + 0x00000000080096a8 __retarget_lock_release_recursive .text.__swhatbuf_r - 0x00000000080087c2 0x48 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-makebuf.o) - 0x00000000080087c2 __swhatbuf_r - *fill* 0x000000000800880a 0x2 + 0x00000000080096aa 0x48 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-makebuf.o) + 0x00000000080096aa __swhatbuf_r + *fill* 0x00000000080096f2 0x2 .text.__smakebuf_r - 0x000000000800880c 0x80 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-makebuf.o) - 0x000000000800880c __smakebuf_r - .text.memchr 0x000000000800888c 0x1c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memchr-stub.o) - 0x000000000800888c memchr - .text.memcpy 0x00000000080088a8 0x1c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memcpy-stub.o) - 0x00000000080088a8 memcpy + 0x00000000080096f4 0x80 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-makebuf.o) + 0x00000000080096f4 __smakebuf_r + .text.memchr 0x0000000008009774 0x1c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memchr-stub.o) + 0x0000000008009774 memchr + .text.memcpy 0x0000000008009790 0x1c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memcpy-stub.o) + 0x0000000008009790 memcpy .text.__malloc_lock - 0x00000000080088c4 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) - 0x00000000080088c4 __malloc_lock + 0x00000000080097ac 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) + 0x00000000080097ac __malloc_lock .text.__malloc_unlock - 0x00000000080088d0 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) - 0x00000000080088d0 __malloc_unlock - .text._Balloc 0x00000000080088dc 0x80 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x00000000080088dc _Balloc - .text._Bfree 0x000000000800895c 0x44 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x000000000800895c _Bfree + 0x00000000080097b8 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) + 0x00000000080097b8 __malloc_unlock + .text._Balloc 0x00000000080097c4 0x80 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x00000000080097c4 _Balloc + .text._Bfree 0x0000000008009844 0x44 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x0000000008009844 _Bfree .text.__multadd - 0x00000000080089a0 0x94 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x00000000080089a0 __multadd + 0x0000000008009888 0x94 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x0000000008009888 __multadd .text.__hi0bits - 0x0000000008008a34 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x0000000008008a34 __hi0bits + 0x000000000800991c 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x000000000800991c __hi0bits .text.__lo0bits - 0x0000000008008a74 0x5c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x0000000008008a74 __lo0bits - .text.__i2b 0x0000000008008ad0 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x0000000008008ad0 __i2b + 0x000000000800995c 0x5c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x000000000800995c __lo0bits + .text.__i2b 0x00000000080099b8 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x00000000080099b8 __i2b .text.__multiply - 0x0000000008008afc 0x148 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x0000000008008afc __multiply + 0x00000000080099e4 0x148 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x00000000080099e4 __multiply .text.__pow5mult - 0x0000000008008c44 0xb4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x0000000008008c44 __pow5mult + 0x0000000008009b2c 0xb4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x0000000008009b2c __pow5mult .text.__lshift - 0x0000000008008cf8 0xd8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x0000000008008cf8 __lshift - .text.__mcmp 0x0000000008008dd0 0x36 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x0000000008008dd0 __mcmp - *fill* 0x0000000008008e06 0x2 - .text.__mdiff 0x0000000008008e08 0x120 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x0000000008008e08 __mdiff - .text.__d2b 0x0000000008008f28 0xb8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x0000000008008f28 __d2b + 0x0000000008009be0 0xd8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x0000000008009be0 __lshift + .text.__mcmp 0x0000000008009cb8 0x36 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x0000000008009cb8 __mcmp + *fill* 0x0000000008009cee 0x2 + .text.__mdiff 0x0000000008009cf0 0x120 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x0000000008009cf0 __mdiff + .text.__d2b 0x0000000008009e10 0xb8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x0000000008009e10 __d2b .text._calloc_r - 0x0000000008008fe0 0x1c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-callocr.o) - 0x0000000008008fe0 _calloc_r + 0x0000000008009ec8 0x1c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-callocr.o) + 0x0000000008009ec8 _calloc_r .text.__ssputs_r - 0x0000000008008ffc 0xb6 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) - 0x0000000008008ffc __ssputs_r - *fill* 0x00000000080090b2 0x2 + 0x0000000008009ee4 0xb6 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) + 0x0000000008009ee4 __ssputs_r + *fill* 0x0000000008009f9a 0x2 .text._svfprintf_r - 0x00000000080090b4 0x200 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) - 0x00000000080090b4 _svfiprintf_r - 0x00000000080090b4 _svfprintf_r + 0x0000000008009f9c 0x200 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) + 0x0000000008009f9c _svfiprintf_r + 0x0000000008009f9c _svfprintf_r .text.__sfputc_r - 0x00000000080092b4 0x2a c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) + 0x000000000800a19c 0x2a c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) .text.__sfputs_r - 0x00000000080092de 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) - 0x00000000080092de __sfputs_r - *fill* 0x0000000008009302 0x2 + 0x000000000800a1c6 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) + 0x000000000800a1c6 __sfputs_r + *fill* 0x000000000800a1ea 0x2 .text._vfprintf_r - 0x0000000008009304 0x260 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) - 0x0000000008009304 _vfprintf_r - 0x0000000008009304 _vfiprintf_r - .text.__sread 0x0000000008009564 0x22 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) - 0x0000000008009564 __sread + 0x000000000800a1ec 0x260 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) + 0x000000000800a1ec _vfprintf_r + 0x000000000800a1ec _vfiprintf_r + .text.__sread 0x000000000800a44c 0x22 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) + 0x000000000800a44c __sread .text.__swrite - 0x0000000008009586 0x38 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) - 0x0000000008009586 __swrite - .text.__sseek 0x00000000080095be 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) - 0x00000000080095be __sseek + 0x000000000800a46e 0x38 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) + 0x000000000800a46e __swrite + .text.__sseek 0x000000000800a4a6 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) + 0x000000000800a4a6 __sseek .text.__sclose - 0x00000000080095e2 0x8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) - 0x00000000080095e2 __sclose - *fill* 0x00000000080095ea 0x2 + 0x000000000800a4ca 0x8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) + 0x000000000800a4ca __sclose + *fill* 0x000000000800a4d2 0x2 .text._write_r - 0x00000000080095ec 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-writer.o) - 0x00000000080095ec _write_r + 0x000000000800a4d4 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-writer.o) + 0x000000000800a4d4 _write_r .text.__assert_func - 0x0000000008009610 0x3c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-assert.o) - 0x0000000008009610 __assert_func + 0x000000000800a4f8 0x3c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-assert.o) + 0x000000000800a4f8 __assert_func .text._close_r - 0x000000000800964c 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-closer.o) - 0x000000000800964c _close_r - .text.fprintf 0x000000000800966c 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fprintf.o) - 0x000000000800966c fiprintf - 0x000000000800966c fprintf + 0x000000000800a534 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-closer.o) + 0x000000000800a534 _close_r + .text.fprintf 0x000000000800a554 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fprintf.o) + 0x000000000800a554 fiprintf + 0x000000000800a554 fprintf .text._fstat_r - 0x0000000008009690 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fstatr.o) - 0x0000000008009690 _fstat_r + 0x000000000800a578 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fstatr.o) + 0x000000000800a578 _fstat_r .text._isatty_r - 0x00000000080096b4 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-isattyr.o) - 0x00000000080096b4 _isatty_r + 0x000000000800a59c 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-isattyr.o) + 0x000000000800a59c _isatty_r .text._lseek_r - 0x00000000080096d4 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lseekr.o) - 0x00000000080096d4 _lseek_r + 0x000000000800a5bc 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lseekr.o) + 0x000000000800a5bc _lseek_r .text.__ascii_mbtowc - 0x00000000080096f8 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mbtowc_r.o) - 0x00000000080096f8 __ascii_mbtowc - .text.memmove 0x000000000800971c 0x34 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memmove.o) - 0x000000000800971c memmove + 0x000000000800a5e0 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mbtowc_r.o) + 0x000000000800a5e0 __ascii_mbtowc + .text.memmove 0x000000000800a604 0x34 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memmove.o) + 0x000000000800a604 memmove .text._realloc_r - 0x0000000008009750 0x4c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-reallocr.o) - 0x0000000008009750 _realloc_r - .text._read_r 0x000000000800979c 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-readr.o) - 0x000000000800979c _read_r + 0x000000000800a638 0x4c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-reallocr.o) + 0x000000000800a638 _realloc_r + .text._read_r 0x000000000800a684 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-readr.o) + 0x000000000800a684 _read_r .text.__ascii_wctomb - 0x00000000080097c0 0x1a c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wctomb_r.o) - 0x00000000080097c0 __ascii_wctomb - .text.abort 0x00000000080097da 0xe c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-abort.o) - 0x00000000080097da abort + 0x000000000800a6a8 0x1a c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wctomb_r.o) + 0x000000000800a6a8 __ascii_wctomb + .text.abort 0x000000000800a6c2 0xe c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-abort.o) + 0x000000000800a6c2 abort .text._malloc_usable_size_r - 0x00000000080097e8 0x10 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-msizer.o) - 0x00000000080097e8 _malloc_usable_size_r + 0x000000000800a6d0 0x10 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-msizer.o) + 0x000000000800a6d0 _malloc_usable_size_r .text._raise_r - 0x00000000080097f8 0x50 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signal.o) - 0x00000000080097f8 _raise_r - .text.raise 0x0000000008009848 0x10 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signal.o) - 0x0000000008009848 raise - .text._kill_r 0x0000000008009858 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signalr.o) - 0x0000000008009858 _kill_r + 0x000000000800a6e0 0x50 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signal.o) + 0x000000000800a6e0 _raise_r + .text.raise 0x000000000800a730 0x10 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signal.o) + 0x000000000800a730 raise + .text._kill_r 0x000000000800a740 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signalr.o) + 0x000000000800a740 _kill_r .text._getpid_r - 0x000000000800987c 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signalr.o) - 0x000000000800987c _getpid_r + 0x000000000800a764 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signalr.o) + 0x000000000800a764 _getpid_r *(.glue_7) - .glue_7 0x0000000008009880 0x0 linker stubs + .glue_7 0x000000000800a768 0x0 linker stubs *(.glue_7t) - .glue_7t 0x0000000008009880 0x0 linker stubs + .glue_7t 0x000000000800a768 0x0 linker stubs *(.eh_frame) - .eh_frame 0x0000000008009880 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + .eh_frame 0x000000000800a768 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o *(.init) - .init 0x0000000008009880 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o - 0x0000000008009880 _init - .init 0x0000000008009884 0x8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + .init 0x000000000800a768 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + 0x000000000800a768 _init + .init 0x000000000800a76c 0x8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o *(.fini) - .fini 0x000000000800988c 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o - 0x000000000800988c _fini - .fini 0x0000000008009890 0x8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o - 0x0000000008009898 . = ALIGN (0x4) - 0x0000000008009898 _etext = . + .fini 0x000000000800a774 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crti.o + 0x000000000800a774 _fini + .fini 0x000000000800a778 0x8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + 0x000000000800a780 . = ALIGN (0x4) + 0x000000000800a780 _etext = . -.vfp11_veneer 0x0000000008009898 0x0 - .vfp11_veneer 0x0000000008009898 0x0 linker stubs +.vfp11_veneer 0x000000000800a780 0x0 + .vfp11_veneer 0x000000000800a780 0x0 linker stubs -.v4_bx 0x0000000008009898 0x0 - .v4_bx 0x0000000008009898 0x0 linker stubs +.v4_bx 0x000000000800a780 0x0 + .v4_bx 0x000000000800a780 0x0 linker stubs -.iplt 0x0000000008009898 0x0 - .iplt 0x0000000008009898 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o +.iplt 0x000000000800a780 0x0 + .iplt 0x000000000800a780 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o -.rodata 0x0000000008009898 0xf9c - 0x0000000008009898 . = ALIGN (0x4) +.rodata 0x000000000800a780 0xfbc + 0x000000000800a780 . = ALIGN (0x4) *(.rodata) - .rodata 0x0000000008009898 0x10 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .rodata 0x00000000080098a8 0xb8 ./HW_Devices/touch.o - .rodata 0x0000000008009960 0xb ./SW_APPs/Main_APP.o + .rodata 0x000000000800a780 0x10 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .rodata 0x000000000800a790 0xb8 ./HW_Devices/touch.o + .rodata 0x000000000800a848 0x20 ./SW_APPs/APP_morsecode.o + .rodata 0x000000000800a868 0xb ./SW_APPs/Main_APP.o *(.rodata*) - *fill* 0x000000000800996b 0x1 + *fill* 0x000000000800a873 0x1 .rodata.AHBPrescTable - 0x000000000800996c 0x10 ./Core/Src/system_stm32f1xx.o - 0x000000000800996c AHBPrescTable + 0x000000000800a874 0x10 ./Core/Src/system_stm32f1xx.o + 0x000000000800a874 AHBPrescTable .rodata.APBPrescTable - 0x000000000800997c 0x8 ./Core/Src/system_stm32f1xx.o - 0x000000000800997c APBPrescTable + 0x000000000800a884 0x8 ./Core/Src/system_stm32f1xx.o + 0x000000000800a884 APBPrescTable .rodata.asc2_1206 - 0x0000000008009984 0x474 ./HW_Devices/LCD.o - 0x0000000008009984 asc2_1206 + 0x000000000800a88c 0x474 ./HW_Devices/LCD.o + 0x000000000800a88c asc2_1206 .rodata.asc2_1608 - 0x0000000008009df8 0x5f0 ./HW_Devices/LCD.o - 0x0000000008009df8 asc2_1608 + 0x000000000800ad00 0x5f0 ./HW_Devices/LCD.o + 0x000000000800ad00 asc2_1608 .rodata.morsecodes - 0x000000000800a3e8 0x6c ./SW_APPs/APP_morsecode.o - 0x000000000800a3e8 morsecodes + 0x000000000800b2f0 0x6c ./SW_APPs/APP_morsecode.o + 0x000000000800b2f0 morsecodes .rodata._global_impure_ptr - 0x000000000800a454 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-impure.o) - 0x000000000800a454 _global_impure_ptr + 0x000000000800b35c 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-impure.o) + 0x000000000800b35c _global_impure_ptr .rodata._printf_float.str1.1 - 0x000000000800a458 0x12 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) + 0x000000000800b360 0x12 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) .rodata._printf_i.str1.1 - 0x000000000800a46a 0x22 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) + 0x000000000800b372 0x22 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) .rodata._dtoa_r.str1.1 - 0x000000000800a48c 0x94 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-dtoa.o) + 0x000000000800b394 0x94 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-dtoa.o) 0x96 (size before relaxing) .rodata.__sf_fake_stderr - 0x000000000800a520 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x000000000800a520 __sf_fake_stderr + 0x000000000800b428 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x000000000800b428 __sf_fake_stderr .rodata.__sf_fake_stdin - 0x000000000800a540 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x000000000800a540 __sf_fake_stdin + 0x000000000800b448 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x000000000800b448 __sf_fake_stdin .rodata.__sf_fake_stdout - 0x000000000800a560 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - 0x000000000800a560 __sf_fake_stdout + 0x000000000800b468 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x000000000800b468 __sf_fake_stdout .rodata._Balloc.str1.1 - 0x000000000800a580 0x60 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x000000000800b488 0x60 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) 0x77 (size before relaxing) .rodata.__multadd.str1.1 - 0x000000000800a5e0 0x11 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x000000000800b4e8 0x11 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) .rodata.__mprec_bigtens - 0x000000000800a5e0 0x28 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x000000000800a5e0 __mprec_bigtens + 0x000000000800b4e8 0x28 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x000000000800b4e8 __mprec_bigtens .rodata.__mprec_tens - 0x000000000800a608 0xc8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - 0x000000000800a608 __mprec_tens + 0x000000000800b510 0xc8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x000000000800b510 __mprec_tens .rodata.p05.6150 - 0x000000000800a6d0 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x000000000800b5d8 0xc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) .rodata._svfprintf_r.str1.1 - 0x000000000800a6dc 0x11 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) + 0x000000000800b5e4 0x11 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) .rodata._vfprintf_r.str1.1 - 0x000000000800a6ed 0x11 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) + 0x000000000800b5f5 0x11 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) .rodata.__assert_func.str1.1 - 0x000000000800a6ed 0x3c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-assert.o) + 0x000000000800b5f5 0x3c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-assert.o) 0x3d (size before relaxing) .rodata._setlocale_r.str1.1 - 0x000000000800a729 0x8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-locale.o) + 0x000000000800b631 0x8 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-locale.o) 0x9 (size before relaxing) .rodata.str1.1 - 0x000000000800a731 0x2 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-locale.o) + 0x000000000800b639 0x2 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-locale.o) .rodata._ctype_ - 0x000000000800a733 0x101 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-ctype_.o) - 0x000000000800a733 _ctype_ - 0x000000000800a834 . = ALIGN (0x4) + 0x000000000800b63b 0x101 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-ctype_.o) + 0x000000000800b63b _ctype_ + 0x000000000800b73c . = ALIGN (0x4) -.rel.dyn 0x000000000800a834 0x0 - .rel.iplt 0x000000000800a834 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o +.rel.dyn 0x000000000800b73c 0x0 + .rel.iplt 0x000000000800b73c 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o -.ARM.extab 0x000000000800a834 0x0 - 0x000000000800a834 . = ALIGN (0x4) +.ARM.extab 0x000000000800b73c 0x0 + 0x000000000800b73c . = ALIGN (0x4) *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x000000000800a834 . = ALIGN (0x4) + 0x000000000800b73c . = ALIGN (0x4) -.ARM 0x000000000800a834 0x0 - 0x000000000800a834 . = ALIGN (0x4) - 0x000000000800a834 __exidx_start = . +.ARM 0x000000000800b73c 0x0 + 0x000000000800b73c . = ALIGN (0x4) + 0x000000000800b73c __exidx_start = . *(.ARM.exidx*) - 0x000000000800a834 __exidx_end = . - 0x000000000800a834 . = ALIGN (0x4) + 0x000000000800b73c __exidx_end = . + 0x000000000800b73c . = ALIGN (0x4) -.preinit_array 0x000000000800a834 0x0 - 0x000000000800a834 . = ALIGN (0x4) - 0x000000000800a834 PROVIDE (__preinit_array_start = .) +.preinit_array 0x000000000800b73c 0x0 + 0x000000000800b73c . = ALIGN (0x4) + 0x000000000800b73c PROVIDE (__preinit_array_start = .) *(.preinit_array*) - 0x000000000800a834 PROVIDE (__preinit_array_end = .) - 0x000000000800a834 . = ALIGN (0x4) + 0x000000000800b73c PROVIDE (__preinit_array_end = .) + 0x000000000800b73c . = ALIGN (0x4) -.init_array 0x000000000800a834 0x4 - 0x000000000800a834 . = ALIGN (0x4) - 0x000000000800a834 PROVIDE (__init_array_start = .) +.init_array 0x000000000800b73c 0x4 + 0x000000000800b73c . = ALIGN (0x4) + 0x000000000800b73c PROVIDE (__init_array_start = .) *(SORT_BY_NAME(.init_array.*)) *(.init_array*) - .init_array 0x000000000800a834 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o - 0x000000000800a838 PROVIDE (__init_array_end = .) - 0x000000000800a838 . = ALIGN (0x4) + .init_array 0x000000000800b73c 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + 0x000000000800b740 PROVIDE (__init_array_end = .) + 0x000000000800b740 . = ALIGN (0x4) -.fini_array 0x000000000800a838 0x4 - 0x000000000800a838 . = ALIGN (0x4) +.fini_array 0x000000000800b740 0x4 + 0x000000000800b740 . = ALIGN (0x4) [!provide] PROVIDE (__fini_array_start = .) *(SORT_BY_NAME(.fini_array.*)) *(.fini_array*) - .fini_array 0x000000000800a838 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o + .fini_array 0x000000000800b740 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o [!provide] PROVIDE (__fini_array_end = .) - 0x000000000800a83c . = ALIGN (0x4) - 0x000000000800a83c _sidata = LOADADDR (.data) + 0x000000000800b744 . = ALIGN (0x4) + 0x000000000800b744 _sidata = LOADADDR (.data) -.data 0x0000000020000000 0x1dc load address 0x000000000800a83c +.data 0x0000000020000000 0x1dc load address 0x000000000800b744 0x0000000020000000 . = ALIGN (0x4) 0x0000000020000000 _sdata = . *(.data) @@ -6050,11 +6223,11 @@ LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte 0x00000000200001dc . = ALIGN (0x4) 0x00000000200001dc _edata = . -.igot.plt 0x00000000200001dc 0x0 load address 0x000000000800aa18 +.igot.plt 0x00000000200001dc 0x0 load address 0x000000000800b920 .igot.plt 0x00000000200001dc 0x0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtbegin.o 0x00000000200001dc . = ALIGN (0x4) -.bss 0x00000000200001dc 0x23b4 load address 0x000000000800aa18 +.bss 0x00000000200001dc 0x2408 load address 0x000000000800b920 0x00000000200001dc _sbss = . 0x00000000200001dc __bss_start__ = _sbss *(.bss) @@ -6064,108 +6237,114 @@ LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte 0x00000000200001f8 0x4 ./Core/Src/stm32f1xx_hal_msp.o .bss.__sbrk_heap_end 0x00000000200001fc 0x4 ./Core/Src/sysmem.o + .bss.busy_flag.7696 + 0x0000000020000200 0x1 ./HW_Devices/buzzer.o + *fill* 0x0000000020000201 0x3 + .bss.play_delay.7697 + 0x0000000020000204 0x4 ./HW_Devices/buzzer.o .bss.get_data_flag - 0x0000000020000200 0x1 ./SW_APPs/APP_blood.o - 0x0000000020000200 get_data_flag - *fill* 0x0000000020000201 0x1 + 0x0000000020000208 0x1 ./SW_APPs/APP_blood.o + 0x0000000020000208 get_data_flag + *fill* 0x0000000020000209 0x1 .bss.g_fft_index - 0x0000000020000202 0x2 ./SW_APPs/APP_blood.o - 0x0000000020000202 g_fft_index - .bss.push_key 0x0000000020000204 0x1 ./SW_APPs/APP_morsecode.o - 0x0000000020000204 push_key - *fill* 0x0000000020000205 0x3 - .bss.morse_t 0x0000000020000208 0x4 ./SW_APPs/APP_morsecode.o - 0x0000000020000208 morse_t + 0x000000002000020a 0x2 ./SW_APPs/APP_blood.o + 0x000000002000020a g_fft_index + .bss.push_key 0x000000002000020c 0x1 ./SW_APPs/APP_morsecode.o + 0x000000002000020c push_key + *fill* 0x000000002000020d 0x3 + .bss.morse_t 0x0000000020000210 0x4 ./SW_APPs/APP_morsecode.o + 0x0000000020000210 morse_t .bss.morse_time_out - 0x000000002000020c 0x4 ./SW_APPs/APP_morsecode.o - 0x000000002000020c morse_time_out - .bss.morse_input_buff - 0x0000000020000210 0x41 ./SW_APPs/APP_morsecode.o - 0x0000000020000210 morse_input_buff - *fill* 0x0000000020000251 0x3 + 0x0000000020000214 0x4 ./SW_APPs/APP_morsecode.o + 0x0000000020000214 morse_time_out .bss.morse_input_flag - 0x0000000020000254 0x4 ./SW_APPs/APP_morsecode.o - 0x0000000020000254 morse_input_flag + 0x0000000020000218 0x4 ./SW_APPs/APP_morsecode.o + 0x0000000020000218 morse_input_flag .bss.morse_char_flag - 0x0000000020000258 0x4 ./SW_APPs/APP_morsecode.o - 0x0000000020000258 morse_char_flag + 0x000000002000021c 0x4 ./SW_APPs/APP_morsecode.o + 0x000000002000021c morse_char_flag .bss.morse_flah - 0x000000002000025c 0x1 ./SW_APPs/APP_morsecode.o - 0x000000002000025c morse_flah + 0x0000000020000220 0x1 ./SW_APPs/APP_morsecode.o + 0x0000000020000220 morse_flah .bss.morse_letter_temp - 0x000000002000025d 0x1 ./SW_APPs/APP_morsecode.o - 0x000000002000025d morse_letter_temp + 0x0000000020000221 0x1 ./SW_APPs/APP_morsecode.o + 0x0000000020000221 morse_letter_temp .bss.morse_letter_flag - 0x000000002000025e 0x1 ./SW_APPs/APP_morsecode.o - 0x000000002000025e morse_letter_flag - *fill* 0x000000002000025f 0x1 + 0x0000000020000222 0x1 ./SW_APPs/APP_morsecode.o + 0x0000000020000222 morse_letter_flag + *fill* 0x0000000020000223 0x1 .bss.__malloc_free_list - 0x0000000020000260 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) - 0x0000000020000260 __malloc_free_list + 0x0000000020000224 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) + 0x0000000020000224 __malloc_free_list .bss.__malloc_sbrk_start - 0x0000000020000264 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) - 0x0000000020000264 __malloc_sbrk_start + 0x0000000020000228 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) + 0x0000000020000228 __malloc_sbrk_start *(COMMON) - COMMON 0x0000000020000268 0x13c ./Core/Src/main.o - 0x0000000020000268 hi2c2 - 0x00000000200002bc hsram1 - 0x0000000020000304 htim6 - 0x000000002000034c hspi1 - COMMON 0x00000000200003a4 0x4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - 0x00000000200003a4 uwTick - COMMON 0x00000000200003a8 0xa ./HW_Devices/LCD.o - 0x00000000200003a8 lcddev - *fill* 0x00000000200003b2 0x2 - COMMON 0x00000000200003b4 0x14 ./HW_Devices/eeprom.o - 0x00000000200003b4 eeprom_write_buffer - COMMON 0x00000000200003c8 0x30 ./HW_Devices/key.o - 0x00000000200003c8 k2 - 0x00000000200003d8 k3 - 0x00000000200003e8 k1 - COMMON 0x00000000200003f8 0x28 ./HW_Devices/touch.o - 0x00000000200003f8 tconfig - 0x0000000020000410 t0 - COMMON 0x0000000020000420 0x2152 ./SW_APPs/APP_blood.o - 0x0000000020000420 blood_str - 0x0000000020000460 fifo_ir - 0x0000000020000464 blood_win - 0x0000000020000468 s1 - 0x00000000200014e8 s2 - 0x0000000020002568 g_BloodWave - 0x0000000020002570 fifo_red - *fill* 0x0000000020002572 0x2 - COMMON 0x0000000020002574 0xe ./SW_APPs/APP_morsecode.o - 0x0000000020002574 morsecode_window - 0x0000000020002578 morse_y - 0x000000002000257c morse_x - 0x0000000020002580 morse_temp - COMMON 0x0000000020002582 0x9 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) - 0x0000000020002582 __lock___atexit_recursive_mutex - 0x0000000020002583 __lock___arc4random_mutex - 0x0000000020002584 __lock___env_recursive_mutex - 0x0000000020002585 __lock___sinit_recursive_mutex - 0x0000000020002586 __lock___malloc_recursive_mutex - 0x0000000020002587 __lock___at_quick_exit_mutex - 0x0000000020002588 __lock___dd_hash_mutex - 0x0000000020002589 __lock___tz_mutex - 0x000000002000258a __lock___sfp_recursive_mutex - *fill* 0x000000002000258b 0x1 - COMMON 0x000000002000258c 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-reent.o) - 0x000000002000258c errno - 0x0000000020002590 . = ALIGN (0x4) - 0x0000000020002590 _ebss = . - 0x0000000020002590 __bss_end__ = _ebss + COMMON 0x000000002000022c 0x184 ./Core/Src/main.o + 0x000000002000022c htim4 + 0x0000000020000274 hi2c2 + 0x00000000200002c8 hsram1 + 0x0000000020000310 htim6 + 0x0000000020000358 hspi1 + COMMON 0x00000000200003b0 0x4 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x00000000200003b0 uwTick + COMMON 0x00000000200003b4 0xa ./HW_Devices/LCD.o + 0x00000000200003b4 lcddev + *fill* 0x00000000200003be 0x2 + COMMON 0x00000000200003c0 0x4 ./HW_Devices/buzzer.o + 0x00000000200003c0 notes + COMMON 0x00000000200003c4 0x14 ./HW_Devices/eeprom.o + 0x00000000200003c4 eeprom_write_buffer + COMMON 0x00000000200003d8 0x30 ./HW_Devices/key.o + 0x00000000200003d8 k2 + 0x00000000200003e8 k3 + 0x00000000200003f8 k1 + COMMON 0x0000000020000408 0x28 ./HW_Devices/touch.o + 0x0000000020000408 tconfig + 0x0000000020000420 t0 + COMMON 0x0000000020000430 0x2152 ./SW_APPs/APP_blood.o + 0x0000000020000430 blood_str + 0x0000000020000470 fifo_ir + 0x0000000020000474 blood_win + 0x0000000020000478 s1 + 0x00000000200014f8 s2 + 0x0000000020002578 g_BloodWave + 0x0000000020002580 fifo_red + *fill* 0x0000000020002582 0x2 + COMMON 0x0000000020002584 0x52 ./SW_APPs/APP_morsecode.o + 0x0000000020002584 morsecode_window + 0x0000000020002588 morse_input_buff + 0x00000000200025cc morse_y + 0x00000000200025d0 morse_x + 0x00000000200025d4 morse_temp + COMMON 0x00000000200025d6 0x9 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) + 0x00000000200025d6 __lock___atexit_recursive_mutex + 0x00000000200025d7 __lock___arc4random_mutex + 0x00000000200025d8 __lock___env_recursive_mutex + 0x00000000200025d9 __lock___sinit_recursive_mutex + 0x00000000200025da __lock___malloc_recursive_mutex + 0x00000000200025db __lock___at_quick_exit_mutex + 0x00000000200025dc __lock___dd_hash_mutex + 0x00000000200025dd __lock___tz_mutex + 0x00000000200025de __lock___sfp_recursive_mutex + *fill* 0x00000000200025df 0x1 + COMMON 0x00000000200025e0 0x4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-reent.o) + 0x00000000200025e0 errno + 0x00000000200025e4 . = ALIGN (0x4) + 0x00000000200025e4 _ebss = . + 0x00000000200025e4 __bss_end__ = _ebss ._user_heap_stack - 0x0000000020002590 0xc00 load address 0x000000000800aa18 - 0x0000000020002590 . = ALIGN (0x8) + 0x00000000200025e4 0xc04 load address 0x000000000800b920 + 0x00000000200025e8 . = ALIGN (0x8) + *fill* 0x00000000200025e4 0x4 [!provide] PROVIDE (end = .) - 0x0000000020002590 PROVIDE (_end = .) - 0x0000000020002990 . = (. + _Min_Heap_Size) - *fill* 0x0000000020002590 0x400 - 0x0000000020003190 . = (. + _Min_Stack_Size) - *fill* 0x0000000020002990 0x800 - 0x0000000020003190 . = ALIGN (0x8) + 0x00000000200025e8 PROVIDE (_end = .) + 0x00000000200029e8 . = (. + _Min_Heap_Size) + *fill* 0x00000000200025e8 0x400 + 0x00000000200031e8 . = (. + _Min_Stack_Size) + *fill* 0x00000000200029e8 0x800 + 0x00000000200031e8 . = ALIGN (0x8) /DISCARD/ libc.a(*) @@ -6216,172 +6395,177 @@ LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .ARM.attributes 0x000000000000033b 0x2d ./HW_Devices/LCD.o .ARM.attributes - 0x0000000000000368 0x2d ./HW_Devices/eeprom.o + 0x0000000000000368 0x2d ./HW_Devices/buzzer.o .ARM.attributes - 0x0000000000000395 0x2d ./HW_Devices/iic.o + 0x0000000000000395 0x2d ./HW_Devices/eeprom.o .ARM.attributes - 0x00000000000003c2 0x2d ./HW_Devices/key.o + 0x00000000000003c2 0x2d ./HW_Devices/iic.o .ARM.attributes - 0x00000000000003ef 0x2d ./HW_Devices/touch.o + 0x00000000000003ef 0x2d ./HW_Devices/key.o .ARM.attributes - 0x000000000000041c 0x2d ./SW_APPs/APP_blood.o + 0x000000000000041c 0x2d ./HW_Devices/touch.o .ARM.attributes - 0x0000000000000449 0x2d ./SW_APPs/APP_morsecode.o + 0x0000000000000449 0x2d ./SW_APPs/APP_blood.o .ARM.attributes - 0x0000000000000476 0x2d ./SW_APPs/Main_APP.o + 0x0000000000000476 0x2d ./SW_APPs/APP_morsecode.o .ARM.attributes - 0x00000000000004a3 0x2d ./SW_APPs/windows.o + 0x00000000000004a3 0x2d ./SW_APPs/Main_APP.o .ARM.attributes - 0x00000000000004d0 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-errno.o) + 0x00000000000004d0 0x2d ./SW_APPs/windows.o .ARM.attributes - 0x00000000000004fd 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-impure.o) + 0x00000000000004fd 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-errno.o) .ARM.attributes - 0x000000000000052a 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-init.o) + 0x000000000000052a 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-impure.o) .ARM.attributes - 0x0000000000000557 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-malloc.o) + 0x0000000000000557 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-init.o) .ARM.attributes - 0x0000000000000584 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memset.o) + 0x0000000000000584 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-malloc.o) .ARM.attributes - 0x00000000000005b1 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-freer.o) + 0x00000000000005b1 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memset.o) .ARM.attributes - 0x00000000000005de 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) + 0x00000000000005de 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-freer.o) .ARM.attributes - 0x000000000000060b 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) + 0x000000000000060b 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) .ARM.attributes - 0x0000000000000638 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) + 0x0000000000000638 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) .ARM.attributes - 0x0000000000000665 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sbrkr.o) + 0x0000000000000665 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) .ARM.attributes - 0x0000000000000692 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sprintf.o) + 0x0000000000000692 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sbrkr.o) .ARM.attributes - 0x00000000000006bf 0x17 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-strlen.o) + 0x00000000000006bf 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sprintf.o) .ARM.attributes - 0x00000000000006d6 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wbuf.o) + 0x00000000000006ec 0x17 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-strlen.o) .ARM.attributes - 0x0000000000000703 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wsetup.o) + 0x0000000000000703 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wbuf.o) .ARM.attributes - 0x0000000000000730 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-dtoa.o) + 0x0000000000000730 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wsetup.o) .ARM.attributes - 0x000000000000075d 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fflush.o) + 0x000000000000075d 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-dtoa.o) .ARM.attributes - 0x000000000000078a 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + 0x000000000000078a 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fflush.o) .ARM.attributes - 0x00000000000007b7 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fwalk.o) + 0x00000000000007b7 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) .ARM.attributes - 0x00000000000007e4 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-localeconv.o) + 0x00000000000007e4 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fwalk.o) .ARM.attributes - 0x0000000000000811 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) + 0x0000000000000811 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-localeconv.o) .ARM.attributes - 0x000000000000083e 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-makebuf.o) + 0x000000000000083e 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) .ARM.attributes - 0x000000000000086b 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memchr-stub.o) + 0x000000000000086b 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-makebuf.o) .ARM.attributes - 0x0000000000000898 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memcpy-stub.o) + 0x0000000000000898 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memchr-stub.o) .ARM.attributes - 0x00000000000008c5 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) + 0x00000000000008c5 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memcpy-stub.o) .ARM.attributes - 0x00000000000008f2 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + 0x00000000000008f2 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) .ARM.attributes - 0x000000000000091f 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-callocr.o) + 0x000000000000091f 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) .ARM.attributes - 0x000000000000094c 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) + 0x000000000000094c 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-callocr.o) .ARM.attributes - 0x0000000000000979 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) + 0x0000000000000979 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) .ARM.attributes - 0x00000000000009a6 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-reent.o) + 0x00000000000009a6 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) .ARM.attributes - 0x00000000000009d3 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) + 0x00000000000009d3 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-reent.o) .ARM.attributes - 0x0000000000000a00 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-writer.o) + 0x0000000000000a00 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) .ARM.attributes - 0x0000000000000a2d 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-assert.o) + 0x0000000000000a2d 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-writer.o) .ARM.attributes - 0x0000000000000a5a 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-closer.o) + 0x0000000000000a5a 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-assert.o) .ARM.attributes - 0x0000000000000a87 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fprintf.o) + 0x0000000000000a87 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-closer.o) .ARM.attributes - 0x0000000000000ab4 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fstatr.o) + 0x0000000000000ab4 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fprintf.o) .ARM.attributes - 0x0000000000000ae1 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-isattyr.o) + 0x0000000000000ae1 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fstatr.o) .ARM.attributes - 0x0000000000000b0e 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-locale.o) + 0x0000000000000b0e 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-isattyr.o) .ARM.attributes - 0x0000000000000b3b 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lseekr.o) + 0x0000000000000b3b 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-locale.o) .ARM.attributes - 0x0000000000000b68 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mbtowc_r.o) + 0x0000000000000b68 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lseekr.o) .ARM.attributes - 0x0000000000000b95 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memmove.o) + 0x0000000000000b95 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mbtowc_r.o) .ARM.attributes - 0x0000000000000bc2 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-reallocr.o) + 0x0000000000000bc2 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memmove.o) .ARM.attributes - 0x0000000000000bef 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-readr.o) + 0x0000000000000bef 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-reallocr.o) .ARM.attributes - 0x0000000000000c1c 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wctomb_r.o) + 0x0000000000000c1c 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-readr.o) .ARM.attributes - 0x0000000000000c49 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-abort.o) + 0x0000000000000c49 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wctomb_r.o) .ARM.attributes - 0x0000000000000c76 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-ctype_.o) + 0x0000000000000c76 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-abort.o) .ARM.attributes - 0x0000000000000ca3 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-msizer.o) + 0x0000000000000ca3 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-ctype_.o) .ARM.attributes - 0x0000000000000cd0 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signal.o) + 0x0000000000000cd0 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-msizer.o) .ARM.attributes - 0x0000000000000cfd 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signalr.o) + 0x0000000000000cfd 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signal.o) .ARM.attributes - 0x0000000000000d2a 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_addsubdf3.o) + 0x0000000000000d2a 0x2d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signalr.o) .ARM.attributes - 0x0000000000000d47 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldivdf3.o) + 0x0000000000000d57 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_addsubdf3.o) .ARM.attributes - 0x0000000000000d64 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_cmpdf2.o) + 0x0000000000000d74 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldivdf3.o) .ARM.attributes - 0x0000000000000d81 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_unorddf2.o) + 0x0000000000000d91 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_cmpdf2.o) .ARM.attributes - 0x0000000000000d9e 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixdfsi.o) + 0x0000000000000dae 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_unorddf2.o) .ARM.attributes - 0x0000000000000dbb 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_truncdfsf2.o) + 0x0000000000000dcb 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixdfsi.o) .ARM.attributes - 0x0000000000000dd8 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_addsubsf3.o) + 0x0000000000000de8 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_truncdfsf2.o) .ARM.attributes - 0x0000000000000df5 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldivsf3.o) + 0x0000000000000e05 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_addsubsf3.o) .ARM.attributes - 0x0000000000000e12 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixsfsi.o) + 0x0000000000000e22 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldivsf3.o) .ARM.attributes - 0x0000000000000e2f 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o + 0x0000000000000e3f 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixsfsi.o) + .ARM.attributes + 0x0000000000000e5c 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixunssfsi.o) + .ARM.attributes + 0x0000000000000e79 0x1d c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp/crtn.o OUTPUT(m3s.elf elf32-littlearm) LOAD linker stubs LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc.a LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libm.a LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a -.debug_info 0x0000000000000000 0x1b34c - .debug_info 0x0000000000000000 0x1f85 ./Core/Src/main.o - .debug_info 0x0000000000001f85 0x1d27 ./Core/Src/stm32f1xx_hal_msp.o - .debug_info 0x0000000000003cac 0x1054 ./Core/Src/stm32f1xx_it.o - .debug_info 0x0000000000004d00 0xfa8 ./Core/Src/syscalls.o - .debug_info 0x0000000000005ca8 0xa25 ./Core/Src/sysmem.o - .debug_info 0x00000000000066cd 0x2be ./Core/Src/system_stm32f1xx.o - .debug_info 0x000000000000698b 0x22 ./Core/Startup/startup_stm32f103zetx.o - .debug_info 0x00000000000069ad 0x7d0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - .debug_info 0x000000000000717d 0xc42 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - .debug_info 0x0000000000007dbf 0x701 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - .debug_info 0x00000000000084c0 0x278e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o - .debug_info 0x000000000000ac4e 0x88e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .debug_info 0x000000000000b4dc 0x16cd ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o - .debug_info 0x000000000000cba9 0xd4b ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - .debug_info 0x000000000000d8f4 0x2a45 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .debug_info 0x0000000000010339 0x14d5 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o - .debug_info 0x000000000001180e 0xae7 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - .debug_info 0x00000000000122f5 0x12d2 ./HW_Devices/LCD.o - .debug_info 0x00000000000135c7 0xc2e ./HW_Devices/eeprom.o - .debug_info 0x00000000000141f5 0xfc7 ./HW_Devices/iic.o - .debug_info 0x00000000000151bc 0xae8 ./HW_Devices/key.o - .debug_info 0x0000000000015ca4 0x104c ./HW_Devices/touch.o - .debug_info 0x0000000000016cf0 0x17db ./SW_APPs/APP_blood.o - .debug_info 0x00000000000184cb 0xf23 ./SW_APPs/APP_morsecode.o - .debug_info 0x00000000000193ee 0xe68 ./SW_APPs/Main_APP.o - .debug_info 0x000000000001a256 0x10f6 ./SW_APPs/windows.o +.debug_info 0x0000000000000000 0x1c88d + .debug_info 0x0000000000000000 0x2098 ./Core/Src/main.o + .debug_info 0x0000000000002098 0x1d98 ./Core/Src/stm32f1xx_hal_msp.o + .debug_info 0x0000000000003e30 0x1072 ./Core/Src/stm32f1xx_it.o + .debug_info 0x0000000000004ea2 0xfa8 ./Core/Src/syscalls.o + .debug_info 0x0000000000005e4a 0xa25 ./Core/Src/sysmem.o + .debug_info 0x000000000000686f 0x2be ./Core/Src/system_stm32f1xx.o + .debug_info 0x0000000000006b2d 0x22 ./Core/Startup/startup_stm32f103zetx.o + .debug_info 0x0000000000006b4f 0x7d0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_info 0x000000000000731f 0xc42 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_info 0x0000000000007f61 0x701 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_info 0x0000000000008662 0x278e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + .debug_info 0x000000000000adf0 0x88e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_info 0x000000000000b67e 0x16cd ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o + .debug_info 0x000000000000cd4b 0xd4b ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_info 0x000000000000da96 0x2a45 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_info 0x00000000000104db 0x14d5 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_info 0x00000000000119b0 0xae7 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_info 0x0000000000012497 0x12d2 ./HW_Devices/LCD.o + .debug_info 0x0000000000013769 0xd15 ./HW_Devices/buzzer.o + .debug_info 0x000000000001447e 0xc2e ./HW_Devices/eeprom.o + .debug_info 0x00000000000150ac 0xfc7 ./HW_Devices/iic.o + .debug_info 0x0000000000016073 0xae8 ./HW_Devices/key.o + .debug_info 0x0000000000016b5b 0x104c ./HW_Devices/touch.o + .debug_info 0x0000000000017ba7 0x17db ./SW_APPs/APP_blood.o + .debug_info 0x0000000000019382 0x102f ./SW_APPs/APP_morsecode.o + .debug_info 0x000000000001a3b1 0x13e6 ./SW_APPs/Main_APP.o + .debug_info 0x000000000001b797 0x10f6 ./SW_APPs/windows.o -.debug_abbrev 0x0000000000000000 0x3d0f +.debug_abbrev 0x0000000000000000 0x3fcd .debug_abbrev 0x0000000000000000 0x3a0 ./Core/Src/main.o .debug_abbrev 0x00000000000003a0 0x2a4 ./Core/Src/stm32f1xx_hal_msp.o .debug_abbrev 0x0000000000000644 0x1f3 ./Core/Src/stm32f1xx_it.o @@ -6400,98 +6584,102 @@ LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .debug_abbrev 0x000000000000207d 0x266 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o .debug_abbrev 0x00000000000022e3 0x1ae ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o .debug_abbrev 0x0000000000002491 0x31f ./HW_Devices/LCD.o - .debug_abbrev 0x00000000000027b0 0x26b ./HW_Devices/eeprom.o - .debug_abbrev 0x0000000000002a1b 0x1f3 ./HW_Devices/iic.o - .debug_abbrev 0x0000000000002c0e 0x1ec ./HW_Devices/key.o - .debug_abbrev 0x0000000000002dfa 0x2b9 ./HW_Devices/touch.o - .debug_abbrev 0x00000000000030b3 0x3b0 ./SW_APPs/APP_blood.o - .debug_abbrev 0x0000000000003463 0x2c1 ./SW_APPs/APP_morsecode.o - .debug_abbrev 0x0000000000003724 0x270 ./SW_APPs/Main_APP.o - .debug_abbrev 0x0000000000003994 0x37b ./SW_APPs/windows.o + .debug_abbrev 0x00000000000027b0 0x298 ./HW_Devices/buzzer.o + .debug_abbrev 0x0000000000002a48 0x26b ./HW_Devices/eeprom.o + .debug_abbrev 0x0000000000002cb3 0x1f3 ./HW_Devices/iic.o + .debug_abbrev 0x0000000000002ea6 0x1ec ./HW_Devices/key.o + .debug_abbrev 0x0000000000003092 0x2b9 ./HW_Devices/touch.o + .debug_abbrev 0x000000000000334b 0x3b0 ./SW_APPs/APP_blood.o + .debug_abbrev 0x00000000000036fb 0x2d4 ./SW_APPs/APP_morsecode.o + .debug_abbrev 0x00000000000039cf 0x283 ./SW_APPs/Main_APP.o + .debug_abbrev 0x0000000000003c52 0x37b ./SW_APPs/windows.o -.debug_aranges 0x0000000000000000 0x1320 +.debug_aranges 0x0000000000000000 0x1370 .debug_aranges - 0x0000000000000000 0x68 ./Core/Src/main.o + 0x0000000000000000 0x70 ./Core/Src/main.o .debug_aranges - 0x0000000000000068 0x70 ./Core/Src/stm32f1xx_hal_msp.o + 0x0000000000000070 0x78 ./Core/Src/stm32f1xx_hal_msp.o .debug_aranges - 0x00000000000000d8 0x68 ./Core/Src/stm32f1xx_it.o + 0x00000000000000e8 0x70 ./Core/Src/stm32f1xx_it.o .debug_aranges - 0x0000000000000140 0xa8 ./Core/Src/syscalls.o + 0x0000000000000158 0xa8 ./Core/Src/syscalls.o .debug_aranges - 0x00000000000001e8 0x20 ./Core/Src/sysmem.o + 0x0000000000000200 0x20 ./Core/Src/sysmem.o .debug_aranges - 0x0000000000000208 0x28 ./Core/Src/system_stm32f1xx.o + 0x0000000000000220 0x28 ./Core/Src/system_stm32f1xx.o .debug_aranges - 0x0000000000000230 0x28 ./Core/Startup/startup_stm32f103zetx.o + 0x0000000000000248 0x28 ./Core/Startup/startup_stm32f103zetx.o .debug_aranges - 0x0000000000000258 0xe0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + 0x0000000000000270 0xe0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o .debug_aranges - 0x0000000000000338 0x100 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + 0x0000000000000350 0x100 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o .debug_aranges - 0x0000000000000438 0x58 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + 0x0000000000000450 0x58 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o .debug_aranges - 0x0000000000000490 0x2a0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + 0x00000000000004a8 0x2a0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o .debug_aranges - 0x0000000000000730 0x90 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + 0x0000000000000748 0x90 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o .debug_aranges - 0x00000000000007c0 0x1d0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o + 0x00000000000007d8 0x1d0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o .debug_aranges - 0x0000000000000990 0xb8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + 0x00000000000009a8 0xb8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o .debug_aranges - 0x0000000000000a48 0x3d0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + 0x0000000000000a60 0x3d0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o .debug_aranges - 0x0000000000000e18 0x168 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + 0x0000000000000e30 0x168 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o .debug_aranges - 0x0000000000000f80 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + 0x0000000000000f98 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o .debug_aranges - 0x0000000000001028 0xc8 ./HW_Devices/LCD.o + 0x0000000000001040 0xc8 ./HW_Devices/LCD.o .debug_aranges - 0x00000000000010f0 0x38 ./HW_Devices/eeprom.o + 0x0000000000001108 0x38 ./HW_Devices/buzzer.o .debug_aranges - 0x0000000000001128 0x28 ./HW_Devices/iic.o + 0x0000000000001140 0x38 ./HW_Devices/eeprom.o .debug_aranges - 0x0000000000001150 0x20 ./HW_Devices/key.o + 0x0000000000001178 0x28 ./HW_Devices/iic.o .debug_aranges - 0x0000000000001170 0x60 ./HW_Devices/touch.o + 0x00000000000011a0 0x20 ./HW_Devices/key.o .debug_aranges - 0x00000000000011d0 0x90 ./SW_APPs/APP_blood.o + 0x00000000000011c0 0x60 ./HW_Devices/touch.o .debug_aranges - 0x0000000000001260 0x30 ./SW_APPs/APP_morsecode.o + 0x0000000000001220 0x90 ./SW_APPs/APP_blood.o .debug_aranges - 0x0000000000001290 0x20 ./SW_APPs/Main_APP.o + 0x00000000000012b0 0x30 ./SW_APPs/APP_morsecode.o .debug_aranges - 0x00000000000012b0 0x70 ./SW_APPs/windows.o + 0x00000000000012e0 0x20 ./SW_APPs/Main_APP.o + .debug_aranges + 0x0000000000001300 0x70 ./SW_APPs/windows.o -.debug_ranges 0x0000000000000000 0x11f8 - .debug_ranges 0x0000000000000000 0x58 ./Core/Src/main.o - .debug_ranges 0x0000000000000058 0x60 ./Core/Src/stm32f1xx_hal_msp.o - .debug_ranges 0x00000000000000b8 0x58 ./Core/Src/stm32f1xx_it.o - .debug_ranges 0x0000000000000110 0x98 ./Core/Src/syscalls.o - .debug_ranges 0x00000000000001a8 0x10 ./Core/Src/sysmem.o - .debug_ranges 0x00000000000001b8 0x18 ./Core/Src/system_stm32f1xx.o - .debug_ranges 0x00000000000001d0 0x20 ./Core/Startup/startup_stm32f103zetx.o - .debug_ranges 0x00000000000001f0 0xd0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - .debug_ranges 0x00000000000002c0 0xf0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - .debug_ranges 0x00000000000003b0 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - .debug_ranges 0x00000000000003f8 0x2b8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o - .debug_ranges 0x00000000000006b0 0x80 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .debug_ranges 0x0000000000000730 0x1c0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o - .debug_ranges 0x00000000000008f0 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - .debug_ranges 0x0000000000000998 0x3c0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .debug_ranges 0x0000000000000d58 0x158 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o - .debug_ranges 0x0000000000000eb0 0x98 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - .debug_ranges 0x0000000000000f48 0xb8 ./HW_Devices/LCD.o - .debug_ranges 0x0000000000001000 0x40 ./HW_Devices/eeprom.o - .debug_ranges 0x0000000000001040 0x18 ./HW_Devices/iic.o - .debug_ranges 0x0000000000001058 0x10 ./HW_Devices/key.o - .debug_ranges 0x0000000000001068 0x50 ./HW_Devices/touch.o - .debug_ranges 0x00000000000010b8 0x80 ./SW_APPs/APP_blood.o - .debug_ranges 0x0000000000001138 0x50 ./SW_APPs/APP_morsecode.o - .debug_ranges 0x0000000000001188 0x10 ./SW_APPs/Main_APP.o - .debug_ranges 0x0000000000001198 0x60 ./SW_APPs/windows.o +.debug_ranges 0x0000000000000000 0x1238 + .debug_ranges 0x0000000000000000 0x60 ./Core/Src/main.o + .debug_ranges 0x0000000000000060 0x68 ./Core/Src/stm32f1xx_hal_msp.o + .debug_ranges 0x00000000000000c8 0x60 ./Core/Src/stm32f1xx_it.o + .debug_ranges 0x0000000000000128 0x98 ./Core/Src/syscalls.o + .debug_ranges 0x00000000000001c0 0x10 ./Core/Src/sysmem.o + .debug_ranges 0x00000000000001d0 0x18 ./Core/Src/system_stm32f1xx.o + .debug_ranges 0x00000000000001e8 0x20 ./Core/Startup/startup_stm32f103zetx.o + .debug_ranges 0x0000000000000208 0xd0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_ranges 0x00000000000002d8 0xf0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_ranges 0x00000000000003c8 0x48 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_ranges 0x0000000000000410 0x2b8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + .debug_ranges 0x00000000000006c8 0x80 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_ranges 0x0000000000000748 0x1c0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o + .debug_ranges 0x0000000000000908 0xa8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_ranges 0x00000000000009b0 0x3c0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_ranges 0x0000000000000d70 0x158 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_ranges 0x0000000000000ec8 0x98 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_ranges 0x0000000000000f60 0xb8 ./HW_Devices/LCD.o + .debug_ranges 0x0000000000001018 0x28 ./HW_Devices/buzzer.o + .debug_ranges 0x0000000000001040 0x40 ./HW_Devices/eeprom.o + .debug_ranges 0x0000000000001080 0x18 ./HW_Devices/iic.o + .debug_ranges 0x0000000000001098 0x10 ./HW_Devices/key.o + .debug_ranges 0x00000000000010a8 0x50 ./HW_Devices/touch.o + .debug_ranges 0x00000000000010f8 0x80 ./SW_APPs/APP_blood.o + .debug_ranges 0x0000000000001178 0x50 ./SW_APPs/APP_morsecode.o + .debug_ranges 0x00000000000011c8 0x10 ./SW_APPs/Main_APP.o + .debug_ranges 0x00000000000011d8 0x60 ./SW_APPs/windows.o -.debug_macro 0x0000000000000000 0x1e07b +.debug_macro 0x0000000000000000 0x1e3c4 .debug_macro 0x0000000000000000 0x33f ./Core/Src/main.o .debug_macro 0x000000000000033f 0xa9c ./Core/Src/main.o .debug_macro 0x0000000000000ddb 0x227 ./Core/Src/main.o @@ -6596,105 +6784,109 @@ LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .debug_macro 0x000000000001b4f6 0x200 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o .debug_macro 0x000000000001b6f6 0x344 ./HW_Devices/LCD.o .debug_macro 0x000000000001ba3a 0x38b ./HW_Devices/LCD.o - .debug_macro 0x000000000001bdc5 0x34f ./HW_Devices/eeprom.o - .debug_macro 0x000000000001c114 0x33f ./HW_Devices/iic.o - .debug_macro 0x000000000001c453 0x34a ./HW_Devices/key.o - .debug_macro 0x000000000001c79d 0x1c ./HW_Devices/key.o - .debug_macro 0x000000000001c7b9 0x374 ./HW_Devices/touch.o - .debug_macro 0x000000000001cb2d 0x22 ./HW_Devices/touch.o - .debug_macro 0x000000000001cb4f 0x391 ./HW_Devices/touch.o - .debug_macro 0x000000000001cee0 0x10 ./HW_Devices/touch.o - .debug_macro 0x000000000001cef0 0x3a7 ./SW_APPs/APP_blood.o - .debug_macro 0x000000000001d297 0x1a9 ./SW_APPs/APP_blood.o - .debug_macro 0x000000000001d440 0xbd ./SW_APPs/APP_blood.o - .debug_macro 0x000000000001d4fd 0x56 ./SW_APPs/APP_blood.o - .debug_macro 0x000000000001d553 0x9a ./SW_APPs/APP_blood.o - .debug_macro 0x000000000001d5ed 0x367 ./SW_APPs/APP_morsecode.o - .debug_macro 0x000000000001d954 0x22 ./SW_APPs/APP_morsecode.o - .debug_macro 0x000000000001d976 0x377 ./SW_APPs/Main_APP.o - .debug_macro 0x000000000001dced 0x28 ./SW_APPs/Main_APP.o - .debug_macro 0x000000000001dd15 0x366 ./SW_APPs/windows.o + .debug_macro 0x000000000001bdc5 0x33f ./HW_Devices/buzzer.o + .debug_macro 0x000000000001c104 0x34f ./HW_Devices/eeprom.o + .debug_macro 0x000000000001c453 0x33f ./HW_Devices/iic.o + .debug_macro 0x000000000001c792 0x34a ./HW_Devices/key.o + .debug_macro 0x000000000001cadc 0x1c ./HW_Devices/key.o + .debug_macro 0x000000000001caf8 0x374 ./HW_Devices/touch.o + .debug_macro 0x000000000001ce6c 0x22 ./HW_Devices/touch.o + .debug_macro 0x000000000001ce8e 0x391 ./HW_Devices/touch.o + .debug_macro 0x000000000001d21f 0x10 ./HW_Devices/touch.o + .debug_macro 0x000000000001d22f 0x3a7 ./SW_APPs/APP_blood.o + .debug_macro 0x000000000001d5d6 0x1a9 ./SW_APPs/APP_blood.o + .debug_macro 0x000000000001d77f 0xbd ./SW_APPs/APP_blood.o + .debug_macro 0x000000000001d83c 0x56 ./SW_APPs/APP_blood.o + .debug_macro 0x000000000001d892 0x9a ./SW_APPs/APP_blood.o + .debug_macro 0x000000000001d92c 0x367 ./SW_APPs/APP_morsecode.o + .debug_macro 0x000000000001dc93 0x22 ./SW_APPs/APP_morsecode.o + .debug_macro 0x000000000001dcb5 0x381 ./SW_APPs/Main_APP.o + .debug_macro 0x000000000001e036 0x28 ./SW_APPs/Main_APP.o + .debug_macro 0x000000000001e05e 0x366 ./SW_APPs/windows.o -.debug_line 0x0000000000000000 0x18c59 - .debug_line 0x0000000000000000 0xba6 ./Core/Src/main.o - .debug_line 0x0000000000000ba6 0xa2a ./Core/Src/stm32f1xx_hal_msp.o - .debug_line 0x00000000000015d0 0x97d ./Core/Src/stm32f1xx_it.o - .debug_line 0x0000000000001f4d 0x802 ./Core/Src/syscalls.o - .debug_line 0x000000000000274f 0x4f8 ./Core/Src/sysmem.o - .debug_line 0x0000000000002c47 0x740 ./Core/Src/system_stm32f1xx.o - .debug_line 0x0000000000003387 0x87 ./Core/Startup/startup_stm32f103zetx.o - .debug_line 0x000000000000340e 0x96d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - .debug_line 0x0000000000003d7b 0xb55 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - .debug_line 0x00000000000048d0 0xa2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - .debug_line 0x00000000000052fc 0x3a57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o - .debug_line 0x0000000000008d53 0xd7b ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .debug_line 0x0000000000009ace 0x1bf2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o - .debug_line 0x000000000000b6c0 0xce0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - .debug_line 0x000000000000c3a0 0x3534 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .debug_line 0x000000000000f8d4 0x18f9 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o - .debug_line 0x00000000000111cd 0x9cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - .debug_line 0x0000000000011b98 0x12ba ./HW_Devices/LCD.o - .debug_line 0x0000000000012e52 0x98e ./HW_Devices/eeprom.o - .debug_line 0x00000000000137e0 0x8b5 ./HW_Devices/iic.o - .debug_line 0x0000000000014095 0x8f6 ./HW_Devices/key.o - .debug_line 0x000000000001498b 0xd02 ./HW_Devices/touch.o - .debug_line 0x000000000001568d 0x11fe ./SW_APPs/APP_blood.o - .debug_line 0x000000000001688b 0xc54 ./SW_APPs/APP_morsecode.o - .debug_line 0x00000000000174df 0x97b ./SW_APPs/Main_APP.o - .debug_line 0x0000000000017e5a 0xdff ./SW_APPs/windows.o +.debug_line 0x0000000000000000 0x197a7 + .debug_line 0x0000000000000000 0xc1c ./Core/Src/main.o + .debug_line 0x0000000000000c1c 0xa78 ./Core/Src/stm32f1xx_hal_msp.o + .debug_line 0x0000000000001694 0x995 ./Core/Src/stm32f1xx_it.o + .debug_line 0x0000000000002029 0x802 ./Core/Src/syscalls.o + .debug_line 0x000000000000282b 0x4f8 ./Core/Src/sysmem.o + .debug_line 0x0000000000002d23 0x740 ./Core/Src/system_stm32f1xx.o + .debug_line 0x0000000000003463 0x87 ./Core/Startup/startup_stm32f103zetx.o + .debug_line 0x00000000000034ea 0x96d ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_line 0x0000000000003e57 0xb55 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_line 0x00000000000049ac 0xa2c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_line 0x00000000000053d8 0x3a57 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + .debug_line 0x0000000000008e2f 0xd7b ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_line 0x0000000000009baa 0x1bf2 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o + .debug_line 0x000000000000b79c 0xce0 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_line 0x000000000000c47c 0x3534 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_line 0x000000000000f9b0 0x18f9 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_line 0x00000000000112a9 0x9cb ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_line 0x0000000000011c74 0x12ba ./HW_Devices/LCD.o + .debug_line 0x0000000000012f2e 0x9a5 ./HW_Devices/buzzer.o + .debug_line 0x00000000000138d3 0x98e ./HW_Devices/eeprom.o + .debug_line 0x0000000000014261 0x8b5 ./HW_Devices/iic.o + .debug_line 0x0000000000014b16 0x8f6 ./HW_Devices/key.o + .debug_line 0x000000000001540c 0xd02 ./HW_Devices/touch.o + .debug_line 0x000000000001610e 0x11fe ./SW_APPs/APP_blood.o + .debug_line 0x000000000001730c 0xd0f ./SW_APPs/APP_morsecode.o + .debug_line 0x000000000001801b 0x98d ./SW_APPs/Main_APP.o + .debug_line 0x00000000000189a8 0xdff ./SW_APPs/windows.o -.debug_str 0x0000000000000000 0xa0a1e - .debug_str 0x0000000000000000 0x9975f ./Core/Src/main.o - 0x99d9e (size before relaxing) - .debug_str 0x000000000009975f 0x41e ./Core/Src/stm32f1xx_hal_msp.o - 0x99f12 (size before relaxing) - .debug_str 0x0000000000099b7d 0xbd ./Core/Src/stm32f1xx_it.o - 0x99450 (size before relaxing) - .debug_str 0x0000000000099c3a 0x176a ./Core/Src/syscalls.o +.debug_str 0x0000000000000000 0xa0ae2 + .debug_str 0x0000000000000000 0x9982a ./Core/Src/main.o + 0x99e75 (size before relaxing) + .debug_str 0x000000000009982a 0x437 ./Core/Src/stm32f1xx_hal_msp.o + 0x99f2b (size before relaxing) + .debug_str 0x0000000000099c61 0xcd ./Core/Src/stm32f1xx_it.o + 0x99466 (size before relaxing) + .debug_str 0x0000000000099d2e 0x176a ./Core/Src/syscalls.o 0x8e76 (size before relaxing) - .debug_str 0x000000000009b3a4 0x6b ./Core/Src/sysmem.o + .debug_str 0x000000000009b498 0x6b ./Core/Src/sysmem.o 0x6249 (size before relaxing) - .debug_str 0x000000000009b40f 0x52 ./Core/Src/system_stm32f1xx.o + .debug_str 0x000000000009b503 0x52 ./Core/Src/system_stm32f1xx.o 0x94c35 (size before relaxing) - .debug_str 0x000000000009b461 0x36 ./Core/Startup/startup_stm32f103zetx.o + .debug_str 0x000000000009b555 0x36 ./Core/Startup/startup_stm32f103zetx.o 0x5d (size before relaxing) - .debug_str 0x000000000009b497 0x2f5 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_str 0x000000000009b58b 0x2f5 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o 0x953aa (size before relaxing) - .debug_str 0x000000000009b78c 0x2d8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_str 0x000000000009b880 0x2d8 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o 0x953b2 (size before relaxing) - .debug_str 0x000000000009ba64 0x31f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_str 0x000000000009bb58 0x31f ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o 0x94ff9 (size before relaxing) - .debug_str 0x000000000009bd83 0xb47 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + .debug_str 0x000000000009be77 0xb47 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o 0x95c71 (size before relaxing) - .debug_str 0x000000000009c8ca 0x244 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_str 0x000000000009c9be 0x244 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o 0x95032 (size before relaxing) - .debug_str 0x000000000009cb0e 0x52e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o + .debug_str 0x000000000009cc02 0x52e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o 0x95547 (size before relaxing) - .debug_str 0x000000000009d03c 0x1f7 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_str 0x000000000009d130 0x1f7 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o 0x9522b (size before relaxing) - .debug_str 0x000000000009d233 0xe3e ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_str 0x000000000009d327 0xd8b ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o 0x96004 (size before relaxing) - .debug_str 0x000000000009e071 0x4ee ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_str 0x000000000009e0b2 0x4ee ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o 0x957b5 (size before relaxing) - .debug_str 0x000000000009e55f 0x7e5 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_str 0x000000000009e5a0 0x7e5 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o 0x955cc (size before relaxing) - .debug_str 0x000000000009ed44 0x814 ./HW_Devices/LCD.o + .debug_str 0x000000000009ed85 0x814 ./HW_Devices/LCD.o 0x9971d (size before relaxing) - .debug_str 0x000000000009f558 0x127 ./HW_Devices/eeprom.o + .debug_str 0x000000000009f599 0x94 ./HW_Devices/buzzer.o + 0x98fc0 (size before relaxing) + .debug_str 0x000000000009f62d 0x116 ./HW_Devices/eeprom.o 0x99018 (size before relaxing) - .debug_str 0x000000000009f67f 0x30 ./HW_Devices/iic.o + .debug_str 0x000000000009f743 0x30 ./HW_Devices/iic.o 0x99395 (size before relaxing) - .debug_str 0x000000000009f6af 0xf9 ./HW_Devices/key.o + .debug_str 0x000000000009f773 0xf9 ./HW_Devices/key.o 0x98fd7 (size before relaxing) - .debug_str 0x000000000009f7a8 0x280 ./HW_Devices/touch.o + .debug_str 0x000000000009f86c 0x280 ./HW_Devices/touch.o 0x99804 (size before relaxing) - .debug_str 0x000000000009fa28 0xce5 ./SW_APPs/APP_blood.o + .debug_str 0x000000000009faec 0xce5 ./SW_APPs/APP_blood.o 0x9a780 (size before relaxing) - .debug_str 0x00000000000a070d 0x159 ./SW_APPs/APP_morsecode.o - 0x997ce (size before relaxing) - .debug_str 0x00000000000a0866 0x98 ./SW_APPs/Main_APP.o - 0x99896 (size before relaxing) - .debug_str 0x00000000000a08fe 0x120 ./SW_APPs/windows.o + .debug_str 0x00000000000a07d1 0x159 ./SW_APPs/APP_morsecode.o + 0x997e3 (size before relaxing) + .debug_str 0x00000000000a092a 0x98 ./SW_APPs/Main_APP.o + 0x99d5b (size before relaxing) + .debug_str 0x00000000000a09c2 0x120 ./SW_APPs/windows.o 0x9985d (size before relaxing) .comment 0x0000000000000000 0x53 @@ -6716,6 +6908,7 @@ LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .comment 0x0000000000000053 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o .comment 0x0000000000000053 0x54 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o .comment 0x0000000000000053 0x54 ./HW_Devices/LCD.o + .comment 0x0000000000000053 0x54 ./HW_Devices/buzzer.o .comment 0x0000000000000053 0x54 ./HW_Devices/eeprom.o .comment 0x0000000000000053 0x54 ./HW_Devices/iic.o .comment 0x0000000000000053 0x54 ./HW_Devices/key.o @@ -6725,83 +6918,85 @@ LOAD c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.exte .comment 0x0000000000000053 0x54 ./SW_APPs/Main_APP.o .comment 0x0000000000000053 0x54 ./SW_APPs/windows.o -.debug_frame 0x0000000000000000 0x61c0 - .debug_frame 0x0000000000000000 0x158 ./Core/Src/main.o - .debug_frame 0x0000000000000158 0x198 ./Core/Src/stm32f1xx_hal_msp.o - .debug_frame 0x00000000000002f0 0x120 ./Core/Src/stm32f1xx_it.o - .debug_frame 0x0000000000000410 0x2ac ./Core/Src/syscalls.o - .debug_frame 0x00000000000006bc 0x34 ./Core/Src/sysmem.o - .debug_frame 0x00000000000006f0 0x58 ./Core/Src/system_stm32f1xx.o - .debug_frame 0x0000000000000748 0x334 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o - .debug_frame 0x0000000000000a7c 0x428 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o - .debug_frame 0x0000000000000ea4 0x14c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o - .debug_frame 0x0000000000000ff0 0xc5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o - .debug_frame 0x0000000000001c4c 0x21c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o - .debug_frame 0x0000000000001e68 0x824 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o - .debug_frame 0x000000000000268c 0x30c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o - .debug_frame 0x0000000000002998 0x11bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o - .debug_frame 0x0000000000003b54 0x638 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o - .debug_frame 0x000000000000418c 0x2dc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o - .debug_frame 0x0000000000004468 0x33c ./HW_Devices/LCD.o - .debug_frame 0x00000000000047a4 0x9c ./HW_Devices/eeprom.o - .debug_frame 0x0000000000004840 0x58 ./HW_Devices/iic.o - .debug_frame 0x0000000000004898 0x34 ./HW_Devices/key.o - .debug_frame 0x00000000000048cc 0x164 ./HW_Devices/touch.o - .debug_frame 0x0000000000004a30 0x260 ./SW_APPs/APP_blood.o - .debug_frame 0x0000000000004c90 0x88 ./SW_APPs/APP_morsecode.o - .debug_frame 0x0000000000004d18 0x30 ./SW_APPs/Main_APP.o - .debug_frame 0x0000000000004d48 0x1b0 ./SW_APPs/windows.o - .debug_frame 0x0000000000004ef8 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-errno.o) - .debug_frame 0x0000000000004f18 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-init.o) - .debug_frame 0x0000000000004f44 0x30 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-malloc.o) - .debug_frame 0x0000000000004f74 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memset.o) - .debug_frame 0x0000000000004f94 0x38 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-freer.o) - .debug_frame 0x0000000000004fcc 0x30 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) - .debug_frame 0x0000000000004ffc 0x94 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) - .debug_frame 0x0000000000005090 0x60 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) - .debug_frame 0x00000000000050f0 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sbrkr.o) - .debug_frame 0x000000000000511c 0x6c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sprintf.o) - .debug_frame 0x0000000000005188 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wbuf.o) - .debug_frame 0x00000000000051c8 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wsetup.o) - .debug_frame 0x00000000000051f4 0x6c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-dtoa.o) - .debug_frame 0x0000000000005260 0x5c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fflush.o) - .debug_frame 0x00000000000052bc 0x14c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) - .debug_frame 0x0000000000005408 0x54 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fwalk.o) - .debug_frame 0x000000000000545c 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-localeconv.o) - .debug_frame 0x000000000000549c 0xb0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) - .debug_frame 0x000000000000554c 0x58 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-makebuf.o) - .debug_frame 0x00000000000055a4 0x28 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memchr-stub.o) - .debug_frame 0x00000000000055cc 0x28 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memcpy-stub.o) - .debug_frame 0x00000000000055f4 0x30 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) - .debug_frame 0x0000000000005624 0x254 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) - .debug_frame 0x0000000000005878 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-callocr.o) - .debug_frame 0x00000000000058a4 0x90 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) - .debug_frame 0x0000000000005934 0xac c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) - .debug_frame 0x00000000000059e0 0x5c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-reent.o) - .debug_frame 0x0000000000005a3c 0x88 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) - .debug_frame 0x0000000000005ac4 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-writer.o) - .debug_frame 0x0000000000005af0 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-assert.o) - .debug_frame 0x0000000000005b30 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-closer.o) - .debug_frame 0x0000000000005b5c 0x64 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fprintf.o) - .debug_frame 0x0000000000005bc0 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fstatr.o) - .debug_frame 0x0000000000005bec 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-isattyr.o) - .debug_frame 0x0000000000005c18 0x48 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-locale.o) - .debug_frame 0x0000000000005c60 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lseekr.o) - .debug_frame 0x0000000000005c8c 0x48 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mbtowc_r.o) - .debug_frame 0x0000000000005cd4 0x28 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memmove.o) - .debug_frame 0x0000000000005cfc 0x3c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-reallocr.o) - .debug_frame 0x0000000000005d38 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-readr.o) - .debug_frame 0x0000000000005d64 0x3c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wctomb_r.o) - .debug_frame 0x0000000000005da0 0x28 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-abort.o) - .debug_frame 0x0000000000005dc8 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-msizer.o) - .debug_frame 0x0000000000005de8 0xcc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signal.o) - .debug_frame 0x0000000000005eb4 0x3c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signalr.o) - .debug_frame 0x0000000000005ef0 0xac c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_addsubdf3.o) - .debug_frame 0x0000000000005f9c 0x50 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldivdf3.o) - .debug_frame 0x0000000000005fec 0xc4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_cmpdf2.o) - .debug_frame 0x00000000000060b0 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_unorddf2.o) - .debug_frame 0x00000000000060d0 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixdfsi.o) - .debug_frame 0x00000000000060f4 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_truncdfsf2.o) - .debug_frame 0x0000000000006118 0x4c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_addsubsf3.o) - .debug_frame 0x0000000000006164 0x38 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldivsf3.o) - .debug_frame 0x000000000000619c 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixsfsi.o) +.debug_frame 0x0000000000000000 0x62e4 + .debug_frame 0x0000000000000000 0x17c ./Core/Src/main.o + .debug_frame 0x000000000000017c 0x1bc ./Core/Src/stm32f1xx_hal_msp.o + .debug_frame 0x0000000000000338 0x13c ./Core/Src/stm32f1xx_it.o + .debug_frame 0x0000000000000474 0x2ac ./Core/Src/syscalls.o + .debug_frame 0x0000000000000720 0x34 ./Core/Src/sysmem.o + .debug_frame 0x0000000000000754 0x58 ./Core/Src/system_stm32f1xx.o + .debug_frame 0x00000000000007ac 0x334 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.o + .debug_frame 0x0000000000000ae0 0x428 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.o + .debug_frame 0x0000000000000f08 0x14c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.o + .debug_frame 0x0000000000001054 0xc5c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.o + .debug_frame 0x0000000000001cb0 0x21c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.o + .debug_frame 0x0000000000001ecc 0x824 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.o + .debug_frame 0x00000000000026f0 0x30c ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.o + .debug_frame 0x00000000000029fc 0x11bc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.o + .debug_frame 0x0000000000003bb8 0x638 ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o + .debug_frame 0x00000000000041f0 0x2dc ./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o + .debug_frame 0x00000000000044cc 0x33c ./HW_Devices/LCD.o + .debug_frame 0x0000000000004808 0x9c ./HW_Devices/buzzer.o + .debug_frame 0x00000000000048a4 0x9c ./HW_Devices/eeprom.o + .debug_frame 0x0000000000004940 0x58 ./HW_Devices/iic.o + .debug_frame 0x0000000000004998 0x34 ./HW_Devices/key.o + .debug_frame 0x00000000000049cc 0x164 ./HW_Devices/touch.o + .debug_frame 0x0000000000004b30 0x260 ./SW_APPs/APP_blood.o + .debug_frame 0x0000000000004d90 0x88 ./SW_APPs/APP_morsecode.o + .debug_frame 0x0000000000004e18 0x30 ./SW_APPs/Main_APP.o + .debug_frame 0x0000000000004e48 0x1b0 ./SW_APPs/windows.o + .debug_frame 0x0000000000004ff8 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-errno.o) + .debug_frame 0x0000000000005018 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-init.o) + .debug_frame 0x0000000000005044 0x30 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-malloc.o) + .debug_frame 0x0000000000005074 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memset.o) + .debug_frame 0x0000000000005094 0x38 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-freer.o) + .debug_frame 0x00000000000050cc 0x30 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-mallocr.o) + .debug_frame 0x00000000000050fc 0x94 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_float.o) + .debug_frame 0x0000000000005190 0x60 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf_i.o) + .debug_frame 0x00000000000051f0 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sbrkr.o) + .debug_frame 0x000000000000521c 0x6c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-sprintf.o) + .debug_frame 0x0000000000005288 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wbuf.o) + .debug_frame 0x00000000000052c8 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wsetup.o) + .debug_frame 0x00000000000052f4 0x6c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-dtoa.o) + .debug_frame 0x0000000000005360 0x5c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fflush.o) + .debug_frame 0x00000000000053bc 0x14c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-findfp.o) + .debug_frame 0x0000000000005508 0x54 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fwalk.o) + .debug_frame 0x000000000000555c 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-localeconv.o) + .debug_frame 0x000000000000559c 0xb0 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lock.o) + .debug_frame 0x000000000000564c 0x58 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-makebuf.o) + .debug_frame 0x00000000000056a4 0x28 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memchr-stub.o) + .debug_frame 0x00000000000056cc 0x28 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memcpy-stub.o) + .debug_frame 0x00000000000056f4 0x30 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mlock.o) + .debug_frame 0x0000000000005724 0x254 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mprec.o) + .debug_frame 0x0000000000005978 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-callocr.o) + .debug_frame 0x00000000000059a4 0x90 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-svfprintf.o) + .debug_frame 0x0000000000005a34 0xac c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-vfprintf.o) + .debug_frame 0x0000000000005ae0 0x5c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-reent.o) + .debug_frame 0x0000000000005b3c 0x88 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-stdio.o) + .debug_frame 0x0000000000005bc4 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-writer.o) + .debug_frame 0x0000000000005bf0 0x40 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-assert.o) + .debug_frame 0x0000000000005c30 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-closer.o) + .debug_frame 0x0000000000005c5c 0x64 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fprintf.o) + .debug_frame 0x0000000000005cc0 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-fstatr.o) + .debug_frame 0x0000000000005cec 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-isattyr.o) + .debug_frame 0x0000000000005d18 0x48 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-locale.o) + .debug_frame 0x0000000000005d60 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-lseekr.o) + .debug_frame 0x0000000000005d8c 0x48 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-mbtowc_r.o) + .debug_frame 0x0000000000005dd4 0x28 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-memmove.o) + .debug_frame 0x0000000000005dfc 0x3c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-reallocr.o) + .debug_frame 0x0000000000005e38 0x2c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-readr.o) + .debug_frame 0x0000000000005e64 0x3c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-wctomb_r.o) + .debug_frame 0x0000000000005ea0 0x28 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-abort.o) + .debug_frame 0x0000000000005ec8 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-nano-msizer.o) + .debug_frame 0x0000000000005ee8 0xcc c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signal.o) + .debug_frame 0x0000000000005fb4 0x3c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signalr.o) + .debug_frame 0x0000000000005ff0 0xac c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_addsubdf3.o) + .debug_frame 0x000000000000609c 0x50 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldivdf3.o) + .debug_frame 0x00000000000060ec 0xc4 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_cmpdf2.o) + .debug_frame 0x00000000000061b0 0x20 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_unorddf2.o) + .debug_frame 0x00000000000061d0 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixdfsi.o) + .debug_frame 0x00000000000061f4 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_truncdfsf2.o) + .debug_frame 0x0000000000006218 0x4c c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_addsubsf3.o) + .debug_frame 0x0000000000006264 0x38 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_muldivsf3.o) + .debug_frame 0x000000000000629c 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixsfsi.o) + .debug_frame 0x00000000000062c0 0x24 c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libgcc.a(_arm_fixunssfsi.o) diff --git a/Debug/objects.list b/Debug/objects.list index b4d15b7..bfea271 100644 --- a/Debug/objects.list +++ b/Debug/objects.list @@ -23,6 +23,7 @@ "./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.o" "./Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.o" "./HW_Devices/LCD.o" +"./HW_Devices/buzzer.o" "./HW_Devices/eeprom.o" "./HW_Devices/iic.o" "./HW_Devices/key.o" diff --git a/Drivers/CMSIS/Device/ST/STM32F1xx/License.md b/Drivers/CMSIS/Device/ST/STM32F1xx/License.md new file mode 100644 index 0000000..72fbf79 --- /dev/null +++ b/Drivers/CMSIS/Device/ST/STM32F1xx/License.md @@ -0,0 +1,83 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: +1.You must give any other recipients of the Work or Derivative Works a copy of this License; and +2.You must cause any modified files to carry prominent notices stating that You changed the files; and +3.You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +4.If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: + + Copyright [2019] [STMicroelectronics] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/Drivers/CMSIS/LICENSE.txt b/Drivers/CMSIS/LICENSE.txt new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/Drivers/CMSIS/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Drivers/STM32F1xx_HAL_Driver/License.md b/Drivers/STM32F1xx_HAL_Driver/License.md new file mode 100644 index 0000000..ff4e630 --- /dev/null +++ b/Drivers/STM32F1xx_HAL_Driver/License.md @@ -0,0 +1,27 @@ +Copyright 2016(-2021) STMicroelectronics. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/HW_Devices/buzzer.c b/HW_Devices/buzzer.c new file mode 100644 index 0000000..69924ee --- /dev/null +++ b/HW_Devices/buzzer.c @@ -0,0 +1,105 @@ +/* + * buzzer.c + * + * Created on: Mar 6, 2022 + * Author: wuwen + */ + + +#include "buzzer.h" + +struct notes *notes; + +void play_ones(uint16_t freq,uint8_t dutya) +{ +//寄存器写法 需要根据单片机的时钟来写。 +TIM4->ARR = (uint32_t)((72000000/freq)-1);TIM4->CCR3 = (uint32_t)(((72000000/freq)-1)*((float)dutya/100)); +} + + + +void add_a_note(uint16_t freq,uint8_t duty,uint16_t deley)//添加一个音符 +{ +struct notes* buff; +buff = (struct notes*)malloc(sizeof(struct notes)); +if (buff != NULL) +{ +buff->freq = freq; +buff->duty = duty; +buff->deley = deley; +buff->next_note = NULL; + +if (notes == NULL) +{ +notes = buff; +} +else +{ +struct notes *t = notes; +while (t->next_note != NULL) +{ +t = t->next_note; +} +t->next_note = buff; +} +} + +} + +void delhead() //删除第一个音符 一般用户不需要调用 +{ +if (notes == NULL) +{ +return; +} + + +if (notes->next_note == NULL) +{ +free(notes); +notes = NULL; +} +else +{ +struct notes *t = notes; +notes = notes->next_note; +free(t); + +} + + + +} + +char buzzer_play_server() //放在主循环 只有有音符添加进来就会播放,播放完自动释放 +{ + + +static char busy_flag=0; +static uint32_t play_delay; + +if(notes == NULL) +{ + //play_ones(0,0); +}else +{ + if(busy_flag==0) + { + busy_flag=1; + play_delay=HAL_GetTick()+notes->deley; + play_ones(notes->freq,notes->duty); + } + if(busy_flag==1) + { + if(HAL_GetTick()>play_delay) + { + busy_flag=0; + delhead(); + } + } +} + + + +return busy_flag; +} diff --git a/HW_Devices/buzzer.h b/HW_Devices/buzzer.h new file mode 100644 index 0000000..c89a770 --- /dev/null +++ b/HW_Devices/buzzer.h @@ -0,0 +1,25 @@ +/* + * buzzer.h + * + * Created on: Mar 6, 2022 + * Author: wuwen + */ + +#ifndef BUZZER_H_ +#define BUZZER_H_ + +#include "main.h" + +struct notes //一个音符 +{ + uint16_t freq; //频率 + uint8_t duty; //占空比 + uint16_t deley; //播放时长 + struct notes *next_note;//下一个音符 +}; + +void play_ones(uint16_t freq,uint8_t dutya); +void add_a_note(uint16_t freq,uint8_t duty,uint16_t deley); +char buzzer_play_server(); + +#endif /* BUZZER_H_ */ diff --git a/SW_APPs/APP_morsecode.c b/SW_APPs/APP_morsecode.c index cff53ac..2346ab5 100644 --- a/SW_APPs/APP_morsecode.c +++ b/SW_APPs/APP_morsecode.c @@ -7,14 +7,14 @@ #include "APP_morsecode.h" -#define morse_t1 250 +#define morse_t1 200 #define morse_t2 (morse_t1*3) char push_key=0,last_key=1; uint32_t morse_t=0; uint32_t morse_time_out=0; uint16_t morse_temp; -char morse_input_buff[65]={0}; +char morse_input_buff[65]; int morse_input_flag=0; int morse_char_flag=0; int morse_x,morse_y; @@ -145,6 +145,8 @@ void APP_morsecode_init(window *a_window) { morse_input_buff[a]='\0'; } + + } @@ -161,6 +163,8 @@ char getmorsecode(uint8_t len,uint8_t code) return 0; } + + void APP_morsecode_loop() { /* @@ -168,7 +172,53 @@ void APP_morsecode_loop() sprintf(str,"%d %d ",morse_input_flag,morse_char_flag); LCD_ShowString(morsecode_window->x, morsecode_window->y+100, str, 16, GREEN, RED); */ + if(k3.code==1) + { + for(int a=0;a<64;a++) + { + if(morse_input_buff[a]=='\0') + { + break; + } + + if(morse_input_buff[a]==' ') + { + add_a_note(0, 50, 300); + }else + { + for(int b=0;b<36;b++) + { + if(morsecodes[b].letter==morse_input_buff[a]) + { + for(int c=0;c>c)) + { + add_a_note(1000, 50, 200); + }else + { + add_a_note(1000, 50, 100); + } + add_a_note(0, 50, 100); + } + break; + } + + } + add_a_note(0, 50, 100); + } + } + + } + if(k2.code==3) + { + sprintf(morse_input_buff,"EISH5 E I S H 5"); + } + if(k2.code==2) + { + sprintf(morse_input_buff,"HELLO WORLD"); + } if(k2.code==1) { morse_x=morsecode_window->x; @@ -204,6 +254,7 @@ void APP_morsecode_loop() if(push_key==0) { morse_t=HAL_GetTick(); + play_ones(1000,50); }else { morse_temp=HAL_GetTick()-morse_t; @@ -215,14 +266,19 @@ void APP_morsecode_loop() //- morse_input_buff[morse_input_flag]='-'; morse_letter_temp|=(0x80>>morse_letter_flag); + morse_input_flag++; + morse_letter_flag++; + if(morse_input_flag>=morse_char_flag+8){morse_input_flag=morse_char_flag;morse_letter_flag=0;} }else { //. morse_input_buff[morse_input_flag]='.'; + morse_input_flag++; + morse_letter_flag++; + if(morse_input_flag>=morse_char_flag+8){morse_input_flag=morse_char_flag;morse_letter_flag=0;} } - morse_input_flag++; - morse_letter_flag++; - if(morse_input_flag>=morse_char_flag+8){morse_input_flag=morse_char_flag;morse_letter_flag=0;} + + play_ones(0,0); } diff --git a/SW_APPs/Main_APP.c b/SW_APPs/Main_APP.c index da2b150..942d8e4 100644 --- a/SW_APPs/Main_APP.c +++ b/SW_APPs/Main_APP.c @@ -10,7 +10,9 @@ #include "touch.h" #include "eeprom.h" #include "key.h" +#include "buzzer.h" +extern TIM_HandleTypeDef htim4; extern touch_device t0; task run_loop;//主循环状态机 @@ -20,6 +22,9 @@ task run_loop;// void main_app() { + + HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3);//启动n通道的pwm + char str[64]; LCDx_Init(); EPPROM_SLOWWRITE_INIT(); @@ -46,6 +51,8 @@ void main_app() ui->refresh_ui_flag=1; + //add_a_note(1000,50,1000); + //add_a_note(0,50,0); while(1) { //LCD_set_dot(t0.pix_x, t0.pix_y, RED); @@ -71,6 +78,7 @@ void main_app() UI_Server(ui); TP_Server(); EEPROM_SLOWWRITE_SERVER(); + buzzer_play_server(); } } diff --git a/m3s.ioc b/m3s.ioc index 7def448..cb3614f 100644 --- a/m3s.ioc +++ b/m3s.ioc @@ -13,8 +13,9 @@ Mcu.IP2=NVIC Mcu.IP3=RCC Mcu.IP4=SPI1 Mcu.IP5=SYS -Mcu.IP6=TIM6 -Mcu.IPNb=7 +Mcu.IP6=TIM4 +Mcu.IP7=TIM6 +Mcu.IPNb=8 Mcu.Name=STM32F103Z(C-D-E)Tx Mcu.Package=LQFP144 Mcu.Pin0=PE2 @@ -56,14 +57,16 @@ Mcu.Pin40=PD4 Mcu.Pin41=PD5 Mcu.Pin42=PG12 Mcu.Pin43=PB3 -Mcu.Pin44=VP_SYS_VS_Systick -Mcu.Pin45=VP_TIM6_VS_ClockSourceINT +Mcu.Pin44=PB8 +Mcu.Pin45=VP_SYS_VS_Systick +Mcu.Pin46=VP_TIM4_VS_ClockSourceINT +Mcu.Pin47=VP_TIM6_VS_ClockSourceINT Mcu.Pin5=PF10 Mcu.Pin6=OSC_IN Mcu.Pin7=OSC_OUT Mcu.Pin8=PA0-WKUP Mcu.Pin9=PA4 -Mcu.PinsNb=46 +Mcu.PinsNb=48 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F103ZETx @@ -79,6 +82,7 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true +NVIC.TIM4_IRQn=true\:0\:0\:false\:false\:true\:true\:true NVIC.TIM6_IRQn=true\:0\:0\:false\:false\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false OSC_IN.Mode=HSE-External-Oscillator @@ -144,6 +148,8 @@ PB2.PinState=GPIO_PIN_SET PB2.Signal=GPIO_Output PB3.Mode=Trace_Asynchronous_SW PB3.Signal=SYS_JTDO-TRACESWO +PB8.Locked=true +PB8.Signal=S_TIM4_CH3 PD0.Signal=FSMC_D2_DA2 PD1.Signal=FSMC_D3_DA3 PD10.Signal=FSMC_D15_DA15 @@ -223,7 +229,7 @@ ProjectManager.StackSize=0x800 ProjectManager.TargetToolchain=STM32CubeIDE ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_FSMC_Init-FSMC-false-HAL-true,4-MX_I2C2_Init-I2C2-false-HAL-true,5-MX_TIM6_Init-TIM6-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_FSMC_Init-FSMC-false-HAL-true,4-MX_I2C2_Init-I2C2-false-HAL-true,5-MX_TIM6_Init-TIM6-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_TIM4_Init-TIM4-false-HAL-true RCC.ADCFreqValue=36000000 RCC.AHBFreq_Value=72000000 RCC.APB1CLKDivider=RCC_HCLK_DIV2 @@ -288,17 +294,23 @@ SH.FSMC_NOE.0=FSMC_NOE,Lcd1 SH.FSMC_NOE.ConfNb=1 SH.FSMC_NWE.0=FSMC_NWE,Lcd1 SH.FSMC_NWE.ConfNb=1 +SH.S_TIM4_CH3.0=TIM4_CH3,PWM Generation3 CH3 +SH.S_TIM4_CH3.ConfNb=1 SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_4 SPI1.CalculateBaudRate=18.0 MBits/s SPI1.Direction=SPI_DIRECTION_2LINES SPI1.IPParameters=VirtualType,Mode,Direction,BaudRatePrescaler,CalculateBaudRate SPI1.Mode=SPI_MODE_MASTER SPI1.VirtualType=VM_MASTER +TIM4.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3 +TIM4.IPParameters=Channel-PWM Generation3 CH3 TIM6.IPParameters=Prescaler,Period TIM6.Period=10000-1 TIM6.Prescaler=72-1 VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_TIM4_VS_ClockSourceINT.Mode=Internal +VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT VP_TIM6_VS_ClockSourceINT.Mode=Enable_Timer VP_TIM6_VS_ClockSourceINT.Signal=TIM6_VS_ClockSourceINT board=custom