diff --git a/.cproject b/.cproject index 9727f44..1798d45 100644 --- a/.cproject +++ b/.cproject @@ -14,7 +14,7 @@ - + - + + + @@ -122,6 +163,9 @@ @@ -130,6 +174,7 @@ - + + + + + + + + + + \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..765ff2e --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,14 @@ +name: Build + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - uses: xanderhendriks/action-build-stm32cubeide@v10.0 + with: + project-path: '.' + project-target: './Debug' \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a049b91 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# MacOS + +.DS_Store + +# CMake + +cmake-build-debug/ + +# CubeMX + +Debug/ + +# CubeIDE + +.settings/ + +# IDEA + +.idea/ \ No newline at end of file diff --git a/.mxproject b/.mxproject index cac5c59..a4074a1 100644 --- a/.mxproject +++ b/.mxproject @@ -1,24 +1,34 @@ [PreviousLibFiles] -LibFiles=Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.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/core_cm35p.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_armv81mml.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;Drivers/CMSIS/Include/cmsis_armclang_ltm.h; +LibFiles=Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_i2c.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_bus.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_rcc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_crs.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_system.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_utils.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_gpio.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dma.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_dmamux.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_pwr.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_cortex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_exti.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_lpuart.h;Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.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/core_cm35p.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_armv81mml.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;Drivers/CMSIS/Include/cmsis_armclang_ltm.h; [PreviousUsedCubeIDEFiles] -SourceFiles=Core/Src/main.c;Core/Src/stm32l4xx_it.c;Core/Src/stm32l4xx_hal_msp.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Core/Src/system_stm32l4xx.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Core/Src/system_stm32l4xx.c;;; +SourceFiles=Core/Src/main.c;Core/Src/gpio.c;Core/Src/dma.c;Core/Src/i2c.c;Core/Src/tim.c;Core/Src/usart.c;Core/Src/stm32l4xx_it.c;Core/Src/stm32l4xx_hal_msp.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Core/Src/system_stm32l4xx.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c;Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c;Drivers/CMSIS/Device/ST/STM32L4xx/Source/Templates/system_stm32l4xx.c;Core/Src/system_stm32l4xx.c;;; HeaderPath=Drivers/STM32L4xx_HAL_Driver/Inc;Drivers/STM32L4xx_HAL_Driver/Inc/Legacy;Drivers/CMSIS/Device/ST/STM32L4xx/Include;Drivers/CMSIS/Include;Core/Inc; CDefines=USE_HAL_DRIVER;STM32L476xx;USE_HAL_DRIVER;USE_HAL_DRIVER; [PreviousGenFiles] AdvancedFolderStructure=true -HeaderFileListSize=3 -HeaderFiles#0=../Core/Inc/stm32l4xx_it.h -HeaderFiles#1=../Core/Inc/stm32l4xx_hal_conf.h -HeaderFiles#2=../Core/Inc/main.h +HeaderFileListSize=8 +HeaderFiles#0=../Core/Inc/gpio.h +HeaderFiles#1=../Core/Inc/dma.h +HeaderFiles#2=../Core/Inc/i2c.h +HeaderFiles#3=../Core/Inc/tim.h +HeaderFiles#4=../Core/Inc/usart.h +HeaderFiles#5=../Core/Inc/stm32l4xx_it.h +HeaderFiles#6=../Core/Inc/stm32l4xx_hal_conf.h +HeaderFiles#7=../Core/Inc/main.h HeaderFolderListSize=1 HeaderPath#0=../Core/Inc HeaderFiles=; -SourceFileListSize=3 -SourceFiles#0=../Core/Src/stm32l4xx_it.c -SourceFiles#1=../Core/Src/stm32l4xx_hal_msp.c -SourceFiles#2=../Core/Src/main.c +SourceFileListSize=8 +SourceFiles#0=../Core/Src/gpio.c +SourceFiles#1=../Core/Src/dma.c +SourceFiles#2=../Core/Src/i2c.c +SourceFiles#3=../Core/Src/tim.c +SourceFiles#4=../Core/Src/usart.c +SourceFiles#5=../Core/Src/stm32l4xx_it.c +SourceFiles#6=../Core/Src/stm32l4xx_hal_msp.c +SourceFiles#7=../Core/Src/main.c SourceFolderListSize=1 SourcePath#0=../Core/Src SourceFiles=; diff --git a/.project b/.project index b0ddc02..0c72ee2 100644 --- a/.project +++ b/.project @@ -22,12 +22,12 @@ com.st.stm32cube.ide.mcu.MCUProjectNature com.st.stm32cube.ide.mcu.MCUCubeProjectNature org.eclipse.cdt.core.cnature - org.eclipse.cdt.core.ccnature com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature com.st.stm32cube.ide.mcu.MCURootProjectNature org.eclipse.cdt.managedbuilder.core.managedBuildNature org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index dd30742..1335f8d 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..3c5257d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,73 @@ +#THIS FILE IS AUTO GENERATED FROM THE TEMPLATE! DO NOT CHANGE! +set(CMAKE_SYSTEM_NAME Generic) +set(CMAKE_SYSTEM_VERSION 1) +cmake_minimum_required(VERSION 3.27) + +# specify cross-compilers and tools +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) +set(CMAKE_AR arm-none-eabi-ar) +set(CMAKE_OBJCOPY arm-none-eabi-objcopy) +set(CMAKE_OBJDUMP arm-none-eabi-objdump) +set(SIZE arm-none-eabi-size) +set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + +# project settings +project(light_detector C CXX ASM) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_C_STANDARD 11) + +#Uncomment for hardware floating point +#add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING) +#add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16) +#add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16) + +#Uncomment for software floating point +#add_compile_options(-mfloat-abi=soft) + +add_compile_options(-mcpu=cortex-m4 -mthumb -mthumb-interwork) +add_compile_options(-ffunction-sections -fdata-sections -fno-common -fmessage-length=0) + +# uncomment to mitigate c++17 absolute addresses warnings +#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-register") + +# Enable assembler files preprocessing +add_compile_options($<$:-x$assembler-with-cpp>) + +if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release") + message(STATUS "Maximum optimization for speed") + add_compile_options(-Ofast) +elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo") + message(STATUS "Maximum optimization for speed, debug info included") + add_compile_options(-Ofast -g) +elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "MinSizeRel") + message(STATUS "Maximum optimization for size") + add_compile_options(-Os) +else () + message(STATUS "Minimal optimization, debug info included") + add_compile_options(-Og -g) +endif () + +include_directories(Core/Inc Core/External/Proto/Buffer Core/External/Proto/Buffer/Request Core/External/Proto/Buffer/Response Core/External/Sensor Core/External/Proto/Helper Core/External/Proto/Codec Core/External/Proto/Generated Core/External/Proto/Generated/Content Core/External/Scheduler Core/External/Scheduler/Handler Core/External/State Core/External/Tools/Indicator Core/External/Tools/Mutex Core/External/Tools/Sequence ThirdParty/Inc Drivers/STM32L4xx_HAL_Driver/Inc Drivers/STM32L4xx_HAL_Driver/Inc/Legacy Drivers/CMSIS/Device/ST/STM32L4xx/Include Drivers/CMSIS/Include) + +add_definitions(-DDEBUG -DUSE_HAL_DRIVER -DSTM32L476xx) + +file(GLOB_RECURSE SOURCES "ThirdParty/*.*" "Core/*.*" "Drivers/*.*") + +set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/STM32L476RGTX_FLASH.ld) + +add_link_options(-Wl,-gc-sections,--print-memory-usage,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map) +add_link_options(-mcpu=cortex-m4 -mthumb -mthumb-interwork) +add_link_options(-T ${LINKER_SCRIPT}) + +add_executable(${PROJECT_NAME}.elf ${SOURCES} ${LINKER_SCRIPT}) + +set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex) +set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin) + +add_custom_command(TARGET ${PROJECT_NAME}.elf POST_BUILD + COMMAND ${CMAKE_OBJCOPY} -Oihex $ ${HEX_FILE} + COMMAND ${CMAKE_OBJCOPY} -Obinary $ ${BIN_FILE} + COMMENT "Building ${HEX_FILE} +Building ${BIN_FILE}") diff --git a/CMakeLists_template.txt b/CMakeLists_template.txt new file mode 100644 index 0000000..3b7fc44 --- /dev/null +++ b/CMakeLists_template.txt @@ -0,0 +1,72 @@ +#${templateWarning} +set(CMAKE_SYSTEM_NAME Generic) +set(CMAKE_SYSTEM_VERSION 1) +${cmakeRequiredVersion} +# specify cross-compilers and tools +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) +set(CMAKE_AR arm-none-eabi-ar) +set(CMAKE_OBJCOPY arm-none-eabi-objcopy) +set(CMAKE_OBJDUMP arm-none-eabi-objdump) +set(SIZE arm-none-eabi-size) +set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + +# project settings +project(${projectName} C CXX ASM) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_C_STANDARD 11) + +#Uncomment for hardware floating point +#add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING) +#add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16) +#add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16) + +#Uncomment for software floating point +#add_compile_options(-mfloat-abi=soft) + +add_compile_options(-mcpu=${mcpu} -mthumb -mthumb-interwork) +add_compile_options(-ffunction-sections -fdata-sections -fno-common -fmessage-length=0) + +# uncomment to mitigate c++17 absolute addresses warnings +#set(CMAKE_CXX_FLAGS "$${CMAKE_CXX_FLAGS} -Wno-register") + +# Enable assembler files preprocessing +add_compile_options($<$:-x$assembler-with-cpp>) + +if ("$${CMAKE_BUILD_TYPE}" STREQUAL "Release") + message(STATUS "Maximum optimization for speed") + add_compile_options(-Ofast) +elseif ("$${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo") + message(STATUS "Maximum optimization for speed, debug info included") + add_compile_options(-Ofast -g) +elseif ("$${CMAKE_BUILD_TYPE}" STREQUAL "MinSizeRel") + message(STATUS "Maximum optimization for size") + add_compile_options(-Os) +else () + message(STATUS "Minimal optimization, debug info included") + add_compile_options(-Og -g) +endif () + +include_directories(${includes}) + +add_definitions(${defines}) + +file(GLOB_RECURSE SOURCES ${sources}) + +set(LINKER_SCRIPT $${CMAKE_SOURCE_DIR}/${linkerScript}) + +add_link_options(-Wl,-gc-sections,--print-memory-usage,-Map=$${PROJECT_BINARY_DIR}/$${PROJECT_NAME}.map) +add_link_options(-mcpu=${mcpu} -mthumb -mthumb-interwork) +add_link_options(-T $${LINKER_SCRIPT}) + +add_executable($${PROJECT_NAME}.elf $${SOURCES} $${LINKER_SCRIPT}) + +set(HEX_FILE $${PROJECT_BINARY_DIR}/$${PROJECT_NAME}.hex) +set(BIN_FILE $${PROJECT_BINARY_DIR}/$${PROJECT_NAME}.bin) + +add_custom_command(TARGET $${PROJECT_NAME}.elf POST_BUILD + COMMAND $${CMAKE_OBJCOPY} -Oihex $ $${HEX_FILE} + COMMAND $${CMAKE_OBJCOPY} -Obinary $ $${BIN_FILE} + COMMENT "Building $${HEX_FILE} +Building $${BIN_FILE}") diff --git a/Core/External/Proto/Buffer/Request/request_buffer.cpp b/Core/External/Proto/Buffer/Request/request_buffer.cpp new file mode 100644 index 0000000..ee5ae67 --- /dev/null +++ b/Core/External/Proto/Buffer/Request/request_buffer.cpp @@ -0,0 +1,63 @@ +#include "request_buffer.h" + +template +RequestBuffer::RequestBuffer() : index(0), size(0), bytes{0} { +} + +template +uint8_t * RequestBuffer::get_raw_buffer() { + return this->bytes[0]; +} + +template +uint32_t RequestBuffer::get_size() const { + return index; +} + +template +uint32_t RequestBuffer::get_max_size() const { + return size; +} + +template +bool RequestBuffer::peek(uint8_t &byte) const { + bool result = this->index < this->size; + if (result) { + byte = *this->bytes[this->index]; + } + + return result; +} + +template +bool RequestBuffer::advance() { + const bool result = this->index < this->size; + if (result) { + ++this->index; + } + return result; +} + +template +bool RequestBuffer::advance(const uint32_t src) { + this->index += src; + const bool result = this->index < this->size; + if (result) { + this->index = this->size; + } + + return result; +} + +template +bool RequestBuffer::pop(uint8_t &byte) { + bool result = this->index < this->size; + if (result) { + byte = *this->bytes[this->index]; + ++this->index; + } + + return result; +} + +template class RequestBuffer; \ No newline at end of file diff --git a/Core/External/Proto/Buffer/Request/request_buffer.h b/Core/External/Proto/Buffer/Request/request_buffer.h new file mode 100644 index 0000000..30aa4ea --- /dev/null +++ b/Core/External/Proto/Buffer/Request/request_buffer.h @@ -0,0 +1,76 @@ +#ifndef LIGHT_DETECTOR_REQUEST_BUFFER_H +#define LIGHT_DETECTOR_REQUEST_BUFFER_H + +#include "ReadBufferInterface.h" + +#include + +#define DEFAULT_REQUEST_BUFFER_SIZE 100 + +/** + * Represents request buffer implementation for protocol buffers serialization. + * + * @tparam BUFFER_SIZE - given size of the internal request buffer. + */ +template +class RequestBuffer : public EmbeddedProto::ReadBufferInterface { +public: + RequestBuffer(); + + ~RequestBuffer() override = default; + + /** + * Retrieves raw buffer used for direct data injection. + * + * @return raw buffer reference. + */ + uint8_t *get_raw_buffer(); + + /** + * @see EmbeddedProto::ReadBufferInterface + */ + [[nodiscard]] uint32_t get_size() const override; + + /** + * @see EmbeddedProto::ReadBufferInterface + */ + [[nodiscard]] uint32_t get_max_size() const override; + + /** + * @see EmbeddedProto::ReadBufferInterface + */ + bool peek(uint8_t &byte) const override; + + /** + * @see EmbeddedProto::ReadBufferInterface + */ + bool advance() override; + + /** + * @see EmbeddedProto::ReadBufferInterface + */ + bool advance(const uint32_t N) override; + + /** + * @see EmbeddedProto::ReadBufferInterface + */ + bool pop(uint8_t &byte) override; + +private: + /** + * Represents current buffer cursor position. + */ + uint32_t index; + + /** + * Represents max size of the buffer. + */ + uint32_t size = BUFFER_SIZE; + + /** + * Represents current buffer data. + */ + uint8_t *bytes[BUFFER_SIZE]; +}; + +#endif //LIGHT_DETECTOR_REQUEST_BUFFER_H diff --git a/Core/External/Proto/Buffer/Response/response_buffer.cpp b/Core/External/Proto/Buffer/Response/response_buffer.cpp new file mode 100644 index 0000000..d7c6145 --- /dev/null +++ b/Core/External/Proto/Buffer/Response/response_buffer.cpp @@ -0,0 +1,52 @@ +#include "response_buffer.h" + +template +ResponseBuffer::ResponseBuffer() : bytes_used(0), bytes{0} { +} + +template +uint8_t *ResponseBuffer::get_raw_buffer() { + return bytes[0]; +} + +template +void ResponseBuffer::clear() { + bytes_used = 0; +} + +template +uint32_t ResponseBuffer::get_size() const { + return bytes_used; +} + +template +uint32_t ResponseBuffer::get_max_size() const { + return BUFFER_SIZE; +} + +template +uint32_t ResponseBuffer::get_available_size() const { + return -bytes_used; +} + +template +bool ResponseBuffer::push(const uint8_t byte) { + bool result = BUFFER_SIZE > bytes_used; + if (result) { + (*bytes[bytes_used]) = byte; + ++bytes_used; + } + return result; +} + +template +bool ResponseBuffer::push(const uint8_t *src, const uint32_t length) { + bool result = BUFFER_SIZE >= (bytes_used + length); + if (result) { + memcpy(bytes + bytes_used, src, length); + bytes_used += length; + } + return result; +} + +template class ResponseBuffer; \ No newline at end of file diff --git a/Core/External/Proto/Buffer/Response/response_buffer.h b/Core/External/Proto/Buffer/Response/response_buffer.h new file mode 100644 index 0000000..4043202 --- /dev/null +++ b/Core/External/Proto/Buffer/Response/response_buffer.h @@ -0,0 +1,72 @@ +#ifndef LIGHT_DETECTOR_RESPONSE_BUFFER_H +#define LIGHT_DETECTOR_RESPONSE_BUFFER_H + +#include "WriteBufferInterface.h" + +#include +#include + +#define DEFAULT_RESPONSE_BUFFER_SIZE 100 + +/** + * Represents response buffer implementation for protocol buffers serialization. + * + * @tparam BUFFER_SIZE - given size of the internal response buffer. + */ +template +class ResponseBuffer : public EmbeddedProto::WriteBufferInterface { +public: + ResponseBuffer(); + + ~ResponseBuffer() override = default; + + /** + * Retrieves raw buffer used for direct data injection. + * + * @return raw buffer reference. + */ + uint8_t *get_raw_buffer(); + + /** + * @see EmbeddedProto::WriteBufferInterface + */ + void clear() override; + + /** + * @see EmbeddedProto::WriteBufferInterface + */ + [[nodiscard]] uint32_t get_size() const override; + + /** + * @see EmbeddedProto::WriteBufferInterface + */ + [[nodiscard]] uint32_t get_max_size() const override; + + /** + * @see EmbeddedProto::WriteBufferInterface + */ + [[nodiscard]] uint32_t get_available_size() const override; + + /** + * @see EmbeddedProto::WriteBufferInterface + */ + bool push(const uint8_t byte) override; + + /** + * @see EmbeddedProto::WriteBufferInterface + */ + bool push(const uint8_t *src, const uint32_t length) override; + +private: + /** + * Represents amount of currently used bytes by buffer. + */ + uint32_t bytes_used; + + /** + * Represents current buffer data. + */ + uint8_t *bytes[BUFFER_SIZE]; +}; + +#endif //LIGHT_DETECTOR_RESPONSE_BUFFER_H diff --git a/Core/External/Proto/Codec/proto_codec.cpp b/Core/External/Proto/Codec/proto_codec.cpp new file mode 100644 index 0000000..6580eeb --- /dev/null +++ b/Core/External/Proto/Codec/proto_codec.cpp @@ -0,0 +1,39 @@ +#include "proto_codec.h" + +RequestBuffer ProtoCodec::request_buffer = + RequestBuffer(); + +ResponseBuffer ProtoCodec::response_buffer = + ResponseBuffer(); + +light_detector::RequestContainer ProtoCodec::request_container = + light_detector::RequestContainer(); + +RequestBuffer& ProtoCodec::get_request_buffer() { + return request_buffer; +} + +ResponseBuffer& ProtoCodec::get_response_buffer() { + return response_buffer; +} + +int ProtoCodec::decode_request_container() { + request_container.clear(); + + if (request_container.deserialize(request_buffer) == ::EmbeddedProto::Error::NO_ERRORS) { + State::get_request_container_sequence().add(request_container); + + return EXIT_SUCCESS; + } + + + return EXIT_FAILURE; +} + +int ProtoCodec::encode_response_container(const light_detector::ResponseContainer& content) { + if (content.serialize(response_buffer) == ::EmbeddedProto::Error::NO_ERRORS) { + return EXIT_SUCCESS; + } + + return EXIT_FAILURE; +}; \ No newline at end of file diff --git a/Core/External/Proto/Codec/proto_codec.h b/Core/External/Proto/Codec/proto_codec.h new file mode 100644 index 0000000..6f168bb --- /dev/null +++ b/Core/External/Proto/Codec/proto_codec.h @@ -0,0 +1,67 @@ +#ifndef LIGHT_DETECTOR_PROTO_CODEC_H +#define LIGHT_DETECTOR_PROTO_CODEC_H + +#include "data.h" +#include "info.h" +#include "settings.h" +#include "request.h" +#include "response.h" + +#include "request_buffer.h" +#include "response_buffer.h" + +#include "state.h" + +/** + * Represents codec used to decompose and composite request and response. + */ +class ProtoCodec { +public: + /** + * Retrieves common request buffer instance. + * + * @return common instance of request buffer. + */ + static RequestBuffer<100>& get_request_buffer(); + + /** + * Retrieves common response buffer instance. + * + * @return common instance of response buffer. + */ + static ResponseBuffer<100>& get_response_buffer(); + + /** + * Attempts to decode request container, looking for raw data from request buffer. If the decoding is + * successful, then the result is pushed to the request container sequence. + * + * @return status of the decode operation. + */ + static int decode_request_container(); + + /** + * Attempts to decode request container, looking for raw data from request buffer. If the decoding is + * successful, then the result is pushed to the request container sequence. + * + * @param content - given response container. + * @return status of the decode operation. + */ + static int encode_response_container(const light_detector::ResponseContainer& content); +private: + /** + * Represents common instance of request buffer. + */ + static RequestBuffer<100> request_buffer; + + /** + * Represents common instance of response buffer. + */ + static ResponseBuffer<100> response_buffer; + + /** + * Represents common request container instance. + */ + static light_detector::RequestContainer request_container; +}; + +#endif //LIGHT_DETECTOR_PROTO_CODEC_H diff --git a/Core/External/Proto/Generated/Content/data.h b/Core/External/Proto/Generated/Content/data.h new file mode 100644 index 0000000..d3f0d08 --- /dev/null +++ b/Core/External/Proto/Generated/Content/data.h @@ -0,0 +1,521 @@ +/* + * This file is generated with Embedded Proto, PLEASE DO NOT EDIT! + * source: Content/data.proto + */ + +// This file is generated. Please do not edit! +#ifndef CONTENT_DATA_H +#define CONTENT_DATA_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Include external proto definitions + +namespace light_detector { + +enum class DataType : uint32_t +{ + Raw = 0, + Full = 1, + Infrared = 2, + Visible = 3 +}; + +class DataBusRequestContent final: public ::EmbeddedProto::MessageInterface +{ + public: + DataBusRequestContent() = default; + DataBusRequestContent(const DataBusRequestContent& rhs ) + { + set_dataType(rhs.get_dataType()); + } + + DataBusRequestContent(const DataBusRequestContent&& rhs ) noexcept + { + set_dataType(rhs.get_dataType()); + } + + ~DataBusRequestContent() override = default; + + enum class FieldNumber : uint32_t + { + NOT_SET = 0, + DATATYPE = 1 + }; + + DataBusRequestContent& operator=(const DataBusRequestContent& rhs) + { + set_dataType(rhs.get_dataType()); + return *this; + } + + DataBusRequestContent& operator=(const DataBusRequestContent&& rhs) noexcept + { + set_dataType(rhs.get_dataType()); + return *this; + } + + static constexpr char const* DATATYPE_NAME = "dataType"; + inline void clear_dataType() { dataType_.clear(); } + inline void set_dataType(const DataType& value) { dataType_ = value; } + inline void set_dataType(const DataType&& value) { dataType_ = value; } + inline const DataType& get_dataType() const { return dataType_.get(); } + inline DataType dataType() const { return dataType_.get(); } + + + ::EmbeddedProto::Error serialize(::EmbeddedProto::WriteBufferInterface& buffer) const override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + + if((static_cast(0) != dataType_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = dataType_.serialize_with_id(static_cast(FieldNumber::DATATYPE), buffer, false); + } + + return return_value; + }; + + ::EmbeddedProto::Error deserialize(::EmbeddedProto::ReadBufferInterface& buffer) override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + ::EmbeddedProto::WireFormatter::WireType wire_type = ::EmbeddedProto::WireFormatter::WireType::VARINT; + uint32_t id_number = 0; + FieldNumber id_tag = FieldNumber::NOT_SET; + + ::EmbeddedProto::Error tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + while((::EmbeddedProto::Error::NO_ERRORS == return_value) && (::EmbeddedProto::Error::NO_ERRORS == tag_value)) + { + id_tag = static_cast(id_number); + switch(id_tag) + { + case FieldNumber::DATATYPE: + return_value = dataType_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::NOT_SET: + return_value = ::EmbeddedProto::Error::INVALID_FIELD_ID; + break; + + default: + return_value = skip_unknown_field(buffer, wire_type); + break; + } + + if(::EmbeddedProto::Error::NO_ERRORS == return_value) + { + // Read the next tag. + tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + } + } + + // When an error was detect while reading the tag but no other errors where found, set it in the return value. + if((::EmbeddedProto::Error::NO_ERRORS == return_value) + && (::EmbeddedProto::Error::NO_ERRORS != tag_value) + && (::EmbeddedProto::Error::END_OF_BUFFER != tag_value)) // The end of the buffer is not an array in this case. + { + return_value = tag_value; + } + + return return_value; + }; + + void clear() override + { + clear_dataType(); + + } + + static char const* field_number_to_name(const FieldNumber fieldNumber) + { + char const* name = nullptr; + switch(fieldNumber) + { + case FieldNumber::DATATYPE: + name = DATATYPE_NAME; + break; + default: + name = "Invalid FieldNumber"; + break; + } + return name; + } + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str) const + { + return this->to_string(str, 0, nullptr, true); + } + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + if(nullptr != name) + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\"%s\": {\n", name); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": {\n", indent_level, " ", name); + } + } + else + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "{\n"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s{\n", indent_level, " "); + } + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + left_chars = dataType_.to_string(left_chars, indent_level + 2, DATATYPE_NAME, true); + + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n}"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n%*s}", indent_level, " "); + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + + + EmbeddedProto::enumeration dataType_ = static_cast(0); + +}; + +class DataBusResponseContent final: public ::EmbeddedProto::MessageInterface +{ + public: + DataBusResponseContent() = default; + DataBusResponseContent(const DataBusResponseContent& rhs ) + { + set_deviceId(rhs.get_deviceId()); + set_dataType(rhs.get_dataType()); + set_value(rhs.get_value()); + set_nonce(rhs.get_nonce()); + } + + DataBusResponseContent(const DataBusResponseContent&& rhs ) noexcept + { + set_deviceId(rhs.get_deviceId()); + set_dataType(rhs.get_dataType()); + set_value(rhs.get_value()); + set_nonce(rhs.get_nonce()); + } + + ~DataBusResponseContent() override = default; + + enum class FieldNumber : uint32_t + { + NOT_SET = 0, + DEVICEID = 1, + DATATYPE = 2, + VALUE = 3, + NONCE = 4 + }; + + DataBusResponseContent& operator=(const DataBusResponseContent& rhs) + { + set_deviceId(rhs.get_deviceId()); + set_dataType(rhs.get_dataType()); + set_value(rhs.get_value()); + set_nonce(rhs.get_nonce()); + return *this; + } + + DataBusResponseContent& operator=(const DataBusResponseContent&& rhs) noexcept + { + set_deviceId(rhs.get_deviceId()); + set_dataType(rhs.get_dataType()); + set_value(rhs.get_value()); + set_nonce(rhs.get_nonce()); + return *this; + } + + static constexpr char const* DEVICEID_NAME = "deviceId"; + inline void clear_deviceId() { deviceId_.clear(); } + inline void set_deviceId(const uint32_t& value) { deviceId_ = value; } + inline void set_deviceId(const uint32_t&& value) { deviceId_ = value; } + inline uint32_t& mutable_deviceId() { return deviceId_.get(); } + inline const uint32_t& get_deviceId() const { return deviceId_.get(); } + inline uint32_t deviceId() const { return deviceId_.get(); } + + static constexpr char const* DATATYPE_NAME = "dataType"; + inline void clear_dataType() { dataType_.clear(); } + inline void set_dataType(const DataType& value) { dataType_ = value; } + inline void set_dataType(const DataType&& value) { dataType_ = value; } + inline const DataType& get_dataType() const { return dataType_.get(); } + inline DataType dataType() const { return dataType_.get(); } + + static constexpr char const* VALUE_NAME = "value"; + inline void clear_value() { value_.clear(); } + inline void set_value(const uint32_t& value) { value_ = value; } + inline void set_value(const uint32_t&& value) { value_ = value; } + inline uint32_t& mutable_value() { return value_.get(); } + inline const uint32_t& get_value() const { return value_.get(); } + inline uint32_t value() const { return value_.get(); } + + static constexpr char const* NONCE_NAME = "nonce"; + inline void clear_nonce() { nonce_.clear(); } + inline void set_nonce(const uint32_t& value) { nonce_ = value; } + inline void set_nonce(const uint32_t&& value) { nonce_ = value; } + inline uint32_t& mutable_nonce() { return nonce_.get(); } + inline const uint32_t& get_nonce() const { return nonce_.get(); } + inline uint32_t nonce() const { return nonce_.get(); } + + + ::EmbeddedProto::Error serialize(::EmbeddedProto::WriteBufferInterface& buffer) const override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + + if((0U != deviceId_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = deviceId_.serialize_with_id(static_cast(FieldNumber::DEVICEID), buffer, false); + } + + if((static_cast(0) != dataType_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = dataType_.serialize_with_id(static_cast(FieldNumber::DATATYPE), buffer, false); + } + + if((0U != value_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = value_.serialize_with_id(static_cast(FieldNumber::VALUE), buffer, false); + } + + if((0U != nonce_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = nonce_.serialize_with_id(static_cast(FieldNumber::NONCE), buffer, false); + } + + return return_value; + }; + + ::EmbeddedProto::Error deserialize(::EmbeddedProto::ReadBufferInterface& buffer) override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + ::EmbeddedProto::WireFormatter::WireType wire_type = ::EmbeddedProto::WireFormatter::WireType::VARINT; + uint32_t id_number = 0; + FieldNumber id_tag = FieldNumber::NOT_SET; + + ::EmbeddedProto::Error tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + while((::EmbeddedProto::Error::NO_ERRORS == return_value) && (::EmbeddedProto::Error::NO_ERRORS == tag_value)) + { + id_tag = static_cast(id_number); + switch(id_tag) + { + case FieldNumber::DEVICEID: + return_value = deviceId_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::DATATYPE: + return_value = dataType_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::VALUE: + return_value = value_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::NONCE: + return_value = nonce_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::NOT_SET: + return_value = ::EmbeddedProto::Error::INVALID_FIELD_ID; + break; + + default: + return_value = skip_unknown_field(buffer, wire_type); + break; + } + + if(::EmbeddedProto::Error::NO_ERRORS == return_value) + { + // Read the next tag. + tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + } + } + + // When an error was detect while reading the tag but no other errors where found, set it in the return value. + if((::EmbeddedProto::Error::NO_ERRORS == return_value) + && (::EmbeddedProto::Error::NO_ERRORS != tag_value) + && (::EmbeddedProto::Error::END_OF_BUFFER != tag_value)) // The end of the buffer is not an array in this case. + { + return_value = tag_value; + } + + return return_value; + }; + + void clear() override + { + clear_deviceId(); + clear_dataType(); + clear_value(); + clear_nonce(); + + } + + static char const* field_number_to_name(const FieldNumber fieldNumber) + { + char const* name = nullptr; + switch(fieldNumber) + { + case FieldNumber::DEVICEID: + name = DEVICEID_NAME; + break; + case FieldNumber::DATATYPE: + name = DATATYPE_NAME; + break; + case FieldNumber::VALUE: + name = VALUE_NAME; + break; + case FieldNumber::NONCE: + name = NONCE_NAME; + break; + default: + name = "Invalid FieldNumber"; + break; + } + return name; + } + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str) const + { + return this->to_string(str, 0, nullptr, true); + } + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + if(nullptr != name) + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\"%s\": {\n", name); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": {\n", indent_level, " ", name); + } + } + else + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "{\n"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s{\n", indent_level, " "); + } + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + left_chars = deviceId_.to_string(left_chars, indent_level + 2, DEVICEID_NAME, true); + left_chars = dataType_.to_string(left_chars, indent_level + 2, DATATYPE_NAME, false); + left_chars = value_.to_string(left_chars, indent_level + 2, VALUE_NAME, false); + left_chars = nonce_.to_string(left_chars, indent_level + 2, NONCE_NAME, false); + + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n}"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n%*s}", indent_level, " "); + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + + + EmbeddedProto::uint32 deviceId_ = 0U; + EmbeddedProto::enumeration dataType_ = static_cast(0); + EmbeddedProto::uint32 value_ = 0U; + EmbeddedProto::uint32 nonce_ = 0U; + +}; + +} // End of namespace light_detector +#endif // CONTENT_DATA_H \ No newline at end of file diff --git a/Core/External/Proto/Generated/Content/info.h b/Core/External/Proto/Generated/Content/info.h new file mode 100644 index 0000000..3e6d1e4 --- /dev/null +++ b/Core/External/Proto/Generated/Content/info.h @@ -0,0 +1,519 @@ +/* + * This file is generated with Embedded Proto, PLEASE DO NOT EDIT! + * source: Content/info.proto + */ + +// This file is generated. Please do not edit! +#ifndef CONTENT_INFO_H +#define CONTENT_INFO_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Include external proto definitions + +namespace light_detector { + +enum class InfoType : uint32_t +{ + Gain = 0, + IntegralTime = 1 +}; + +class InfoBusRequestContent final: public ::EmbeddedProto::MessageInterface +{ + public: + InfoBusRequestContent() = default; + InfoBusRequestContent(const InfoBusRequestContent& rhs ) + { + set_infoType(rhs.get_infoType()); + } + + InfoBusRequestContent(const InfoBusRequestContent&& rhs ) noexcept + { + set_infoType(rhs.get_infoType()); + } + + ~InfoBusRequestContent() override = default; + + enum class FieldNumber : uint32_t + { + NOT_SET = 0, + INFOTYPE = 1 + }; + + InfoBusRequestContent& operator=(const InfoBusRequestContent& rhs) + { + set_infoType(rhs.get_infoType()); + return *this; + } + + InfoBusRequestContent& operator=(const InfoBusRequestContent&& rhs) noexcept + { + set_infoType(rhs.get_infoType()); + return *this; + } + + static constexpr char const* INFOTYPE_NAME = "infoType"; + inline void clear_infoType() { infoType_.clear(); } + inline void set_infoType(const InfoType& value) { infoType_ = value; } + inline void set_infoType(const InfoType&& value) { infoType_ = value; } + inline const InfoType& get_infoType() const { return infoType_.get(); } + inline InfoType infoType() const { return infoType_.get(); } + + + ::EmbeddedProto::Error serialize(::EmbeddedProto::WriteBufferInterface& buffer) const override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + + if((static_cast(0) != infoType_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = infoType_.serialize_with_id(static_cast(FieldNumber::INFOTYPE), buffer, false); + } + + return return_value; + }; + + ::EmbeddedProto::Error deserialize(::EmbeddedProto::ReadBufferInterface& buffer) override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + ::EmbeddedProto::WireFormatter::WireType wire_type = ::EmbeddedProto::WireFormatter::WireType::VARINT; + uint32_t id_number = 0; + FieldNumber id_tag = FieldNumber::NOT_SET; + + ::EmbeddedProto::Error tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + while((::EmbeddedProto::Error::NO_ERRORS == return_value) && (::EmbeddedProto::Error::NO_ERRORS == tag_value)) + { + id_tag = static_cast(id_number); + switch(id_tag) + { + case FieldNumber::INFOTYPE: + return_value = infoType_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::NOT_SET: + return_value = ::EmbeddedProto::Error::INVALID_FIELD_ID; + break; + + default: + return_value = skip_unknown_field(buffer, wire_type); + break; + } + + if(::EmbeddedProto::Error::NO_ERRORS == return_value) + { + // Read the next tag. + tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + } + } + + // When an error was detect while reading the tag but no other errors where found, set it in the return value. + if((::EmbeddedProto::Error::NO_ERRORS == return_value) + && (::EmbeddedProto::Error::NO_ERRORS != tag_value) + && (::EmbeddedProto::Error::END_OF_BUFFER != tag_value)) // The end of the buffer is not an array in this case. + { + return_value = tag_value; + } + + return return_value; + }; + + void clear() override + { + clear_infoType(); + + } + + static char const* field_number_to_name(const FieldNumber fieldNumber) + { + char const* name = nullptr; + switch(fieldNumber) + { + case FieldNumber::INFOTYPE: + name = INFOTYPE_NAME; + break; + default: + name = "Invalid FieldNumber"; + break; + } + return name; + } + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str) const + { + return this->to_string(str, 0, nullptr, true); + } + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + if(nullptr != name) + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\"%s\": {\n", name); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": {\n", indent_level, " ", name); + } + } + else + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "{\n"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s{\n", indent_level, " "); + } + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + left_chars = infoType_.to_string(left_chars, indent_level + 2, INFOTYPE_NAME, true); + + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n}"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n%*s}", indent_level, " "); + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + + + EmbeddedProto::enumeration infoType_ = static_cast(0); + +}; + +class InfoBusResponseContent final: public ::EmbeddedProto::MessageInterface +{ + public: + InfoBusResponseContent() = default; + InfoBusResponseContent(const InfoBusResponseContent& rhs ) + { + set_deviceId(rhs.get_deviceId()); + set_infoType(rhs.get_infoType()); + set_value(rhs.get_value()); + set_nonce(rhs.get_nonce()); + } + + InfoBusResponseContent(const InfoBusResponseContent&& rhs ) noexcept + { + set_deviceId(rhs.get_deviceId()); + set_infoType(rhs.get_infoType()); + set_value(rhs.get_value()); + set_nonce(rhs.get_nonce()); + } + + ~InfoBusResponseContent() override = default; + + enum class FieldNumber : uint32_t + { + NOT_SET = 0, + DEVICEID = 1, + INFOTYPE = 2, + VALUE = 3, + NONCE = 4 + }; + + InfoBusResponseContent& operator=(const InfoBusResponseContent& rhs) + { + set_deviceId(rhs.get_deviceId()); + set_infoType(rhs.get_infoType()); + set_value(rhs.get_value()); + set_nonce(rhs.get_nonce()); + return *this; + } + + InfoBusResponseContent& operator=(const InfoBusResponseContent&& rhs) noexcept + { + set_deviceId(rhs.get_deviceId()); + set_infoType(rhs.get_infoType()); + set_value(rhs.get_value()); + set_nonce(rhs.get_nonce()); + return *this; + } + + static constexpr char const* DEVICEID_NAME = "deviceId"; + inline void clear_deviceId() { deviceId_.clear(); } + inline void set_deviceId(const uint32_t& value) { deviceId_ = value; } + inline void set_deviceId(const uint32_t&& value) { deviceId_ = value; } + inline uint32_t& mutable_deviceId() { return deviceId_.get(); } + inline const uint32_t& get_deviceId() const { return deviceId_.get(); } + inline uint32_t deviceId() const { return deviceId_.get(); } + + static constexpr char const* INFOTYPE_NAME = "infoType"; + inline void clear_infoType() { infoType_.clear(); } + inline void set_infoType(const InfoType& value) { infoType_ = value; } + inline void set_infoType(const InfoType&& value) { infoType_ = value; } + inline const InfoType& get_infoType() const { return infoType_.get(); } + inline InfoType infoType() const { return infoType_.get(); } + + static constexpr char const* VALUE_NAME = "value"; + inline void clear_value() { value_.clear(); } + inline void set_value(const uint32_t& value) { value_ = value; } + inline void set_value(const uint32_t&& value) { value_ = value; } + inline uint32_t& mutable_value() { return value_.get(); } + inline const uint32_t& get_value() const { return value_.get(); } + inline uint32_t value() const { return value_.get(); } + + static constexpr char const* NONCE_NAME = "nonce"; + inline void clear_nonce() { nonce_.clear(); } + inline void set_nonce(const uint32_t& value) { nonce_ = value; } + inline void set_nonce(const uint32_t&& value) { nonce_ = value; } + inline uint32_t& mutable_nonce() { return nonce_.get(); } + inline const uint32_t& get_nonce() const { return nonce_.get(); } + inline uint32_t nonce() const { return nonce_.get(); } + + + ::EmbeddedProto::Error serialize(::EmbeddedProto::WriteBufferInterface& buffer) const override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + + if((0U != deviceId_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = deviceId_.serialize_with_id(static_cast(FieldNumber::DEVICEID), buffer, false); + } + + if((static_cast(0) != infoType_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = infoType_.serialize_with_id(static_cast(FieldNumber::INFOTYPE), buffer, false); + } + + if((0U != value_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = value_.serialize_with_id(static_cast(FieldNumber::VALUE), buffer, false); + } + + if((0U != nonce_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = nonce_.serialize_with_id(static_cast(FieldNumber::NONCE), buffer, false); + } + + return return_value; + }; + + ::EmbeddedProto::Error deserialize(::EmbeddedProto::ReadBufferInterface& buffer) override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + ::EmbeddedProto::WireFormatter::WireType wire_type = ::EmbeddedProto::WireFormatter::WireType::VARINT; + uint32_t id_number = 0; + FieldNumber id_tag = FieldNumber::NOT_SET; + + ::EmbeddedProto::Error tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + while((::EmbeddedProto::Error::NO_ERRORS == return_value) && (::EmbeddedProto::Error::NO_ERRORS == tag_value)) + { + id_tag = static_cast(id_number); + switch(id_tag) + { + case FieldNumber::DEVICEID: + return_value = deviceId_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::INFOTYPE: + return_value = infoType_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::VALUE: + return_value = value_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::NONCE: + return_value = nonce_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::NOT_SET: + return_value = ::EmbeddedProto::Error::INVALID_FIELD_ID; + break; + + default: + return_value = skip_unknown_field(buffer, wire_type); + break; + } + + if(::EmbeddedProto::Error::NO_ERRORS == return_value) + { + // Read the next tag. + tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + } + } + + // When an error was detect while reading the tag but no other errors where found, set it in the return value. + if((::EmbeddedProto::Error::NO_ERRORS == return_value) + && (::EmbeddedProto::Error::NO_ERRORS != tag_value) + && (::EmbeddedProto::Error::END_OF_BUFFER != tag_value)) // The end of the buffer is not an array in this case. + { + return_value = tag_value; + } + + return return_value; + }; + + void clear() override + { + clear_deviceId(); + clear_infoType(); + clear_value(); + clear_nonce(); + + } + + static char const* field_number_to_name(const FieldNumber fieldNumber) + { + char const* name = nullptr; + switch(fieldNumber) + { + case FieldNumber::DEVICEID: + name = DEVICEID_NAME; + break; + case FieldNumber::INFOTYPE: + name = INFOTYPE_NAME; + break; + case FieldNumber::VALUE: + name = VALUE_NAME; + break; + case FieldNumber::NONCE: + name = NONCE_NAME; + break; + default: + name = "Invalid FieldNumber"; + break; + } + return name; + } + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str) const + { + return this->to_string(str, 0, nullptr, true); + } + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + if(nullptr != name) + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\"%s\": {\n", name); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": {\n", indent_level, " ", name); + } + } + else + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "{\n"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s{\n", indent_level, " "); + } + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + left_chars = deviceId_.to_string(left_chars, indent_level + 2, DEVICEID_NAME, true); + left_chars = infoType_.to_string(left_chars, indent_level + 2, INFOTYPE_NAME, false); + left_chars = value_.to_string(left_chars, indent_level + 2, VALUE_NAME, false); + left_chars = nonce_.to_string(left_chars, indent_level + 2, NONCE_NAME, false); + + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n}"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n%*s}", indent_level, " "); + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + + + EmbeddedProto::uint32 deviceId_ = 0U; + EmbeddedProto::enumeration infoType_ = static_cast(0); + EmbeddedProto::uint32 value_ = 0U; + EmbeddedProto::uint32 nonce_ = 0U; + +}; + +} // End of namespace light_detector +#endif // CONTENT_INFO_H \ No newline at end of file diff --git a/Core/External/Proto/Generated/Content/settings.h b/Core/External/Proto/Generated/Content/settings.h new file mode 100644 index 0000000..a356898 --- /dev/null +++ b/Core/External/Proto/Generated/Content/settings.h @@ -0,0 +1,637 @@ +/* + * This file is generated with Embedded Proto, PLEASE DO NOT EDIT! + * source: Content/settings.proto + */ + +// This file is generated. Please do not edit! +#ifndef CONTENT_SETTINGS_H +#define CONTENT_SETTINGS_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Include external proto definitions + +namespace light_detector { + +enum class SettingsType : uint32_t +{ + Enable = 0, + Disable = 1, + Reset = 2, + SetGain = 3, + SetIntegralTime = 4 +}; + +class SettingsBusRequestContent final: public ::EmbeddedProto::MessageInterface +{ + public: + SettingsBusRequestContent() = default; + SettingsBusRequestContent(const SettingsBusRequestContent& rhs ) + { + set_settingsType(rhs.get_settingsType()); + if(rhs.has_value()) + { + set_value(rhs.get_value()); + } + else + { + clear_value(); + } + + } + + SettingsBusRequestContent(const SettingsBusRequestContent&& rhs ) noexcept + { + set_settingsType(rhs.get_settingsType()); + if(rhs.has_value()) + { + set_value(rhs.get_value()); + } + else + { + clear_value(); + } + + } + + ~SettingsBusRequestContent() override = default; + + enum class FieldNumber : uint32_t + { + NOT_SET = 0, + SETTINGSTYPE = 1, + VALUE = 2 + }; + + SettingsBusRequestContent& operator=(const SettingsBusRequestContent& rhs) + { + set_settingsType(rhs.get_settingsType()); + if(rhs.has_value()) + { + set_value(rhs.get_value()); + } + else + { + clear_value(); + } + + return *this; + } + + SettingsBusRequestContent& operator=(const SettingsBusRequestContent&& rhs) noexcept + { + set_settingsType(rhs.get_settingsType()); + if(rhs.has_value()) + { + set_value(rhs.get_value()); + } + else + { + clear_value(); + } + + return *this; + } + + static constexpr char const* SETTINGSTYPE_NAME = "settingsType"; + inline void clear_settingsType() { settingsType_.clear(); } + inline void set_settingsType(const SettingsType& value) { settingsType_ = value; } + inline void set_settingsType(const SettingsType&& value) { settingsType_ = value; } + inline const SettingsType& get_settingsType() const { return settingsType_.get(); } + inline SettingsType settingsType() const { return settingsType_.get(); } + + static constexpr char const* VALUE_NAME = "value"; + inline bool has_value() const + { + return 0 != (presence::mask(presence::fields::VALUE) & presence_[presence::index(presence::fields::VALUE)]); + } + inline void clear_value() + { + presence_[presence::index(presence::fields::VALUE)] &= ~(presence::mask(presence::fields::VALUE)); + value_.clear(); + } + inline void set_value(const int32_t& value) + { + presence_[presence::index(presence::fields::VALUE)] |= presence::mask(presence::fields::VALUE); + value_ = value; + } + inline void set_value(const int32_t&& value) + { + presence_[presence::index(presence::fields::VALUE)] |= presence::mask(presence::fields::VALUE); + value_ = value; + } + inline int32_t& mutable_value() + { + presence_[presence::index(presence::fields::VALUE)] |= presence::mask(presence::fields::VALUE); + return value_.get(); + } + inline const int32_t& get_value() const { return value_.get(); } + inline int32_t value() const { return value_.get(); } + + + ::EmbeddedProto::Error serialize(::EmbeddedProto::WriteBufferInterface& buffer) const override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + + if((static_cast(0) != settingsType_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = settingsType_.serialize_with_id(static_cast(FieldNumber::SETTINGSTYPE), buffer, false); + } + + if(has_value() && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = value_.serialize_with_id(static_cast(FieldNumber::VALUE), buffer, true); + } + + return return_value; + }; + + ::EmbeddedProto::Error deserialize(::EmbeddedProto::ReadBufferInterface& buffer) override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + ::EmbeddedProto::WireFormatter::WireType wire_type = ::EmbeddedProto::WireFormatter::WireType::VARINT; + uint32_t id_number = 0; + FieldNumber id_tag = FieldNumber::NOT_SET; + + ::EmbeddedProto::Error tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + while((::EmbeddedProto::Error::NO_ERRORS == return_value) && (::EmbeddedProto::Error::NO_ERRORS == tag_value)) + { + id_tag = static_cast(id_number); + switch(id_tag) + { + case FieldNumber::SETTINGSTYPE: + return_value = settingsType_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::VALUE: + presence_[presence::index(presence::fields::VALUE)] |= presence::mask(presence::fields::VALUE); + return_value = value_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::NOT_SET: + return_value = ::EmbeddedProto::Error::INVALID_FIELD_ID; + break; + + default: + return_value = skip_unknown_field(buffer, wire_type); + break; + } + + if(::EmbeddedProto::Error::NO_ERRORS == return_value) + { + // Read the next tag. + tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + } + } + + // When an error was detect while reading the tag but no other errors where found, set it in the return value. + if((::EmbeddedProto::Error::NO_ERRORS == return_value) + && (::EmbeddedProto::Error::NO_ERRORS != tag_value) + && (::EmbeddedProto::Error::END_OF_BUFFER != tag_value)) // The end of the buffer is not an array in this case. + { + return_value = tag_value; + } + + return return_value; + }; + + void clear() override + { + clear_settingsType(); + clear_value(); + + } + + static char const* field_number_to_name(const FieldNumber fieldNumber) + { + char const* name = nullptr; + switch(fieldNumber) + { + case FieldNumber::SETTINGSTYPE: + name = SETTINGSTYPE_NAME; + break; + case FieldNumber::VALUE: + name = VALUE_NAME; + break; + default: + name = "Invalid FieldNumber"; + break; + } + return name; + } + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str) const + { + return this->to_string(str, 0, nullptr, true); + } + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + if(nullptr != name) + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\"%s\": {\n", name); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": {\n", indent_level, " ", name); + } + } + else + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "{\n"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s{\n", indent_level, " "); + } + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + left_chars = settingsType_.to_string(left_chars, indent_level + 2, SETTINGSTYPE_NAME, true); + left_chars = value_.to_string(left_chars, indent_level + 2, VALUE_NAME, false); + + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n}"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n%*s}", indent_level, " "); + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + + // Define constants for tracking the presence of fields. + // Use a struct to scope the variables from user fields as namespaces are not allowed within classes. + struct presence + { + // An enumeration with all the fields for which presence has to be tracked. + enum class fields : uint32_t + { + VALUE + }; + + // The number of fields for which presence has to be tracked. + static constexpr uint32_t N_FIELDS = 1; + + // Which type are we using to track presence. + using TYPE = uint32_t; + + // How many bits are there in the presence type. + static constexpr uint32_t N_BITS = std::numeric_limits::digits; + + // How many variables of TYPE do we need to bit mask all presence fields. + static constexpr uint32_t SIZE = (N_FIELDS / N_BITS) + ((N_FIELDS % N_BITS) > 0 ? 1 : 0); + + // Obtain the index of a given field in the presence array. + static constexpr uint32_t index(const fields& field) { return static_cast(field) / N_BITS; } + + // Obtain the bit mask for the given field assuming we are at the correct index in the presence array. + static constexpr TYPE mask(const fields& field) + { + return static_cast(0x01) << (static_cast(field) % N_BITS); + } + }; + + // Create an array in which the presence flags are stored. + typename presence::TYPE presence_[presence::SIZE] = {0}; + + EmbeddedProto::enumeration settingsType_ = static_cast(0); + EmbeddedProto::int32 value_ = 0; + +}; + +class SettingsBusResponseContent final: public ::EmbeddedProto::MessageInterface +{ + public: + SettingsBusResponseContent() = default; + SettingsBusResponseContent(const SettingsBusResponseContent& rhs ) + { + set_deviceId(rhs.get_deviceId()); + set_settingsType(rhs.get_settingsType()); + set_result(rhs.get_result()); + set_nonce(rhs.get_nonce()); + } + + SettingsBusResponseContent(const SettingsBusResponseContent&& rhs ) noexcept + { + set_deviceId(rhs.get_deviceId()); + set_settingsType(rhs.get_settingsType()); + set_result(rhs.get_result()); + set_nonce(rhs.get_nonce()); + } + + ~SettingsBusResponseContent() override = default; + + enum class FieldNumber : uint32_t + { + NOT_SET = 0, + DEVICEID = 1, + SETTINGSTYPE = 2, + RESULT = 3, + NONCE = 4 + }; + + SettingsBusResponseContent& operator=(const SettingsBusResponseContent& rhs) + { + set_deviceId(rhs.get_deviceId()); + set_settingsType(rhs.get_settingsType()); + set_result(rhs.get_result()); + set_nonce(rhs.get_nonce()); + return *this; + } + + SettingsBusResponseContent& operator=(const SettingsBusResponseContent&& rhs) noexcept + { + set_deviceId(rhs.get_deviceId()); + set_settingsType(rhs.get_settingsType()); + set_result(rhs.get_result()); + set_nonce(rhs.get_nonce()); + return *this; + } + + static constexpr char const* DEVICEID_NAME = "deviceId"; + inline void clear_deviceId() { deviceId_.clear(); } + inline void set_deviceId(const uint32_t& value) { deviceId_ = value; } + inline void set_deviceId(const uint32_t&& value) { deviceId_ = value; } + inline uint32_t& mutable_deviceId() { return deviceId_.get(); } + inline const uint32_t& get_deviceId() const { return deviceId_.get(); } + inline uint32_t deviceId() const { return deviceId_.get(); } + + static constexpr char const* SETTINGSTYPE_NAME = "settingsType"; + inline void clear_settingsType() { settingsType_.clear(); } + inline void set_settingsType(const SettingsType& value) { settingsType_ = value; } + inline void set_settingsType(const SettingsType&& value) { settingsType_ = value; } + inline const SettingsType& get_settingsType() const { return settingsType_.get(); } + inline SettingsType settingsType() const { return settingsType_.get(); } + + static constexpr char const* RESULT_NAME = "result"; + inline void clear_result() { result_.clear(); } + inline void set_result(const bool& value) { result_ = value; } + inline void set_result(const bool&& value) { result_ = value; } + inline bool& mutable_result() { return result_.get(); } + inline const bool& get_result() const { return result_.get(); } + inline bool result() const { return result_.get(); } + + static constexpr char const* NONCE_NAME = "nonce"; + inline void clear_nonce() { nonce_.clear(); } + inline void set_nonce(const uint32_t& value) { nonce_ = value; } + inline void set_nonce(const uint32_t&& value) { nonce_ = value; } + inline uint32_t& mutable_nonce() { return nonce_.get(); } + inline const uint32_t& get_nonce() const { return nonce_.get(); } + inline uint32_t nonce() const { return nonce_.get(); } + + + ::EmbeddedProto::Error serialize(::EmbeddedProto::WriteBufferInterface& buffer) const override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + + if((0U != deviceId_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = deviceId_.serialize_with_id(static_cast(FieldNumber::DEVICEID), buffer, false); + } + + if((static_cast(0) != settingsType_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = settingsType_.serialize_with_id(static_cast(FieldNumber::SETTINGSTYPE), buffer, false); + } + + if((false != result_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = result_.serialize_with_id(static_cast(FieldNumber::RESULT), buffer, false); + } + + if((0U != nonce_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = nonce_.serialize_with_id(static_cast(FieldNumber::NONCE), buffer, false); + } + + return return_value; + }; + + ::EmbeddedProto::Error deserialize(::EmbeddedProto::ReadBufferInterface& buffer) override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + ::EmbeddedProto::WireFormatter::WireType wire_type = ::EmbeddedProto::WireFormatter::WireType::VARINT; + uint32_t id_number = 0; + FieldNumber id_tag = FieldNumber::NOT_SET; + + ::EmbeddedProto::Error tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + while((::EmbeddedProto::Error::NO_ERRORS == return_value) && (::EmbeddedProto::Error::NO_ERRORS == tag_value)) + { + id_tag = static_cast(id_number); + switch(id_tag) + { + case FieldNumber::DEVICEID: + return_value = deviceId_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::SETTINGSTYPE: + return_value = settingsType_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::RESULT: + return_value = result_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::NONCE: + return_value = nonce_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::NOT_SET: + return_value = ::EmbeddedProto::Error::INVALID_FIELD_ID; + break; + + default: + return_value = skip_unknown_field(buffer, wire_type); + break; + } + + if(::EmbeddedProto::Error::NO_ERRORS == return_value) + { + // Read the next tag. + tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + } + } + + // When an error was detect while reading the tag but no other errors where found, set it in the return value. + if((::EmbeddedProto::Error::NO_ERRORS == return_value) + && (::EmbeddedProto::Error::NO_ERRORS != tag_value) + && (::EmbeddedProto::Error::END_OF_BUFFER != tag_value)) // The end of the buffer is not an array in this case. + { + return_value = tag_value; + } + + return return_value; + }; + + void clear() override + { + clear_deviceId(); + clear_settingsType(); + clear_result(); + clear_nonce(); + + } + + static char const* field_number_to_name(const FieldNumber fieldNumber) + { + char const* name = nullptr; + switch(fieldNumber) + { + case FieldNumber::DEVICEID: + name = DEVICEID_NAME; + break; + case FieldNumber::SETTINGSTYPE: + name = SETTINGSTYPE_NAME; + break; + case FieldNumber::RESULT: + name = RESULT_NAME; + break; + case FieldNumber::NONCE: + name = NONCE_NAME; + break; + default: + name = "Invalid FieldNumber"; + break; + } + return name; + } + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str) const + { + return this->to_string(str, 0, nullptr, true); + } + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + if(nullptr != name) + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\"%s\": {\n", name); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": {\n", indent_level, " ", name); + } + } + else + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "{\n"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s{\n", indent_level, " "); + } + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + left_chars = deviceId_.to_string(left_chars, indent_level + 2, DEVICEID_NAME, true); + left_chars = settingsType_.to_string(left_chars, indent_level + 2, SETTINGSTYPE_NAME, false); + left_chars = result_.to_string(left_chars, indent_level + 2, RESULT_NAME, false); + left_chars = nonce_.to_string(left_chars, indent_level + 2, NONCE_NAME, false); + + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n}"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n%*s}", indent_level, " "); + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + + + EmbeddedProto::uint32 deviceId_ = 0U; + EmbeddedProto::enumeration settingsType_ = static_cast(0); + EmbeddedProto::boolean result_ = false; + EmbeddedProto::uint32 nonce_ = 0U; + +}; + +} // End of namespace light_detector +#endif // CONTENT_SETTINGS_H \ No newline at end of file diff --git a/Core/External/Proto/Generated/request.h b/Core/External/Proto/Generated/request.h new file mode 100644 index 0000000..197897b --- /dev/null +++ b/Core/External/Proto/Generated/request.h @@ -0,0 +1,614 @@ +/* + * This file is generated with Embedded Proto, PLEASE DO NOT EDIT! + * source: request.proto + */ + +// This file is generated. Please do not edit! +#ifndef REQUEST_H +#define REQUEST_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Include external proto definitions +#include "Content/data.h" +#include "Content/info.h" +#include "Content/settings.h" + +namespace light_detector { + +class RequestContainer final: public ::EmbeddedProto::MessageInterface +{ + public: + RequestContainer() = default; + RequestContainer(const RequestContainer& rhs ) + { + set_msgId(rhs.get_msgId()); + if(rhs.get_which_content() != which_content_) + { + // First delete the old object in the oneof. + clear_content(); + } + + switch(rhs.get_which_content()) + { + case FieldNumber::DATABUS: + set_dataBus(rhs.get_dataBus()); + break; + + case FieldNumber::INFOBUS: + set_infoBus(rhs.get_infoBus()); + break; + + case FieldNumber::SETTINGSBUS: + set_settingsBus(rhs.get_settingsBus()); + break; + + default: + break; + } + + } + + RequestContainer(const RequestContainer&& rhs ) noexcept + { + set_msgId(rhs.get_msgId()); + if(rhs.get_which_content() != which_content_) + { + // First delete the old object in the oneof. + clear_content(); + } + + switch(rhs.get_which_content()) + { + case FieldNumber::DATABUS: + set_dataBus(rhs.get_dataBus()); + break; + + case FieldNumber::INFOBUS: + set_infoBus(rhs.get_infoBus()); + break; + + case FieldNumber::SETTINGSBUS: + set_settingsBus(rhs.get_settingsBus()); + break; + + default: + break; + } + + } + + ~RequestContainer() override = default; + + enum class FieldNumber : uint32_t + { + NOT_SET = 0, + MSGID = 1, + DATABUS = 2, + INFOBUS = 3, + SETTINGSBUS = 4 + }; + + RequestContainer& operator=(const RequestContainer& rhs) + { + set_msgId(rhs.get_msgId()); + if(rhs.get_which_content() != which_content_) + { + // First delete the old object in the oneof. + clear_content(); + } + + switch(rhs.get_which_content()) + { + case FieldNumber::DATABUS: + set_dataBus(rhs.get_dataBus()); + break; + + case FieldNumber::INFOBUS: + set_infoBus(rhs.get_infoBus()); + break; + + case FieldNumber::SETTINGSBUS: + set_settingsBus(rhs.get_settingsBus()); + break; + + default: + break; + } + + return *this; + } + + RequestContainer& operator=(const RequestContainer&& rhs) noexcept + { + set_msgId(rhs.get_msgId()); + if(rhs.get_which_content() != which_content_) + { + // First delete the old object in the oneof. + clear_content(); + } + + switch(rhs.get_which_content()) + { + case FieldNumber::DATABUS: + set_dataBus(rhs.get_dataBus()); + break; + + case FieldNumber::INFOBUS: + set_infoBus(rhs.get_infoBus()); + break; + + case FieldNumber::SETTINGSBUS: + set_settingsBus(rhs.get_settingsBus()); + break; + + default: + break; + } + + return *this; + } + + static constexpr char const* MSGID_NAME = "msgId"; + inline void clear_msgId() { msgId_.clear(); } + inline void set_msgId(const uint32_t& value) { msgId_ = value; } + inline void set_msgId(const uint32_t&& value) { msgId_ = value; } + inline uint32_t& mutable_msgId() { return msgId_.get(); } + inline const uint32_t& get_msgId() const { return msgId_.get(); } + inline uint32_t msgId() const { return msgId_.get(); } + + FieldNumber get_which_content() const { return which_content_; } + + static constexpr char const* DATABUS_NAME = "dataBus"; + inline bool has_dataBus() const + { + return FieldNumber::DATABUS == which_content_; + } + inline void clear_dataBus() + { + if(FieldNumber::DATABUS == which_content_) + { + which_content_ = FieldNumber::NOT_SET; + content_.dataBus_.~DataBusRequestContent(); + } + } + inline void set_dataBus(const DataBusRequestContent& value) + { + if(FieldNumber::DATABUS != which_content_) + { + init_content(FieldNumber::DATABUS); + } + content_.dataBus_ = value; + } + inline void set_dataBus(const DataBusRequestContent&& value) + { + if(FieldNumber::DATABUS != which_content_) + { + init_content(FieldNumber::DATABUS); + } + content_.dataBus_ = value; + } + inline DataBusRequestContent& mutable_dataBus() + { + if(FieldNumber::DATABUS != which_content_) + { + init_content(FieldNumber::DATABUS); + } + return content_.dataBus_; + } + inline const DataBusRequestContent& get_dataBus() const { return content_.dataBus_; } + inline const DataBusRequestContent& dataBus() const { return content_.dataBus_; } + + static constexpr char const* INFOBUS_NAME = "infoBus"; + inline bool has_infoBus() const + { + return FieldNumber::INFOBUS == which_content_; + } + inline void clear_infoBus() + { + if(FieldNumber::INFOBUS == which_content_) + { + which_content_ = FieldNumber::NOT_SET; + content_.infoBus_.~InfoBusRequestContent(); + } + } + inline void set_infoBus(const InfoBusRequestContent& value) + { + if(FieldNumber::INFOBUS != which_content_) + { + init_content(FieldNumber::INFOBUS); + } + content_.infoBus_ = value; + } + inline void set_infoBus(const InfoBusRequestContent&& value) + { + if(FieldNumber::INFOBUS != which_content_) + { + init_content(FieldNumber::INFOBUS); + } + content_.infoBus_ = value; + } + inline InfoBusRequestContent& mutable_infoBus() + { + if(FieldNumber::INFOBUS != which_content_) + { + init_content(FieldNumber::INFOBUS); + } + return content_.infoBus_; + } + inline const InfoBusRequestContent& get_infoBus() const { return content_.infoBus_; } + inline const InfoBusRequestContent& infoBus() const { return content_.infoBus_; } + + static constexpr char const* SETTINGSBUS_NAME = "settingsBus"; + inline bool has_settingsBus() const + { + return FieldNumber::SETTINGSBUS == which_content_; + } + inline void clear_settingsBus() + { + if(FieldNumber::SETTINGSBUS == which_content_) + { + which_content_ = FieldNumber::NOT_SET; + content_.settingsBus_.~SettingsBusRequestContent(); + } + } + inline void set_settingsBus(const SettingsBusRequestContent& value) + { + if(FieldNumber::SETTINGSBUS != which_content_) + { + init_content(FieldNumber::SETTINGSBUS); + } + content_.settingsBus_ = value; + } + inline void set_settingsBus(const SettingsBusRequestContent&& value) + { + if(FieldNumber::SETTINGSBUS != which_content_) + { + init_content(FieldNumber::SETTINGSBUS); + } + content_.settingsBus_ = value; + } + inline SettingsBusRequestContent& mutable_settingsBus() + { + if(FieldNumber::SETTINGSBUS != which_content_) + { + init_content(FieldNumber::SETTINGSBUS); + } + return content_.settingsBus_; + } + inline const SettingsBusRequestContent& get_settingsBus() const { return content_.settingsBus_; } + inline const SettingsBusRequestContent& settingsBus() const { return content_.settingsBus_; } + + + ::EmbeddedProto::Error serialize(::EmbeddedProto::WriteBufferInterface& buffer) const override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + + if((0U != msgId_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = msgId_.serialize_with_id(static_cast(FieldNumber::MSGID), buffer, false); + } + + switch(which_content_) + { + case FieldNumber::DATABUS: + if(has_dataBus() && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = content_.dataBus_.serialize_with_id(static_cast(FieldNumber::DATABUS), buffer, true); + } + break; + + case FieldNumber::INFOBUS: + if(has_infoBus() && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = content_.infoBus_.serialize_with_id(static_cast(FieldNumber::INFOBUS), buffer, true); + } + break; + + case FieldNumber::SETTINGSBUS: + if(has_settingsBus() && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = content_.settingsBus_.serialize_with_id(static_cast(FieldNumber::SETTINGSBUS), buffer, true); + } + break; + + default: + break; + } + + return return_value; + }; + + ::EmbeddedProto::Error deserialize(::EmbeddedProto::ReadBufferInterface& buffer) override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + ::EmbeddedProto::WireFormatter::WireType wire_type = ::EmbeddedProto::WireFormatter::WireType::VARINT; + uint32_t id_number = 0; + FieldNumber id_tag = FieldNumber::NOT_SET; + + ::EmbeddedProto::Error tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + while((::EmbeddedProto::Error::NO_ERRORS == return_value) && (::EmbeddedProto::Error::NO_ERRORS == tag_value)) + { + id_tag = static_cast(id_number); + switch(id_tag) + { + case FieldNumber::MSGID: + return_value = msgId_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::DATABUS: + case FieldNumber::INFOBUS: + case FieldNumber::SETTINGSBUS: + return_value = deserialize_content(id_tag, buffer, wire_type); + break; + + case FieldNumber::NOT_SET: + return_value = ::EmbeddedProto::Error::INVALID_FIELD_ID; + break; + + default: + return_value = skip_unknown_field(buffer, wire_type); + break; + } + + if(::EmbeddedProto::Error::NO_ERRORS == return_value) + { + // Read the next tag. + tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + } + } + + // When an error was detect while reading the tag but no other errors where found, set it in the return value. + if((::EmbeddedProto::Error::NO_ERRORS == return_value) + && (::EmbeddedProto::Error::NO_ERRORS != tag_value) + && (::EmbeddedProto::Error::END_OF_BUFFER != tag_value)) // The end of the buffer is not an array in this case. + { + return_value = tag_value; + } + + return return_value; + }; + + void clear() override + { + clear_msgId(); + clear_content(); + + } + + static char const* field_number_to_name(const FieldNumber fieldNumber) + { + char const* name = nullptr; + switch(fieldNumber) + { + case FieldNumber::MSGID: + name = MSGID_NAME; + break; + case FieldNumber::DATABUS: + name = DATABUS_NAME; + break; + case FieldNumber::INFOBUS: + name = INFOBUS_NAME; + break; + case FieldNumber::SETTINGSBUS: + name = SETTINGSBUS_NAME; + break; + default: + name = "Invalid FieldNumber"; + break; + } + return name; + } + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str) const + { + return this->to_string(str, 0, nullptr, true); + } + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + if(nullptr != name) + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\"%s\": {\n", name); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": {\n", indent_level, " ", name); + } + } + else + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "{\n"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s{\n", indent_level, " "); + } + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + left_chars = msgId_.to_string(left_chars, indent_level + 2, MSGID_NAME, true); + left_chars = to_string_content(left_chars, indent_level + 2, false); + + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n}"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n%*s}", indent_level, " "); + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + + + EmbeddedProto::uint32 msgId_ = 0U; + + FieldNumber which_content_ = FieldNumber::NOT_SET; + union content + { + content() {} + ~content() {} + DataBusRequestContent dataBus_; + InfoBusRequestContent infoBus_; + SettingsBusRequestContent settingsBus_; + }; + content content_; + + void init_content(const FieldNumber field_id) + { + if(FieldNumber::NOT_SET != which_content_) + { + // First delete the old object in the oneof. + clear_content(); + } + + // C++11 unions only support nontrivial members when you explicitly call the placement new statement. + switch(field_id) + { + case FieldNumber::DATABUS: + new(&content_.dataBus_) DataBusRequestContent; + break; + + case FieldNumber::INFOBUS: + new(&content_.infoBus_) InfoBusRequestContent; + break; + + case FieldNumber::SETTINGSBUS: + new(&content_.settingsBus_) SettingsBusRequestContent; + break; + + default: + break; + } + + which_content_ = field_id; + } + + void clear_content() + { + switch(which_content_) + { + case FieldNumber::DATABUS: + ::EmbeddedProto::destroy_at(&content_.dataBus_); + break; + case FieldNumber::INFOBUS: + ::EmbeddedProto::destroy_at(&content_.infoBus_); + break; + case FieldNumber::SETTINGSBUS: + ::EmbeddedProto::destroy_at(&content_.settingsBus_); + break; + default: + break; + } + which_content_ = FieldNumber::NOT_SET; + } + + ::EmbeddedProto::Error deserialize_content(const FieldNumber field_id, + ::EmbeddedProto::ReadBufferInterface& buffer, + const ::EmbeddedProto::WireFormatter::WireType wire_type) + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + + if(field_id != which_content_) + { + init_content(field_id); + } + + switch(which_content_) + { + case FieldNumber::DATABUS: + return_value = content_.dataBus_.deserialize_check_type(buffer, wire_type); + break; + case FieldNumber::INFOBUS: + return_value = content_.infoBus_.deserialize_check_type(buffer, wire_type); + break; + case FieldNumber::SETTINGSBUS: + return_value = content_.settingsBus_.deserialize_check_type(buffer, wire_type); + break; + default: + break; + } + + if(::EmbeddedProto::Error::NO_ERRORS != return_value) + { + clear_content(); + } + return return_value; + } + +#ifdef MSG_TO_STRING + ::EmbeddedProto::string_view to_string_content(::EmbeddedProto::string_view& str, const uint32_t indent_level, const bool first_field) const + { + ::EmbeddedProto::string_view left_chars = str; + + switch(which_content_) + { + case FieldNumber::DATABUS: + left_chars = content_.dataBus_.to_string(left_chars, indent_level, DATABUS_NAME, first_field); + break; + case FieldNumber::INFOBUS: + left_chars = content_.infoBus_.to_string(left_chars, indent_level, INFOBUS_NAME, first_field); + break; + case FieldNumber::SETTINGSBUS: + left_chars = content_.settingsBus_.to_string(left_chars, indent_level, SETTINGSBUS_NAME, first_field); + break; + default: + break; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING +}; + +} // End of namespace light_detector +#endif // REQUEST_H \ No newline at end of file diff --git a/Core/External/Proto/Generated/response.h b/Core/External/Proto/Generated/response.h new file mode 100644 index 0000000..2d62751 --- /dev/null +++ b/Core/External/Proto/Generated/response.h @@ -0,0 +1,614 @@ +/* + * This file is generated with Embedded Proto, PLEASE DO NOT EDIT! + * source: response.proto + */ + +// This file is generated. Please do not edit! +#ifndef RESPONSE_H +#define RESPONSE_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Include external proto definitions +#include "Content/data.h" +#include "Content/info.h" +#include "Content/settings.h" + +namespace light_detector { + +class ResponseContainer final: public ::EmbeddedProto::MessageInterface +{ + public: + ResponseContainer() = default; + ResponseContainer(const ResponseContainer& rhs ) + { + set_msgId(rhs.get_msgId()); + if(rhs.get_which_content() != which_content_) + { + // First delete the old object in the oneof. + clear_content(); + } + + switch(rhs.get_which_content()) + { + case FieldNumber::DATABUS: + set_dataBus(rhs.get_dataBus()); + break; + + case FieldNumber::INFOBUS: + set_infoBus(rhs.get_infoBus()); + break; + + case FieldNumber::SETTINGSBUS: + set_settingsBus(rhs.get_settingsBus()); + break; + + default: + break; + } + + } + + ResponseContainer(const ResponseContainer&& rhs ) noexcept + { + set_msgId(rhs.get_msgId()); + if(rhs.get_which_content() != which_content_) + { + // First delete the old object in the oneof. + clear_content(); + } + + switch(rhs.get_which_content()) + { + case FieldNumber::DATABUS: + set_dataBus(rhs.get_dataBus()); + break; + + case FieldNumber::INFOBUS: + set_infoBus(rhs.get_infoBus()); + break; + + case FieldNumber::SETTINGSBUS: + set_settingsBus(rhs.get_settingsBus()); + break; + + default: + break; + } + + } + + ~ResponseContainer() override = default; + + enum class FieldNumber : uint32_t + { + NOT_SET = 0, + MSGID = 1, + DATABUS = 2, + INFOBUS = 3, + SETTINGSBUS = 4 + }; + + ResponseContainer& operator=(const ResponseContainer& rhs) + { + set_msgId(rhs.get_msgId()); + if(rhs.get_which_content() != which_content_) + { + // First delete the old object in the oneof. + clear_content(); + } + + switch(rhs.get_which_content()) + { + case FieldNumber::DATABUS: + set_dataBus(rhs.get_dataBus()); + break; + + case FieldNumber::INFOBUS: + set_infoBus(rhs.get_infoBus()); + break; + + case FieldNumber::SETTINGSBUS: + set_settingsBus(rhs.get_settingsBus()); + break; + + default: + break; + } + + return *this; + } + + ResponseContainer& operator=(const ResponseContainer&& rhs) noexcept + { + set_msgId(rhs.get_msgId()); + if(rhs.get_which_content() != which_content_) + { + // First delete the old object in the oneof. + clear_content(); + } + + switch(rhs.get_which_content()) + { + case FieldNumber::DATABUS: + set_dataBus(rhs.get_dataBus()); + break; + + case FieldNumber::INFOBUS: + set_infoBus(rhs.get_infoBus()); + break; + + case FieldNumber::SETTINGSBUS: + set_settingsBus(rhs.get_settingsBus()); + break; + + default: + break; + } + + return *this; + } + + static constexpr char const* MSGID_NAME = "msgId"; + inline void clear_msgId() { msgId_.clear(); } + inline void set_msgId(const uint32_t& value) { msgId_ = value; } + inline void set_msgId(const uint32_t&& value) { msgId_ = value; } + inline uint32_t& mutable_msgId() { return msgId_.get(); } + inline const uint32_t& get_msgId() const { return msgId_.get(); } + inline uint32_t msgId() const { return msgId_.get(); } + + FieldNumber get_which_content() const { return which_content_; } + + static constexpr char const* DATABUS_NAME = "dataBus"; + inline bool has_dataBus() const + { + return FieldNumber::DATABUS == which_content_; + } + inline void clear_dataBus() + { + if(FieldNumber::DATABUS == which_content_) + { + which_content_ = FieldNumber::NOT_SET; + content_.dataBus_.~DataBusResponseContent(); + } + } + inline void set_dataBus(const DataBusResponseContent& value) + { + if(FieldNumber::DATABUS != which_content_) + { + init_content(FieldNumber::DATABUS); + } + content_.dataBus_ = value; + } + inline void set_dataBus(const DataBusResponseContent&& value) + { + if(FieldNumber::DATABUS != which_content_) + { + init_content(FieldNumber::DATABUS); + } + content_.dataBus_ = value; + } + inline DataBusResponseContent& mutable_dataBus() + { + if(FieldNumber::DATABUS != which_content_) + { + init_content(FieldNumber::DATABUS); + } + return content_.dataBus_; + } + inline const DataBusResponseContent& get_dataBus() const { return content_.dataBus_; } + inline const DataBusResponseContent& dataBus() const { return content_.dataBus_; } + + static constexpr char const* INFOBUS_NAME = "infoBus"; + inline bool has_infoBus() const + { + return FieldNumber::INFOBUS == which_content_; + } + inline void clear_infoBus() + { + if(FieldNumber::INFOBUS == which_content_) + { + which_content_ = FieldNumber::NOT_SET; + content_.infoBus_.~InfoBusResponseContent(); + } + } + inline void set_infoBus(const InfoBusResponseContent& value) + { + if(FieldNumber::INFOBUS != which_content_) + { + init_content(FieldNumber::INFOBUS); + } + content_.infoBus_ = value; + } + inline void set_infoBus(const InfoBusResponseContent&& value) + { + if(FieldNumber::INFOBUS != which_content_) + { + init_content(FieldNumber::INFOBUS); + } + content_.infoBus_ = value; + } + inline InfoBusResponseContent& mutable_infoBus() + { + if(FieldNumber::INFOBUS != which_content_) + { + init_content(FieldNumber::INFOBUS); + } + return content_.infoBus_; + } + inline const InfoBusResponseContent& get_infoBus() const { return content_.infoBus_; } + inline const InfoBusResponseContent& infoBus() const { return content_.infoBus_; } + + static constexpr char const* SETTINGSBUS_NAME = "settingsBus"; + inline bool has_settingsBus() const + { + return FieldNumber::SETTINGSBUS == which_content_; + } + inline void clear_settingsBus() + { + if(FieldNumber::SETTINGSBUS == which_content_) + { + which_content_ = FieldNumber::NOT_SET; + content_.settingsBus_.~SettingsBusResponseContent(); + } + } + inline void set_settingsBus(const SettingsBusResponseContent& value) + { + if(FieldNumber::SETTINGSBUS != which_content_) + { + init_content(FieldNumber::SETTINGSBUS); + } + content_.settingsBus_ = value; + } + inline void set_settingsBus(const SettingsBusResponseContent&& value) + { + if(FieldNumber::SETTINGSBUS != which_content_) + { + init_content(FieldNumber::SETTINGSBUS); + } + content_.settingsBus_ = value; + } + inline SettingsBusResponseContent& mutable_settingsBus() + { + if(FieldNumber::SETTINGSBUS != which_content_) + { + init_content(FieldNumber::SETTINGSBUS); + } + return content_.settingsBus_; + } + inline const SettingsBusResponseContent& get_settingsBus() const { return content_.settingsBus_; } + inline const SettingsBusResponseContent& settingsBus() const { return content_.settingsBus_; } + + + ::EmbeddedProto::Error serialize(::EmbeddedProto::WriteBufferInterface& buffer) const override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + + if((0U != msgId_.get()) && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = msgId_.serialize_with_id(static_cast(FieldNumber::MSGID), buffer, false); + } + + switch(which_content_) + { + case FieldNumber::DATABUS: + if(has_dataBus() && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = content_.dataBus_.serialize_with_id(static_cast(FieldNumber::DATABUS), buffer, true); + } + break; + + case FieldNumber::INFOBUS: + if(has_infoBus() && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = content_.infoBus_.serialize_with_id(static_cast(FieldNumber::INFOBUS), buffer, true); + } + break; + + case FieldNumber::SETTINGSBUS: + if(has_settingsBus() && (::EmbeddedProto::Error::NO_ERRORS == return_value)) + { + return_value = content_.settingsBus_.serialize_with_id(static_cast(FieldNumber::SETTINGSBUS), buffer, true); + } + break; + + default: + break; + } + + return return_value; + }; + + ::EmbeddedProto::Error deserialize(::EmbeddedProto::ReadBufferInterface& buffer) override + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + ::EmbeddedProto::WireFormatter::WireType wire_type = ::EmbeddedProto::WireFormatter::WireType::VARINT; + uint32_t id_number = 0; + FieldNumber id_tag = FieldNumber::NOT_SET; + + ::EmbeddedProto::Error tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + while((::EmbeddedProto::Error::NO_ERRORS == return_value) && (::EmbeddedProto::Error::NO_ERRORS == tag_value)) + { + id_tag = static_cast(id_number); + switch(id_tag) + { + case FieldNumber::MSGID: + return_value = msgId_.deserialize_check_type(buffer, wire_type); + break; + + case FieldNumber::DATABUS: + case FieldNumber::INFOBUS: + case FieldNumber::SETTINGSBUS: + return_value = deserialize_content(id_tag, buffer, wire_type); + break; + + case FieldNumber::NOT_SET: + return_value = ::EmbeddedProto::Error::INVALID_FIELD_ID; + break; + + default: + return_value = skip_unknown_field(buffer, wire_type); + break; + } + + if(::EmbeddedProto::Error::NO_ERRORS == return_value) + { + // Read the next tag. + tag_value = ::EmbeddedProto::WireFormatter::DeserializeTag(buffer, wire_type, id_number); + } + } + + // When an error was detect while reading the tag but no other errors where found, set it in the return value. + if((::EmbeddedProto::Error::NO_ERRORS == return_value) + && (::EmbeddedProto::Error::NO_ERRORS != tag_value) + && (::EmbeddedProto::Error::END_OF_BUFFER != tag_value)) // The end of the buffer is not an array in this case. + { + return_value = tag_value; + } + + return return_value; + }; + + void clear() override + { + clear_msgId(); + clear_content(); + + } + + static char const* field_number_to_name(const FieldNumber fieldNumber) + { + char const* name = nullptr; + switch(fieldNumber) + { + case FieldNumber::MSGID: + name = MSGID_NAME; + break; + case FieldNumber::DATABUS: + name = DATABUS_NAME; + break; + case FieldNumber::INFOBUS: + name = INFOBUS_NAME; + break; + case FieldNumber::SETTINGSBUS: + name = SETTINGSBUS_NAME; + break; + default: + name = "Invalid FieldNumber"; + break; + } + return name; + } + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str) const + { + return this->to_string(str, 0, nullptr, true); + } + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + if(nullptr != name) + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\"%s\": {\n", name); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": {\n", indent_level, " ", name); + } + } + else + { + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "{\n"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s{\n", indent_level, " "); + } + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + left_chars = msgId_.to_string(left_chars, indent_level + 2, MSGID_NAME, true); + left_chars = to_string_content(left_chars, indent_level + 2, false); + + if( 0 == indent_level) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n}"); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n%*s}", indent_level, " "); + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + + + EmbeddedProto::uint32 msgId_ = 0U; + + FieldNumber which_content_ = FieldNumber::NOT_SET; + union content + { + content() {} + ~content() {} + DataBusResponseContent dataBus_; + InfoBusResponseContent infoBus_; + SettingsBusResponseContent settingsBus_; + }; + content content_; + + void init_content(const FieldNumber field_id) + { + if(FieldNumber::NOT_SET != which_content_) + { + // First delete the old object in the oneof. + clear_content(); + } + + // C++11 unions only support nontrivial members when you explicitly call the placement new statement. + switch(field_id) + { + case FieldNumber::DATABUS: + new(&content_.dataBus_) DataBusResponseContent; + break; + + case FieldNumber::INFOBUS: + new(&content_.infoBus_) InfoBusResponseContent; + break; + + case FieldNumber::SETTINGSBUS: + new(&content_.settingsBus_) SettingsBusResponseContent; + break; + + default: + break; + } + + which_content_ = field_id; + } + + void clear_content() + { + switch(which_content_) + { + case FieldNumber::DATABUS: + ::EmbeddedProto::destroy_at(&content_.dataBus_); + break; + case FieldNumber::INFOBUS: + ::EmbeddedProto::destroy_at(&content_.infoBus_); + break; + case FieldNumber::SETTINGSBUS: + ::EmbeddedProto::destroy_at(&content_.settingsBus_); + break; + default: + break; + } + which_content_ = FieldNumber::NOT_SET; + } + + ::EmbeddedProto::Error deserialize_content(const FieldNumber field_id, + ::EmbeddedProto::ReadBufferInterface& buffer, + const ::EmbeddedProto::WireFormatter::WireType wire_type) + { + ::EmbeddedProto::Error return_value = ::EmbeddedProto::Error::NO_ERRORS; + + if(field_id != which_content_) + { + init_content(field_id); + } + + switch(which_content_) + { + case FieldNumber::DATABUS: + return_value = content_.dataBus_.deserialize_check_type(buffer, wire_type); + break; + case FieldNumber::INFOBUS: + return_value = content_.infoBus_.deserialize_check_type(buffer, wire_type); + break; + case FieldNumber::SETTINGSBUS: + return_value = content_.settingsBus_.deserialize_check_type(buffer, wire_type); + break; + default: + break; + } + + if(::EmbeddedProto::Error::NO_ERRORS != return_value) + { + clear_content(); + } + return return_value; + } + +#ifdef MSG_TO_STRING + ::EmbeddedProto::string_view to_string_content(::EmbeddedProto::string_view& str, const uint32_t indent_level, const bool first_field) const + { + ::EmbeddedProto::string_view left_chars = str; + + switch(which_content_) + { + case FieldNumber::DATABUS: + left_chars = content_.dataBus_.to_string(left_chars, indent_level, DATABUS_NAME, first_field); + break; + case FieldNumber::INFOBUS: + left_chars = content_.infoBus_.to_string(left_chars, indent_level, INFOBUS_NAME, first_field); + break; + case FieldNumber::SETTINGSBUS: + left_chars = content_.settingsBus_.to_string(left_chars, indent_level, SETTINGSBUS_NAME, first_field); + break; + default: + break; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING +}; + +} // End of namespace light_detector +#endif // RESPONSE_H \ No newline at end of file diff --git a/Core/External/Proto/Helper/proto_helper.cpp b/Core/External/Proto/Helper/proto_helper.cpp new file mode 100644 index 0000000..188743e --- /dev/null +++ b/Core/External/Proto/Helper/proto_helper.cpp @@ -0,0 +1,54 @@ +#include "proto_helper.h" + +bool ProtoHelper::is_data_bus_request_container(const light_detector::RequestContainer& container) { + return container.get_which_content() == light_detector::RequestContainer::FieldNumber::DATABUS; +} + +bool ProtoHelper::is_info_bus_request_container(const light_detector::RequestContainer& container) { + return container.get_which_content() == light_detector::RequestContainer::FieldNumber::INFOBUS; +} + +bool ProtoHelper::is_settings_bus_request_container(const light_detector::RequestContainer& container) { + return container.get_which_content() == light_detector::RequestContainer::FieldNumber::SETTINGSBUS; +} + +light_detector::DataBusRequestContent ProtoHelper::extract_data_bus_request_content( + const light_detector::RequestContainer& container) { + return container.dataBus(); +} + +light_detector::InfoBusRequestContent ProtoHelper::extract_info_bus_request_content( + const light_detector::RequestContainer& container) { + return container.infoBus(); +} + +light_detector::SettingsBusRequestContent ProtoHelper::extract_settings_bus_request_content( + const light_detector::RequestContainer& container) { + return container.settingsBus(); +} + +bool ProtoHelper::is_data_bus_request_content_of_raw_data_type(const light_detector::DataBusRequestContent &content) { + return content.dataType() == light_detector::DataType::Raw; +} + +bool ProtoHelper::is_data_bus_request_content_of_full_data_type(const light_detector::DataBusRequestContent &content) { + return content.dataType() == light_detector::DataType::Full; +} + +bool ProtoHelper::is_data_bus_request_content_of_infrared_data_type(const light_detector::DataBusRequestContent &content) { + return content.dataType() == light_detector::DataType::Infrared; +} + +bool ProtoHelper::is_data_bus_request_content_of_visible_data_type(const light_detector::DataBusRequestContent &content) { + return content.dataType() == light_detector::DataType::Visible; +} + +bool ProtoHelper::is_info_bus_request_content_of_gain_info_type( + const light_detector::InfoBusRequestContent& content) { + return content.infoType() == light_detector::InfoType::Gain; +}; + +bool ProtoHelper::is_info_bus_request_content_of_integral_time_info_type( + const light_detector::InfoBusRequestContent& content) { + return content.infoType() == light_detector::InfoType::IntegralTime; +}; diff --git a/Core/External/Proto/Helper/proto_helper.h b/Core/External/Proto/Helper/proto_helper.h new file mode 100644 index 0000000..01d97cb --- /dev/null +++ b/Core/External/Proto/Helper/proto_helper.h @@ -0,0 +1,115 @@ +#ifndef LIGHT_DETECTOR_PROTO_HELPER_H +#define LIGHT_DETECTOR_PROTO_HELPER_H + +#include "request.h" +#include "data.h" +#include "info.h" +#include "settings.h" + +/** + * Contains aliases to perform proto declaration related operation. + */ +class ProtoHelper { +public: + /** + * Checks if the given request container is related to data bus. + * + * @param container - given request container. + * @return result of the check. + */ + static bool is_data_bus_request_container(const light_detector::RequestContainer& container); + + /** + * Checks if the given request container is related to info bus. + * + * @param container - given request container. + * @return result of the check. + */ + static bool is_info_bus_request_container(const light_detector::RequestContainer& container); + + /** + * Checks if the given request container is related to settings bus. + * + * @param container - given request container. + * @return result of the check. + */ + static bool is_settings_bus_request_container(const light_detector::RequestContainer& container); + + /** + * Extracts data bus request container from the raw request container. + * + * @param container - given raw request container. + * @return extracted data bus request container. + */ + static light_detector::DataBusRequestContent extract_data_bus_request_content( + const light_detector::RequestContainer& container); + + /** + * Extracts info bus request container from the raw request container. + * + * @param container - given raw request container. + * @return extracted data bus request container. + */ + static light_detector::InfoBusRequestContent extract_info_bus_request_content( + const light_detector::RequestContainer& container); + + /** + * Extracts settings bus request container from the raw request container. + * + * @param container - given raw request container. + * @return extracted data bus request container. + */ + static light_detector::SettingsBusRequestContent extract_settings_bus_request_content( + const light_detector::RequestContainer& container); + + /** + * Checks if the given data bus request content of raw data type. + * + * @param content - given data bus request content. + * @return result of the check. + */ + static bool is_data_bus_request_content_of_raw_data_type(const light_detector::DataBusRequestContent& content); + + /** + * Checks if the given data bus request content of full data type. + * + * @param content - given data bus request content. + * @return result of the check. + */ + static bool is_data_bus_request_content_of_full_data_type(const light_detector::DataBusRequestContent& content); + + /** + * Checks if the given data bus request content of infrared data type. + * + * @param content - given data bus request content. + * @return result of the check. + */ + static bool is_data_bus_request_content_of_infrared_data_type(const light_detector::DataBusRequestContent& content); + + /** + * Checks if the given data bus request content of visible data type. + * + * @param content - given data bus request content. + * @return result of the check. + */ + static bool is_data_bus_request_content_of_visible_data_type(const light_detector::DataBusRequestContent& content); + + /** + * Checks if the given info bus request content of gain info type. + * + * @param content - given info bus request content. + * @return result of the check. + */ + static bool is_info_bus_request_content_of_gain_info_type(const light_detector::InfoBusRequestContent& content); + + /** + * Checks if the given info bus request content of integral time info type. + * + * @param content - given info bus request content. + * @return result of the check. + */ + static bool is_info_bus_request_content_of_integral_time_info_type( + const light_detector::InfoBusRequestContent& content); +}; + +#endif //LIGHT_DETECTOR_PROTO_HELPER_H diff --git a/Core/External/Scheduler/Handler/scheduler_handler.cpp b/Core/External/Scheduler/Handler/scheduler_handler.cpp new file mode 100644 index 0000000..9aeb1e4 --- /dev/null +++ b/Core/External/Scheduler/Handler/scheduler_handler.cpp @@ -0,0 +1,231 @@ +#include "scheduler_handler.h" + + +int SchedulerHandler::handle_request() { + if (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_RXNE) == SET) { + return try_process_request_container(); + } + + return EXIT_SUCCESS; +} + +int SchedulerHandler::handle_response() { + auto request_container_sequence = State::get_request_container_sequence(); + + if (!request_container_sequence.is_empty()) { + return request_container_sequence.traverse_with_break([](const light_detector::RequestContainer &content) -> int { + return SchedulerHandler::try_process_response_container(content); + }); + } + + return EXIT_SUCCESS; +} + +int SchedulerHandler::try_process_request_container() { + auto request_buffer = ProtoCodec::get_request_buffer(); + + HAL_UART_Receive( + &huart2, request_buffer.get_raw_buffer(), request_buffer.get_size(), 1000); + + return ProtoCodec::decode_request_container(); +} + +int SchedulerHandler::try_process_response_container(const light_detector::RequestContainer &content) { + if (ProtoHelper::is_data_bus_request_container(content)) { + + if (SchedulerHandler::process_data_bus_request_content_response(content) != EXIT_SUCCESS) { + return EXIT_FAILURE; + } + } else if (ProtoHelper::is_info_bus_request_container(content)) { + + if (SchedulerHandler::process_info_bus_request_content_response(content) != EXIT_SUCCESS) { + return EXIT_FAILURE; + } + } else if (ProtoHelper::is_settings_bus_request_container(content)) { + + if (SchedulerHandler::process_settings_bus_request_content_response(content) != EXIT_SUCCESS) { + return EXIT_FAILURE; + } + } + + return SchedulerHandler::try_transmit_response_container(); +} + +int SchedulerHandler::try_transmit_response_container() { + auto response_buffer = ProtoCodec::get_response_buffer(); + + HAL_UART_Transmit( + &huart2, response_buffer.get_raw_buffer(), response_buffer.get_size(), 1000); + + return EXIT_SUCCESS; +} + +int SchedulerHandler::process_data_bus_request_content_response( + const light_detector::RequestContainer &content) { + auto data_bus_request_content = + ProtoHelper::extract_data_bus_request_content(content); + + if (ProtoHelper::is_data_bus_request_content_of_raw_data_type(data_bus_request_content)) { + + return SchedulerHandler::process_data_bus_request_content_of_raw_data_type_response(content); + } else if (ProtoHelper::is_data_bus_request_content_of_full_data_type(data_bus_request_content)) { + + return SchedulerHandler::process_data_bus_request_content_of_full_data_type_response(content); + } else if (ProtoHelper::is_data_bus_request_content_of_infrared_data_type(data_bus_request_content)) { + + return SchedulerHandler::process_data_bus_request_content_of_infrared_data_type_response(content); + } else if (ProtoHelper::is_data_bus_request_content_of_visible_data_type(data_bus_request_content)) { + + return SchedulerHandler::process_data_bus_request_content_of_visible_data_type_response(content); + } + + return EXIT_SUCCESS; +} + +int SchedulerHandler::process_data_bus_request_content_of_raw_data_type_response( + const light_detector::RequestContainer &content) { + light_detector::ResponseContainer response_container; + + response_container.set_msgId(content.get_msgId()); + + light_detector::DataBusResponseContent data_bus_response_content; + + data_bus_response_content.set_deviceId(TSL2591X::get_device_id()); + data_bus_response_content.set_dataType(light_detector::DataType::Raw); + + uint16_t value = TSL2591X::read_lux(); + TSL2591X::invoke_lux_interrupt(LUX_LOW, LUX_HIGH); + + data_bus_response_content.set_value(value); + data_bus_response_content.set_nonce(State::allocate_response_nonce()); + + response_container.set_dataBus(data_bus_response_content); + + return ProtoCodec::encode_response_container(response_container); +} + +int SchedulerHandler::process_data_bus_request_content_of_full_data_type_response( + const light_detector::RequestContainer &content) { + light_detector::ResponseContainer response_container; + + response_container.set_msgId(content.get_msgId()); + + light_detector::DataBusResponseContent data_bus_response_content; + + data_bus_response_content.set_deviceId(TSL2591X::get_device_id()); + data_bus_response_content.set_dataType(light_detector::DataType::Full); + + uint32_t value = TSL2591X::read_full(); + + data_bus_response_content.set_value(value); + data_bus_response_content.set_nonce(State::allocate_response_nonce()); + + response_container.set_dataBus(data_bus_response_content); + + return ProtoCodec::encode_response_container(response_container); +} + +int SchedulerHandler::process_data_bus_request_content_of_infrared_data_type_response( + const light_detector::RequestContainer &content) { + light_detector::ResponseContainer response_container; + + response_container.set_msgId(content.get_msgId()); + + light_detector::DataBusResponseContent data_bus_response_content; + + data_bus_response_content.set_deviceId(TSL2591X::get_device_id()); + data_bus_response_content.set_dataType(light_detector::DataType::Infrared); + + uint16_t value = TSL2591X::read_infrared(); + + data_bus_response_content.set_value(value); + data_bus_response_content.set_nonce(State::allocate_response_nonce()); + + response_container.set_dataBus(data_bus_response_content); + + return ProtoCodec::encode_response_container(response_container); +} + +int SchedulerHandler::process_data_bus_request_content_of_visible_data_type_response( + const light_detector::RequestContainer &content) { + light_detector::ResponseContainer response_container; + + response_container.set_msgId(content.get_msgId()); + + light_detector::DataBusResponseContent data_bus_response_content; + + data_bus_response_content.set_deviceId(TSL2591X::get_device_id()); + data_bus_response_content.set_dataType(light_detector::DataType::Visible); + + uint32_t value = TSL2591X::read_visible(); + + data_bus_response_content.set_value(value); + data_bus_response_content.set_nonce(State::allocate_response_nonce()); + + response_container.set_dataBus(data_bus_response_content); + + return ProtoCodec::encode_response_container(response_container); +} + +int SchedulerHandler::process_info_bus_request_content_response( + const light_detector::RequestContainer &content) { + auto info_bus_request_content = + ProtoHelper::extract_info_bus_request_content(content); + + if (ProtoHelper::is_info_bus_request_content_of_gain_info_type(info_bus_request_content)) { + + return process_info_bus_request_content_of_gain_info_type_response(content); + } else if (ProtoHelper::is_info_bus_request_content_of_integral_time_info_type(info_bus_request_content)) { + + return process_info_bus_request_content_of_integral_time_info_type_response(content); + } + + return EXIT_SUCCESS; +} + +int SchedulerHandler::process_info_bus_request_content_of_gain_info_type_response( + const light_detector::RequestContainer &content) { + light_detector::ResponseContainer response_container; + + response_container.set_msgId(content.get_msgId()); + + light_detector::InfoBusResponseContent info_bus_response_content; + + info_bus_response_content.set_deviceId(TSL2591X::get_device_id()); + info_bus_response_content.set_infoType(light_detector::InfoType::Gain); + + uint8_t value = TSL2591X::get_gain(); + + info_bus_response_content.set_value(value); + info_bus_response_content.set_nonce(State::allocate_response_nonce()); + + response_container.set_infoBus(info_bus_response_content); + + return ProtoCodec::encode_response_container(response_container); +}; + +int SchedulerHandler::process_info_bus_request_content_of_integral_time_info_type_response( + const light_detector::RequestContainer &content) { + light_detector::ResponseContainer response_container; + + response_container.set_msgId(content.get_msgId()); + + light_detector::InfoBusResponseContent info_bus_response_content; + + info_bus_response_content.set_deviceId(TSL2591X::get_device_id()); + info_bus_response_content.set_infoType(light_detector::InfoType::IntegralTime); + + uint8_t value = TSL2591X::get_integral_time(); + + info_bus_response_content.set_value(value); + info_bus_response_content.set_nonce(State::allocate_response_nonce()); + + response_container.set_infoBus(info_bus_response_content); + + return ProtoCodec::encode_response_container(response_container); +}; + +int SchedulerHandler::process_settings_bus_request_content_response( + const light_detector::RequestContainer &content) { + +} \ No newline at end of file diff --git a/Core/External/Scheduler/Handler/scheduler_handler.h b/Core/External/Scheduler/Handler/scheduler_handler.h new file mode 100644 index 0000000..0557632 --- /dev/null +++ b/Core/External/Scheduler/Handler/scheduler_handler.h @@ -0,0 +1,138 @@ +#ifndef LIGHT_DETECTOR_SCHEDULER_HANDLER_H +#define LIGHT_DETECTOR_SCHEDULER_HANDLER_H + +#include "stm32l4xx_hal.h" +#include "tsl2591x.h" + +#include "request.h" +#include "data.h" +#include "info.h" +#include "settings.h" +#include "proto_codec.h" +#include "proto_helper.h" + +#include "state.h" + +extern UART_HandleTypeDef huart2; + +/** + * Represents scheduler handler used to expose + */ +class SchedulerHandler { +public: + /** + * Handles high-level incoming request, received during one exact timer tick. + * + * @return status of the request handling. + */ + static int handle_request(); + + /** + * Handles high-level outcoming response, sent during one exact timer tick. + * + * @return status of the response handling. + */ + static int handle_response(); +private: + /** + * Attempts to process incoming request container if there is one. + * + * @return status of the request container processing. + */ + static int try_process_request_container(); + + /** + * Attempts to process outcoming response container if there is one. + * + * @param content - given request container content. + * @return status of the response container processing. + */ + static int try_process_response_container(const light_detector::RequestContainer &content); + + /** + * Attempts to transmit outcoming response container. + * + * @return status of the response container processing. + */ + static int try_transmit_response_container(); + + /** + * Attempts to process data bus request content response. + * + * @param content - given data bus request content. + * @return status of the data bus request content response processing. + */ + static int process_data_bus_request_content_response(const light_detector::RequestContainer& content); + + /** + * Attempts to process data bus request content of raw data type response. + * + * @param content - given data bus request content. + * @return status of the data bus request content response processing. + */ + static int process_data_bus_request_content_of_raw_data_type_response( + const light_detector::RequestContainer& content); + + /** + * Attempts to process data bus request content of full data type response. + * + * @param content - given data bus request content. + * @return status of the data bus request content response processing. + */ + static int process_data_bus_request_content_of_full_data_type_response( + const light_detector::RequestContainer& content); + + /** + * Attempts to process data bus request content of infrared data type response. + * + * @param content - given data bus request content. + * @return status of the data bus request content response processing. + */ + static int process_data_bus_request_content_of_infrared_data_type_response( + const light_detector::RequestContainer& content); + + /** + * Attempts to process data bus request content of visible data type response. + * + * @param content - given data bus request content. + * @return status of the data bus request content response processing. + */ + static int process_data_bus_request_content_of_visible_data_type_response( + const light_detector::RequestContainer& content); + + /** + * Attempts to process info bus request content response. + * + * @param content - given info bus request content. + * @return status of the info bus request content response processing. + */ + static int process_info_bus_request_content_response(const light_detector::RequestContainer& content); + + /** + * Attempts to process info bus request content of gain info type response. + * + * @param content - given info bus request content. + * @return status of the info bus request content response processing. + */ + static int process_info_bus_request_content_of_gain_info_type_response( + const light_detector::RequestContainer& content); + + /** + * Attempts to process info bus request content of integral time info type response. + * + * @param content - given info bus request content. + * @return status of the info bus request content response processing. + */ + static int process_info_bus_request_content_of_integral_time_info_type_response( + const light_detector::RequestContainer& content); + + /** + * Attempts to process settings bus request content response. + * + * @param content - given settings bus request content. + * @return status of the settings bus request content response processing. + */ + static int process_settings_bus_request_content_response(const light_detector::RequestContainer& content); +}; + +#endif //LIGHT_DETECTOR_SCHEDULER_HANDLER_H diff --git a/Core/External/Scheduler/scheduler.cpp b/Core/External/Scheduler/scheduler.cpp new file mode 100644 index 0000000..53c478c --- /dev/null +++ b/Core/External/Scheduler/scheduler.cpp @@ -0,0 +1,33 @@ +#include "scheduler.h" + +void Scheduler::schedule_tick() { + State::get_task_sequence().add([]() -> int { + if (SchedulerHandler::handle_request() != EXIT_SUCCESS) { + Indicator::toggle_invalid_request(); + + return EXIT_FAILURE; + } + + if (SchedulerHandler::handle_response() != EXIT_SUCCESS) { + Indicator::toggle_invalid_response(); + + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; + }); +} + +void Scheduler::schedule_status_check() { + State::get_task_sequence().add([]() -> int { + if (TSL2591X::is_available()) { + Indicator::toggle_action_success(); + } else { + Indicator::toggle_action_failure(); + } + + State::get_button_mutex().unlock(); + + return EXIT_SUCCESS; + }); +} \ No newline at end of file diff --git a/Core/External/Scheduler/scheduler.h b/Core/External/Scheduler/scheduler.h new file mode 100644 index 0000000..c0d7033 --- /dev/null +++ b/Core/External/Scheduler/scheduler.h @@ -0,0 +1,25 @@ +#ifndef LIGHT_DETECTOR_SCHEDULER_H +#define LIGHT_DETECTOR_SCHEDULER_H + +#include "scheduler_handler.h" +#include "state.h" +#include "indicator.h" + +/** + * Represents task scheduler implementation. Its methods are intended to be called to schedule tasks to be executed + * in a main loop. + */ +class Scheduler { +public: + /** + * Schedules external timer tick action. + */ + static void schedule_tick(); + + /** + * Schedules external button status check action. + */ + static void schedule_status_check(); +}; + +#endif //LIGHT_DETECTOR_SCHEDULER_H diff --git a/Core/External/Sensor/tsl2591x.cpp b/Core/External/Sensor/tsl2591x.cpp new file mode 100644 index 0000000..3048952 --- /dev/null +++ b/Core/External/Sensor/tsl2591x.cpp @@ -0,0 +1,271 @@ +#include "tsl2591x.h" + +bool TSL2591X::initialized = false; + +void TSL2591X::init() { + enable(); + + set_gain(MEDIUM_AGAIN); + set_integral_time(ATIME_200MS); + write_byte(PERSIST_REGISTER, 0x01); + + disable(); + + initialized = true; +} + +bool TSL2591X::is_available() { + return HAL_I2C_IsDeviceReady(&hi2c1, TSL2591X_ADDRESS, 1u, 10u) == HAL_OK; +} + +bool TSL2591X::is_configured() { + return initialized; +} + +bool TSL2591X::get_device_id() { + return read_byte(WHO_AM_I); +}; + +void TSL2591X::enable() { + write_byte(ENABLE_REGISTER, ENABLE_AIEN | ENABLE_POWERON | ENABLE_AEN | ENABLE_NPIEN); +} + +void TSL2591X::disable() { + write_byte(ENABLE_REGISTER, ENABLE_POWEROFF); +} + +void TSL2591X::reset() { + write_byte(CONTROL_REGISTER, SRESET); +} + +uint16_t TSL2591X::read_lux() { + enable(); + + uint8_t externalIntegralTime = get_integral_time(); + + for (uint8_t i = 0; i < externalIntegralTime + 2; i++) { + HAL_Delay(100); + } + + uint16_t channel0 = read_channel0(); + uint16_t channel1 = read_channel1(); + disable(); + + enable(); + write_byte(0xE7, 0x13); + disable(); + + uint16_t maxCounts; + + if (externalIntegralTime == ATIME_100MS) { + maxCounts = MAX_COUNT_100MS; + } else { + maxCounts = MAX_COUNT; + } + + uint8_t externalGain; + + if (channel0 >= maxCounts || channel1 >= maxCounts) { + externalGain = get_gain(); + + if (externalGain == LOW_AGAIN) { + return 0; + } + + externalGain = ((externalGain >> 4) - 1) << 4; + + set_gain(externalGain); + + channel0 = 0; + channel1 = 0; + while (channel0 <= 0 || channel1 <= 0) { + channel0 = read_channel0(); + channel1 = read_channel1(); + } + + HAL_Delay(100); + } + + double gain = 1.0; + + externalGain = get_gain(); + + if (externalGain == MEDIUM_AGAIN) { + gain = 25.0; + } else if (externalGain == HIGH_AGAIN) { + gain = 428.0; + } else if (externalGain == MAX_AGAIN) { + gain = 9876.0; + } + + uint16_t lux1 = (int) ((channel0 - (2 * channel1)) / (((100 * externalIntegralTime + 100) * gain) / LUX_DF)); + + if (lux1 <= 0) { + return 0; + } + + return lux1; +} + +uint32_t TSL2591X::read_full() { + uint32_t result; + + enable(); + + result = (read_channel1() << 16) | read_channel0(); + + disable(); + + return result; +} + +uint16_t TSL2591X::read_infrared() { + uint16_t result; + + enable(); + + result = read_channel0(); + + disable(); + + return result; +} + +uint32_t TSL2591X::read_visible() { + enable(); + + uint16_t channel1 = read_channel1(); + uint16_t channel0 = read_channel0(); + + disable(); + + return ((channel1 << 16) | channel0) - channel1; +} + +void TSL2591X::invoke_raw_interrupt_threshold(uint16_t low, uint16_t high) { + enable(); + + write_byte(AILTL_REGISTER, low & 0xFF); + write_byte(AILTH_REGISTER, low >> 8); + + write_byte(AIHTL_REGISTER, high & 0xFF); + write_byte(AIHTH_REGISTER, high >> 8); + + write_byte(NPAILTL_REGISTER, 0); + write_byte(NPAILTH_REGISTER, 0); + + write_byte(NPAIHTL_REGISTER, 0xff); + write_byte(NPAIHTH_REGISTER, 0xff); + + disable(); +} + +void TSL2591X::invoke_lux_interrupt(uint16_t low, uint16_t high) { + double gain = 1.0; + + uint8_t externalGain = get_gain(); + + if (externalGain == MEDIUM_AGAIN) { + gain = 25.0; + } else if (externalGain == HIGH_AGAIN) { + gain = 428.0; + } else if (externalGain == MAX_AGAIN) { + gain = 9876.0; + } + + uint8_t externalIntegralTime = get_integral_time(); + + double cpl = ((100 * externalIntegralTime + 100) * gain) / LUX_DF; + + uint16_t channel1 = read_channel1(); + + uint16_t highLux = (int) (cpl * high) + 2 * channel1 - 1; + uint16_t lowLux = (int) (cpl * low) + 2 * channel1 + 1; + + enable(); + + write_byte(AILTL_REGISTER, lowLux & 0xFF); + write_byte(AILTH_REGISTER, lowLux >> 8); + + write_byte(AIHTL_REGISTER, highLux & 0xFF); + write_byte(AIHTH_REGISTER, highLux >> 8); + + write_byte(NPAILTL_REGISTER, 0); + write_byte(NPAILTH_REGISTER, 0); + + write_byte(NPAIHTL_REGISTER, 0xff); + write_byte(NPAIHTH_REGISTER, 0xff); + + disable(); +} + +uint16_t TSL2591X::read_channel0() { + return read_word(CHAN0_LOW); +} + +uint16_t TSL2591X::read_channel1() { + return read_word(CHAN1_LOW); +} + +uint8_t TSL2591X::get_integral_time() { + return read_byte(CONTROL_REGISTER) & 0x07; +} + +void TSL2591X::set_integral_time(uint8_t src) { + if (src < 0x06) { + uint8_t control = read_byte(CONTROL_REGISTER); + control &= 0xf8; + control |= src; + write_byte(CONTROL_REGISTER, control); + } +} + +uint8_t TSL2591X::get_gain() { + return read_byte(CONTROL_REGISTER) & 0x30; +} + +void TSL2591X::set_gain(uint8_t src) { + if (src == LOW_AGAIN || src == MEDIUM_AGAIN || src == HIGH_AGAIN || src == MAX_AGAIN) { + uint8_t control = read_byte(CONTROL_REGISTER); + control &= 0xCf; + control |= src; + write_byte(CONTROL_REGISTER, control); + } +} + +uint8_t TSL2591X::read_byte(uint8_t src) { + return read_byte_i2c(src | COMMAND_BIT); +} + +uint16_t TSL2591X::read_word(uint8_t src) { + return read_word_i2c(src | COMMAND_BIT); +} + +void TSL2591X::write_byte(uint8_t src, uint8_t value) { + write_byte_i2c(src | COMMAND_BIT, value); +} + +void TSL2591X::write_byte_i2c(uint8_t command, uint8_t value) { + uint8_t buffer[1] = {value}; + + HAL_I2C_Mem_Write( + &hi2c1, TSL2591X_ADDRESS, command, I2C_MEMADD_SIZE_8BIT, buffer, 1, I2C_TIMEOUT); +} + +int TSL2591X::read_byte_i2c(uint8_t command) { + uint8_t buffer[1] = {0}; + + HAL_I2C_Mem_Read( + &hi2c1, TSL2591X_ADDRESS + 1, command, I2C_MEMADD_SIZE_8BIT, buffer, 1, I2C_TIMEOUT); + + return buffer[0]; +} + +int TSL2591X::read_word_i2c(uint8_t command) { + uint8_t buffer[2] = {0, 0}; + + HAL_I2C_Mem_Read(&hi2c1, TSL2591X_ADDRESS + 1, command, I2C_MEMADD_SIZE_8BIT, buffer, 2, I2C_TIMEOUT); + + return ((buffer[1] << 8) | (buffer[0] & 0xff)); +} + diff --git a/Core/External/Sensor/tsl2591x.h b/Core/External/Sensor/tsl2591x.h new file mode 100644 index 0000000..4c70970 --- /dev/null +++ b/Core/External/Sensor/tsl2591x.h @@ -0,0 +1,251 @@ +#ifndef LIGHT_DETECTOR_SENSOR_H +#define LIGHT_DETECTOR_SENSOR_H + +#include "stm32l4xx_hal.h" +#include +#include + +#define TSL2591X_ADDRESS (0x29<<1) + +#define WHO_AM_I (0x12) + +#define COMMAND_BIT (0xA0) + +#define ENABLE_REGISTER (0x00) +#define ENABLE_POWERON (0x01) +#define ENABLE_POWEROFF (0x00) +#define ENABLE_AEN (0x02) +#define ENABLE_AIEN (0x10) +#define ENABLE_NPIEN (0x80) + +#define CONTROL_REGISTER (0x01) +#define SRESET (0x80) + +#define LOW_AGAIN (0X00) +#define MEDIUM_AGAIN (0X10) +#define HIGH_AGAIN (0X20) +#define MAX_AGAIN (0x30) + +#define ATIME_100MS (0x00) +#define ATIME_200MS (0x01) +#define ATIME_300MS (0x02) +#define ATIME_400MS (0x03) +#define ATIME_500MS (0x04) +#define ATIME_600MS (0x05) + +#define AILTL_REGISTER (0x04) +#define AILTH_REGISTER (0x05) +#define AIHTL_REGISTER (0x06) +#define AIHTH_REGISTER (0x07) +#define NPAILTL_REGISTER (0x08) +#define NPAILTH_REGISTER (0x09) +#define NPAIHTL_REGISTER (0x0A) +#define NPAIHTH_REGISTER (0x0B) + +#define PERSIST_REGISTER (0x0C) + +#define CHAN0_LOW (0x14) +#define CHAN0_HIGH (0x15) +#define CHAN1_LOW (0x16) +#define CHAN1_HIGH (0x14) + +#define LUX_LOW 50 +#define LUX_HIGH 200 + +#define LUX_DF (762.0) + +#define MAX_COUNT_100MS (36863) +#define MAX_COUNT (65535) + +#define I2C_TIMEOUT (0x20) + +extern I2C_HandleTypeDef hi2c1; + +/** + * Represents driver implementation for "Waveshare" TSL2591X light sensor. + */ +class TSL2591X { +public: + /** + * Initializes light sensor configuration. + */ + static void init(); + + /** + * Checks if the device is available and thus can be configured. + * + * @return result of the check. + */ + static bool is_available(); + + /** + * Checks if the device has already been configured. + * + * @return result of the check. + */ + static bool is_configured(); + + /** + * Retrieves device id of the sensor. + * + * @return read device id. + */ + static bool get_device_id(); + + /** + * Enables the sensor. + */ + static void enable(); + + /** + * Disables the sensor. + */ + static void disable(); + + /** + * Resets light sensor to the default state. + */ + static void reset(); + + /** + * Reads raw data in LUX format. + * + * @return read raw data in LUX format. + */ + static uint16_t read_lux(); + + /** + * Reads full data from the sensor. + * + * @return read full data. + */ + static uint32_t read_full(); + + /** + * Reads infrared data from the sensor. + * + * @return read infrared data. + */ + static uint16_t read_infrared(); + + /** + * Reads visible data from the sensor. + * + * @return read visible data. + */ + static uint32_t read_visible(); + + /** + * Sets raw interruption threshold. + * + * @param low - given low state. + * @param high - given high state. + */ + static void invoke_raw_interrupt_threshold(uint16_t low, uint16_t high); + + /** + * Sets LUX interruption configurations. + * + * @param low - given low state. + * @param high - given high state. + */ + static void invoke_lux_interrupt(uint16_t low, uint16_t high); + + /** + * Retrieves integral time option from the sensor. + * + * @return read value. + */ + static uint8_t get_integral_time(); + + /** + * Retrieves the value of gain option from the sensor. + * + * @return retrieved value. + */ + static uint8_t get_gain(); + +private: + /** + * Indicated that the device has already been initialized. + */ + static bool initialized; + + /** + * Reads value from the zero channel. + * + * @return read value. + */ + static uint16_t read_channel0(); + + /** + * Reads value from the first channel. + * + * @return read value. + */ + static uint16_t read_channel1(); + + /** + * Sets integral time option to the sensor. + * + * @param src - given value to be set. + */ + static void set_integral_time(uint8_t src); + + /** + * Sets the value of gain option to the sensor. + * + * @param src - given value to be set. + */ + static void set_gain(uint8_t src); + + /** + * Reads combined command by bytes using I2C bone. + * + * @param src - given command to be read. + * @return read value. + */ + static uint8_t read_byte(uint8_t src); + + /** + * Reads combined command by word using I2C bone. + * + * @param src - given command to be read. + * @return read value. + */ + static uint16_t read_word(uint8_t src); + + /** + * Writes combined command by bytes via I2C bone. + * + * @param command - given command to be written. + * @param value - given value to be written to the given command. + */ + static void write_byte(uint8_t src, uint8_t value); + + /** + * Writes raw byte via I2C bone. + * + * @param command - given command to be written. + * @param value - given value to be written to the given command. + */ + static void write_byte_i2c(uint8_t command, uint8_t value); + + /** + * Reads raw byte via I2C bone. + * + * @param command - given command to be read. + * @return read byte. + */ + static int read_byte_i2c(uint8_t command); + + /** + * Reads raw word via I2C bone. + * + * @param command - given command to be read. + * @return read word. + */ + static int read_word_i2c(uint8_t command); +}; + +#endif // LIGHT_DETECTOR_SENSOR_H diff --git a/Core/External/State/state.cpp b/Core/External/State/state.cpp new file mode 100644 index 0000000..0b35ad0 --- /dev/null +++ b/Core/External/State/state.cpp @@ -0,0 +1,33 @@ +#include "state.h" + +int State::amount_of_processed_requests = 0; + +int State::current_response_nonce = 0; + +Mutex State::button_mutex = Mutex(); + +Sequence> State::task_sequence = + Sequence>(); + +Sequence State::request_container_sequence = + Sequence(); + +int State::get_amount_of_processed_requests() { + return amount_of_processed_requests; +}; + +int State::allocate_response_nonce() { + return current_response_nonce++; +} + +Mutex& State::get_button_mutex() { + return button_mutex; +} + +Sequence>& State::get_task_sequence() { + return task_sequence; +} + +Sequence& State::get_request_container_sequence() { + return request_container_sequence; +} \ No newline at end of file diff --git a/Core/External/State/state.h b/Core/External/State/state.h new file mode 100644 index 0000000..e23d76a --- /dev/null +++ b/Core/External/State/state.h @@ -0,0 +1,77 @@ +#ifndef LIGHT_DETECTOR_STATE_H +#define LIGHT_DETECTOR_STATE_H + +#include "request.h" +#include "mutex.h" +#include "sequence.h" + +#include + +/** + * Represents device state handler. + */ +class State { +public: + /** + * Retrieves amount of processed events. + * + * @return amount of processed events. + */ + static int get_amount_of_processed_requests(); + + /** + * Allocates new response nonce. + * + * @return allocated response nonce. + */ + static int allocate_response_nonce(); + + /** + * Retrieves button mutex. + * + * @return retrieved button mutex. + */ + static Mutex& get_button_mutex(); + + /** + * Retrieves task sequence used to perform scheduled tasks execution. + * + * @return retrieved task sequence. + */ + static Sequence>& get_task_sequence(); + + /** + * Retrieves request container sequence. + * + * @return retrieved request container sequence. + */ + static Sequence& get_request_container_sequence(); + +private: + /** + * Represents amount of processed incoming requests. + */ + static int amount_of_processed_requests; + + /** + * Represents current(latest) response nonce. + */ + static int current_response_nonce; + + /** + * Represents button mutex used to manage pressed button operations invokation. + */ + static Mutex button_mutex; + + /** + * Represents scheduled tasks sequence. + */ + static Sequence> task_sequence; + + /** + * Represents sequence of request containers. Used for internal scheduler logic. + */ + static Sequence request_container_sequence; +}; + +#endif //LIGHT_DETECTOR_STATE_H diff --git a/Core/External/Tools/Indicator/indicator.cpp b/Core/External/Tools/Indicator/indicator.cpp new file mode 100644 index 0000000..8c44ca0 --- /dev/null +++ b/Core/External/Tools/Indicator/indicator.cpp @@ -0,0 +1,55 @@ +#include "indicator.h" + +void Indicator::toggle_initialization_success() { + for (int i = 0; i < 4; i++) { + HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); + HAL_Delay(1000); + } + + HAL_Delay(2000); +}; + +void Indicator::toggle_initialization_failure() { + for (int i = 0; i < 4; i++) { + HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); + HAL_Delay(200); + } + + HAL_Delay(1000); +}; + +void Indicator::toggle_action_success() { + for (int i = 0; i < 4; i++) { + HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); + HAL_Delay(1000); + } + + HAL_Delay(2000); +}; + +void Indicator::toggle_action_failure() { + for (int i = 0; i < 4; i++) { + HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); + HAL_Delay(200); + } + + HAL_Delay(1000); +}; + +void Indicator::toggle_invalid_request() { + for (int i = 0; i < 3; i++) { + HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); + HAL_Delay(500); + } + + HAL_Delay(1000); +} + +void Indicator::toggle_invalid_response() { + for (int i = 0; i < 3; i++) { + HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); + HAL_Delay(900); + } + + HAL_Delay(2000); +} \ No newline at end of file diff --git a/Core/External/Tools/Indicator/indicator.h b/Core/External/Tools/Indicator/indicator.h new file mode 100644 index 0000000..f5692b8 --- /dev/null +++ b/Core/External/Tools/Indicator/indicator.h @@ -0,0 +1,42 @@ +#ifndef LIGHT_DETECTOR_INDICATOR_H +#define LIGHT_DETECTOR_INDICATOR_H + +#include "gpio.h" + +/** + * Represents indicator state machine. + */ +class Indicator { +public: + /** + * Indicated initialization process success. + */ + static void toggle_initialization_success(); + + /** + * Indicated initialization process failure. + */ + static void toggle_initialization_failure(); + + /** + * Indicated operation action success. + */ + static void toggle_action_success(); + + /** + * Indicated operation action failure. + */ + static void toggle_action_failure(); + + /** + * Indicated invalid incoming request. + */ + static void toggle_invalid_request(); + + /** + * Indicated invalid outcoming response. + */ + static void toggle_invalid_response(); +}; + +#endif //LIGHT_DETECTOR_INDICATOR_H diff --git a/Core/External/Tools/Mutex/mutex.cpp b/Core/External/Tools/Mutex/mutex.cpp new file mode 100644 index 0000000..945db3a --- /dev/null +++ b/Core/External/Tools/Mutex/mutex.cpp @@ -0,0 +1,13 @@ +#include "mutex.h" + +void Mutex::lock() { + locked = true; +} + +void Mutex::unlock() { + locked = false; +} + +bool Mutex::is_locked() const { + return locked; +} \ No newline at end of file diff --git a/Core/External/Tools/Mutex/mutex.h b/Core/External/Tools/Mutex/mutex.h new file mode 100644 index 0000000..4925e89 --- /dev/null +++ b/Core/External/Tools/Mutex/mutex.h @@ -0,0 +1,32 @@ +#ifndef LIGHT_DETECTOR_MUTEX_H +#define LIGHT_DETECTOR_MUTEX_H + +/** + * Represents mutex thread-safe implementation. Due to STM32 limitations, mutex represents simple state machine. + */ +class Mutex { +public: + /** + * Locks mutex state. + */ + void lock(); + + /** + * Unlocks mutex state. + */ + void unlock(); + + /** + * Retrieves current state of the mutex. + * + * @return retrieved state of the mutex. + */ + bool is_locked() const; +private: + /** + * Represents current state of the mutex. + */ + bool locked; +}; + +#endif //LIGHT_DETECTOR_MUTEX_H diff --git a/Core/External/Tools/Sequence/sequence.cpp b/Core/External/Tools/Sequence/sequence.cpp new file mode 100644 index 0000000..f15a2a8 --- /dev/null +++ b/Core/External/Tools/Sequence/sequence.cpp @@ -0,0 +1,46 @@ +#include "sequence.h" + +template +int Sequence::traverse_with_break(std::function callback) { + while (!sequence.empty()) { + if (callback(sequence.front()) != EXIT_SUCCESS) { + return EXIT_FAILURE; + } + + sequence.pop(); + } + + return EXIT_SUCCESS; +} + +template +void Sequence::traverse_with_skip(std::function callback) { + std::queue vacated_queue; + + while (!sequence.empty()) { + if (callback(sequence.front()) != EXIT_SUCCESS) { + vacated_queue.push(sequence.front()); + } + + sequence.pop(); + } + + while (!vacated_queue.empty()) { + sequence.push(vacated_queue.front()); + + vacated_queue.pop(); + } +} + +template +void Sequence::add(T src) { + sequence.push(src); +} + +template +bool Sequence::is_empty() { + return sequence.empty(); +} + +template class Sequence; +template class Sequence>; \ No newline at end of file diff --git a/Core/External/Tools/Sequence/sequence.h b/Core/External/Tools/Sequence/sequence.h new file mode 100644 index 0000000..28ba88d --- /dev/null +++ b/Core/External/Tools/Sequence/sequence.h @@ -0,0 +1,54 @@ +#ifndef LIGHT_DETECTOR_SEQUENCE_H +#define LIGHT_DETECTOR_SEQUENCE_H + +#include +#include +#include + +#include "stm32l4xx_hal.h" + +#include "request.h" + +/** + * Represents sequence wrapper implementation. + * + * @tparam T given type of the content for sequence. + */ +template +class Sequence { +public: + /** + * Iterates over all available content and removes it from the sequence. If error occurs, then the execution + * is stopped and task is still present in the loop. + * + * @param callback - given callback to be called for each iteration. + * @return status of the performed operation. + */ + int traverse_with_break(std::function callback); + + /** + * Iterates over all available content and removes it from the sequence. If error occurs, then the execution is skipped + * and task is still present in the loop. + * + * @param callback - given callback to be called for each iteration. + */ + void traverse_with_skip(std::function callback); + + /** + * Adds new value to the sequence. + * + * @param src - given value to be added to the sequence. + */ + void add(T src); + + /** + * Checks if the sequence is empty. + * + * @return result of the check. + */ + bool is_empty(); +private: + std::queue sequence; +}; + +#endif //LIGHT_DETECTOR_SEQUENCE_H diff --git a/Core/Inc/dev_config.h b/Core/Inc/dev_config.h deleted file mode 100644 index 0243922..0000000 --- a/Core/Inc/dev_config.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef _DEV_CONFIG_H_ -#define _DEV_CONFIG_H_ -/***************************************************************************** - ------------------------------------------------------------------------ - |\\\ ///| - |\\\ Hardware interface ///| - ------------------------------------------------------------------------ -*****************************************************************************/ -#include "main.h" - -#include -#include -#include - -#define DEV_SPI 0 -#define DEV_I2C 1 -/** - * data -**/ -#define UBYTE uint8_t -#define UWORD uint16_t -#define UDOUBLE uint32_t - -#define INT_PIN INT_GPIO_Port,INT_Pin - -/** - * GPIO read and write -**/ -#define DEV_Digital_Write(_pin, _value) HAL_GPIO_WritePin(_pin, _value == 0? GPIO_PIN_RESET:GPIO_PIN_SET) -#define DEV_Digital_Read(_pin) HAL_GPIO_ReadPin(_pin) - -/*------------------------------------------------------------------------------------------------------*/ -uint8_t DEV_ModuleInit(I2C_HandleTypeDef *communicator); -void DEV_ModuleExit(void); - -void DEV_I2C_Init(uint8_t Add); -void I2C_Write_Byte(uint8_t Cmd, uint8_t value); -int I2C_Read_Byte(uint8_t Cmd); -int I2C_Read_Word(uint8_t Cmd); - -void DEV_GPIO_Mode(GPIO_TypeDef* GPIO_Port, UWORD Pin, UWORD mode); -//void DEV_Digital_Write(UWORD Pin, UBYTE Value); -//UBYTE DEV_Digital_Read(UWORD Pin); - -void DEV_Delay_ms(UDOUBLE xms); - -void DEV_SPI_WriteByte(UBYTE Value); -void DEV_SPI_Write_nByte(uint8_t *pData, uint32_t Len); - -#endif diff --git a/Core/Inc/dma.h b/Core/Inc/dma.h new file mode 100644 index 0000000..2b6d6a6 --- /dev/null +++ b/Core/Inc/dma.h @@ -0,0 +1,53 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file dma.h + * @brief This file contains all the function prototypes for + * the dma.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __DMA_H__ +#define __DMA_H__ + +#include "main.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ + +/* DMA memory to memory transfer handles -------------------------------------*/ + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_DMA_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __DMA_H__ */ + diff --git a/Core/Inc/gpio.h b/Core/Inc/gpio.h new file mode 100644 index 0000000..fa2ec1d --- /dev/null +++ b/Core/Inc/gpio.h @@ -0,0 +1,50 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file gpio.h + * @brief This file contains all the function prototypes for + * the gpio.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __GPIO_H__ +#define __GPIO_H__ + +#include "main.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_GPIO_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif +#endif /*__ GPIO_H__ */ + diff --git a/Core/Inc/i2c.h b/Core/Inc/i2c.h new file mode 100644 index 0000000..7d34595 --- /dev/null +++ b/Core/Inc/i2c.h @@ -0,0 +1,51 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file i2c.h + * @brief This file contains all the function prototypes for + * the i2c.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __I2C_H__ +#define __I2C_H__ + +#include "main.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_I2C1_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __I2C_H__ */ + diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 76c3557..15b7880 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -22,6 +22,9 @@ #ifndef __MAIN_H #define __MAIN_H +#include "scheduler.h" +#include "state.h" + #ifdef __cplusplus extern "C" { #endif @@ -47,9 +50,6 @@ extern "C" { /* Exported macro ------------------------------------------------------------*/ /* USER CODE BEGIN EM */ -#define INT_Pin GPIO_PIN_9 -#define INT_GPIO_Port GPIOA - /* USER CODE END EM */ /* Exported functions prototypes ---------------------------------------------*/ diff --git a/Core/Inc/stm32l4xx_hal_conf.h b/Core/Inc/stm32l4xx_hal_conf.h index e2720e4..85f399c 100644 --- a/Core/Inc/stm32l4xx_hal_conf.h +++ b/Core/Inc/stm32l4xx_hal_conf.h @@ -77,7 +77,7 @@ /*#define HAL_SPI_MODULE_ENABLED */ /*#define HAL_SRAM_MODULE_ENABLED */ /*#define HAL_SWPMI_MODULE_ENABLED */ -/*#define HAL_TIM_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED /*#define HAL_TSC_MODULE_ENABLED */ #define HAL_UART_MODULE_ENABLED /*#define HAL_USART_MODULE_ENABLED */ diff --git a/Core/Inc/stm32l4xx_it.h b/Core/Inc/stm32l4xx_it.h index 4c7b554..a74a632 100644 --- a/Core/Inc/stm32l4xx_it.h +++ b/Core/Inc/stm32l4xx_it.h @@ -57,8 +57,10 @@ void PendSV_Handler(void); void SysTick_Handler(void); void DMA1_Channel6_IRQHandler(void); void DMA1_Channel7_IRQHandler(void); +void TIM1_UP_TIM16_IRQHandler(void); void I2C1_EV_IRQHandler(void); void I2C1_ER_IRQHandler(void); +void USART2_IRQHandler(void); void EXTI15_10_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Core/Inc/tim.h b/Core/Inc/tim.h new file mode 100644 index 0000000..b50c37c --- /dev/null +++ b/Core/Inc/tim.h @@ -0,0 +1,53 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file tim.h + * @brief This file contains all the function prototypes for + * the tim.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __TIM_H__ +#define __TIM_H__ + +#include "main.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +extern TIM_HandleTypeDef htim16; + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_TIM16_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __TIM_H__ */ + diff --git a/Core/Inc/tsl2591x.h b/Core/Inc/tsl2591x.h deleted file mode 100644 index 8d645e0..0000000 --- a/Core/Inc/tsl2591x.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef _TSL2591_H_ -#define _TSL2591_H_ - -#include "dev_config.h" - -#define TSL2591_ADDRESS (0x29) - -#define COMMAND_BIT (0xA0) -//Register (0x00) -#define ENABLE_REGISTER (0x00) -#define ENABLE_POWERON (0x01) -#define ENABLE_POWEROFF (0x00) -#define ENABLE_AEN (0x02) -#define ENABLE_AIEN (0x10) -#define ENABLE_SAI (0x40) -#define ENABLE_NPIEN (0x80) - -#define CONTROL_REGISTER (0x01) -#define SRESET (0x80) -//AGAIN -#define LOW_AGAIN (0X00)//Low gain (1x) -#define MEDIUM_AGAIN (0X10)//Medium gain (25x) -#define HIGH_AGAIN (0X20)//High gain (428x) -#define MAX_AGAIN (0x30)//Max gain (9876x) -//ATIME -#define ATIME_100MS (0x00)//100 millis MAX COUNT 36863 -#define ATIME_200MS (0x01)//200 millis MAX COUNT 65535 -#define ATIME_300MS (0x02)//300 millis -#define ATIME_400MS (0x03)//400 millis -#define ATIME_500MS (0x04)//500 millis -#define ATIME_600MS (0x05)//600 millis - -#define AILTL_REGISTER (0x04) -#define AILTH_REGISTER (0x05) -#define AIHTL_REGISTER (0x06) -#define AIHTH_REGISTER (0x07) -#define NPAILTL_REGISTER (0x08) -#define NPAILTH_REGISTER (0x09) -#define NPAIHTL_REGISTER (0x0A) -#define NPAIHTH_REGISTER (0x0B) - -#define PERSIST_REGISTER (0x0C) -// Bits 3:0 -// 0000 Every ALS cycle generates an interrupt -// 0001 Any value outside of threshold range -// 0010 2 consecutive values out of range -// 0011 3 consecutive values out of range -// 0100 5 consecutive values out of range -// 0101 10 consecutive values out of range -// 0110 15 consecutive values out of range -// 0111 20 consecutive values out of range -// 1000 25 consecutive values out of range -// 1001 30 consecutive values out of range -// 1010 35 consecutive values out of range -// 1011 40 consecutive values out of range -// 1100 45 consecutive values out of range -// 1101 50 consecutive values out of range -// 1110 55 consecutive values out of range -// 1111 60 consecutive values out of range - -#define ID_REGISTER (0x12) - -#define STATUS_REGISTER (0x13)#read only - -#define CHAN0_LOW (0x14) -#define CHAN0_HIGH (0x15) -#define CHAN1_LOW (0x16) -#define CHAN1_HIGH (0x14) - -//LUX_DF GA * 53 GA is the Glass Attenuation factor -#define LUX_DF (762.0) -// LUX_DF 408.0 -#define MAX_COUNT_100MS (36863) // 0x8FFF -#define MAX_COUNT (65535) // 0xFFFF - -/***********************************************************************************/ -UBYTE TSL2591_Init(void); -UWORD TSL2591_Read_Lux(void); -void TSL2591_SET_InterruptThreshold(UWORD SET_LOW, UWORD SET_HIGH); -void TSL2591_SET_LuxInterrupt(UWORD SET_LOW, UWORD SET_HIGH); - -#endif diff --git a/Core/Inc/usart.h b/Core/Inc/usart.h new file mode 100644 index 0000000..e722c5f --- /dev/null +++ b/Core/Inc/usart.h @@ -0,0 +1,51 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file usart.h + * @brief This file contains all the function prototypes for + * the usart.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USART_H__ +#define __USART_H__ + +#include "main.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_USART2_UART_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USART_H__ */ + diff --git a/Core/Src/dev_config.c b/Core/Src/dev_config.c deleted file mode 100644 index 5d4f280..0000000 --- a/Core/Src/dev_config.c +++ /dev/null @@ -1,142 +0,0 @@ -/***************************************************************************** -* | File : DEV_Config.c -* | Author : Waveshare team -* | Function : Hardware underlying interface -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-09-17 -* | Info : Basic version -* -******************************************************************************/ -#include "DEV_Config.h" - -I2C_HandleTypeDef *h2c1; -uint8_t DEV_SPI_Device = 0, DEV_I2C_Device = 0; -uint8_t I2C_ADDR; -/****************************************************************************** -function: GPIO Function initialization and transfer -parameter: -Info: -******************************************************************************/ -void DEV_GPIO_Mode(GPIO_TypeDef* GPIO_Port, UWORD Pin, UWORD mode) -{ - /* - 0: INPT - 1: OUTP - */ - GPIO_InitTypeDef GPIO_InitStruct = {0}; - GPIO_InitStruct.Pin = Pin; - if(mode == GPIO_MODE_INPUT || mode == 0){ - GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - }else if(mode == GPIO_MODE_OUTPUT_PP || mode == 1){ - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - }else{ - GPIO_InitStruct.Mode = mode; - } - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIO_Port, &GPIO_InitStruct); -} - - -/** - * delay x ms -**/ -void DEV_Delay_ms(UDOUBLE xms) -{ - HAL_Delay(xms); -} - - -void GPIO_Config(void) -{ - //DEV_GPIO_Mode(INT_PIN, 0); -} - -/****************************************************************************** -function: SPI Function initialization and transfer -parameter: -Info: -******************************************************************************/ -void DEV_SPI_Init() -{ -#if DEV_SPI - DEV_SPI_Device = 1; -#endif -} - -void DEV_SPI_WriteByte(uint8_t Value) -{ -#if DEV_SPI - -#endif -} - -void DEV_SPI_Write_nByte(uint8_t *pData, uint32_t Len) -{ -#if DEV_SPI - -#endif -} -/****************************************************************************** -function: I2C Function initialization and transfer -parameter: -Info: -******************************************************************************/ -void DEV_I2C_Init(uint8_t Add) -{ -#if DEV_I2C - DEV_I2C_Device = 1; - I2C_ADDR = Add; -#endif -} - -void I2C_Write_Byte(uint8_t Cmd, uint8_t value) -{ -#if DEV_I2C - UBYTE Buf[1] = {0}; - Buf[0] = value; - HAL_I2C_Mem_Write(h2c1, I2C_ADDR, Cmd, I2C_MEMADD_SIZE_8BIT, Buf, 1, 0x20); -#endif -} - -int I2C_Read_Byte(uint8_t Cmd) -{ -#if DEV_I2C - UBYTE Buf[1]={0}; - HAL_I2C_Mem_Read(h2c1, I2C_ADDR+1, Cmd, I2C_MEMADD_SIZE_8BIT, Buf, 1, 0x20); - return Buf[0]; -#endif -} - -int I2C_Read_Word(uint8_t Cmd) -{ -#if DEV_I2C - UBYTE Buf[2]={0, 0}; - HAL_I2C_Mem_Read(h2c1, I2C_ADDR+1, Cmd, I2C_MEMADD_SIZE_8BIT, Buf, 2, 0x20); - return ((Buf[1] << 8) | (Buf[0] & 0xff)); -#endif -} -/****************************************************************************** -function: Module Initialize, the library and initialize the pins, SPI protocol -parameter: -Info: -******************************************************************************/ -UBYTE DEV_ModuleInit(I2C_HandleTypeDef *communicator) -{ - h2c1 = communicator; - GPIO_Config(); - DEV_I2C_Init(0x29<<1); - return 0; -} - -/****************************************************************************** -function: Module exits, closes SPI and BCM2835 library -parameter: -Info: -******************************************************************************/ -void DEV_ModuleExit(void) -{ - -} - diff --git a/Core/Src/dma.cpp b/Core/Src/dma.cpp new file mode 100644 index 0000000..bfde087 --- /dev/null +++ b/Core/Src/dma.cpp @@ -0,0 +1,58 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file dma.c + * @brief This file provides code for the configuration + * of all the requested memory to memory DMA transfers. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "dma.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/*----------------------------------------------------------------------------*/ +/* Configure DMA */ +/*----------------------------------------------------------------------------*/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/** + * Enable DMA controller clock + */ +void MX_DMA_Init(void) +{ + + /* DMA controller clock enable */ + __HAL_RCC_DMA1_CLK_ENABLE(); + + /* DMA interrupt init */ + /* DMA1_Channel6_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn); + /* DMA1_Channel7_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel7_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel7_IRQn); + +} + +/* USER CODE BEGIN 2 */ + +/* USER CODE END 2 */ + diff --git a/Core/Src/gpio.cpp b/Core/Src/gpio.cpp new file mode 100644 index 0000000..af187c4 --- /dev/null +++ b/Core/Src/gpio.cpp @@ -0,0 +1,77 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file gpio.c + * @brief This file provides code for the configuration + * of all used GPIO pins. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "gpio.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/*----------------------------------------------------------------------------*/ +/* Configure GPIO */ +/*----------------------------------------------------------------------------*/ +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/** Configure pins as + * Analog + * Input + * Output + * EVENT_OUT + * EXTI +*/ +void MX_GPIO_Init(void) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOH_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); + + /*Configure GPIO pin : PC13 */ + GPIO_InitStruct.Pin = GPIO_PIN_13; + GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + /*Configure GPIO pin : PA5 */ + GPIO_InitStruct.Pin = GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* EXTI interrupt init*/ + HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); + +} + +/* USER CODE BEGIN 2 */ + +/* USER CODE END 2 */ diff --git a/Core/Src/i2c.cpp b/Core/Src/i2c.cpp new file mode 100644 index 0000000..990ac91 --- /dev/null +++ b/Core/Src/i2c.cpp @@ -0,0 +1,190 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file i2c.c + * @brief This file provides code for the configuration + * of the I2C instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "i2c.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +I2C_HandleTypeDef hi2c1; +DMA_HandleTypeDef hdma_i2c1_rx; +DMA_HandleTypeDef hdma_i2c1_tx; + +/* I2C1 init function */ +void MX_I2C1_Init(void) +{ + + /* USER CODE BEGIN I2C1_Init 0 */ + + /* USER CODE END I2C1_Init 0 */ + + /* USER CODE BEGIN I2C1_Init 1 */ + + /* USER CODE END I2C1_Init 1 */ + hi2c1.Instance = I2C1; + hi2c1.Init.Timing = 0x00000E14; + hi2c1.Init.OwnAddress1 = 0; + hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c1.Init.OwnAddress2 = 0; + hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c1) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN I2C1_Init 2 */ + + /* USER CODE END I2C1_Init 2 */ + +} + +void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(i2cHandle->Instance==I2C1) + { + /* USER CODE BEGIN I2C1_MspInit 0 */ + + /* USER CODE END I2C1_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1; + PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**I2C1 GPIO Configuration + PB8 ------> I2C1_SCL + PB9 ------> I2C1_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* I2C1 clock enable */ + __HAL_RCC_I2C1_CLK_ENABLE(); + + /* I2C1 DMA Init */ + /* I2C1_RX Init */ + hdma_i2c1_rx.Instance = DMA1_Channel7; + hdma_i2c1_rx.Init.Request = DMA_REQUEST_3; + hdma_i2c1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_i2c1_rx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_i2c1_rx.Init.MemInc = DMA_MINC_ENABLE; + hdma_i2c1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_i2c1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_i2c1_rx.Init.Mode = DMA_NORMAL; + hdma_i2c1_rx.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_i2c1_rx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(i2cHandle,hdmarx,hdma_i2c1_rx); + + /* I2C1_TX Init */ + hdma_i2c1_tx.Instance = DMA1_Channel6; + hdma_i2c1_tx.Init.Request = DMA_REQUEST_3; + hdma_i2c1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; + hdma_i2c1_tx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_i2c1_tx.Init.MemInc = DMA_MINC_ENABLE; + hdma_i2c1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_i2c1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_i2c1_tx.Init.Mode = DMA_NORMAL; + hdma_i2c1_tx.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_i2c1_tx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(i2cHandle,hdmatx,hdma_i2c1_tx); + + /* I2C1 interrupt Init */ + HAL_NVIC_SetPriority(I2C1_EV_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C1_EV_IRQn); + HAL_NVIC_SetPriority(I2C1_ER_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(I2C1_ER_IRQn); + /* USER CODE BEGIN I2C1_MspInit 1 */ + + /* USER CODE END I2C1_MspInit 1 */ + } +} + +void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle) +{ + + if(i2cHandle->Instance==I2C1) + { + /* USER CODE BEGIN I2C1_MspDeInit 0 */ + + /* USER CODE END I2C1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C1_CLK_DISABLE(); + + /**I2C1 GPIO Configuration + PB8 ------> I2C1_SCL + PB9 ------> I2C1_SDA + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_9); + + /* I2C1 DMA DeInit */ + HAL_DMA_DeInit(i2cHandle->hdmarx); + HAL_DMA_DeInit(i2cHandle->hdmatx); + + /* I2C1 interrupt Deinit */ + HAL_NVIC_DisableIRQ(I2C1_EV_IRQn); + HAL_NVIC_DisableIRQ(I2C1_ER_IRQn); + /* USER CODE BEGIN I2C1_MspDeInit 1 */ + + /* USER CODE END I2C1_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/Core/Src/main.c b/Core/Src/main.c deleted file mode 100644 index a994703..0000000 --- a/Core/Src/main.c +++ /dev/null @@ -1,357 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file : main.c - * @brief : Main program body - ****************************************************************************** - * @attention - * - * Copyright (c) 2024 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ - -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN PTD */ - -/* USER CODE END PTD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN PD */ - -/* USER CODE END PD */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN PM */ - -/* USER CODE END PM */ - -/* Private variables ---------------------------------------------------------*/ -I2C_HandleTypeDef hi2c1; -DMA_HandleTypeDef hdma_i2c1_rx; -DMA_HandleTypeDef hdma_i2c1_tx; - -UART_HandleTypeDef huart2; - -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ - -/* Private function prototypes -----------------------------------------------*/ -void SystemClock_Config(void); -static void MX_GPIO_Init(void); -static void MX_DMA_Init(void); -static void MX_I2C1_Init(void); -static void MX_USART2_UART_Init(void); -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ - -/* Private user code ---------------------------------------------------------*/ -/* USER CODE BEGIN 0 */ - -void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) -{ - if(GPIO_Pin == GPIO_PIN_13) { - HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); - - const uint8_t test[] = "it works\n"; - - HAL_UART_Transmit(&huart2, test, sizeof(test), 25); -// -// HAL_Delay(1000); -// -// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); - } else { - __NOP(); - } -} - -/* USER CODE END 0 */ - -/** - * @brief The application entry point. - * @retval int - */ -int main(void) -{ - /* USER CODE BEGIN 1 */ - - /* USER CODE END 1 */ - - /* MCU Configuration--------------------------------------------------------*/ - - /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ - HAL_Init(); - - /* USER CODE BEGIN Init */ - - /* USER CODE END Init */ - - /* Configure the system clock */ - SystemClock_Config(); - - /* USER CODE BEGIN SysInit */ - - /* USER CODE END SysInit */ - - /* Initialize all configured peripherals */ - MX_GPIO_Init(); - MX_DMA_Init(); - MX_I2C1_Init(); - MX_USART2_UART_Init(); - /* USER CODE BEGIN 2 */ - - GPIO_InitTypeDef GPIO_InitStruct; - - GPIO_InitStruct.Pin = GPIO_PIN_5; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_PULLUP; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - /* USER CODE END 2 */ - - DEV_ModuleInit(&hi2c1); - - TSL2591_Init(); - - /* Infinite loop */ - /* USER CODE BEGIN WHILE */ - while (1) - { - /* USER CODE END WHILE */ - - printf("Lux = %d\r\n",TSL2591_Read_Lux()); - TSL2591_SET_LuxInterrupt(50,200); - printf("\r\n"); - - /* USER CODE BEGIN 3 */ - } - /* USER CODE END 3 */ -} - -/** - * @brief System Clock Configuration - * @retval None - */ -void SystemClock_Config(void) -{ - RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - - /** Configure the main internal regulator output voltage - */ - if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) - { - Error_Handler(); - } - - /** Initializes the RCC Oscillators according to the specified parameters - * in the RCC_OscInitTypeDef structure. - */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI; - RCC_OscInitStruct.MSIState = RCC_MSI_ON; - RCC_OscInitStruct.MSICalibrationValue = 0; - RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_6; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - { - Error_Handler(); - } - - /** Initializes the CPU, AHB and APB buses clocks - */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI; - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; - RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) - { - Error_Handler(); - } -} - -/** - * @brief I2C1 Initialization Function - * @param None - * @retval None - */ -static void MX_I2C1_Init(void) -{ - - /* USER CODE BEGIN I2C1_Init 0 */ - - /* USER CODE END I2C1_Init 0 */ - - /* USER CODE BEGIN I2C1_Init 1 */ - - /* USER CODE END I2C1_Init 1 */ - hi2c1.Instance = I2C1; - hi2c1.Init.Timing = 0x00000E14; - hi2c1.Init.OwnAddress1 = 0; - hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - hi2c1.Init.OwnAddress2 = 0; - hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - if (HAL_I2C_Init(&hi2c1) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Analogue filter - */ - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK) - { - Error_Handler(); - } - - /** Configure Digital filter - */ - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN I2C1_Init 2 */ - - /* USER CODE END I2C1_Init 2 */ - -} - -/** - * @brief USART2 Initialization Function - * @param None - * @retval None - */ -static void MX_USART2_UART_Init(void) -{ - - /* USER CODE BEGIN USART2_Init 0 */ - - /* USER CODE END USART2_Init 0 */ - - /* USER CODE BEGIN USART2_Init 1 */ - - /* USER CODE END USART2_Init 1 */ - huart2.Instance = USART2; - huart2.Init.BaudRate = 115200; - huart2.Init.WordLength = UART_WORDLENGTH_8B; - huart2.Init.StopBits = UART_STOPBITS_1; - huart2.Init.Parity = UART_PARITY_NONE; - huart2.Init.Mode = UART_MODE_TX_RX; - huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart2.Init.OverSampling = UART_OVERSAMPLING_16; - huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - if (HAL_UART_Init(&huart2) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN USART2_Init 2 */ - - /* USER CODE END USART2_Init 2 */ - -} - -/** - * Enable DMA controller clock - */ -static void MX_DMA_Init(void) -{ - - /* DMA controller clock enable */ - __HAL_RCC_DMA1_CLK_ENABLE(); - - /* DMA interrupt init */ - /* DMA1_Channel6_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn); - /* DMA1_Channel7_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel7_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Channel7_IRQn); - -} - -/** - * @brief GPIO Initialization Function - * @param None - * @retval None - */ -static void MX_GPIO_Init(void) -{ - GPIO_InitTypeDef GPIO_InitStruct = {0}; -/* USER CODE BEGIN MX_GPIO_Init_1 */ -/* USER CODE END MX_GPIO_Init_1 */ - - /* GPIO Ports Clock Enable */ - __HAL_RCC_GPIOC_CLK_ENABLE(); - __HAL_RCC_GPIOA_CLK_ENABLE(); - __HAL_RCC_GPIOB_CLK_ENABLE(); - - /*Configure GPIO pin : PC13 */ - GPIO_InitStruct.Pin = GPIO_PIN_13; - GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - - /* EXTI interrupt init*/ - HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); - -/* USER CODE BEGIN MX_GPIO_Init_2 */ -/* USER CODE END MX_GPIO_Init_2 */ -} - -/* USER CODE BEGIN 4 */ - -/* USER CODE END 4 */ - -/** - * @brief This function is executed in case of error occurrence. - * @retval None - */ -void Error_Handler(void) -{ - /* USER CODE BEGIN Error_Handler_Debug */ - /* User can add his own implementation to report the HAL error return state */ - __disable_irq(); - while (1) - { - } - /* USER CODE END Error_Handler_Debug */ -} - -#ifdef USE_FULL_ASSERT -/** - * @brief Reports the name of the source file and the source line number - * where the assert_param error has occurred. - * @param file: pointer to the source file name - * @param line: assert_param error line source number - * @retval None - */ -void assert_failed(uint8_t *file, uint32_t line) -{ - /* USER CODE BEGIN 6 */ - /* User can add his own implementation to report the file name and line number, - ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ - /* USER CODE END 6 */ -} -#endif /* USE_FULL_ASSERT */ diff --git a/Core/Src/main.cpp b/Core/Src/main.cpp new file mode 100644 index 0000000..a7b7ba9 --- /dev/null +++ b/Core/Src/main.cpp @@ -0,0 +1,216 @@ +/* USER CODE BEGIN Header */ + +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "dma.h" +#include "i2c.h" +#include "tim.h" +#include "usart.h" +#include "gpio.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/** + * Represents timer callback. + * + * @param htim - incoming timer tick data. + */ +void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { + HAL_TIM_Base_Stop_IT(&htim16); + + if (htim == &htim16) { + Scheduler::schedule_tick(); + } else { + __NOP(); + } + + HAL_TIM_Base_Start_IT(&htim16); +} + +/** + * Represents button click callback. + * + * @param GPIO_Pin - incoming button click event data. + */ +void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { + if (GPIO_Pin == GPIO_PIN_13) { + if (!State::get_button_mutex().is_locked()) { + State::get_button_mutex().lock(); + + Scheduler::schedule_status_check(); + } + } else { + __NOP(); + } +} + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) { + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_DMA_Init(); + MX_I2C1_Init(); + MX_USART2_UART_Init(); + MX_TIM16_Init(); + /* USER CODE BEGIN 2 */ + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) { + if (!TSL2591X::is_configured()) { + if (TSL2591X::is_available()) { + TSL2591X::init(); + + Indicator::toggle_initialization_success(); + + HAL_TIM_Base_Start_IT(&htim16); + } else { + Indicator::toggle_initialization_failure(); + } + } else { + State::get_task_sequence().traverse_with_skip([](const std::function &callback) -> int { + return callback(); + }); + } + + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) { + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) { + Error_Handler(); + } + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI; + RCC_OscInitStruct.MSIState = RCC_MSI_ON; + RCC_OscInitStruct.MSICalibrationValue = 0; + RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_6; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { + Error_Handler(); + } + + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK + | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) { + Error_Handler(); + } +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) { + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + __disable_irq(); + while (1) { + } + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ \ No newline at end of file diff --git a/Core/Src/stm32l4xx_hal_msp.c b/Core/Src/stm32l4xx_hal_msp.c deleted file mode 100644 index 4b15382..0000000 --- a/Core/Src/stm32l4xx_hal_msp.c +++ /dev/null @@ -1,286 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file stm32l4xx_hal_msp.c - * @brief This file provides code for the MSP Initialization - * and de-Initialization codes. - ****************************************************************************** - * @attention - * - * Copyright (c) 2024 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ -extern DMA_HandleTypeDef hdma_i2c1_rx; - -extern DMA_HandleTypeDef hdma_i2c1_tx; - -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN TD */ - -/* USER CODE END TD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN Define */ - -/* USER CODE END Define */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN Macro */ - -/* USER CODE END Macro */ - -/* Private variables ---------------------------------------------------------*/ -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ - -/* Private function prototypes -----------------------------------------------*/ -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ - -/* External functions --------------------------------------------------------*/ -/* USER CODE BEGIN ExternalFunctions */ - -/* USER CODE END ExternalFunctions */ - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ -/** - * Initializes the Global MSP. - */ -void HAL_MspInit(void) -{ - /* USER CODE BEGIN MspInit 0 */ - - /* USER CODE END MspInit 0 */ - - __HAL_RCC_SYSCFG_CLK_ENABLE(); - __HAL_RCC_PWR_CLK_ENABLE(); - - /* System interrupt init*/ - - /* USER CODE BEGIN MspInit 1 */ - - /* USER CODE END MspInit 1 */ -} - -/** -* @brief I2C MSP Initialization -* This function configures the hardware resources used in this example -* @param hi2c: I2C handle pointer -* @retval None -*/ -void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) -{ - GPIO_InitTypeDef GPIO_InitStruct = {0}; - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - if(hi2c->Instance==I2C1) - { - /* USER CODE BEGIN I2C1_MspInit 0 */ - - /* USER CODE END I2C1_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1; - PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - __HAL_RCC_GPIOB_CLK_ENABLE(); - /**I2C1 GPIO Configuration - PB8 ------> I2C1_SCL - PB9 ------> I2C1_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /* Peripheral clock enable */ - __HAL_RCC_I2C1_CLK_ENABLE(); - - /* I2C1 DMA Init */ - /* I2C1_RX Init */ - hdma_i2c1_rx.Instance = DMA1_Channel7; - hdma_i2c1_rx.Init.Request = DMA_REQUEST_3; - hdma_i2c1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; - hdma_i2c1_rx.Init.PeriphInc = DMA_PINC_DISABLE; - hdma_i2c1_rx.Init.MemInc = DMA_MINC_ENABLE; - hdma_i2c1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - hdma_i2c1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - hdma_i2c1_rx.Init.Mode = DMA_NORMAL; - hdma_i2c1_rx.Init.Priority = DMA_PRIORITY_LOW; - if (HAL_DMA_Init(&hdma_i2c1_rx) != HAL_OK) - { - Error_Handler(); - } - - __HAL_LINKDMA(hi2c,hdmarx,hdma_i2c1_rx); - - /* I2C1_TX Init */ - hdma_i2c1_tx.Instance = DMA1_Channel6; - hdma_i2c1_tx.Init.Request = DMA_REQUEST_3; - hdma_i2c1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; - hdma_i2c1_tx.Init.PeriphInc = DMA_PINC_DISABLE; - hdma_i2c1_tx.Init.MemInc = DMA_MINC_ENABLE; - hdma_i2c1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - hdma_i2c1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - hdma_i2c1_tx.Init.Mode = DMA_NORMAL; - hdma_i2c1_tx.Init.Priority = DMA_PRIORITY_LOW; - if (HAL_DMA_Init(&hdma_i2c1_tx) != HAL_OK) - { - Error_Handler(); - } - - __HAL_LINKDMA(hi2c,hdmatx,hdma_i2c1_tx); - - /* I2C1 interrupt Init */ - HAL_NVIC_SetPriority(I2C1_EV_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C1_EV_IRQn); - HAL_NVIC_SetPriority(I2C1_ER_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(I2C1_ER_IRQn); - /* USER CODE BEGIN I2C1_MspInit 1 */ - - /* USER CODE END I2C1_MspInit 1 */ - } - -} - -/** -* @brief I2C MSP De-Initialization -* This function freeze the hardware resources used in this example -* @param hi2c: I2C handle pointer -* @retval None -*/ -void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c) -{ - if(hi2c->Instance==I2C1) - { - /* USER CODE BEGIN I2C1_MspDeInit 0 */ - - /* USER CODE END I2C1_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_I2C1_CLK_DISABLE(); - - /**I2C1 GPIO Configuration - PB8 ------> I2C1_SCL - PB9 ------> I2C1_SDA - */ - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8); - - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_9); - - /* I2C1 DMA DeInit */ - HAL_DMA_DeInit(hi2c->hdmarx); - HAL_DMA_DeInit(hi2c->hdmatx); - - /* I2C1 interrupt DeInit */ - HAL_NVIC_DisableIRQ(I2C1_EV_IRQn); - HAL_NVIC_DisableIRQ(I2C1_ER_IRQn); - /* USER CODE BEGIN I2C1_MspDeInit 1 */ - - /* USER CODE END I2C1_MspDeInit 1 */ - } - -} - -/** -* @brief UART MSP Initialization -* This function configures the hardware resources used in this example -* @param huart: UART handle pointer -* @retval None -*/ -void HAL_UART_MspInit(UART_HandleTypeDef* huart) -{ - GPIO_InitTypeDef GPIO_InitStruct = {0}; - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - if(huart->Instance==USART2) - { - /* USER CODE BEGIN USART2_MspInit 0 */ - - /* USER CODE END USART2_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2; - PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - { - Error_Handler(); - } - - /* Peripheral clock enable */ - __HAL_RCC_USART2_CLK_ENABLE(); - - __HAL_RCC_GPIOA_CLK_ENABLE(); - /**USART2 GPIO Configuration - PA2 ------> USART2_TX - PA3 ------> USART2_RX - */ - GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF7_USART2; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - /* USER CODE BEGIN USART2_MspInit 1 */ - - /* USER CODE END USART2_MspInit 1 */ - } - -} - -/** -* @brief UART MSP De-Initialization -* This function freeze the hardware resources used in this example -* @param huart: UART handle pointer -* @retval None -*/ -void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) -{ - if(huart->Instance==USART2) - { - /* USER CODE BEGIN USART2_MspDeInit 0 */ - - /* USER CODE END USART2_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_USART2_CLK_DISABLE(); - - /**USART2 GPIO Configuration - PA2 ------> USART2_TX - PA3 ------> USART2_RX - */ - HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3); - - /* USER CODE BEGIN USART2_MspDeInit 1 */ - - /* USER CODE END USART2_MspDeInit 1 */ - } - -} - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ diff --git a/Core/Src/stm32l4xx_hal_msp.cpp b/Core/Src/stm32l4xx_hal_msp.cpp new file mode 100644 index 0000000..f7a5980 --- /dev/null +++ b/Core/Src/stm32l4xx_hal_msp.cpp @@ -0,0 +1,82 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32l4xx_hal_msp.c + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/Core/Src/stm32l4xx_it.c b/Core/Src/stm32l4xx_it.cpp similarity index 87% rename from Core/Src/stm32l4xx_it.c rename to Core/Src/stm32l4xx_it.cpp index b30fb82..63875b9 100644 --- a/Core/Src/stm32l4xx_it.c +++ b/Core/Src/stm32l4xx_it.cpp @@ -58,6 +58,8 @@ extern DMA_HandleTypeDef hdma_i2c1_rx; extern DMA_HandleTypeDef hdma_i2c1_tx; extern I2C_HandleTypeDef hi2c1; +extern TIM_HandleTypeDef htim16; +extern UART_HandleTypeDef huart2; /* USER CODE BEGIN EV */ /* USER CODE END EV */ @@ -228,6 +230,20 @@ void DMA1_Channel7_IRQHandler(void) /* USER CODE END DMA1_Channel7_IRQn 1 */ } +/** + * @brief This function handles TIM1 update interrupt and TIM16 global interrupt. + */ +void TIM1_UP_TIM16_IRQHandler(void) +{ + /* USER CODE BEGIN TIM1_UP_TIM16_IRQn 0 */ + + /* USER CODE END TIM1_UP_TIM16_IRQn 0 */ + HAL_TIM_IRQHandler(&htim16); + /* USER CODE BEGIN TIM1_UP_TIM16_IRQn 1 */ + + /* USER CODE END TIM1_UP_TIM16_IRQn 1 */ +} + /** * @brief This function handles I2C1 event interrupt. */ @@ -256,6 +272,20 @@ void I2C1_ER_IRQHandler(void) /* USER CODE END I2C1_ER_IRQn 1 */ } +/** + * @brief This function handles USART2 global interrupt. + */ +void USART2_IRQHandler(void) +{ + /* USER CODE BEGIN USART2_IRQn 0 */ + + /* USER CODE END USART2_IRQn 0 */ + HAL_UART_IRQHandler(&huart2); + /* USER CODE BEGIN USART2_IRQn 1 */ + + /* USER CODE END USART2_IRQn 1 */ +} + /** * @brief This function handles EXTI line[15:10] interrupts. */ diff --git a/Core/Src/syscalls.c b/Core/Src/syscalls.c deleted file mode 100644 index d190edf..0000000 --- a/Core/Src/syscalls.c +++ /dev/null @@ -1,176 +0,0 @@ -/** - ****************************************************************************** - * @file syscalls.c - * @author Auto-generated by STM32CubeIDE - * @brief STM32CubeIDE Minimal System calls file - * - * For more information about which c-functions - * need which of these lowlevel functions - * please consult the Newlib libc-manual - ****************************************************************************** - * @attention - * - * Copyright (c) 2020-2023 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ - -/* Includes */ -#include -#include -#include -#include -#include -#include -#include -#include - - -/* Variables */ -extern int __io_putchar(int ch) __attribute__((weak)); -extern int __io_getchar(void) __attribute__((weak)); - - -char *__env[1] = { 0 }; -char **environ = __env; - - -/* Functions */ -void initialise_monitor_handles() -{ -} - -int _getpid(void) -{ - return 1; -} - -int _kill(int pid, int sig) -{ - (void)pid; - (void)sig; - errno = EINVAL; - return -1; -} - -void _exit (int status) -{ - _kill(status, -1); - while (1) {} /* Make sure we hang here */ -} - -__attribute__((weak)) int _read(int file, char *ptr, int len) -{ - (void)file; - int DataIdx; - - for (DataIdx = 0; DataIdx < len; DataIdx++) - { - *ptr++ = __io_getchar(); - } - - return len; -} - -__attribute__((weak)) int _write(int file, char *ptr, int len) -{ - (void)file; - int DataIdx; - - for (DataIdx = 0; DataIdx < len; DataIdx++) - { - __io_putchar(*ptr++); - } - return len; -} - -int _close(int file) -{ - (void)file; - return -1; -} - - -int _fstat(int file, struct stat *st) -{ - (void)file; - st->st_mode = S_IFCHR; - return 0; -} - -int _isatty(int file) -{ - (void)file; - return 1; -} - -int _lseek(int file, int ptr, int dir) -{ - (void)file; - (void)ptr; - (void)dir; - return 0; -} - -int _open(char *path, int flags, ...) -{ - (void)path; - (void)flags; - /* Pretend like we always fail */ - return -1; -} - -int _wait(int *status) -{ - (void)status; - errno = ECHILD; - return -1; -} - -int _unlink(char *name) -{ - (void)name; - errno = ENOENT; - return -1; -} - -int _times(struct tms *buf) -{ - (void)buf; - return -1; -} - -int _stat(char *file, struct stat *st) -{ - (void)file; - st->st_mode = S_IFCHR; - return 0; -} - -int _link(char *old, char *new) -{ - (void)old; - (void)new; - errno = EMLINK; - return -1; -} - -int _fork(void) -{ - errno = EAGAIN; - return -1; -} - -int _execve(char *name, char **argv, char **env) -{ - (void)name; - (void)argv; - (void)env; - errno = ENOMEM; - return -1; -} diff --git a/Core/Src/sysmem.c b/Core/Src/sysmem.c deleted file mode 100644 index 921ecef..0000000 --- a/Core/Src/sysmem.c +++ /dev/null @@ -1,79 +0,0 @@ -/** - ****************************************************************************** - * @file sysmem.c - * @author Generated by STM32CubeIDE - * @brief STM32CubeIDE System Memory calls file - * - * For more information about which C functions - * need which of these lowlevel functions - * please consult the newlib libc manual - ****************************************************************************** - * @attention - * - * Copyright (c) 2023 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ - -/* Includes */ -#include -#include - -/** - * Pointer to the current high watermark of the heap usage - */ -static uint8_t *__sbrk_heap_end = NULL; - -/** - * @brief _sbrk() allocates memory to the newlib heap and is used by malloc - * and others from the C library - * - * @verbatim - * ############################################################################ - * # .data # .bss # newlib heap # MSP stack # - * # # # # Reserved by _Min_Stack_Size # - * ############################################################################ - * ^-- RAM start ^-- _end _estack, RAM end --^ - * @endverbatim - * - * This implementation starts allocating at the '_end' linker symbol - * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack - * The implementation considers '_estack' linker symbol to be RAM end - * NOTE: If the MSP stack, at any point during execution, grows larger than the - * reserved size, please increase the '_Min_Stack_Size'. - * - * @param incr Memory size - * @return Pointer to allocated memory - */ -void *_sbrk(ptrdiff_t incr) -{ - 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; - const uint8_t *max_heap = (uint8_t *)stack_limit; - uint8_t *prev_heap_end; - - /* Initialize heap end at first call */ - if (NULL == __sbrk_heap_end) - { - __sbrk_heap_end = &_end; - } - - /* Protect heap from growing into the reserved MSP stack */ - if (__sbrk_heap_end + incr > max_heap) - { - errno = ENOMEM; - return (void *)-1; - } - - prev_heap_end = __sbrk_heap_end; - __sbrk_heap_end += incr; - - return (void *)prev_heap_end; -} diff --git a/Core/Src/system_stm32l4xx.c b/Core/Src/system_stm32l4xx.cpp similarity index 100% rename from Core/Src/system_stm32l4xx.c rename to Core/Src/system_stm32l4xx.cpp diff --git a/Core/Src/tim.cpp b/Core/Src/tim.cpp new file mode 100644 index 0000000..9f616f5 --- /dev/null +++ b/Core/Src/tim.cpp @@ -0,0 +1,98 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file tim.c + * @brief This file provides code for the configuration + * of the TIM instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "tim.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +TIM_HandleTypeDef htim16; + +/* TIM16 init function */ +void MX_TIM16_Init(void) +{ + + /* USER CODE BEGIN TIM16_Init 0 */ + + /* USER CODE END TIM16_Init 0 */ + + /* USER CODE BEGIN TIM16_Init 1 */ + + /* USER CODE END TIM16_Init 1 */ + htim16.Instance = TIM16; + htim16.Init.Prescaler = 13; + htim16.Init.CounterMode = TIM_COUNTERMODE_UP; + htim16.Init.Period = 65535; + htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim16.Init.RepetitionCounter = 0; + htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim16) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM16_Init 2 */ + + /* USER CODE END TIM16_Init 2 */ + +} + +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) +{ + + if(tim_baseHandle->Instance==TIM16) + { + /* USER CODE BEGIN TIM16_MspInit 0 */ + + /* USER CODE END TIM16_MspInit 0 */ + /* TIM16 clock enable */ + __HAL_RCC_TIM16_CLK_ENABLE(); + + /* TIM16 interrupt Init */ + HAL_NVIC_SetPriority(TIM1_UP_TIM16_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(TIM1_UP_TIM16_IRQn); + /* USER CODE BEGIN TIM16_MspInit 1 */ + + /* USER CODE END TIM16_MspInit 1 */ + } +} + +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) +{ + + if(tim_baseHandle->Instance==TIM16) + { + /* USER CODE BEGIN TIM16_MspDeInit 0 */ + + /* USER CODE END TIM16_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM16_CLK_DISABLE(); + + /* TIM16 interrupt Deinit */ + HAL_NVIC_DisableIRQ(TIM1_UP_TIM16_IRQn); + /* USER CODE BEGIN TIM16_MspDeInit 1 */ + + /* USER CODE END TIM16_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/Core/Src/tsl2591x.c b/Core/Src/tsl2591x.c deleted file mode 100644 index 0de18b3..0000000 --- a/Core/Src/tsl2591x.c +++ /dev/null @@ -1,325 +0,0 @@ -/***************************************************************************** -* | File : TSL2591.c -* | Author : Waveshare team -* | Function : TSL2591 driver -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-09-17 -* | Info : Basic version -* -******************************************************************************/ -#include "dev_config.h" -#include "tsl2591x.h" - -UBYTE TSL2591_Gain, TSL2591_Time; -/****************************************************************************** -function: Read one byte of data to TSL2591 via I2C -parameter: - Addr: Register address -Info: -******************************************************************************/ -static UBYTE TSL2591_Read_Byte(UBYTE Addr) -{ - Addr = Addr | COMMAND_BIT; - return I2C_Read_Byte(Addr); -} - -/****************************************************************************** -function: Read one word of data to TSL2591 via I2C -parameter: - Addr: Register address -Info: -******************************************************************************/ -static UWORD TSL2591_Read_Word(UBYTE Addr) -{ - Addr = Addr | COMMAND_BIT; - return I2C_Read_Word(Addr); -} - -/****************************************************************************** -function: Send one byte of data to TSL2591 via I2C -parameter: - Addr: Register address - Value: Write to the value of the register -Info: -******************************************************************************/ -static void TSL2591_Write_Byte(UBYTE Addr, UBYTE Value) -{ - Addr = Addr | COMMAND_BIT; - I2C_Write_Byte(Addr, Value); -} - -/****************************************************************************** -function: Enable TSL2591 -parameter: -Info: -******************************************************************************/ -void TSL2591_Enable(void) -{ - TSL2591_Write_Byte(ENABLE_REGISTER, \ - ENABLE_AIEN | ENABLE_POWERON | ENABLE_AEN | ENABLE_NPIEN); -} - -/****************************************************************************** -function: Disable TSL2591 -parameter: -Info: -******************************************************************************/ -void TSL2591_Disable(void) -{ - TSL2591_Write_Byte(ENABLE_REGISTER, \ - ENABLE_POWEROFF); -} - -/****************************************************************************** -function: Read TSL2591 gain -parameter: -Info: -******************************************************************************/ -UBYTE TSL2591_Get_Gain(void) -{ - /************************************************* - LOW_AGAIN = (0X00) (1x) - MEDIUM_AGAIN = (0X10) (25x) - HIGH_AGAIN = (0X20) (428x) - MAX_AGAIN = (0x30) (9876x) - *************************************************/ - UBYTE data; - data = TSL2591_Read_Byte(CONTROL_REGISTER); - TSL2591_Gain = data & 0x30; - return data & 0x30; -} - -/****************************************************************************** -function: Set the TSL2591 gain -parameter: -Info: -******************************************************************************/ -void TSL2591_Set_Gain(UBYTE Gain) -{ - UBYTE control=0; - if(Gain == LOW_AGAIN || Gain == MEDIUM_AGAIN \ - || Gain == HIGH_AGAIN || Gain == MAX_AGAIN){ - control = TSL2591_Read_Byte(CONTROL_REGISTER); - control &= 0xCf; //0b11001111 - control |= Gain; - TSL2591_Write_Byte(CONTROL_REGISTER, control); - TSL2591_Gain = Gain; - }else{ - printf("Gain Parameter Error\r\n"); - } -} - -/****************************************************************************** -function: Get the TSL2591 Integral Time -parameter: -Info: -******************************************************************************/ -UBYTE TSL2591_Get_IntegralTime() -{ - UBYTE control=0; - /************************************************************ - ATIME_100MS = (0x00) 100 millis MAX COUNT 36863 - ATIME_200MS = (0x01) 200 millis MAX COUNT 65535 - ATIME_300MS = (0x02) 300 millis MAX COUNT 65535 - ATIME_400MS = (0x03) 400 millis MAX COUNT 65535 - ATIME_500MS = (0x04) 500 millis MAX COUNT 65535 - ATIME_600MS = (0x05) 600 millis MAX COUNT 65535 - ************************************************************/ - control = TSL2591_Read_Byte(CONTROL_REGISTER); - TSL2591_Time = control & 0x07; - return control & 0x07; //0b00000111 -} - -/****************************************************************************** -function: Set the TSL2591 Integral Time -parameter: -Info: -******************************************************************************/ -void TSL2591_Set_IntegralTime(UBYTE Time) -{ - UBYTE control=0; - if(Time < 0x06){ - control = TSL2591_Read_Byte(CONTROL_REGISTER); - control &= 0xf8; //0b11111000 - control |= Time; - TSL2591_Write_Byte(CONTROL_REGISTER, control); - TSL2591_Time = Time; - }else{ - printf("Integral Time Parameter Error\r\n"); - } -} - -/****************************************************************************** -function: Read channel data -parameter: -Info: -******************************************************************************/ -UWORD TSL2591_Read_Channel0(void) -{ - return TSL2591_Read_Word(CHAN0_LOW); -} - -UWORD TSL2591_Read_Channel1(void) -{ - return TSL2591_Read_Word(CHAN1_LOW); -} - -/****************************************************************************** -function: TSL2591 Initialization -parameter: -Info: -******************************************************************************/ -UBYTE TSL2591_Init(void) -{ - DEV_I2C_Init(TSL2591_ADDRESS<<1);//8-bit address - printf("ID = 0x%X \r\n",TSL2591_Read_Byte(ID_REGISTER)); - TSL2591_Enable(); - TSL2591_Set_Gain(MEDIUM_AGAIN);//25X GAIN - TSL2591_Set_IntegralTime(ATIME_200MS);//200ms Integration time - TSL2591_Write_Byte(PERSIST_REGISTER, 0x01);//filter - TSL2591_Disable(); - return 0; -} - -/****************************************************************************** -function: Read TSL2591 data to convert to Lux value -parameter: -Info: -******************************************************************************/ -UWORD TSL2591_Read_Lux(void) -{ - UWORD atime, max_counts,channel_0,channel_1; - TSL2591_Enable(); - for(UBYTE i=0; i= max_counts || channel_1 >= max_counts){ - gain_t = TSL2591_Get_Gain(); - if(gain_t != LOW_AGAIN){ - gain_t = ((gain_t>>4)-1)<<4; - TSL2591_Set_Gain(gain_t); - channel_0 = 0; - channel_1 = 0; - while(channel_0 <= 0 || channel_1 <=0){ - channel_0 = TSL2591_Read_Channel0(); - channel_1 = TSL2591_Read_Channel1(); - } - DEV_Delay_ms(100); - }else{ - printf("Numerical overflow!/r/n"); - return 0; - } - } - double again; - again = 1.0; - if(TSL2591_Gain == MEDIUM_AGAIN){ - again = 25.0; - }else if(TSL2591_Gain == HIGH_AGAIN){ - again = 428.0; - }else if(TSL2591_Gain == MAX_AGAIN){ - again = 9876.0; - } - double Cpl; - UWORD lux1,lux2=0; - - Cpl = (atime * again) / LUX_DF; - lux1 = (int)((channel_0 - (2 * channel_1)) / Cpl); - // lux2 = ((0.6 * channel_0) - (channel_1)) / Cpl; - // This is a two segment lux equation where the first - // segment (Lux1) covers fluorescent and incandescent light - // and the second segment (Lux2) covers dimmed incandescent light - - if(lux1>lux2){ - return lux1; - }else{ - return lux2; - } -} - -/****************************************************************************** -function: Set the TSL2591 interrupt -parameter: - SET_LOW : Interrupt low threshold - SET_HIGH: Interrupt high threshold -Info: Is the channel 0 AD data as a comparison -******************************************************************************/ -void TSL2591_SET_InterruptThreshold(UWORD SET_LOW, UWORD SET_HIGH) -{ - TSL2591_Enable(); - TSL2591_Write_Byte(AILTL_REGISTER, SET_LOW & 0xFF); - TSL2591_Write_Byte(AILTH_REGISTER, SET_LOW >> 8); - - TSL2591_Write_Byte(AIHTL_REGISTER, SET_HIGH & 0xFF); - TSL2591_Write_Byte(AIHTH_REGISTER, SET_HIGH >> 8); - - TSL2591_Write_Byte(NPAILTL_REGISTER, 0 ); - TSL2591_Write_Byte(NPAILTH_REGISTER, 0 ); - - TSL2591_Write_Byte(NPAIHTL_REGISTER, 0xff ); - TSL2591_Write_Byte(NPAIHTH_REGISTER, 0xff ); - TSL2591_Disable(); -} - -/****************************************************************************** -function: Set the TSL2591 interrupt -parameter: - SET_LOW : Interrupt low threshold - SET_HIGH: Interrupt high threshold -Info: Based on Lux as a comparison - Need to use the function TSL2591_Read_Lux() to update the data -******************************************************************************/ -void TSL2591_SET_LuxInterrupt(UWORD SET_LOW, UWORD SET_HIGH) -{ - double Cpl; - double again; - UWORD atime, channel_1; - atime = 100 * TSL2591_Time + 100; - again = 1.0; - if(TSL2591_Gain == MEDIUM_AGAIN){ - again = 25.0; - }else if(TSL2591_Gain == HIGH_AGAIN){ - again = 428.0; - }else if(TSL2591_Gain == MAX_AGAIN){ - again = 9876.0; - } - - Cpl = (atime * again) / LUX_DF; - channel_1 = TSL2591_Read_Channel1(); - - SET_HIGH = (int)(Cpl * SET_HIGH)+ 2*channel_1-1; - SET_LOW = (int)(Cpl * SET_LOW)+ 2*channel_1+1; - - TSL2591_Enable(); - TSL2591_Write_Byte(AILTL_REGISTER, SET_LOW & 0xFF); - TSL2591_Write_Byte(AILTH_REGISTER, SET_LOW >> 8); - - TSL2591_Write_Byte(AIHTL_REGISTER, SET_HIGH & 0xFF); - TSL2591_Write_Byte(AIHTH_REGISTER, SET_HIGH >> 8); - - TSL2591_Write_Byte(NPAILTL_REGISTER, 0 ); - TSL2591_Write_Byte(NPAILTH_REGISTER, 0 ); - - TSL2591_Write_Byte(NPAIHTL_REGISTER, 0xff ); - TSL2591_Write_Byte(NPAIHTH_REGISTER, 0xff ); - TSL2591_Disable(); -} diff --git a/Core/Src/usart.cpp b/Core/Src/usart.cpp new file mode 100644 index 0000000..6016419 --- /dev/null +++ b/Core/Src/usart.cpp @@ -0,0 +1,132 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file usart.c + * @brief This file provides code for the configuration + * of the USART instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "usart.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +UART_HandleTypeDef huart2; + +/* USART2 init function */ + +void MX_USART2_UART_Init(void) +{ + + /* USER CODE BEGIN USART2_Init 0 */ + + /* USER CODE END USART2_Init 0 */ + + /* USER CODE BEGIN USART2_Init 1 */ + + /* USER CODE END USART2_Init 1 */ + huart2.Instance = USART2; + huart2.Init.BaudRate = 115200; + huart2.Init.WordLength = UART_WORDLENGTH_8B; + huart2.Init.StopBits = UART_STOPBITS_1; + huart2.Init.Parity = UART_PARITY_NONE; + huart2.Init.Mode = UART_MODE_TX_RX; + huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart2.Init.OverSampling = UART_OVERSAMPLING_16; + huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart2) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART2_Init 2 */ + + /* USER CODE END USART2_Init 2 */ + +} + +void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + if(uartHandle->Instance==USART2) + { + /* USER CODE BEGIN USART2_MspInit 0 */ + + /* USER CODE END USART2_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2; + PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + { + Error_Handler(); + } + + /* USART2 clock enable */ + __HAL_RCC_USART2_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USART2 GPIO Configuration + PA2 ------> USART2_TX + PA3 ------> USART2_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART2; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USART2 interrupt Init */ + HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(USART2_IRQn); + /* USER CODE BEGIN USART2_MspInit 1 */ + + /* USER CODE END USART2_MspInit 1 */ + } +} + +void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) +{ + + if(uartHandle->Instance==USART2) + { + /* USER CODE BEGIN USART2_MspDeInit 0 */ + + /* USER CODE END USART2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART2_CLK_DISABLE(); + + /**USART2 GPIO Configuration + PA2 ------> USART2_TX + PA3 ------> USART2_RX + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3); + + /* USART2 interrupt Deinit */ + HAL_NVIC_DisableIRQ(USART2_IRQn); + /* USER CODE BEGIN USART2_MspDeInit 1 */ + + /* USER CODE END USART2_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ diff --git a/Debug/Core/Src/dev_config.cyclo b/Debug/Core/Src/dev_config.cyclo deleted file mode 100644 index 62aed97..0000000 --- a/Debug/Core/Src/dev_config.cyclo +++ /dev/null @@ -1,12 +0,0 @@ -../Core/Src/dev_config.c:22:6:DEV_GPIO_Mode 5 -../Core/Src/dev_config.c:45:6:DEV_Delay_ms 1 -../Core/Src/dev_config.c:51:6:GPIO_Config 1 -../Core/Src/dev_config.c:61:6:DEV_SPI_Init 1 -../Core/Src/dev_config.c:68:6:DEV_SPI_WriteByte 1 -../Core/Src/dev_config.c:75:6:DEV_SPI_Write_nByte 1 -../Core/Src/dev_config.c:86:6:DEV_I2C_Init 1 -../Core/Src/dev_config.c:94:6:I2C_Write_Byte 1 -../Core/Src/dev_config.c:103:5:I2C_Read_Byte 1 -../Core/Src/dev_config.c:112:5:I2C_Read_Word 1 -../Core/Src/dev_config.c:125:7:DEV_ModuleInit 1 -../Core/Src/dev_config.c:138:6:DEV_ModuleExit 1 diff --git a/Debug/Core/Src/dev_config.d b/Debug/Core/Src/dev_config.d deleted file mode 100644 index 9bf1d19..0000000 --- a/Debug/Core/Src/dev_config.d +++ /dev/null @@ -1,59 +0,0 @@ -Core/Src/dev_config.o: ../Core/Src/dev_config.c ../Core/Inc/DEV_Config.h \ - ../Core/Inc/main.h ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Core/Inc/DEV_Config.h: -../Core/Inc/main.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Core/Src/dev_config.o b/Debug/Core/Src/dev_config.o deleted file mode 100644 index 82d2bbc..0000000 Binary files a/Debug/Core/Src/dev_config.o and /dev/null differ diff --git a/Debug/Core/Src/dev_config.su b/Debug/Core/Src/dev_config.su deleted file mode 100644 index 018993d..0000000 --- a/Debug/Core/Src/dev_config.su +++ /dev/null @@ -1,12 +0,0 @@ -../Core/Src/dev_config.c:22:6:DEV_GPIO_Mode 40 static -../Core/Src/dev_config.c:45:6:DEV_Delay_ms 16 static -../Core/Src/dev_config.c:51:6:GPIO_Config 4 static -../Core/Src/dev_config.c:61:6:DEV_SPI_Init 4 static -../Core/Src/dev_config.c:68:6:DEV_SPI_WriteByte 16 static -../Core/Src/dev_config.c:75:6:DEV_SPI_Write_nByte 16 static -../Core/Src/dev_config.c:86:6:DEV_I2C_Init 16 static -../Core/Src/dev_config.c:94:6:I2C_Write_Byte 40 static -../Core/Src/dev_config.c:103:5:I2C_Read_Byte 40 static -../Core/Src/dev_config.c:112:5:I2C_Read_Word 40 static -../Core/Src/dev_config.c:125:7:DEV_ModuleInit 16 static -../Core/Src/dev_config.c:138:6:DEV_ModuleExit 4 static diff --git a/Debug/Core/Src/main.cyclo b/Debug/Core/Src/main.cyclo deleted file mode 100644 index 8d9b314..0000000 --- a/Debug/Core/Src/main.cyclo +++ /dev/null @@ -1,8 +0,0 @@ -../Core/Src/main.c:66:6:HAL_GPIO_EXTI_Callback 2 -../Core/Src/main.c:89:5:main 1 -../Core/Src/main.c:151:6:SystemClock_Config 4 -../Core/Src/main.c:196:13:MX_I2C1_Init 4 -../Core/Src/main.c:244:13:MX_USART2_UART_Init 2 -../Core/Src/main.c:277:13:MX_DMA_Init 1 -../Core/Src/main.c:298:13:MX_GPIO_Init 1 -../Core/Src/main.c:331:6:Error_Handler 1 diff --git a/Debug/Core/Src/main.d b/Debug/Core/Src/main.d deleted file mode 100644 index 2af823a..0000000 --- a/Debug/Core/Src/main.d +++ /dev/null @@ -1,58 +0,0 @@ -Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Core/Inc/main.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Core/Src/main.o b/Debug/Core/Src/main.o deleted file mode 100644 index 4c88ba7..0000000 Binary files a/Debug/Core/Src/main.o and /dev/null differ diff --git a/Debug/Core/Src/main.su b/Debug/Core/Src/main.su deleted file mode 100644 index 790e386..0000000 --- a/Debug/Core/Src/main.su +++ /dev/null @@ -1,8 +0,0 @@ -../Core/Src/main.c:66:6:HAL_GPIO_EXTI_Callback 32 static,ignoring_inline_asm -../Core/Src/main.c:89:5:main 32 static -../Core/Src/main.c:151:6:SystemClock_Config 96 static -../Core/Src/main.c:196:13:MX_I2C1_Init 8 static -../Core/Src/main.c:244:13:MX_USART2_UART_Init 8 static -../Core/Src/main.c:277:13:MX_DMA_Init 16 static -../Core/Src/main.c:298:13:MX_GPIO_Init 40 static -../Core/Src/main.c:331:6:Error_Handler 4 static,ignoring_inline_asm diff --git a/Debug/Core/Src/stm32l4xx_hal_msp.cyclo b/Debug/Core/Src/stm32l4xx_hal_msp.cyclo deleted file mode 100644 index 48951d9..0000000 --- a/Debug/Core/Src/stm32l4xx_hal_msp.cyclo +++ /dev/null @@ -1,5 +0,0 @@ -../Core/Src/stm32l4xx_hal_msp.c:67:6:HAL_MspInit 1 -../Core/Src/stm32l4xx_hal_msp.c:89:6:HAL_I2C_MspInit 5 -../Core/Src/stm32l4xx_hal_msp.c:176:6:HAL_I2C_MspDeInit 2 -../Core/Src/stm32l4xx_hal_msp.c:214:6:HAL_UART_MspInit 3 -../Core/Src/stm32l4xx_hal_msp.c:261:6:HAL_UART_MspDeInit 2 diff --git a/Debug/Core/Src/stm32l4xx_hal_msp.d b/Debug/Core/Src/stm32l4xx_hal_msp.d deleted file mode 100644 index cc00219..0000000 --- a/Debug/Core/Src/stm32l4xx_hal_msp.d +++ /dev/null @@ -1,58 +0,0 @@ -Core/Src/stm32l4xx_hal_msp.o: ../Core/Src/stm32l4xx_hal_msp.c \ - ../Core/Inc/main.h ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Core/Inc/main.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Core/Src/stm32l4xx_hal_msp.o b/Debug/Core/Src/stm32l4xx_hal_msp.o deleted file mode 100644 index 9603e92..0000000 Binary files a/Debug/Core/Src/stm32l4xx_hal_msp.o and /dev/null differ diff --git a/Debug/Core/Src/stm32l4xx_hal_msp.su b/Debug/Core/Src/stm32l4xx_hal_msp.su deleted file mode 100644 index 241dfac..0000000 --- a/Debug/Core/Src/stm32l4xx_hal_msp.su +++ /dev/null @@ -1,5 +0,0 @@ -../Core/Src/stm32l4xx_hal_msp.c:67:6:HAL_MspInit 16 static -../Core/Src/stm32l4xx_hal_msp.c:89:6:HAL_I2C_MspInit 184 static -../Core/Src/stm32l4xx_hal_msp.c:176:6:HAL_I2C_MspDeInit 16 static -../Core/Src/stm32l4xx_hal_msp.c:214:6:HAL_UART_MspInit 184 static -../Core/Src/stm32l4xx_hal_msp.c:261:6:HAL_UART_MspDeInit 16 static diff --git a/Debug/Core/Src/stm32l4xx_it.cyclo b/Debug/Core/Src/stm32l4xx_it.cyclo deleted file mode 100644 index 4a1928d..0000000 --- a/Debug/Core/Src/stm32l4xx_it.cyclo +++ /dev/null @@ -1,14 +0,0 @@ -../Core/Src/stm32l4xx_it.c:71:6:NMI_Handler 1 -../Core/Src/stm32l4xx_it.c:86:6:HardFault_Handler 1 -../Core/Src/stm32l4xx_it.c:101:6:MemManage_Handler 1 -../Core/Src/stm32l4xx_it.c:116:6:BusFault_Handler 1 -../Core/Src/stm32l4xx_it.c:131:6:UsageFault_Handler 1 -../Core/Src/stm32l4xx_it.c:146:6:SVC_Handler 1 -../Core/Src/stm32l4xx_it.c:159:6:DebugMon_Handler 1 -../Core/Src/stm32l4xx_it.c:172:6:PendSV_Handler 1 -../Core/Src/stm32l4xx_it.c:185:6:SysTick_Handler 1 -../Core/Src/stm32l4xx_it.c:206:6:DMA1_Channel6_IRQHandler 1 -../Core/Src/stm32l4xx_it.c:220:6:DMA1_Channel7_IRQHandler 1 -../Core/Src/stm32l4xx_it.c:234:6:I2C1_EV_IRQHandler 1 -../Core/Src/stm32l4xx_it.c:248:6:I2C1_ER_IRQHandler 1 -../Core/Src/stm32l4xx_it.c:262:6:EXTI15_10_IRQHandler 1 diff --git a/Debug/Core/Src/stm32l4xx_it.d b/Debug/Core/Src/stm32l4xx_it.d deleted file mode 100644 index 3bca37c..0000000 --- a/Debug/Core/Src/stm32l4xx_it.d +++ /dev/null @@ -1,60 +0,0 @@ -Core/Src/stm32l4xx_it.o: ../Core/Src/stm32l4xx_it.c ../Core/Inc/main.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h \ - ../Core/Inc/stm32l4xx_it.h -../Core/Inc/main.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: -../Core/Inc/stm32l4xx_it.h: diff --git a/Debug/Core/Src/stm32l4xx_it.o b/Debug/Core/Src/stm32l4xx_it.o deleted file mode 100644 index 353a412..0000000 Binary files a/Debug/Core/Src/stm32l4xx_it.o and /dev/null differ diff --git a/Debug/Core/Src/stm32l4xx_it.su b/Debug/Core/Src/stm32l4xx_it.su deleted file mode 100644 index 4bc8d8d..0000000 --- a/Debug/Core/Src/stm32l4xx_it.su +++ /dev/null @@ -1,14 +0,0 @@ -../Core/Src/stm32l4xx_it.c:71:6:NMI_Handler 4 static -../Core/Src/stm32l4xx_it.c:86:6:HardFault_Handler 4 static -../Core/Src/stm32l4xx_it.c:101:6:MemManage_Handler 4 static -../Core/Src/stm32l4xx_it.c:116:6:BusFault_Handler 4 static -../Core/Src/stm32l4xx_it.c:131:6:UsageFault_Handler 4 static -../Core/Src/stm32l4xx_it.c:146:6:SVC_Handler 4 static -../Core/Src/stm32l4xx_it.c:159:6:DebugMon_Handler 4 static -../Core/Src/stm32l4xx_it.c:172:6:PendSV_Handler 4 static -../Core/Src/stm32l4xx_it.c:185:6:SysTick_Handler 8 static -../Core/Src/stm32l4xx_it.c:206:6:DMA1_Channel6_IRQHandler 8 static -../Core/Src/stm32l4xx_it.c:220:6:DMA1_Channel7_IRQHandler 8 static -../Core/Src/stm32l4xx_it.c:234:6:I2C1_EV_IRQHandler 8 static -../Core/Src/stm32l4xx_it.c:248:6:I2C1_ER_IRQHandler 8 static -../Core/Src/stm32l4xx_it.c:262:6:EXTI15_10_IRQHandler 8 static diff --git a/Debug/Core/Src/subdir.mk b/Debug/Core/Src/subdir.mk deleted file mode 100644 index 8bd5eeb..0000000 --- a/Debug/Core/Src/subdir.mk +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -# Toolchain: GNU Tools for STM32 (11.3.rel1) -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Core/Src/dev_config.c \ -../Core/Src/main.c \ -../Core/Src/stm32l4xx_hal_msp.c \ -../Core/Src/stm32l4xx_it.c \ -../Core/Src/syscalls.c \ -../Core/Src/sysmem.c \ -../Core/Src/system_stm32l4xx.c \ -../Core/Src/tsl2591x.c - -C_DEPS += \ -./Core/Src/dev_config.d \ -./Core/Src/main.d \ -./Core/Src/stm32l4xx_hal_msp.d \ -./Core/Src/stm32l4xx_it.d \ -./Core/Src/syscalls.d \ -./Core/Src/sysmem.d \ -./Core/Src/system_stm32l4xx.d \ -./Core/Src/tsl2591x.d - -OBJS += \ -./Core/Src/dev_config.o \ -./Core/Src/main.o \ -./Core/Src/stm32l4xx_hal_msp.o \ -./Core/Src/stm32l4xx_it.o \ -./Core/Src/syscalls.o \ -./Core/Src/sysmem.o \ -./Core/Src/system_stm32l4xx.o \ -./Core/Src/tsl2591x.o - - -# Each subdirectory must supply rules for building sources it contributes -Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L476xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - -clean: clean-Core-2f-Src - -clean-Core-2f-Src: - -$(RM) ./Core/Src/dev_config.cyclo ./Core/Src/dev_config.d ./Core/Src/dev_config.o ./Core/Src/dev_config.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32l4xx_hal_msp.cyclo ./Core/Src/stm32l4xx_hal_msp.d ./Core/Src/stm32l4xx_hal_msp.o ./Core/Src/stm32l4xx_hal_msp.su ./Core/Src/stm32l4xx_it.cyclo ./Core/Src/stm32l4xx_it.d ./Core/Src/stm32l4xx_it.o ./Core/Src/stm32l4xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32l4xx.cyclo ./Core/Src/system_stm32l4xx.d ./Core/Src/system_stm32l4xx.o ./Core/Src/system_stm32l4xx.su ./Core/Src/tsl2591x.cyclo ./Core/Src/tsl2591x.d ./Core/Src/tsl2591x.o ./Core/Src/tsl2591x.su - -.PHONY: clean-Core-2f-Src - diff --git a/Debug/Core/Src/syscalls.cyclo b/Debug/Core/Src/syscalls.cyclo deleted file mode 100644 index 6cbfdd0..0000000 --- a/Debug/Core/Src/syscalls.cyclo +++ /dev/null @@ -1,18 +0,0 @@ -../Core/Src/syscalls.c:44:6:initialise_monitor_handles 1 -../Core/Src/syscalls.c:48:5:_getpid 1 -../Core/Src/syscalls.c:53:5:_kill 1 -../Core/Src/syscalls.c:61:6:_exit 1 -../Core/Src/syscalls.c:67:27:_read 2 -../Core/Src/syscalls.c:80:27:_write 2 -../Core/Src/syscalls.c:92:5:_close 1 -../Core/Src/syscalls.c:99:5:_fstat 1 -../Core/Src/syscalls.c:106:5:_isatty 1 -../Core/Src/syscalls.c:112:5:_lseek 1 -../Core/Src/syscalls.c:120:5:_open 1 -../Core/Src/syscalls.c:128:5:_wait 1 -../Core/Src/syscalls.c:135:5:_unlink 1 -../Core/Src/syscalls.c:142:5:_times 1 -../Core/Src/syscalls.c:148:5:_stat 1 -../Core/Src/syscalls.c:155:5:_link 1 -../Core/Src/syscalls.c:163:5:_fork 1 -../Core/Src/syscalls.c:169:5:_execve 1 diff --git a/Debug/Core/Src/syscalls.d b/Debug/Core/Src/syscalls.d deleted file mode 100644 index 8667c70..0000000 --- a/Debug/Core/Src/syscalls.d +++ /dev/null @@ -1 +0,0 @@ -Core/Src/syscalls.o: ../Core/Src/syscalls.c diff --git a/Debug/Core/Src/syscalls.o b/Debug/Core/Src/syscalls.o deleted file mode 100644 index 55a04a6..0000000 Binary files a/Debug/Core/Src/syscalls.o and /dev/null differ diff --git a/Debug/Core/Src/syscalls.su b/Debug/Core/Src/syscalls.su deleted file mode 100644 index 50b547a..0000000 --- a/Debug/Core/Src/syscalls.su +++ /dev/null @@ -1,18 +0,0 @@ -../Core/Src/syscalls.c:44:6:initialise_monitor_handles 4 static -../Core/Src/syscalls.c:48:5:_getpid 4 static -../Core/Src/syscalls.c:53:5:_kill 16 static -../Core/Src/syscalls.c:61:6:_exit 16 static -../Core/Src/syscalls.c:67:27:_read 32 static -../Core/Src/syscalls.c:80:27:_write 32 static -../Core/Src/syscalls.c:92:5:_close 16 static -../Core/Src/syscalls.c:99:5:_fstat 16 static -../Core/Src/syscalls.c:106:5:_isatty 16 static -../Core/Src/syscalls.c:112:5:_lseek 24 static -../Core/Src/syscalls.c:120:5:_open 12 static -../Core/Src/syscalls.c:128:5:_wait 16 static -../Core/Src/syscalls.c:135:5:_unlink 16 static -../Core/Src/syscalls.c:142:5:_times 16 static -../Core/Src/syscalls.c:148:5:_stat 16 static -../Core/Src/syscalls.c:155:5:_link 16 static -../Core/Src/syscalls.c:163:5:_fork 8 static -../Core/Src/syscalls.c:169:5:_execve 24 static diff --git a/Debug/Core/Src/sysmem.cyclo b/Debug/Core/Src/sysmem.cyclo deleted file mode 100644 index 0090c10..0000000 --- a/Debug/Core/Src/sysmem.cyclo +++ /dev/null @@ -1 +0,0 @@ -../Core/Src/sysmem.c:53:7:_sbrk 3 diff --git a/Debug/Core/Src/sysmem.d b/Debug/Core/Src/sysmem.d deleted file mode 100644 index 74fecf9..0000000 --- a/Debug/Core/Src/sysmem.d +++ /dev/null @@ -1 +0,0 @@ -Core/Src/sysmem.o: ../Core/Src/sysmem.c diff --git a/Debug/Core/Src/sysmem.o b/Debug/Core/Src/sysmem.o deleted file mode 100644 index 624e0a7..0000000 Binary files a/Debug/Core/Src/sysmem.o and /dev/null differ diff --git a/Debug/Core/Src/sysmem.su b/Debug/Core/Src/sysmem.su deleted file mode 100644 index 12d5f17..0000000 --- a/Debug/Core/Src/sysmem.su +++ /dev/null @@ -1 +0,0 @@ -../Core/Src/sysmem.c:53:7:_sbrk 32 static diff --git a/Debug/Core/Src/system_stm32l4xx.cyclo b/Debug/Core/Src/system_stm32l4xx.cyclo deleted file mode 100644 index 7caaa04..0000000 --- a/Debug/Core/Src/system_stm32l4xx.cyclo +++ /dev/null @@ -1,2 +0,0 @@ -../Core/Src/system_stm32l4xx.c:197:6:SystemInit 1 -../Core/Src/system_stm32l4xx.c:251:6:SystemCoreClockUpdate 8 diff --git a/Debug/Core/Src/system_stm32l4xx.d b/Debug/Core/Src/system_stm32l4xx.d deleted file mode 100644 index a18341a..0000000 --- a/Debug/Core/Src/system_stm32l4xx.d +++ /dev/null @@ -1,57 +0,0 @@ -Core/Src/system_stm32l4xx.o: ../Core/Src/system_stm32l4xx.c \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Core/Src/system_stm32l4xx.o b/Debug/Core/Src/system_stm32l4xx.o deleted file mode 100644 index 91c1280..0000000 Binary files a/Debug/Core/Src/system_stm32l4xx.o and /dev/null differ diff --git a/Debug/Core/Src/system_stm32l4xx.su b/Debug/Core/Src/system_stm32l4xx.su deleted file mode 100644 index 20388ef..0000000 --- a/Debug/Core/Src/system_stm32l4xx.su +++ /dev/null @@ -1,2 +0,0 @@ -../Core/Src/system_stm32l4xx.c:197:6:SystemInit 4 static -../Core/Src/system_stm32l4xx.c:251:6:SystemCoreClockUpdate 32 static diff --git a/Debug/Core/Src/tsl2591x.cyclo b/Debug/Core/Src/tsl2591x.cyclo deleted file mode 100644 index 8cdf1c9..0000000 --- a/Debug/Core/Src/tsl2591x.cyclo +++ /dev/null @@ -1,15 +0,0 @@ -../Core/Src/tsl2591x.c:22:14:TSL2591_Read_Byte 1 -../Core/Src/tsl2591x.c:34:14:TSL2591_Read_Word 1 -../Core/Src/tsl2591x.c:47:13:TSL2591_Write_Byte 1 -../Core/Src/tsl2591x.c:58:6:TSL2591_Enable 1 -../Core/Src/tsl2591x.c:69:6:TSL2591_Disable 1 -../Core/Src/tsl2591x.c:80:7:TSL2591_Get_Gain 1 -../Core/Src/tsl2591x.c:99:6:TSL2591_Set_Gain 5 -../Core/Src/tsl2591x.c:119:7:TSL2591_Get_IntegralTime 1 -../Core/Src/tsl2591x.c:140:6:TSL2591_Set_IntegralTime 2 -../Core/Src/tsl2591x.c:159:7:TSL2591_Read_Channel0 1 -../Core/Src/tsl2591x.c:164:7:TSL2591_Read_Channel1 1 -../Core/Src/tsl2591x.c:174:7:TSL2591_Init 1 -../Core/Src/tsl2591x.c:191:7:TSL2591_Read_Lux 13 -../Core/Src/tsl2591x.c:266:6:TSL2591_SET_InterruptThreshold 1 -../Core/Src/tsl2591x.c:291:6:TSL2591_SET_LuxInterrupt 4 diff --git a/Debug/Core/Src/tsl2591x.d b/Debug/Core/Src/tsl2591x.d deleted file mode 100644 index 29e62dc..0000000 --- a/Debug/Core/Src/tsl2591x.d +++ /dev/null @@ -1,62 +0,0 @@ -Core/Src/tsl2591x.o: ../Core/Src/tsl2591x.c ../Core/Inc/dev_config.h \ - ../Core/Inc/main.h ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h \ - ../Core/Inc/tsl2591x.h ../Core/Inc/dev_config.h -../Core/Inc/dev_config.h: -../Core/Inc/main.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: -../Core/Inc/tsl2591x.h: -../Core/Inc/dev_config.h: diff --git a/Debug/Core/Src/tsl2591x.o b/Debug/Core/Src/tsl2591x.o deleted file mode 100644 index 9bb100b..0000000 Binary files a/Debug/Core/Src/tsl2591x.o and /dev/null differ diff --git a/Debug/Core/Src/tsl2591x.su b/Debug/Core/Src/tsl2591x.su deleted file mode 100644 index 7e84ee2..0000000 --- a/Debug/Core/Src/tsl2591x.su +++ /dev/null @@ -1,15 +0,0 @@ -../Core/Src/tsl2591x.c:22:14:TSL2591_Read_Byte 16 static -../Core/Src/tsl2591x.c:34:14:TSL2591_Read_Word 16 static -../Core/Src/tsl2591x.c:47:13:TSL2591_Write_Byte 16 static -../Core/Src/tsl2591x.c:58:6:TSL2591_Enable 8 static -../Core/Src/tsl2591x.c:69:6:TSL2591_Disable 8 static -../Core/Src/tsl2591x.c:80:7:TSL2591_Get_Gain 16 static -../Core/Src/tsl2591x.c:99:6:TSL2591_Set_Gain 24 static -../Core/Src/tsl2591x.c:119:7:TSL2591_Get_IntegralTime 16 static -../Core/Src/tsl2591x.c:140:6:TSL2591_Set_IntegralTime 24 static -../Core/Src/tsl2591x.c:159:7:TSL2591_Read_Channel0 8 static -../Core/Src/tsl2591x.c:164:7:TSL2591_Read_Channel1 8 static -../Core/Src/tsl2591x.c:174:7:TSL2591_Init 8 static -../Core/Src/tsl2591x.c:191:7:TSL2591_Read_Lux 48 static -../Core/Src/tsl2591x.c:266:6:TSL2591_SET_InterruptThreshold 16 static -../Core/Src/tsl2591x.c:291:6:TSL2591_SET_LuxInterrupt 48 static diff --git a/Debug/Core/Startup/startup_stm32l476rgtx.d b/Debug/Core/Startup/startup_stm32l476rgtx.d deleted file mode 100644 index 09c6dc5..0000000 --- a/Debug/Core/Startup/startup_stm32l476rgtx.d +++ /dev/null @@ -1,2 +0,0 @@ -Core/Startup/startup_stm32l476rgtx.o: \ - ../Core/Startup/startup_stm32l476rgtx.s diff --git a/Debug/Core/Startup/startup_stm32l476rgtx.o b/Debug/Core/Startup/startup_stm32l476rgtx.o deleted file mode 100644 index 876fcb3..0000000 Binary files a/Debug/Core/Startup/startup_stm32l476rgtx.o and /dev/null differ diff --git a/Debug/Core/Startup/subdir.mk b/Debug/Core/Startup/subdir.mk deleted file mode 100644 index 7b95b93..0000000 --- a/Debug/Core/Startup/subdir.mk +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -# Toolchain: GNU Tools for STM32 (11.3.rel1) -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -S_SRCS += \ -../Core/Startup/startup_stm32l476rgtx.s - -S_DEPS += \ -./Core/Startup/startup_stm32l476rgtx.d - -OBJS += \ -./Core/Startup/startup_stm32l476rgtx.o - - -# Each subdirectory must supply rules for building sources it contributes -Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk - arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" "$<" - -clean: clean-Core-2f-Startup - -clean-Core-2f-Startup: - -$(RM) ./Core/Startup/startup_stm32l476rgtx.d ./Core/Startup/startup_stm32l476rgtx.o - -.PHONY: clean-Core-2f-Startup - diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.cyclo deleted file mode 100644 index 7e352dd..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.cyclo +++ /dev/null @@ -1,35 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:152:19:HAL_Init 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:196:19:HAL_DeInit 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:225:13:HAL_MspInit 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:236:13:HAL_MspDeInit 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:259:26:HAL_InitTick 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:327:13:HAL_IncTick 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:338:17:HAL_GetTick 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:347:10:HAL_GetTickPrio 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:357:19:HAL_SetTickFreq 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:387:21:HAL_GetTickFreq 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:403:13:HAL_Delay 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:429:13:HAL_SuspendTick 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:445:13:HAL_ResumeTick 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:455:10:HAL_GetHalVersion 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:464:10:HAL_GetREVID 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:473:10:HAL_GetDEVID 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:482:10:HAL_GetUIDw0 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:491:10:HAL_GetUIDw1 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:500:10:HAL_GetUIDw2 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:529:6:HAL_DBGMCU_EnableDBGSleepMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:538:6:HAL_DBGMCU_DisableDBGSleepMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:547:6:HAL_DBGMCU_EnableDBGStopMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:556:6:HAL_DBGMCU_DisableDBGStopMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:565:6:HAL_DBGMCU_EnableDBGStandbyMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:574:6:HAL_DBGMCU_DisableDBGStandbyMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:607:6:HAL_SYSCFG_SRAM2Erase 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:626:6:HAL_SYSCFG_EnableMemorySwappingBank 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:641:6:HAL_SYSCFG_DisableMemorySwappingBank 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:658:6:HAL_SYSCFG_VREFBUF_VoltageScalingConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:674:6:HAL_SYSCFG_VREFBUF_HighImpedanceConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:686:6:HAL_SYSCFG_VREFBUF_TrimmingConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:698:19:HAL_SYSCFG_EnableVREFBUF 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:724:6:HAL_SYSCFG_DisableVREFBUF 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:735:6:HAL_SYSCFG_EnableIOAnalogSwitchBooster 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:745:6:HAL_SYSCFG_DisableIOAnalogSwitchBooster 1 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.d deleted file mode 100644 index 3eb8dc9..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o deleted file mode 100644 index 03598db..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.su deleted file mode 100644 index 72d13ea..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.su +++ /dev/null @@ -1,35 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:152:19:HAL_Init 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:196:19:HAL_DeInit 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:225:13:HAL_MspInit 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:236:13:HAL_MspDeInit 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:259:26:HAL_InitTick 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:327:13:HAL_IncTick 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:338:17:HAL_GetTick 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:347:10:HAL_GetTickPrio 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:357:19:HAL_SetTickFreq 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:387:21:HAL_GetTickFreq 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:403:13:HAL_Delay 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:429:13:HAL_SuspendTick 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:445:13:HAL_ResumeTick 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:455:10:HAL_GetHalVersion 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:464:10:HAL_GetREVID 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:473:10:HAL_GetDEVID 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:482:10:HAL_GetUIDw0 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:491:10:HAL_GetUIDw1 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:500:10:HAL_GetUIDw2 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:529:6:HAL_DBGMCU_EnableDBGSleepMode 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:538:6:HAL_DBGMCU_DisableDBGSleepMode 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:547:6:HAL_DBGMCU_EnableDBGStopMode 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:556:6:HAL_DBGMCU_DisableDBGStopMode 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:565:6:HAL_DBGMCU_EnableDBGStandbyMode 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:574:6:HAL_DBGMCU_DisableDBGStandbyMode 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:607:6:HAL_SYSCFG_SRAM2Erase 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:626:6:HAL_SYSCFG_EnableMemorySwappingBank 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:641:6:HAL_SYSCFG_DisableMemorySwappingBank 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:658:6:HAL_SYSCFG_VREFBUF_VoltageScalingConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:674:6:HAL_SYSCFG_VREFBUF_HighImpedanceConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:686:6:HAL_SYSCFG_VREFBUF_TrimmingConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:698:19:HAL_SYSCFG_EnableVREFBUF 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:724:6:HAL_SYSCFG_DisableVREFBUF 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:735:6:HAL_SYSCFG_EnableIOAnalogSwitchBooster 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:745:6:HAL_SYSCFG_DisableIOAnalogSwitchBooster 4 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.cyclo deleted file mode 100644 index e68f679..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.cyclo +++ /dev/null @@ -1,32 +0,0 @@ -../Drivers/CMSIS/Include/core_cm4.h:1648:22:__NVIC_SetPriorityGrouping 1 -../Drivers/CMSIS/Include/core_cm4.h:1667:26:__NVIC_GetPriorityGrouping 1 -../Drivers/CMSIS/Include/core_cm4.h:1679:22:__NVIC_EnableIRQ 2 -../Drivers/CMSIS/Include/core_cm4.h:1717:22:__NVIC_DisableIRQ 2 -../Drivers/CMSIS/Include/core_cm4.h:1736:26:__NVIC_GetPendingIRQ 2 -../Drivers/CMSIS/Include/core_cm4.h:1755:22:__NVIC_SetPendingIRQ 2 -../Drivers/CMSIS/Include/core_cm4.h:1770:22:__NVIC_ClearPendingIRQ 2 -../Drivers/CMSIS/Include/core_cm4.h:1787:26:__NVIC_GetActive 2 -../Drivers/CMSIS/Include/core_cm4.h:1809:22:__NVIC_SetPriority 2 -../Drivers/CMSIS/Include/core_cm4.h:1831:26:__NVIC_GetPriority 2 -../Drivers/CMSIS/Include/core_cm4.h:1856:26:NVIC_EncodePriority 2 -../Drivers/CMSIS/Include/core_cm4.h:1883:22:NVIC_DecodePriority 2 -../Drivers/CMSIS/Include/core_cm4.h:1933:34:__NVIC_SystemReset 1 -../Drivers/CMSIS/Include/core_cm4.h:2017:26:SysTick_Config 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:163:6:HAL_NVIC_SetPriorityGrouping 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:185:6:HAL_NVIC_SetPriority 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:207:6:HAL_NVIC_EnableIRQ 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:223:6:HAL_NVIC_DisableIRQ 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:236:6:HAL_NVIC_SystemReset 0 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:249:10:HAL_SYSTICK_Config 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:277:10:HAL_NVIC_GetPriorityGrouping 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:304:6:HAL_NVIC_GetPriority 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:319:6:HAL_NVIC_SetPendingIRQ 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:337:10:HAL_NVIC_GetPendingIRQ 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:353:6:HAL_NVIC_ClearPendingIRQ 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:370:10:HAL_NVIC_GetActive 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:384:6:HAL_SYSTICK_CLKSourceConfig 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:402:6:HAL_SYSTICK_IRQHandler 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:411:13:HAL_SYSTICK_Callback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:430:6:HAL_MPU_Enable 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:445:6:HAL_MPU_Disable 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:461:6:HAL_MPU_ConfigRegion 2 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.d deleted file mode 100644 index 5679624..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o deleted file mode 100644 index c192f4d..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.su deleted file mode 100644 index 62f5210..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.su +++ /dev/null @@ -1,32 +0,0 @@ -../Drivers/CMSIS/Include/core_cm4.h:1648:22:__NVIC_SetPriorityGrouping 24 static -../Drivers/CMSIS/Include/core_cm4.h:1667:26:__NVIC_GetPriorityGrouping 4 static -../Drivers/CMSIS/Include/core_cm4.h:1679:22:__NVIC_EnableIRQ 16 static,ignoring_inline_asm -../Drivers/CMSIS/Include/core_cm4.h:1717:22:__NVIC_DisableIRQ 16 static,ignoring_inline_asm -../Drivers/CMSIS/Include/core_cm4.h:1736:26:__NVIC_GetPendingIRQ 16 static -../Drivers/CMSIS/Include/core_cm4.h:1755:22:__NVIC_SetPendingIRQ 16 static -../Drivers/CMSIS/Include/core_cm4.h:1770:22:__NVIC_ClearPendingIRQ 16 static -../Drivers/CMSIS/Include/core_cm4.h:1787:26:__NVIC_GetActive 16 static -../Drivers/CMSIS/Include/core_cm4.h:1809:22:__NVIC_SetPriority 16 static -../Drivers/CMSIS/Include/core_cm4.h:1831:26:__NVIC_GetPriority 16 static -../Drivers/CMSIS/Include/core_cm4.h:1856:26:NVIC_EncodePriority 40 static -../Drivers/CMSIS/Include/core_cm4.h:1883:22:NVIC_DecodePriority 40 static -../Drivers/CMSIS/Include/core_cm4.h:1933:34:__NVIC_SystemReset 4 static,ignoring_inline_asm -../Drivers/CMSIS/Include/core_cm4.h:2017:26:SysTick_Config 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:163:6:HAL_NVIC_SetPriorityGrouping 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:185:6:HAL_NVIC_SetPriority 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:207:6:HAL_NVIC_EnableIRQ 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:223:6:HAL_NVIC_DisableIRQ 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:236:6:HAL_NVIC_SystemReset 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:249:10:HAL_SYSTICK_Config 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:277:10:HAL_NVIC_GetPriorityGrouping 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:304:6:HAL_NVIC_GetPriority 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:319:6:HAL_NVIC_SetPendingIRQ 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:337:10:HAL_NVIC_GetPendingIRQ 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:353:6:HAL_NVIC_ClearPendingIRQ 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:370:10:HAL_NVIC_GetActive 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:384:6:HAL_SYSTICK_CLKSourceConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:402:6:HAL_SYSTICK_IRQHandler 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:411:13:HAL_SYSTICK_Callback 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:430:6:HAL_MPU_Enable 16 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:445:6:HAL_MPU_Disable 4 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c:461:6:HAL_MPU_ConfigRegion 16 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.cyclo deleted file mode 100644 index 331117c..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.cyclo +++ /dev/null @@ -1,13 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:154:19:HAL_DMA_Init 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:295:19:HAL_DMA_DeInit 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:431:19:HAL_DMA_Start 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:474:19:HAL_DMA_Start_IT 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:547:19:HAL_DMA_Abort 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:609:19:HAL_DMA_Abort_IT 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:676:19:HAL_DMA_PollForTransfer 10 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:806:6:HAL_DMA_IRQHandler 12 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:902:19:HAL_DMA_RegisterCallback 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:953:19:HAL_DMA_UnRegisterCallback 8 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:1031:22:HAL_DMA_GetState 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:1043:10:HAL_DMA_GetError 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:1069:13:DMA_SetConfig 2 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.d deleted file mode 100644 index ea20dc5..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o deleted file mode 100644 index 0cb54f8..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.su deleted file mode 100644 index f8d3944..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.su +++ /dev/null @@ -1,13 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:154:19:HAL_DMA_Init 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:295:19:HAL_DMA_DeInit 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:431:19:HAL_DMA_Start 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:474:19:HAL_DMA_Start_IT 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:547:19:HAL_DMA_Abort 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:609:19:HAL_DMA_Abort_IT 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:676:19:HAL_DMA_PollForTransfer 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:806:6:HAL_DMA_IRQHandler 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:902:19:HAL_DMA_RegisterCallback 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:953:19:HAL_DMA_UnRegisterCallback 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:1031:22:HAL_DMA_GetState 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:1043:10:HAL_DMA_GetError 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:1069:13:DMA_SetConfig 24 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.d deleted file mode 100644 index 96dc25e..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o deleted file mode 100644 index dcba324..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.su deleted file mode 100644 index e69de29..0000000 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.cyclo deleted file mode 100644 index 70742e5..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.cyclo +++ /dev/null @@ -1,9 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:143:19:HAL_EXTI_SetConfigLine 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:268:19:HAL_EXTI_GetConfigLine 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:362:19:HAL_EXTI_ClearConfigLine 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:428:19:HAL_EXTI_RegisterCallback 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:454:19:HAL_EXTI_GetHandle 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:495:6:HAL_EXTI_IRQHandler 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:533:10:HAL_EXTI_GetPending 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:572:6:HAL_EXTI_ClearPending 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:603:6:HAL_EXTI_GenerateSWI 1 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.d deleted file mode 100644 index c6a1d2e..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o deleted file mode 100644 index b269f09..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.su deleted file mode 100644 index 10c0f1e..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.su +++ /dev/null @@ -1,9 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:143:19:HAL_EXTI_SetConfigLine 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:268:19:HAL_EXTI_GetConfigLine 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:362:19:HAL_EXTI_ClearConfigLine 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:428:19:HAL_EXTI_RegisterCallback 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:454:19:HAL_EXTI_GetHandle 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:495:6:HAL_EXTI_IRQHandler 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:533:10:HAL_EXTI_GetPending 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:572:6:HAL_EXTI_ClearPending 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c:603:6:HAL_EXTI_GenerateSWI 32 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.cyclo deleted file mode 100644 index 95a8746..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.cyclo +++ /dev/null @@ -1,14 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:169:19:HAL_FLASH_Program 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:251:19:HAL_FLASH_Program_IT 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:311:6:HAL_FLASH_IRQHandler 16 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:454:13:HAL_FLASH_EndOfOperationCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:472:13:HAL_FLASH_OperationErrorCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:505:19:HAL_FLASH_Unlock 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:529:19:HAL_FLASH_Lock 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:541:19:HAL_FLASH_OB_Unlock 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:561:19:HAL_FLASH_OB_Lock 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:573:19:HAL_FLASH_OB_Launch 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:622:10:HAL_FLASH_GetError 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:646:19:FLASH_WaitForLastOperation 8 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:696:13:FLASH_Program_DoubleWord 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:721:13:FLASH_Program_Fast 2 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.d deleted file mode 100644 index b10d4f0..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o deleted file mode 100644 index 16d0a7b..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.su deleted file mode 100644 index f65fa52..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.su +++ /dev/null @@ -1,14 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:169:19:HAL_FLASH_Program 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:251:19:HAL_FLASH_Program_IT 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:311:6:HAL_FLASH_IRQHandler 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:454:13:HAL_FLASH_EndOfOperationCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:472:13:HAL_FLASH_OperationErrorCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:505:19:HAL_FLASH_Unlock 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:529:19:HAL_FLASH_Lock 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:541:19:HAL_FLASH_OB_Unlock 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:561:19:HAL_FLASH_OB_Lock 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:573:19:HAL_FLASH_OB_Launch 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:622:10:HAL_FLASH_GetError 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:646:19:FLASH_WaitForLastOperation 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:696:13:FLASH_Program_DoubleWord 24 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c:721:13:FLASH_Program_Fast 40 static,ignoring_inline_asm diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.cyclo deleted file mode 100644 index 25af6a8..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.cyclo +++ /dev/null @@ -1,15 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:125:19:HAL_FLASHEx_Erase 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:228:19:HAL_FLASHEx_Erase_IT 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:297:19:HAL_FLASHEx_OBProgram 11 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:368:6:HAL_FLASHEx_OBGetConfig 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:504:13:FLASH_MassErase 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:551:6:FLASH_PageErase 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:594:6:FLASH_FlushCaches 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:651:26:FLASH_OB_WRPConfig 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:727:26:FLASH_OB_RDPConfig 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:771:26:FLASH_OB_UserConfig 15 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:991:26:FLASH_OB_PCROPConfig 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:1122:13:FLASH_OB_GetWRP 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:1164:17:FLASH_OB_GetRDP 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:1190:17:FLASH_OB_GetUser 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:1213:13:FLASH_OB_GetPCROP 6 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.d deleted file mode 100644 index dcd8f06..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o deleted file mode 100644 index e1a4e71..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.su deleted file mode 100644 index c924e96..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.su +++ /dev/null @@ -1,15 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:125:19:HAL_FLASHEx_Erase 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:228:19:HAL_FLASHEx_Erase_IT 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:297:19:HAL_FLASHEx_OBProgram 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:368:6:HAL_FLASHEx_OBGetConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:504:13:FLASH_MassErase 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:551:6:FLASH_PageErase 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:594:6:FLASH_FlushCaches 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:651:26:FLASH_OB_WRPConfig 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:727:26:FLASH_OB_RDPConfig 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:771:26:FLASH_OB_UserConfig 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:991:26:FLASH_OB_PCROPConfig 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:1122:13:FLASH_OB_GetWRP 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:1164:17:FLASH_OB_GetRDP 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:1190:17:FLASH_OB_GetUser 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c:1213:13:FLASH_OB_GetPCROP 40 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.cyclo deleted file mode 100644 index 14a1364..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.cyclo +++ /dev/null @@ -1,2 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c:91:30:HAL_FLASHEx_EnableRunPowerDown 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c:105:30:HAL_FLASHEx_DisableRunPowerDown 1 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.d deleted file mode 100644 index 2f869c8..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o deleted file mode 100644 index b7d534d..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.su deleted file mode 100644 index 42f3ccc..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.su +++ /dev/null @@ -1,2 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c:91:30:HAL_FLASHEx_EnableRunPowerDown 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c:105:30:HAL_FLASHEx_DisableRunPowerDown 4 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.cyclo deleted file mode 100644 index 7afeceb..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.cyclo +++ /dev/null @@ -1,8 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:163:6:HAL_GPIO_Init 20 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:307:6:HAL_GPIO_DeInit 11 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:393:15:HAL_GPIO_ReadPin 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:427:6:HAL_GPIO_WritePin 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:449:6:HAL_GPIO_TogglePin 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:474:19:HAL_GPIO_LockPin 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:509:6:HAL_GPIO_EXTI_IRQHandler 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:524:13:HAL_GPIO_EXTI_Callback 1 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.d deleted file mode 100644 index abab523..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o deleted file mode 100644 index db4b268..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.su deleted file mode 100644 index 1115745..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.su +++ /dev/null @@ -1,8 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:163:6:HAL_GPIO_Init 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:307:6:HAL_GPIO_DeInit 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:393:15:HAL_GPIO_ReadPin 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:427:6:HAL_GPIO_WritePin 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:449:6:HAL_GPIO_TogglePin 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:474:19:HAL_GPIO_LockPin 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:509:6:HAL_GPIO_EXTI_IRQHandler 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c:524:13:HAL_GPIO_EXTI_Callback 16 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.cyclo deleted file mode 100644 index 5512234..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.cyclo +++ /dev/null @@ -1,81 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:535:19:HAL_I2C_Init 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:650:19:HAL_I2C_DeInit 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:696:13:HAL_I2C_MspInit 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:712:13:HAL_I2C_MspDeInit 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1119:19:HAL_I2C_Master_Transmit 13 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1260:19:HAL_I2C_Master_Receive 12 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1378:19:HAL_I2C_Slave_Transmit 15 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1534:19:HAL_I2C_Slave_Receive 12 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1664:19:HAL_I2C_Master_Transmit_IT 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1754:19:HAL_I2C_Master_Receive_IT 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1823:19:HAL_I2C_Slave_Transmit_IT 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1887:19:HAL_I2C_Slave_Receive_IT 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1939:19:HAL_I2C_Master_Transmit_DMA 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2102:19:HAL_I2C_Master_Receive_DMA 8 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2247:19:HAL_I2C_Slave_Transmit_DMA 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2383:19:HAL_I2C_Slave_Receive_DMA 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2492:19:HAL_I2C_Mem_Write 15 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2629:19:HAL_I2C_Mem_Read 15 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2766:19:HAL_I2C_Mem_Write_IT 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2854:19:HAL_I2C_Mem_Read_IT 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2941:19:HAL_I2C_Mem_Write_DMA 10 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3087:19:HAL_I2C_Mem_Read_DMA 10 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3232:19:HAL_I2C_IsDeviceReady 16 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3374:19:HAL_I2C_Master_Seq_Transmit_IT 14 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3488:19:HAL_I2C_Master_Seq_Transmit_DMA 19 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3685:19:HAL_I2C_Master_Seq_Receive_IT 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3772:19:HAL_I2C_Master_Seq_Receive_DMA 12 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3938:19:HAL_I2C_Slave_Seq_Transmit_IT 11 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4038:19:HAL_I2C_Slave_Seq_Transmit_DMA 17 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4222:19:HAL_I2C_Slave_Seq_Receive_IT 11 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4322:19:HAL_I2C_Slave_Seq_Receive_DMA 17 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4502:19:HAL_I2C_EnableListen_IT 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4526:19:HAL_I2C_DisableListen_IT 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4559:19:HAL_I2C_Master_Abort_IT 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4621:6:HAL_I2C_EV_IRQHandler 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4640:6:HAL_I2C_ER_IRQHandler 8 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4692:13:HAL_I2C_MasterTxCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4708:13:HAL_I2C_MasterRxCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4723:13:HAL_I2C_SlaveTxCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4739:13:HAL_I2C_SlaveRxCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4757:13:HAL_I2C_AddrCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4775:13:HAL_I2C_ListenCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4791:13:HAL_I2C_MemTxCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4807:13:HAL_I2C_MemRxCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4823:13:HAL_I2C_ErrorCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4839:13:HAL_I2C_AbortCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4874:22:HAL_I2C_GetState 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4886:21:HAL_I2C_GetMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4897:10:HAL_I2C_GetError 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4922:26:I2C_Master_ISR_IT 24 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5073:26:I2C_Mem_ISR_IT 20 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5216:26:I2C_Slave_ISR_IT 25 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5357:26:I2C_Master_ISR_DMA 18 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5497:26:I2C_Mem_ISR_DMA 18 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5645:26:I2C_Slave_ISR_DMA 27 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5790:26:I2C_RequestMemoryWrite 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5845:26:I2C_RequestMemoryRead 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5894:13:I2C_ITAddrCplt 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5989:13:I2C_ITMasterSeqCplt 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6042:13:I2C_ITSlaveSeqCplt 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6116:13:I2C_ITMasterCplt 12 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6259:13:I2C_ITSlaveCplt 17 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6423:13:I2C_ITListenCplt 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6474:13:I2C_ITError 19 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6605:13:I2C_TreatErrorCallback 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6643:13:I2C_Flush_TXDR 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6664:13:I2C_DMAMasterTransmitCplt 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6715:13:I2C_DMASlaveTransmitCplt 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6744:13:I2C_DMAMasterReceiveCplt 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6795:13:I2C_DMASlaveReceiveCplt 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6824:13:I2C_DMAError 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6843:13:I2C_DMAAbort 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6873:26:I2C_WaitOnFlagUntilTimeout 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6907:26:I2C_WaitOnTXISFlagUntilTimeout 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6948:26:I2C_WaitOnSTOPFlagUntilTimeout 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6986:26:I2C_WaitOnRXNEFlagUntilTimeout 10 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:7062:26:I2C_IsErrorOccurred 17 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:7203:13:I2C_TransferConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:7230:13:I2C_Enable_IRQ 15 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:7321:13:I2C_Disable_IRQ 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:7384:13:I2C_ConvertOtherXferOptions 3 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.d deleted file mode 100644 index 1e57ec0..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o deleted file mode 100644 index 5a64662..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.su deleted file mode 100644 index 6f3231c..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.su +++ /dev/null @@ -1,81 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:535:19:HAL_I2C_Init 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:650:19:HAL_I2C_DeInit 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:696:13:HAL_I2C_MspInit 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:712:13:HAL_I2C_MspDeInit 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1119:19:HAL_I2C_Master_Transmit 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1260:19:HAL_I2C_Master_Receive 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1378:19:HAL_I2C_Slave_Transmit 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1534:19:HAL_I2C_Slave_Receive 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1664:19:HAL_I2C_Master_Transmit_IT 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1754:19:HAL_I2C_Master_Receive_IT 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1823:19:HAL_I2C_Slave_Transmit_IT 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1887:19:HAL_I2C_Slave_Receive_IT 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:1939:19:HAL_I2C_Master_Transmit_DMA 48 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2102:19:HAL_I2C_Master_Receive_DMA 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2247:19:HAL_I2C_Slave_Transmit_DMA 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2383:19:HAL_I2C_Slave_Receive_DMA 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2492:19:HAL_I2C_Mem_Write 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2629:19:HAL_I2C_Mem_Read 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2766:19:HAL_I2C_Mem_Write_IT 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2854:19:HAL_I2C_Mem_Read_IT 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:2941:19:HAL_I2C_Mem_Write_DMA 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3087:19:HAL_I2C_Mem_Read_DMA 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3232:19:HAL_I2C_IsDeviceReady 48 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3374:19:HAL_I2C_Master_Seq_Transmit_IT 48 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3488:19:HAL_I2C_Master_Seq_Transmit_DMA 48 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3685:19:HAL_I2C_Master_Seq_Receive_IT 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3772:19:HAL_I2C_Master_Seq_Receive_DMA 48 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:3938:19:HAL_I2C_Slave_Seq_Transmit_IT 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4038:19:HAL_I2C_Slave_Seq_Transmit_DMA 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4222:19:HAL_I2C_Slave_Seq_Receive_IT 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4322:19:HAL_I2C_Slave_Seq_Receive_DMA 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4502:19:HAL_I2C_EnableListen_IT 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4526:19:HAL_I2C_DisableListen_IT 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4559:19:HAL_I2C_Master_Abort_IT 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4621:6:HAL_I2C_EV_IRQHandler 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4640:6:HAL_I2C_ER_IRQHandler 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4692:13:HAL_I2C_MasterTxCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4708:13:HAL_I2C_MasterRxCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4723:13:HAL_I2C_SlaveTxCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4739:13:HAL_I2C_SlaveRxCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4757:13:HAL_I2C_AddrCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4775:13:HAL_I2C_ListenCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4791:13:HAL_I2C_MemTxCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4807:13:HAL_I2C_MemRxCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4823:13:HAL_I2C_ErrorCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4839:13:HAL_I2C_AbortCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4874:22:HAL_I2C_GetState 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4886:21:HAL_I2C_GetMode 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4897:10:HAL_I2C_GetError 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:4922:26:I2C_Master_ISR_IT 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5073:26:I2C_Mem_ISR_IT 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5216:26:I2C_Slave_ISR_IT 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5357:26:I2C_Master_ISR_DMA 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5497:26:I2C_Mem_ISR_DMA 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5645:26:I2C_Slave_ISR_DMA 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5790:26:I2C_RequestMemoryWrite 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5845:26:I2C_RequestMemoryRead 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5894:13:I2C_ITAddrCplt 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:5989:13:I2C_ITMasterSeqCplt 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6042:13:I2C_ITSlaveSeqCplt 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6116:13:I2C_ITMasterCplt 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6259:13:I2C_ITSlaveCplt 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6423:13:I2C_ITListenCplt 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6474:13:I2C_ITError 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6605:13:I2C_TreatErrorCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6643:13:I2C_Flush_TXDR 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6664:13:I2C_DMAMasterTransmitCplt 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6715:13:I2C_DMASlaveTransmitCplt 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6744:13:I2C_DMAMasterReceiveCplt 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6795:13:I2C_DMASlaveReceiveCplt 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6824:13:I2C_DMAError 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6843:13:I2C_DMAAbort 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6873:26:I2C_WaitOnFlagUntilTimeout 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6907:26:I2C_WaitOnTXISFlagUntilTimeout 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6948:26:I2C_WaitOnSTOPFlagUntilTimeout 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:6986:26:I2C_WaitOnRXNEFlagUntilTimeout 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:7062:26:I2C_IsErrorOccurred 48 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:7203:13:I2C_TransferConfig 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:7230:13:I2C_Enable_IRQ 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:7321:13:I2C_Disable_IRQ 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c:7384:13:I2C_ConvertOtherXferOptions 16 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.cyclo deleted file mode 100644 index e0aafc9..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.cyclo +++ /dev/null @@ -1,6 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:96:19:HAL_I2CEx_ConfigAnalogFilter 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:140:19:HAL_I2CEx_ConfigDigitalFilter 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:208:19:HAL_I2CEx_EnableWakeUp 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:247:19:HAL_I2CEx_DisableWakeUp 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:314:6:HAL_I2CEx_EnableFastModePlus 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:343:6:HAL_I2CEx_DisableFastModePlus 1 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.d deleted file mode 100644 index e55cc30..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o deleted file mode 100644 index 8f6c432..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.su deleted file mode 100644 index 415666f..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.su +++ /dev/null @@ -1,6 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:96:19:HAL_I2CEx_ConfigAnalogFilter 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:140:19:HAL_I2CEx_ConfigDigitalFilter 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:208:19:HAL_I2CEx_EnableWakeUp 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:247:19:HAL_I2CEx_DisableWakeUp 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:314:6:HAL_I2CEx_EnableFastModePlus 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c:343:6:HAL_I2CEx_DisableFastModePlus 24 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.cyclo deleted file mode 100644 index 8ed9f24..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.cyclo +++ /dev/null @@ -1,16 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:86:6:HAL_PWR_DeInit 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:104:6:HAL_PWR_EnableBkUpAccess 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:114:6:HAL_PWR_DisableBkUpAccess 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:311:19:HAL_PWR_ConfigPVD 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:357:6:HAL_PWR_EnablePVD 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:366:6:HAL_PWR_DisablePVD 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:391:6:HAL_PWR_EnableWakeUpPin 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:412:6:HAL_PWR_DisableWakeUpPin 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:444:6:HAL_PWR_EnterSLEEPMode 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:523:6:HAL_PWR_EnterSTOPMode 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:556:6:HAL_PWR_EnterSTANDBYMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:582:6:HAL_PWR_EnableSleepOnExit 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:595:6:HAL_PWR_DisableSleepOnExit 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:609:6:HAL_PWR_EnableSEVOnPend 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:622:6:HAL_PWR_DisableSEVOnPend 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:636:13:HAL_PWR_PVDCallback 1 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.d deleted file mode 100644 index b9baed4..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o deleted file mode 100644 index bdeab0d..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.su deleted file mode 100644 index 6fa1311..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.su +++ /dev/null @@ -1,16 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:86:6:HAL_PWR_DeInit 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:104:6:HAL_PWR_EnableBkUpAccess 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:114:6:HAL_PWR_DisableBkUpAccess 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:311:19:HAL_PWR_ConfigPVD 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:357:6:HAL_PWR_EnablePVD 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:366:6:HAL_PWR_DisablePVD 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:391:6:HAL_PWR_EnableWakeUpPin 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:412:6:HAL_PWR_DisableWakeUpPin 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:444:6:HAL_PWR_EnterSLEEPMode 16 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:523:6:HAL_PWR_EnterSTOPMode 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:556:6:HAL_PWR_EnterSTANDBYMode 4 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:582:6:HAL_PWR_EnableSleepOnExit 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:595:6:HAL_PWR_DisableSleepOnExit 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:609:6:HAL_PWR_EnableSEVOnPend 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:622:6:HAL_PWR_DisableSEVOnPend 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c:636:13:HAL_PWR_PVDCallback 4 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.cyclo deleted file mode 100644 index 325d89f..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.cyclo +++ /dev/null @@ -1,41 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:114:10:HAL_PWREx_GetVoltageRange 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:163:19:HAL_PWREx_ControlVoltageScaling 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:282:6:HAL_PWREx_EnableBatteryCharging 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:298:6:HAL_PWREx_DisableBatteryCharging 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:310:6:HAL_PWREx_EnableVddUSB 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:320:6:HAL_PWREx_DisableVddUSB 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:332:6:HAL_PWREx_EnableVddIO2 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:342:6:HAL_PWREx_DisableVddIO2 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:353:6:HAL_PWREx_EnableInternalWakeUpLine 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:363:6:HAL_PWREx_DisableInternalWakeUpLine 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:391:19:HAL_PWREx_EnableGPIOPullUp 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:474:19:HAL_PWREx_DisableGPIOPullUp 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:551:19:HAL_PWREx_EnableGPIOPullDown 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:634:19:HAL_PWREx_DisableGPIOPullDown 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:704:6:HAL_PWREx_EnablePullUpPullDownConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:716:6:HAL_PWREx_DisablePullUpPullDownConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:727:6:HAL_PWREx_EnableSRAM2ContentRetention 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:736:6:HAL_PWREx_DisableSRAM2ContentRetention 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:751:19:HAL_PWREx_SetSRAM2ContentRetention 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:808:6:HAL_PWREx_EnableExtSMPS_0V95 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:820:6:HAL_PWREx_DisableExtSMPS_0V95 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:878:6:HAL_PWREx_EnablePVM1 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:887:6:HAL_PWREx_DisablePVM1 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:899:6:HAL_PWREx_EnablePVM2 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:908:6:HAL_PWREx_DisablePVM2 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:919:6:HAL_PWREx_EnablePVM3 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:928:6:HAL_PWREx_DisablePVM3 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:938:6:HAL_PWREx_EnablePVM4 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:947:6:HAL_PWREx_DisablePVM4 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:967:19:HAL_PWREx_ConfigPVM 23 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1129:6:HAL_PWREx_EnableLowPowerRunMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1144:19:HAL_PWREx_DisableLowPowerRunMode 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1188:6:HAL_PWREx_EnterSTOP0Mode 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1239:6:HAL_PWREx_EnterSTOP1Mode 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1292:6:HAL_PWREx_EnterSTOP2Mode 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1334:6:HAL_PWREx_EnterSHUTDOWNMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1359:6:HAL_PWREx_PVD_PVM_IRQHandler 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1415:13:HAL_PWREx_PVM1Callback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1428:13:HAL_PWREx_PVM2Callback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1440:13:HAL_PWREx_PVM3Callback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1451:13:HAL_PWREx_PVM4Callback 1 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.d deleted file mode 100644 index a8456b2..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o deleted file mode 100644 index 6748ba0..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.su deleted file mode 100644 index a80f4c8..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.su +++ /dev/null @@ -1,41 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:114:10:HAL_PWREx_GetVoltageRange 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:163:19:HAL_PWREx_ControlVoltageScaling 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:282:6:HAL_PWREx_EnableBatteryCharging 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:298:6:HAL_PWREx_DisableBatteryCharging 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:310:6:HAL_PWREx_EnableVddUSB 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:320:6:HAL_PWREx_DisableVddUSB 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:332:6:HAL_PWREx_EnableVddIO2 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:342:6:HAL_PWREx_DisableVddIO2 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:353:6:HAL_PWREx_EnableInternalWakeUpLine 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:363:6:HAL_PWREx_DisableInternalWakeUpLine 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:391:19:HAL_PWREx_EnableGPIOPullUp 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:474:19:HAL_PWREx_DisableGPIOPullUp 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:551:19:HAL_PWREx_EnableGPIOPullDown 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:634:19:HAL_PWREx_DisableGPIOPullDown 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:704:6:HAL_PWREx_EnablePullUpPullDownConfig 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:716:6:HAL_PWREx_DisablePullUpPullDownConfig 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:727:6:HAL_PWREx_EnableSRAM2ContentRetention 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:736:6:HAL_PWREx_DisableSRAM2ContentRetention 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:751:19:HAL_PWREx_SetSRAM2ContentRetention 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:808:6:HAL_PWREx_EnableExtSMPS_0V95 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:820:6:HAL_PWREx_DisableExtSMPS_0V95 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:878:6:HAL_PWREx_EnablePVM1 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:887:6:HAL_PWREx_DisablePVM1 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:899:6:HAL_PWREx_EnablePVM2 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:908:6:HAL_PWREx_DisablePVM2 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:919:6:HAL_PWREx_EnablePVM3 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:928:6:HAL_PWREx_DisablePVM3 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:938:6:HAL_PWREx_EnablePVM4 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:947:6:HAL_PWREx_DisablePVM4 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:967:19:HAL_PWREx_ConfigPVM 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1129:6:HAL_PWREx_EnableLowPowerRunMode 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1144:19:HAL_PWREx_DisableLowPowerRunMode 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1188:6:HAL_PWREx_EnterSTOP0Mode 16 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1239:6:HAL_PWREx_EnterSTOP1Mode 16 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1292:6:HAL_PWREx_EnterSTOP2Mode 16 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1334:6:HAL_PWREx_EnterSHUTDOWNMode 4 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1359:6:HAL_PWREx_PVD_PVM_IRQHandler 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1415:13:HAL_PWREx_PVM1Callback 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1428:13:HAL_PWREx_PVM2Callback 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1440:13:HAL_PWREx_PVM3Callback 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c:1451:13:HAL_PWREx_PVM4Callback 4 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.cyclo deleted file mode 100644 index 7b1694d..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.cyclo +++ /dev/null @@ -1,15 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:265:19:HAL_RCC_DeInit 8 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:405:19:HAL_RCC_OscConfig 83 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1097:19:HAL_RCC_ClockConfig 22 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1339:6:HAL_RCC_MCOConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1398:10:HAL_RCC_GetSysClockFreq 11 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1486:10:HAL_RCC_GetHCLKFreq 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1497:10:HAL_RCC_GetPCLK1Freq 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1509:10:HAL_RCC_GetPCLK2Freq 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1522:6:HAL_RCC_GetOscConfig 10 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1681:6:HAL_RCC_GetClockConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1716:6:HAL_RCC_EnableCSS 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1726:6:HAL_RCC_NMI_IRQHandler 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1743:13:HAL_RCC_CSSCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1757:10:HAL_RCC_GetResetSource 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1787:26:RCC_SetFlashLatencyFromMSIRange 9 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.d deleted file mode 100644 index 64fa528..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o deleted file mode 100644 index ff25506..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.su deleted file mode 100644 index 64a7d7a..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.su +++ /dev/null @@ -1,15 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:265:19:HAL_RCC_DeInit 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:405:19:HAL_RCC_OscConfig 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1097:19:HAL_RCC_ClockConfig 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1339:6:HAL_RCC_MCOConfig 48 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1398:10:HAL_RCC_GetSysClockFreq 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1486:10:HAL_RCC_GetHCLKFreq 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1497:10:HAL_RCC_GetPCLK1Freq 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1509:10:HAL_RCC_GetPCLK2Freq 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1522:6:HAL_RCC_GetOscConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1681:6:HAL_RCC_GetClockConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1716:6:HAL_RCC_EnableCSS 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1726:6:HAL_RCC_NMI_IRQHandler 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1743:13:HAL_RCC_CSSCallback 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1757:10:HAL_RCC_GetResetSource 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c:1787:26:RCC_SetFlashLatencyFromMSIRange 32 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.cyclo deleted file mode 100644 index 39d8ffa..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.cyclo +++ /dev/null @@ -1,21 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:194:19:HAL_RCCEx_PeriphCLKConfig 60 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:824:6:HAL_RCCEx_GetPeriphCLKConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:1150:10:HAL_RCCEx_GetPeriphCLKFreq 149 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2054:19:HAL_RCCEx_EnablePLLSAI1 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2122:19:HAL_RCCEx_DisablePLLSAI1 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2172:19:HAL_RCCEx_EnablePLLSAI2 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2250:19:HAL_RCCEx_DisablePLLSAI2 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2299:6:HAL_RCCEx_WakeUpStopCLKConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2317:6:HAL_RCCEx_StandbyMSIRangeConfig 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2331:6:HAL_RCCEx_EnableLSECSS 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2341:6:HAL_RCCEx_DisableLSECSS 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2354:6:HAL_RCCEx_EnableLSECSS_IT 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2371:6:HAL_RCCEx_LSECSS_IRQHandler 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2388:13:HAL_RCCEx_LSECSS_Callback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2403:6:HAL_RCCEx_EnableLSCO 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2450:6:HAL_RCCEx_DisableLSCO 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2488:6:HAL_RCCEx_EnableMSIPLLMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2498:6:HAL_RCCEx_DisableMSIPLLMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2903:26:RCCEx_PLLSAI1_Config 23 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:3108:26:RCCEx_PLLSAI2_Config 22 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:3305:17:RCCEx_GetSAIxPeriphCLKFreq 23 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.d deleted file mode 100644 index 482807a..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o deleted file mode 100644 index 78551e0..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.su deleted file mode 100644 index a1c3ece..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.su +++ /dev/null @@ -1,21 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:194:19:HAL_RCCEx_PeriphCLKConfig 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:824:6:HAL_RCCEx_GetPeriphCLKConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:1150:10:HAL_RCCEx_GetPeriphCLKFreq 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2054:19:HAL_RCCEx_EnablePLLSAI1 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2122:19:HAL_RCCEx_DisablePLLSAI1 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2172:19:HAL_RCCEx_EnablePLLSAI2 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2250:19:HAL_RCCEx_DisablePLLSAI2 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2299:6:HAL_RCCEx_WakeUpStopCLKConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2317:6:HAL_RCCEx_StandbyMSIRangeConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2331:6:HAL_RCCEx_EnableLSECSS 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2341:6:HAL_RCCEx_DisableLSECSS 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2354:6:HAL_RCCEx_EnableLSECSS_IT 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2371:6:HAL_RCCEx_LSECSS_IRQHandler 8 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2388:13:HAL_RCCEx_LSECSS_Callback 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2403:6:HAL_RCCEx_EnableLSCO 48 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2450:6:HAL_RCCEx_DisableLSCO 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2488:6:HAL_RCCEx_EnableMSIPLLMode 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2498:6:HAL_RCCEx_DisableMSIPLLMode 4 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:2903:26:RCCEx_PLLSAI1_Config 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:3108:26:RCCEx_PLLSAI2_Config 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c:3305:17:RCCEx_GetSAIxPeriphCLKFreq 40 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.cyclo deleted file mode 100644 index e69de29..0000000 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.d deleted file mode 100644 index 56d3637..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o deleted file mode 100644 index 2434f13..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.su deleted file mode 100644 index e69de29..0000000 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.cyclo deleted file mode 100644 index e69de29..0000000 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.d deleted file mode 100644 index 2d6030a..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o deleted file mode 100644 index 847f98a..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.su deleted file mode 100644 index e69de29..0000000 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.cyclo deleted file mode 100644 index 7e9e4f1..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.cyclo +++ /dev/null @@ -1,66 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:327:19:HAL_UART_Init 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:402:19:HAL_HalfDuplex_Init 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:477:19:HAL_LIN_Init 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:576:19:HAL_MultiProcessor_Init 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:652:19:HAL_UART_DeInit 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:699:13:HAL_UART_MspInit 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:714:13:HAL_UART_MspDeInit 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1156:19:HAL_UART_Transmit 10 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1246:19:HAL_UART_Receive 15 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1330:19:HAL_UART_Transmit_IT 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1413:19:HAL_UART_Receive_IT 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1454:19:HAL_UART_Transmit_DMA 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1524:19:HAL_UART_Receive_DMA 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1560:19:HAL_UART_DMAPause 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1590:19:HAL_UART_DMAResume 8 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1621:19:HAL_UART_DMAStop 13 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1696:19:HAL_UART_Abort 15 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1807:19:HAL_UART_AbortTransmit 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1873:19:HAL_UART_AbortReceive 10 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1947:19:HAL_UART_Abort_IT 18 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2107:19:HAL_UART_AbortTransmit_IT 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2204:19:HAL_UART_AbortReceive_IT 9 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2302:6:HAL_UART_IRQHandler 52 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2669:13:HAL_UART_TxCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2684:13:HAL_UART_TxHalfCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2699:13:HAL_UART_RxCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2714:13:HAL_UART_RxHalfCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2729:13:HAL_UART_ErrorCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2744:13:HAL_UART_AbortCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2759:13:HAL_UART_AbortTransmitCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2774:13:HAL_UART_AbortReceiveCpltCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2791:13:HAL_UARTEx_RxEventCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2839:6:HAL_UART_ReceiverTimeout_Config 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2854:19:HAL_UART_EnableReceiverTimeout 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2892:19:HAL_UART_DisableReceiverTimeout 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2930:19:HAL_MultiProcessor_EnableMuteMode 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2950:19:HAL_MultiProcessor_DisableMuteMode 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2970:6:HAL_MultiProcessor_EnterMuteMode 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2980:19:HAL_HalfDuplex_EnableTransmitter 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3003:19:HAL_HalfDuplex_EnableReceiver 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3027:19:HAL_LIN_SendBreak 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3072:23:HAL_UART_GetState 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3088:10:HAL_UART_GetError 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3136:19:UART_SetConfig 67 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3391:6:UART_AdvFeatureConfig 10 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3465:19:UART_CheckIdleState 8 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3542:19:UART_WaitOnFlagUntilTimeout 8 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3610:19:UART_Start_Receive_IT 13 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3704:19:UART_Start_Receive_DMA 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3761:13:UART_EndTxTransfer 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3782:13:UART_EndRxTransfer 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3813:13:UART_DMATransmitCplt 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3847:13:UART_DMATxHalfCplt 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3865:13:UART_DMAReceiveCplt 8 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3926:13:UART_DMARxHalfCplt 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3964:13:UART_DMAError 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4004:13:UART_DMAAbortOnError 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4027:13:UART_DMATxAbortCallback 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4084:13:UART_DMARxAbortCallback 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4136:13:UART_DMATxOnlyAbortCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4171:13:UART_DMARxOnlyAbortCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4204:13:UART_TxISR_8BIT 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4237:13:UART_TxISR_16BIT 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4356:13:UART_EndTransmit_IT 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4381:13:UART_RxISR_8BIT 11 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4476:13:UART_RxISR_16BIT 11 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.d deleted file mode 100644 index 64fa4bb..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o deleted file mode 100644 index bb829a5..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.su deleted file mode 100644 index e9048a8..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.su +++ /dev/null @@ -1,66 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:327:19:HAL_UART_Init 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:402:19:HAL_HalfDuplex_Init 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:477:19:HAL_LIN_Init 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:576:19:HAL_MultiProcessor_Init 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:652:19:HAL_UART_DeInit 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:699:13:HAL_UART_MspInit 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:714:13:HAL_UART_MspDeInit 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1156:19:HAL_UART_Transmit 48 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1246:19:HAL_UART_Receive 48 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1330:19:HAL_UART_Transmit_IT 48 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1413:19:HAL_UART_Receive_IT 48 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1454:19:HAL_UART_Transmit_DMA 48 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1524:19:HAL_UART_Receive_DMA 48 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1560:19:HAL_UART_DMAPause 120 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1590:19:HAL_UART_DMAResume 112 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1621:19:HAL_UART_DMAStop 72 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1696:19:HAL_UART_Abort 136 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1807:19:HAL_UART_AbortTransmit 64 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1873:19:HAL_UART_AbortReceive 112 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1947:19:HAL_UART_Abort_IT 144 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2107:19:HAL_UART_AbortTransmit_IT 64 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2204:19:HAL_UART_AbortReceive_IT 112 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2302:6:HAL_UART_IRQHandler 240 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2669:13:HAL_UART_TxCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2684:13:HAL_UART_TxHalfCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2699:13:HAL_UART_RxCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2714:13:HAL_UART_RxHalfCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2729:13:HAL_UART_ErrorCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2744:13:HAL_UART_AbortCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2759:13:HAL_UART_AbortTransmitCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2774:13:HAL_UART_AbortReceiveCpltCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2791:13:HAL_UARTEx_RxEventCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2839:6:HAL_UART_ReceiverTimeout_Config 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2854:19:HAL_UART_EnableReceiverTimeout 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2892:19:HAL_UART_DisableReceiverTimeout 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2930:19:HAL_MultiProcessor_EnableMuteMode 40 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2950:19:HAL_MultiProcessor_DisableMuteMode 40 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2970:6:HAL_MultiProcessor_EnterMuteMode 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2980:19:HAL_HalfDuplex_EnableTransmitter 64 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3003:19:HAL_HalfDuplex_EnableReceiver 64 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3027:19:HAL_LIN_SendBreak 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3072:23:HAL_UART_GetState 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3088:10:HAL_UART_GetError 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3136:19:UART_SetConfig 72 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3391:6:UART_AdvFeatureConfig 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3465:19:UART_CheckIdleState 104 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3542:19:UART_WaitOnFlagUntilTimeout 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3610:19:UART_Start_Receive_IT 96 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3704:19:UART_Start_Receive_DMA 96 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3761:13:UART_EndTxTransfer 40 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3782:13:UART_EndRxTransfer 88 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3813:13:UART_DMATransmitCplt 72 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3847:13:UART_DMATxHalfCplt 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3865:13:UART_DMAReceiveCplt 120 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3926:13:UART_DMARxHalfCplt 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3964:13:UART_DMAError 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4004:13:UART_DMAAbortOnError 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4027:13:UART_DMATxAbortCallback 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4084:13:UART_DMARxAbortCallback 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4136:13:UART_DMATxOnlyAbortCallback 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4171:13:UART_DMARxOnlyAbortCallback 24 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4204:13:UART_TxISR_8BIT 64 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4237:13:UART_TxISR_16BIT 72 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4356:13:UART_EndTransmit_IT 40 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4381:13:UART_RxISR_8BIT 120 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4476:13:UART_RxISR_16BIT 120 static,ignoring_inline_asm diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.cyclo b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.cyclo deleted file mode 100644 index 56d26d4..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.cyclo +++ /dev/null @@ -1,13 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:170:19:HAL_RS485Ex_Init 5 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:278:13:HAL_UARTEx_WakeupCallback 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:394:19:HAL_UARTEx_EnableClockStopMode 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:413:19:HAL_UARTEx_DisableClockStopMode 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:441:19:HAL_MultiProcessorEx_AddressLength_Set 2 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:479:19:HAL_UARTEx_StopModeWakeUpSourceConfig 4 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:534:19:HAL_UARTEx_EnableStopMode 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:553:19:HAL_UARTEx_DisableStopMode 3 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:767:19:HAL_UARTEx_ReceiveToIdle 20 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:890:19:HAL_UARTEx_ReceiveToIdle_IT 6 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:947:19:HAL_UARTEx_ReceiveToIdle_DMA 7 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:1015:29:HAL_UARTEx_GetRxEventType 1 -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:1039:13:UARTEx_Wakeup_AddressConfig 1 diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.d b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.d deleted file mode 100644 index 550527d..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.d +++ /dev/null @@ -1,58 +0,0 @@ -Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o: \ - ../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h \ - ../Core/Inc/stm32l4xx_hal_conf.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h \ - ../Drivers/CMSIS/Include/core_cm4.h \ - ../Drivers/CMSIS/Include/cmsis_version.h \ - ../Drivers/CMSIS/Include/cmsis_compiler.h \ - ../Drivers/CMSIS/Include/cmsis_gcc.h \ - ../Drivers/CMSIS/Include/mpu_armv7.h \ - ../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h \ - ../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h: -../Core/Inc/stm32l4xx_hal_conf.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h: -../Drivers/CMSIS/Include/core_cm4.h: -../Drivers/CMSIS/Include/cmsis_version.h: -../Drivers/CMSIS/Include/cmsis_compiler.h: -../Drivers/CMSIS/Include/cmsis_gcc.h: -../Drivers/CMSIS/Include/mpu_armv7.h: -../Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_exti.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h: -../Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h: diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o deleted file mode 100644 index e7021f5..0000000 Binary files a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o and /dev/null differ diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.su b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.su deleted file mode 100644 index d9b61fe..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.su +++ /dev/null @@ -1,13 +0,0 @@ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:170:19:HAL_RS485Ex_Init 32 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:278:13:HAL_UARTEx_WakeupCallback 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:394:19:HAL_UARTEx_EnableClockStopMode 40 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:413:19:HAL_UARTEx_DisableClockStopMode 40 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:441:19:HAL_MultiProcessorEx_AddressLength_Set 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:479:19:HAL_UARTEx_StopModeWakeUpSourceConfig 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:534:19:HAL_UARTEx_EnableStopMode 40 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:553:19:HAL_UARTEx_DisableStopMode 40 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:767:19:HAL_UARTEx_ReceiveToIdle 40 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:890:19:HAL_UARTEx_ReceiveToIdle_IT 56 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:947:19:HAL_UARTEx_ReceiveToIdle_DMA 56 static,ignoring_inline_asm -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:1015:29:HAL_UARTEx_GetRxEventType 16 static -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c:1039:13:UARTEx_Wakeup_AddressConfig 24 static diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk deleted file mode 100644 index f00f1fe..0000000 --- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -# Toolchain: GNU Tools for STM32 (11.3.rel1) -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c \ -../Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c - -C_DEPS += \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.d \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.d - -OBJS += \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o \ -./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - - -# Each subdirectory must supply rules for building sources it contributes -Drivers/STM32L4xx_HAL_Driver/Src/%.o Drivers/STM32L4xx_HAL_Driver/Src/%.su Drivers/STM32L4xx_HAL_Driver/Src/%.cyclo: ../Drivers/STM32L4xx_HAL_Driver/Src/%.c Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L476xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - -clean: clean-Drivers-2f-STM32L4xx_HAL_Driver-2f-Src - -clean-Drivers-2f-STM32L4xx_HAL_Driver-2f-Src: - -$(RM) ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.su - -.PHONY: clean-Drivers-2f-STM32L4xx_HAL_Driver-2f-Src - diff --git a/Debug/makefile b/Debug/makefile deleted file mode 100644 index a5ca0d1..0000000 --- a/Debug/makefile +++ /dev/null @@ -1,118 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -# Toolchain: GNU Tools for STM32 (11.3.rel1) -################################################################################ - --include ../makefile.init - -RM := rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk --include Core/Startup/subdir.mk --include Core/Src/subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(CC_DEPS)),) --include $(CC_DEPS) -endif -ifneq ($(strip $(C++_DEPS)),) --include $(C++_DEPS) -endif -ifneq ($(strip $(CCM_DEPS)),) --include $(CCM_DEPS) -endif -ifneq ($(strip $(C_UPPER_DEPS)),) --include $(C_UPPER_DEPS) -endif -ifneq ($(strip $(CXX_DEPS)),) --include $(CXX_DEPS) -endif -ifneq ($(strip $(S_DEPS)),) --include $(S_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -ifneq ($(strip $(CXXM_DEPS)),) --include $(CXXM_DEPS) -endif -ifneq ($(strip $(C++M_DEPS)),) --include $(C++M_DEPS) -endif -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(CPP_DEPS)),) --include $(CPP_DEPS) -endif -endif - --include ../makefile.defs - -OPTIONAL_TOOL_DEPS := \ -$(wildcard ../makefile.defs) \ -$(wildcard ../makefile.init) \ -$(wildcard ../makefile.targets) \ - - -BUILD_ARTIFACT_NAME := task4 -BUILD_ARTIFACT_EXTENSION := elf -BUILD_ARTIFACT_PREFIX := -BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),) - -# Add inputs and outputs from these tool invocations to the build variables -EXECUTABLES += \ -task4.elf \ - -MAP_FILES += \ -task4.map \ - -SIZE_OUTPUT += \ -default.size.stdout \ - -OBJDUMP_LIST += \ -task4.list \ - - -# All Target -all: main-build - -# Main-build Target -main-build: task4.elf secondary-outputs - -# Tool invocations -task4.elf task4.map: $(OBJS) $(USER_OBJS) /Users/yaroslavsvitlytskyi/STM32CubeIDE/workspace_1.14.0/task4/STM32L476RGTX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS) - arm-none-eabi-g++ -o "task4.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"/Users/yaroslavsvitlytskyi/STM32CubeIDE/workspace_1.14.0/task4/STM32L476RGTX_FLASH.ld" --specs=nosys.specs -Wl,-Map="task4.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group - @echo 'Finished building target: $@' - @echo ' ' - -default.size.stdout: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS) - arm-none-eabi-size $(EXECUTABLES) - @echo 'Finished building: $@' - @echo ' ' - -task4.list: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS) - arm-none-eabi-objdump -h -S $(EXECUTABLES) > "task4.list" - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) default.size.stdout task4.elf task4.list task4.map - -@echo ' ' - -secondary-outputs: $(SIZE_OUTPUT) $(OBJDUMP_LIST) - -fail-specified-linker-script-missing: - @echo 'Error: Cannot find the specified linker script. Check the linker settings in the build configuration.' - @exit 2 - -warn-no-linker-script-specified: - @echo 'Warning: No linker script specified. Check the linker settings in the build configuration.' - -.PHONY: all clean dependents main-build fail-specified-linker-script-missing warn-no-linker-script-specified - --include ../makefile.targets diff --git a/Debug/objects.list b/Debug/objects.list deleted file mode 100644 index 1887b12..0000000 --- a/Debug/objects.list +++ /dev/null @@ -1,28 +0,0 @@ -"./Core/Src/dev_config.o" -"./Core/Src/main.o" -"./Core/Src/stm32l4xx_hal_msp.o" -"./Core/Src/stm32l4xx_it.o" -"./Core/Src/syscalls.o" -"./Core/Src/sysmem.o" -"./Core/Src/system_stm32l4xx.o" -"./Core/Src/tsl2591x.o" -"./Core/Startup/startup_stm32l476rgtx.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o" -"./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o" diff --git a/Debug/objects.mk b/Debug/objects.mk deleted file mode 100644 index 820854b..0000000 --- a/Debug/objects.mk +++ /dev/null @@ -1,9 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -# Toolchain: GNU Tools for STM32 (11.3.rel1) -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Debug/sources.mk b/Debug/sources.mk deleted file mode 100644 index 6e87b69..0000000 --- a/Debug/sources.mk +++ /dev/null @@ -1,44 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -# Toolchain: GNU Tools for STM32 (11.3.rel1) -################################################################################ - -C++M_SRCS := -CPP_SRCS := -S_UPPER_SRCS := -O_SRCS := -ELF_SRCS := -C_UPPER_SRCS := -CXX_SRCS := -CCM_SRCS := -C++_SRCS := -OBJ_SRCS := -S_SRCS := -CC_SRCS := -C_SRCS := -CXXM_SRCS := -CYCLO_FILES := -OBJDUMP_LIST := -CCM_DEPS := -C_UPPER_DEPS := -S_DEPS := -CXXM_DEPS := -C_DEPS := -CC_DEPS := -SIZE_OUTPUT := -C++_DEPS := -SU_FILES := -EXECUTABLES := -OBJS := -CXX_DEPS := -MAP_FILES := -S_UPPER_DEPS := -C++M_DEPS := -CPP_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -Core/Src \ -Core/Startup \ -Drivers/STM32L4xx_HAL_Driver/Src \ - diff --git a/Debug/task4.elf b/Debug/task4.elf deleted file mode 100755 index 215c219..0000000 Binary files a/Debug/task4.elf and /dev/null differ diff --git a/Debug/task4.list b/Debug/task4.list deleted file mode 100644 index af992b6..0000000 --- a/Debug/task4.list +++ /dev/null @@ -1,17594 +0,0 @@ - -task4.elf: file format elf32-littlearm - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .isr_vector 00000188 08000000 08000000 00010000 2**0 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 00006d50 08000190 08000190 00010190 2**4 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 00000108 08006ee0 08006ee0 00016ee0 2**2 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000000 08006fe8 08006fe8 00020068 2**0 - CONTENTS - 4 .ARM 00000008 08006fe8 08006fe8 00016fe8 2**2 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 5 .preinit_array 00000000 08006ff0 08006ff0 00020068 2**0 - CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000004 08006ff0 08006ff0 00016ff0 2**2 - CONTENTS, ALLOC, LOAD, DATA - 7 .fini_array 00000004 08006ff4 08006ff4 00016ff4 2**2 - CONTENTS, ALLOC, LOAD, DATA - 8 .data 00000068 20000000 08006ff8 00020000 2**2 - CONTENTS, ALLOC, LOAD, DATA - 9 .bss 000002e8 20000068 08007060 00020068 2**2 - ALLOC - 10 ._user_heap_stack 00000600 20000350 08007060 00020350 2**0 - ALLOC - 11 .ARM.attributes 00000030 00000000 00000000 00020068 2**0 - CONTENTS, READONLY - 12 .comment 00000043 00000000 00000000 00020098 2**0 - CONTENTS, READONLY - 13 .debug_info 0000fbc5 00000000 00000000 000200db 2**0 - CONTENTS, READONLY, DEBUGGING, OCTETS - 14 .debug_abbrev 0000269c 00000000 00000000 0002fca0 2**0 - CONTENTS, READONLY, DEBUGGING, OCTETS - 15 .debug_aranges 00000e20 00000000 00000000 00032340 2**3 - CONTENTS, READONLY, DEBUGGING, OCTETS - 16 .debug_rnglists 00000add 00000000 00000000 00033160 2**0 - CONTENTS, READONLY, DEBUGGING, OCTETS - 17 .debug_macro 000276ea 00000000 00000000 00033c3d 2**0 - CONTENTS, READONLY, DEBUGGING, OCTETS - 18 .debug_line 00011687 00000000 00000000 0005b327 2**0 - CONTENTS, READONLY, DEBUGGING, OCTETS - 19 .debug_str 000ecb39 00000000 00000000 0006c9ae 2**0 - CONTENTS, READONLY, DEBUGGING, OCTETS - 20 .debug_frame 00004244 00000000 00000000 001594e8 2**2 - CONTENTS, READONLY, DEBUGGING, OCTETS - 21 .debug_line_str 0000006d 00000000 00000000 0015d72c 2**0 - CONTENTS, READONLY, DEBUGGING, OCTETS - -Disassembly of section .text: - -08000190 <__do_global_dtors_aux>: - 8000190: b510 push {r4, lr} - 8000192: 4c05 ldr r4, [pc, #20] ; (80001a8 <__do_global_dtors_aux+0x18>) - 8000194: 7823 ldrb r3, [r4, #0] - 8000196: b933 cbnz r3, 80001a6 <__do_global_dtors_aux+0x16> - 8000198: 4b04 ldr r3, [pc, #16] ; (80001ac <__do_global_dtors_aux+0x1c>) - 800019a: b113 cbz r3, 80001a2 <__do_global_dtors_aux+0x12> - 800019c: 4804 ldr r0, [pc, #16] ; (80001b0 <__do_global_dtors_aux+0x20>) - 800019e: f3af 8000 nop.w - 80001a2: 2301 movs r3, #1 - 80001a4: 7023 strb r3, [r4, #0] - 80001a6: bd10 pop {r4, pc} - 80001a8: 20000068 .word 0x20000068 - 80001ac: 00000000 .word 0x00000000 - 80001b0: 08006ec8 .word 0x08006ec8 - -080001b4 : - 80001b4: b508 push {r3, lr} - 80001b6: 4b03 ldr r3, [pc, #12] ; (80001c4 ) - 80001b8: b11b cbz r3, 80001c2 - 80001ba: 4903 ldr r1, [pc, #12] ; (80001c8 ) - 80001bc: 4803 ldr r0, [pc, #12] ; (80001cc ) - 80001be: f3af 8000 nop.w - 80001c2: bd08 pop {r3, pc} - 80001c4: 00000000 .word 0x00000000 - 80001c8: 2000006c .word 0x2000006c - 80001cc: 08006ec8 .word 0x08006ec8 - -080001d0 : - 80001d0: f001 01ff and.w r1, r1, #255 ; 0xff - 80001d4: 2a10 cmp r2, #16 - 80001d6: db2b blt.n 8000230 - 80001d8: f010 0f07 tst.w r0, #7 - 80001dc: d008 beq.n 80001f0 - 80001de: f810 3b01 ldrb.w r3, [r0], #1 - 80001e2: 3a01 subs r2, #1 - 80001e4: 428b cmp r3, r1 - 80001e6: d02d beq.n 8000244 - 80001e8: f010 0f07 tst.w r0, #7 - 80001ec: b342 cbz r2, 8000240 - 80001ee: d1f6 bne.n 80001de - 80001f0: b4f0 push {r4, r5, r6, r7} - 80001f2: ea41 2101 orr.w r1, r1, r1, lsl #8 - 80001f6: ea41 4101 orr.w r1, r1, r1, lsl #16 - 80001fa: f022 0407 bic.w r4, r2, #7 - 80001fe: f07f 0700 mvns.w r7, #0 - 8000202: 2300 movs r3, #0 - 8000204: e8f0 5602 ldrd r5, r6, [r0], #8 - 8000208: 3c08 subs r4, #8 - 800020a: ea85 0501 eor.w r5, r5, r1 - 800020e: ea86 0601 eor.w r6, r6, r1 - 8000212: fa85 f547 uadd8 r5, r5, r7 - 8000216: faa3 f587 sel r5, r3, r7 - 800021a: fa86 f647 uadd8 r6, r6, r7 - 800021e: faa5 f687 sel r6, r5, r7 - 8000222: b98e cbnz r6, 8000248 - 8000224: d1ee bne.n 8000204 - 8000226: bcf0 pop {r4, r5, r6, r7} - 8000228: f001 01ff and.w r1, r1, #255 ; 0xff - 800022c: f002 0207 and.w r2, r2, #7 - 8000230: b132 cbz r2, 8000240 - 8000232: f810 3b01 ldrb.w r3, [r0], #1 - 8000236: 3a01 subs r2, #1 - 8000238: ea83 0301 eor.w r3, r3, r1 - 800023c: b113 cbz r3, 8000244 - 800023e: d1f8 bne.n 8000232 - 8000240: 2000 movs r0, #0 - 8000242: 4770 bx lr - 8000244: 3801 subs r0, #1 - 8000246: 4770 bx lr - 8000248: 2d00 cmp r5, #0 - 800024a: bf06 itte eq - 800024c: 4635 moveq r5, r6 - 800024e: 3803 subeq r0, #3 - 8000250: 3807 subne r0, #7 - 8000252: f015 0f01 tst.w r5, #1 - 8000256: d107 bne.n 8000268 - 8000258: 3001 adds r0, #1 - 800025a: f415 7f80 tst.w r5, #256 ; 0x100 - 800025e: bf02 ittt eq - 8000260: 3001 addeq r0, #1 - 8000262: f415 3fc0 tsteq.w r5, #98304 ; 0x18000 - 8000266: 3001 addeq r0, #1 - 8000268: bcf0 pop {r4, r5, r6, r7} - 800026a: 3801 subs r0, #1 - 800026c: 4770 bx lr - 800026e: bf00 nop - -08000270 <__aeabi_drsub>: - 8000270: f081 4100 eor.w r1, r1, #2147483648 ; 0x80000000 - 8000274: e002 b.n 800027c <__adddf3> - 8000276: bf00 nop - -08000278 <__aeabi_dsub>: - 8000278: f083 4300 eor.w r3, r3, #2147483648 ; 0x80000000 - -0800027c <__adddf3>: - 800027c: b530 push {r4, r5, lr} - 800027e: ea4f 0441 mov.w r4, r1, lsl #1 - 8000282: ea4f 0543 mov.w r5, r3, lsl #1 - 8000286: ea94 0f05 teq r4, r5 - 800028a: bf08 it eq - 800028c: ea90 0f02 teqeq r0, r2 - 8000290: bf1f itttt ne - 8000292: ea54 0c00 orrsne.w ip, r4, r0 - 8000296: ea55 0c02 orrsne.w ip, r5, r2 - 800029a: ea7f 5c64 mvnsne.w ip, r4, asr #21 - 800029e: ea7f 5c65 mvnsne.w ip, r5, asr #21 - 80002a2: f000 80e2 beq.w 800046a <__adddf3+0x1ee> - 80002a6: ea4f 5454 mov.w r4, r4, lsr #21 - 80002aa: ebd4 5555 rsbs r5, r4, r5, lsr #21 - 80002ae: bfb8 it lt - 80002b0: 426d neglt r5, r5 - 80002b2: dd0c ble.n 80002ce <__adddf3+0x52> - 80002b4: 442c add r4, r5 - 80002b6: ea80 0202 eor.w r2, r0, r2 - 80002ba: ea81 0303 eor.w r3, r1, r3 - 80002be: ea82 0000 eor.w r0, r2, r0 - 80002c2: ea83 0101 eor.w r1, r3, r1 - 80002c6: ea80 0202 eor.w r2, r0, r2 - 80002ca: ea81 0303 eor.w r3, r1, r3 - 80002ce: 2d36 cmp r5, #54 ; 0x36 - 80002d0: bf88 it hi - 80002d2: bd30 pophi {r4, r5, pc} - 80002d4: f011 4f00 tst.w r1, #2147483648 ; 0x80000000 - 80002d8: ea4f 3101 mov.w r1, r1, lsl #12 - 80002dc: f44f 1c80 mov.w ip, #1048576 ; 0x100000 - 80002e0: ea4c 3111 orr.w r1, ip, r1, lsr #12 - 80002e4: d002 beq.n 80002ec <__adddf3+0x70> - 80002e6: 4240 negs r0, r0 - 80002e8: eb61 0141 sbc.w r1, r1, r1, lsl #1 - 80002ec: f013 4f00 tst.w r3, #2147483648 ; 0x80000000 - 80002f0: ea4f 3303 mov.w r3, r3, lsl #12 - 80002f4: ea4c 3313 orr.w r3, ip, r3, lsr #12 - 80002f8: d002 beq.n 8000300 <__adddf3+0x84> - 80002fa: 4252 negs r2, r2 - 80002fc: eb63 0343 sbc.w r3, r3, r3, lsl #1 - 8000300: ea94 0f05 teq r4, r5 - 8000304: f000 80a7 beq.w 8000456 <__adddf3+0x1da> - 8000308: f1a4 0401 sub.w r4, r4, #1 - 800030c: f1d5 0e20 rsbs lr, r5, #32 - 8000310: db0d blt.n 800032e <__adddf3+0xb2> - 8000312: fa02 fc0e lsl.w ip, r2, lr - 8000316: fa22 f205 lsr.w r2, r2, r5 - 800031a: 1880 adds r0, r0, r2 - 800031c: f141 0100 adc.w r1, r1, #0 - 8000320: fa03 f20e lsl.w r2, r3, lr - 8000324: 1880 adds r0, r0, r2 - 8000326: fa43 f305 asr.w r3, r3, r5 - 800032a: 4159 adcs r1, r3 - 800032c: e00e b.n 800034c <__adddf3+0xd0> - 800032e: f1a5 0520 sub.w r5, r5, #32 - 8000332: f10e 0e20 add.w lr, lr, #32 - 8000336: 2a01 cmp r2, #1 - 8000338: fa03 fc0e lsl.w ip, r3, lr - 800033c: bf28 it cs - 800033e: f04c 0c02 orrcs.w ip, ip, #2 - 8000342: fa43 f305 asr.w r3, r3, r5 - 8000346: 18c0 adds r0, r0, r3 - 8000348: eb51 71e3 adcs.w r1, r1, r3, asr #31 - 800034c: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 - 8000350: d507 bpl.n 8000362 <__adddf3+0xe6> - 8000352: f04f 0e00 mov.w lr, #0 - 8000356: f1dc 0c00 rsbs ip, ip, #0 - 800035a: eb7e 0000 sbcs.w r0, lr, r0 - 800035e: eb6e 0101 sbc.w r1, lr, r1 - 8000362: f5b1 1f80 cmp.w r1, #1048576 ; 0x100000 - 8000366: d31b bcc.n 80003a0 <__adddf3+0x124> - 8000368: f5b1 1f00 cmp.w r1, #2097152 ; 0x200000 - 800036c: d30c bcc.n 8000388 <__adddf3+0x10c> - 800036e: 0849 lsrs r1, r1, #1 - 8000370: ea5f 0030 movs.w r0, r0, rrx - 8000374: ea4f 0c3c mov.w ip, ip, rrx - 8000378: f104 0401 add.w r4, r4, #1 - 800037c: ea4f 5244 mov.w r2, r4, lsl #21 - 8000380: f512 0f80 cmn.w r2, #4194304 ; 0x400000 - 8000384: f080 809a bcs.w 80004bc <__adddf3+0x240> - 8000388: f1bc 4f00 cmp.w ip, #2147483648 ; 0x80000000 - 800038c: bf08 it eq - 800038e: ea5f 0c50 movseq.w ip, r0, lsr #1 - 8000392: f150 0000 adcs.w r0, r0, #0 - 8000396: eb41 5104 adc.w r1, r1, r4, lsl #20 - 800039a: ea41 0105 orr.w r1, r1, r5 - 800039e: bd30 pop {r4, r5, pc} - 80003a0: ea5f 0c4c movs.w ip, ip, lsl #1 - 80003a4: 4140 adcs r0, r0 - 80003a6: eb41 0101 adc.w r1, r1, r1 - 80003aa: 3c01 subs r4, #1 - 80003ac: bf28 it cs - 80003ae: f5b1 1f80 cmpcs.w r1, #1048576 ; 0x100000 - 80003b2: d2e9 bcs.n 8000388 <__adddf3+0x10c> - 80003b4: f091 0f00 teq r1, #0 - 80003b8: bf04 itt eq - 80003ba: 4601 moveq r1, r0 - 80003bc: 2000 moveq r0, #0 - 80003be: fab1 f381 clz r3, r1 - 80003c2: bf08 it eq - 80003c4: 3320 addeq r3, #32 - 80003c6: f1a3 030b sub.w r3, r3, #11 - 80003ca: f1b3 0220 subs.w r2, r3, #32 - 80003ce: da0c bge.n 80003ea <__adddf3+0x16e> - 80003d0: 320c adds r2, #12 - 80003d2: dd08 ble.n 80003e6 <__adddf3+0x16a> - 80003d4: f102 0c14 add.w ip, r2, #20 - 80003d8: f1c2 020c rsb r2, r2, #12 - 80003dc: fa01 f00c lsl.w r0, r1, ip - 80003e0: fa21 f102 lsr.w r1, r1, r2 - 80003e4: e00c b.n 8000400 <__adddf3+0x184> - 80003e6: f102 0214 add.w r2, r2, #20 - 80003ea: bfd8 it le - 80003ec: f1c2 0c20 rsble ip, r2, #32 - 80003f0: fa01 f102 lsl.w r1, r1, r2 - 80003f4: fa20 fc0c lsr.w ip, r0, ip - 80003f8: bfdc itt le - 80003fa: ea41 010c orrle.w r1, r1, ip - 80003fe: 4090 lslle r0, r2 - 8000400: 1ae4 subs r4, r4, r3 - 8000402: bfa2 ittt ge - 8000404: eb01 5104 addge.w r1, r1, r4, lsl #20 - 8000408: 4329 orrge r1, r5 - 800040a: bd30 popge {r4, r5, pc} - 800040c: ea6f 0404 mvn.w r4, r4 - 8000410: 3c1f subs r4, #31 - 8000412: da1c bge.n 800044e <__adddf3+0x1d2> - 8000414: 340c adds r4, #12 - 8000416: dc0e bgt.n 8000436 <__adddf3+0x1ba> - 8000418: f104 0414 add.w r4, r4, #20 - 800041c: f1c4 0220 rsb r2, r4, #32 - 8000420: fa20 f004 lsr.w r0, r0, r4 - 8000424: fa01 f302 lsl.w r3, r1, r2 - 8000428: ea40 0003 orr.w r0, r0, r3 - 800042c: fa21 f304 lsr.w r3, r1, r4 - 8000430: ea45 0103 orr.w r1, r5, r3 - 8000434: bd30 pop {r4, r5, pc} - 8000436: f1c4 040c rsb r4, r4, #12 - 800043a: f1c4 0220 rsb r2, r4, #32 - 800043e: fa20 f002 lsr.w r0, r0, r2 - 8000442: fa01 f304 lsl.w r3, r1, r4 - 8000446: ea40 0003 orr.w r0, r0, r3 - 800044a: 4629 mov r1, r5 - 800044c: bd30 pop {r4, r5, pc} - 800044e: fa21 f004 lsr.w r0, r1, r4 - 8000452: 4629 mov r1, r5 - 8000454: bd30 pop {r4, r5, pc} - 8000456: f094 0f00 teq r4, #0 - 800045a: f483 1380 eor.w r3, r3, #1048576 ; 0x100000 - 800045e: bf06 itte eq - 8000460: f481 1180 eoreq.w r1, r1, #1048576 ; 0x100000 - 8000464: 3401 addeq r4, #1 - 8000466: 3d01 subne r5, #1 - 8000468: e74e b.n 8000308 <__adddf3+0x8c> - 800046a: ea7f 5c64 mvns.w ip, r4, asr #21 - 800046e: bf18 it ne - 8000470: ea7f 5c65 mvnsne.w ip, r5, asr #21 - 8000474: d029 beq.n 80004ca <__adddf3+0x24e> - 8000476: ea94 0f05 teq r4, r5 - 800047a: bf08 it eq - 800047c: ea90 0f02 teqeq r0, r2 - 8000480: d005 beq.n 800048e <__adddf3+0x212> - 8000482: ea54 0c00 orrs.w ip, r4, r0 - 8000486: bf04 itt eq - 8000488: 4619 moveq r1, r3 - 800048a: 4610 moveq r0, r2 - 800048c: bd30 pop {r4, r5, pc} - 800048e: ea91 0f03 teq r1, r3 - 8000492: bf1e ittt ne - 8000494: 2100 movne r1, #0 - 8000496: 2000 movne r0, #0 - 8000498: bd30 popne {r4, r5, pc} - 800049a: ea5f 5c54 movs.w ip, r4, lsr #21 - 800049e: d105 bne.n 80004ac <__adddf3+0x230> - 80004a0: 0040 lsls r0, r0, #1 - 80004a2: 4149 adcs r1, r1 - 80004a4: bf28 it cs - 80004a6: f041 4100 orrcs.w r1, r1, #2147483648 ; 0x80000000 - 80004aa: bd30 pop {r4, r5, pc} - 80004ac: f514 0480 adds.w r4, r4, #4194304 ; 0x400000 - 80004b0: bf3c itt cc - 80004b2: f501 1180 addcc.w r1, r1, #1048576 ; 0x100000 - 80004b6: bd30 popcc {r4, r5, pc} - 80004b8: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 - 80004bc: f045 41fe orr.w r1, r5, #2130706432 ; 0x7f000000 - 80004c0: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000 - 80004c4: f04f 0000 mov.w r0, #0 - 80004c8: bd30 pop {r4, r5, pc} - 80004ca: ea7f 5c64 mvns.w ip, r4, asr #21 - 80004ce: bf1a itte ne - 80004d0: 4619 movne r1, r3 - 80004d2: 4610 movne r0, r2 - 80004d4: ea7f 5c65 mvnseq.w ip, r5, asr #21 - 80004d8: bf1c itt ne - 80004da: 460b movne r3, r1 - 80004dc: 4602 movne r2, r0 - 80004de: ea50 3401 orrs.w r4, r0, r1, lsl #12 - 80004e2: bf06 itte eq - 80004e4: ea52 3503 orrseq.w r5, r2, r3, lsl #12 - 80004e8: ea91 0f03 teqeq r1, r3 - 80004ec: f441 2100 orrne.w r1, r1, #524288 ; 0x80000 - 80004f0: bd30 pop {r4, r5, pc} - 80004f2: bf00 nop - -080004f4 <__aeabi_ui2d>: - 80004f4: f090 0f00 teq r0, #0 - 80004f8: bf04 itt eq - 80004fa: 2100 moveq r1, #0 - 80004fc: 4770 bxeq lr - 80004fe: b530 push {r4, r5, lr} - 8000500: f44f 6480 mov.w r4, #1024 ; 0x400 - 8000504: f104 0432 add.w r4, r4, #50 ; 0x32 - 8000508: f04f 0500 mov.w r5, #0 - 800050c: f04f 0100 mov.w r1, #0 - 8000510: e750 b.n 80003b4 <__adddf3+0x138> - 8000512: bf00 nop - -08000514 <__aeabi_i2d>: - 8000514: f090 0f00 teq r0, #0 - 8000518: bf04 itt eq - 800051a: 2100 moveq r1, #0 - 800051c: 4770 bxeq lr - 800051e: b530 push {r4, r5, lr} - 8000520: f44f 6480 mov.w r4, #1024 ; 0x400 - 8000524: f104 0432 add.w r4, r4, #50 ; 0x32 - 8000528: f010 4500 ands.w r5, r0, #2147483648 ; 0x80000000 - 800052c: bf48 it mi - 800052e: 4240 negmi r0, r0 - 8000530: f04f 0100 mov.w r1, #0 - 8000534: e73e b.n 80003b4 <__adddf3+0x138> - 8000536: bf00 nop - -08000538 <__aeabi_f2d>: - 8000538: 0042 lsls r2, r0, #1 - 800053a: ea4f 01e2 mov.w r1, r2, asr #3 - 800053e: ea4f 0131 mov.w r1, r1, rrx - 8000542: ea4f 7002 mov.w r0, r2, lsl #28 - 8000546: bf1f itttt ne - 8000548: f012 437f andsne.w r3, r2, #4278190080 ; 0xff000000 - 800054c: f093 4f7f teqne r3, #4278190080 ; 0xff000000 - 8000550: f081 5160 eorne.w r1, r1, #939524096 ; 0x38000000 - 8000554: 4770 bxne lr - 8000556: f032 427f bics.w r2, r2, #4278190080 ; 0xff000000 - 800055a: bf08 it eq - 800055c: 4770 bxeq lr - 800055e: f093 4f7f teq r3, #4278190080 ; 0xff000000 - 8000562: bf04 itt eq - 8000564: f441 2100 orreq.w r1, r1, #524288 ; 0x80000 - 8000568: 4770 bxeq lr - 800056a: b530 push {r4, r5, lr} - 800056c: f44f 7460 mov.w r4, #896 ; 0x380 - 8000570: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 - 8000574: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000 - 8000578: e71c b.n 80003b4 <__adddf3+0x138> - 800057a: bf00 nop - -0800057c <__aeabi_ul2d>: - 800057c: ea50 0201 orrs.w r2, r0, r1 - 8000580: bf08 it eq - 8000582: 4770 bxeq lr - 8000584: b530 push {r4, r5, lr} - 8000586: f04f 0500 mov.w r5, #0 - 800058a: e00a b.n 80005a2 <__aeabi_l2d+0x16> - -0800058c <__aeabi_l2d>: - 800058c: ea50 0201 orrs.w r2, r0, r1 - 8000590: bf08 it eq - 8000592: 4770 bxeq lr - 8000594: b530 push {r4, r5, lr} - 8000596: f011 4500 ands.w r5, r1, #2147483648 ; 0x80000000 - 800059a: d502 bpl.n 80005a2 <__aeabi_l2d+0x16> - 800059c: 4240 negs r0, r0 - 800059e: eb61 0141 sbc.w r1, r1, r1, lsl #1 - 80005a2: f44f 6480 mov.w r4, #1024 ; 0x400 - 80005a6: f104 0432 add.w r4, r4, #50 ; 0x32 - 80005aa: ea5f 5c91 movs.w ip, r1, lsr #22 - 80005ae: f43f aed8 beq.w 8000362 <__adddf3+0xe6> - 80005b2: f04f 0203 mov.w r2, #3 - 80005b6: ea5f 0cdc movs.w ip, ip, lsr #3 - 80005ba: bf18 it ne - 80005bc: 3203 addne r2, #3 - 80005be: ea5f 0cdc movs.w ip, ip, lsr #3 - 80005c2: bf18 it ne - 80005c4: 3203 addne r2, #3 - 80005c6: eb02 02dc add.w r2, r2, ip, lsr #3 - 80005ca: f1c2 0320 rsb r3, r2, #32 - 80005ce: fa00 fc03 lsl.w ip, r0, r3 - 80005d2: fa20 f002 lsr.w r0, r0, r2 - 80005d6: fa01 fe03 lsl.w lr, r1, r3 - 80005da: ea40 000e orr.w r0, r0, lr - 80005de: fa21 f102 lsr.w r1, r1, r2 - 80005e2: 4414 add r4, r2 - 80005e4: e6bd b.n 8000362 <__adddf3+0xe6> - 80005e6: bf00 nop - -080005e8 <__aeabi_dmul>: - 80005e8: b570 push {r4, r5, r6, lr} - 80005ea: f04f 0cff mov.w ip, #255 ; 0xff - 80005ee: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700 - 80005f2: ea1c 5411 ands.w r4, ip, r1, lsr #20 - 80005f6: bf1d ittte ne - 80005f8: ea1c 5513 andsne.w r5, ip, r3, lsr #20 - 80005fc: ea94 0f0c teqne r4, ip - 8000600: ea95 0f0c teqne r5, ip - 8000604: f000 f8de bleq 80007c4 <__aeabi_dmul+0x1dc> - 8000608: 442c add r4, r5 - 800060a: ea81 0603 eor.w r6, r1, r3 - 800060e: ea21 514c bic.w r1, r1, ip, lsl #21 - 8000612: ea23 534c bic.w r3, r3, ip, lsl #21 - 8000616: ea50 3501 orrs.w r5, r0, r1, lsl #12 - 800061a: bf18 it ne - 800061c: ea52 3503 orrsne.w r5, r2, r3, lsl #12 - 8000620: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 - 8000624: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 - 8000628: d038 beq.n 800069c <__aeabi_dmul+0xb4> - 800062a: fba0 ce02 umull ip, lr, r0, r2 - 800062e: f04f 0500 mov.w r5, #0 - 8000632: fbe1 e502 umlal lr, r5, r1, r2 - 8000636: f006 4200 and.w r2, r6, #2147483648 ; 0x80000000 - 800063a: fbe0 e503 umlal lr, r5, r0, r3 - 800063e: f04f 0600 mov.w r6, #0 - 8000642: fbe1 5603 umlal r5, r6, r1, r3 - 8000646: f09c 0f00 teq ip, #0 - 800064a: bf18 it ne - 800064c: f04e 0e01 orrne.w lr, lr, #1 - 8000650: f1a4 04ff sub.w r4, r4, #255 ; 0xff - 8000654: f5b6 7f00 cmp.w r6, #512 ; 0x200 - 8000658: f564 7440 sbc.w r4, r4, #768 ; 0x300 - 800065c: d204 bcs.n 8000668 <__aeabi_dmul+0x80> - 800065e: ea5f 0e4e movs.w lr, lr, lsl #1 - 8000662: 416d adcs r5, r5 - 8000664: eb46 0606 adc.w r6, r6, r6 - 8000668: ea42 21c6 orr.w r1, r2, r6, lsl #11 - 800066c: ea41 5155 orr.w r1, r1, r5, lsr #21 - 8000670: ea4f 20c5 mov.w r0, r5, lsl #11 - 8000674: ea40 505e orr.w r0, r0, lr, lsr #21 - 8000678: ea4f 2ece mov.w lr, lr, lsl #11 - 800067c: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd - 8000680: bf88 it hi - 8000682: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700 - 8000686: d81e bhi.n 80006c6 <__aeabi_dmul+0xde> - 8000688: f1be 4f00 cmp.w lr, #2147483648 ; 0x80000000 - 800068c: bf08 it eq - 800068e: ea5f 0e50 movseq.w lr, r0, lsr #1 - 8000692: f150 0000 adcs.w r0, r0, #0 - 8000696: eb41 5104 adc.w r1, r1, r4, lsl #20 - 800069a: bd70 pop {r4, r5, r6, pc} - 800069c: f006 4600 and.w r6, r6, #2147483648 ; 0x80000000 - 80006a0: ea46 0101 orr.w r1, r6, r1 - 80006a4: ea40 0002 orr.w r0, r0, r2 - 80006a8: ea81 0103 eor.w r1, r1, r3 - 80006ac: ebb4 045c subs.w r4, r4, ip, lsr #1 - 80006b0: bfc2 ittt gt - 80006b2: ebd4 050c rsbsgt r5, r4, ip - 80006b6: ea41 5104 orrgt.w r1, r1, r4, lsl #20 - 80006ba: bd70 popgt {r4, r5, r6, pc} - 80006bc: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 - 80006c0: f04f 0e00 mov.w lr, #0 - 80006c4: 3c01 subs r4, #1 - 80006c6: f300 80ab bgt.w 8000820 <__aeabi_dmul+0x238> - 80006ca: f114 0f36 cmn.w r4, #54 ; 0x36 - 80006ce: bfde ittt le - 80006d0: 2000 movle r0, #0 - 80006d2: f001 4100 andle.w r1, r1, #2147483648 ; 0x80000000 - 80006d6: bd70 pople {r4, r5, r6, pc} - 80006d8: f1c4 0400 rsb r4, r4, #0 - 80006dc: 3c20 subs r4, #32 - 80006de: da35 bge.n 800074c <__aeabi_dmul+0x164> - 80006e0: 340c adds r4, #12 - 80006e2: dc1b bgt.n 800071c <__aeabi_dmul+0x134> - 80006e4: f104 0414 add.w r4, r4, #20 - 80006e8: f1c4 0520 rsb r5, r4, #32 - 80006ec: fa00 f305 lsl.w r3, r0, r5 - 80006f0: fa20 f004 lsr.w r0, r0, r4 - 80006f4: fa01 f205 lsl.w r2, r1, r5 - 80006f8: ea40 0002 orr.w r0, r0, r2 - 80006fc: f001 4200 and.w r2, r1, #2147483648 ; 0x80000000 - 8000700: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000 - 8000704: eb10 70d3 adds.w r0, r0, r3, lsr #31 - 8000708: fa21 f604 lsr.w r6, r1, r4 - 800070c: eb42 0106 adc.w r1, r2, r6 - 8000710: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 - 8000714: bf08 it eq - 8000716: ea20 70d3 biceq.w r0, r0, r3, lsr #31 - 800071a: bd70 pop {r4, r5, r6, pc} - 800071c: f1c4 040c rsb r4, r4, #12 - 8000720: f1c4 0520 rsb r5, r4, #32 - 8000724: fa00 f304 lsl.w r3, r0, r4 - 8000728: fa20 f005 lsr.w r0, r0, r5 - 800072c: fa01 f204 lsl.w r2, r1, r4 - 8000730: ea40 0002 orr.w r0, r0, r2 - 8000734: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 8000738: eb10 70d3 adds.w r0, r0, r3, lsr #31 - 800073c: f141 0100 adc.w r1, r1, #0 - 8000740: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 - 8000744: bf08 it eq - 8000746: ea20 70d3 biceq.w r0, r0, r3, lsr #31 - 800074a: bd70 pop {r4, r5, r6, pc} - 800074c: f1c4 0520 rsb r5, r4, #32 - 8000750: fa00 f205 lsl.w r2, r0, r5 - 8000754: ea4e 0e02 orr.w lr, lr, r2 - 8000758: fa20 f304 lsr.w r3, r0, r4 - 800075c: fa01 f205 lsl.w r2, r1, r5 - 8000760: ea43 0302 orr.w r3, r3, r2 - 8000764: fa21 f004 lsr.w r0, r1, r4 - 8000768: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 800076c: fa21 f204 lsr.w r2, r1, r4 - 8000770: ea20 0002 bic.w r0, r0, r2 - 8000774: eb00 70d3 add.w r0, r0, r3, lsr #31 - 8000778: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 - 800077c: bf08 it eq - 800077e: ea20 70d3 biceq.w r0, r0, r3, lsr #31 - 8000782: bd70 pop {r4, r5, r6, pc} - 8000784: f094 0f00 teq r4, #0 - 8000788: d10f bne.n 80007aa <__aeabi_dmul+0x1c2> - 800078a: f001 4600 and.w r6, r1, #2147483648 ; 0x80000000 - 800078e: 0040 lsls r0, r0, #1 - 8000790: eb41 0101 adc.w r1, r1, r1 - 8000794: f411 1f80 tst.w r1, #1048576 ; 0x100000 - 8000798: bf08 it eq - 800079a: 3c01 subeq r4, #1 - 800079c: d0f7 beq.n 800078e <__aeabi_dmul+0x1a6> - 800079e: ea41 0106 orr.w r1, r1, r6 - 80007a2: f095 0f00 teq r5, #0 - 80007a6: bf18 it ne - 80007a8: 4770 bxne lr - 80007aa: f003 4600 and.w r6, r3, #2147483648 ; 0x80000000 - 80007ae: 0052 lsls r2, r2, #1 - 80007b0: eb43 0303 adc.w r3, r3, r3 - 80007b4: f413 1f80 tst.w r3, #1048576 ; 0x100000 - 80007b8: bf08 it eq - 80007ba: 3d01 subeq r5, #1 - 80007bc: d0f7 beq.n 80007ae <__aeabi_dmul+0x1c6> - 80007be: ea43 0306 orr.w r3, r3, r6 - 80007c2: 4770 bx lr - 80007c4: ea94 0f0c teq r4, ip - 80007c8: ea0c 5513 and.w r5, ip, r3, lsr #20 - 80007cc: bf18 it ne - 80007ce: ea95 0f0c teqne r5, ip - 80007d2: d00c beq.n 80007ee <__aeabi_dmul+0x206> - 80007d4: ea50 0641 orrs.w r6, r0, r1, lsl #1 - 80007d8: bf18 it ne - 80007da: ea52 0643 orrsne.w r6, r2, r3, lsl #1 - 80007de: d1d1 bne.n 8000784 <__aeabi_dmul+0x19c> - 80007e0: ea81 0103 eor.w r1, r1, r3 - 80007e4: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 80007e8: f04f 0000 mov.w r0, #0 - 80007ec: bd70 pop {r4, r5, r6, pc} - 80007ee: ea50 0641 orrs.w r6, r0, r1, lsl #1 - 80007f2: bf06 itte eq - 80007f4: 4610 moveq r0, r2 - 80007f6: 4619 moveq r1, r3 - 80007f8: ea52 0643 orrsne.w r6, r2, r3, lsl #1 - 80007fc: d019 beq.n 8000832 <__aeabi_dmul+0x24a> - 80007fe: ea94 0f0c teq r4, ip - 8000802: d102 bne.n 800080a <__aeabi_dmul+0x222> - 8000804: ea50 3601 orrs.w r6, r0, r1, lsl #12 - 8000808: d113 bne.n 8000832 <__aeabi_dmul+0x24a> - 800080a: ea95 0f0c teq r5, ip - 800080e: d105 bne.n 800081c <__aeabi_dmul+0x234> - 8000810: ea52 3603 orrs.w r6, r2, r3, lsl #12 - 8000814: bf1c itt ne - 8000816: 4610 movne r0, r2 - 8000818: 4619 movne r1, r3 - 800081a: d10a bne.n 8000832 <__aeabi_dmul+0x24a> - 800081c: ea81 0103 eor.w r1, r1, r3 - 8000820: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 8000824: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000 - 8000828: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000 - 800082c: f04f 0000 mov.w r0, #0 - 8000830: bd70 pop {r4, r5, r6, pc} - 8000832: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000 - 8000836: f441 0178 orr.w r1, r1, #16252928 ; 0xf80000 - 800083a: bd70 pop {r4, r5, r6, pc} - -0800083c <__aeabi_ddiv>: - 800083c: b570 push {r4, r5, r6, lr} - 800083e: f04f 0cff mov.w ip, #255 ; 0xff - 8000842: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700 - 8000846: ea1c 5411 ands.w r4, ip, r1, lsr #20 - 800084a: bf1d ittte ne - 800084c: ea1c 5513 andsne.w r5, ip, r3, lsr #20 - 8000850: ea94 0f0c teqne r4, ip - 8000854: ea95 0f0c teqne r5, ip - 8000858: f000 f8a7 bleq 80009aa <__aeabi_ddiv+0x16e> - 800085c: eba4 0405 sub.w r4, r4, r5 - 8000860: ea81 0e03 eor.w lr, r1, r3 - 8000864: ea52 3503 orrs.w r5, r2, r3, lsl #12 - 8000868: ea4f 3101 mov.w r1, r1, lsl #12 - 800086c: f000 8088 beq.w 8000980 <__aeabi_ddiv+0x144> - 8000870: ea4f 3303 mov.w r3, r3, lsl #12 - 8000874: f04f 5580 mov.w r5, #268435456 ; 0x10000000 - 8000878: ea45 1313 orr.w r3, r5, r3, lsr #4 - 800087c: ea43 6312 orr.w r3, r3, r2, lsr #24 - 8000880: ea4f 2202 mov.w r2, r2, lsl #8 - 8000884: ea45 1511 orr.w r5, r5, r1, lsr #4 - 8000888: ea45 6510 orr.w r5, r5, r0, lsr #24 - 800088c: ea4f 2600 mov.w r6, r0, lsl #8 - 8000890: f00e 4100 and.w r1, lr, #2147483648 ; 0x80000000 - 8000894: 429d cmp r5, r3 - 8000896: bf08 it eq - 8000898: 4296 cmpeq r6, r2 - 800089a: f144 04fd adc.w r4, r4, #253 ; 0xfd - 800089e: f504 7440 add.w r4, r4, #768 ; 0x300 - 80008a2: d202 bcs.n 80008aa <__aeabi_ddiv+0x6e> - 80008a4: 085b lsrs r3, r3, #1 - 80008a6: ea4f 0232 mov.w r2, r2, rrx - 80008aa: 1ab6 subs r6, r6, r2 - 80008ac: eb65 0503 sbc.w r5, r5, r3 - 80008b0: 085b lsrs r3, r3, #1 - 80008b2: ea4f 0232 mov.w r2, r2, rrx - 80008b6: f44f 1080 mov.w r0, #1048576 ; 0x100000 - 80008ba: f44f 2c00 mov.w ip, #524288 ; 0x80000 - 80008be: ebb6 0e02 subs.w lr, r6, r2 - 80008c2: eb75 0e03 sbcs.w lr, r5, r3 - 80008c6: bf22 ittt cs - 80008c8: 1ab6 subcs r6, r6, r2 - 80008ca: 4675 movcs r5, lr - 80008cc: ea40 000c orrcs.w r0, r0, ip - 80008d0: 085b lsrs r3, r3, #1 - 80008d2: ea4f 0232 mov.w r2, r2, rrx - 80008d6: ebb6 0e02 subs.w lr, r6, r2 - 80008da: eb75 0e03 sbcs.w lr, r5, r3 - 80008de: bf22 ittt cs - 80008e0: 1ab6 subcs r6, r6, r2 - 80008e2: 4675 movcs r5, lr - 80008e4: ea40 005c orrcs.w r0, r0, ip, lsr #1 - 80008e8: 085b lsrs r3, r3, #1 - 80008ea: ea4f 0232 mov.w r2, r2, rrx - 80008ee: ebb6 0e02 subs.w lr, r6, r2 - 80008f2: eb75 0e03 sbcs.w lr, r5, r3 - 80008f6: bf22 ittt cs - 80008f8: 1ab6 subcs r6, r6, r2 - 80008fa: 4675 movcs r5, lr - 80008fc: ea40 009c orrcs.w r0, r0, ip, lsr #2 - 8000900: 085b lsrs r3, r3, #1 - 8000902: ea4f 0232 mov.w r2, r2, rrx - 8000906: ebb6 0e02 subs.w lr, r6, r2 - 800090a: eb75 0e03 sbcs.w lr, r5, r3 - 800090e: bf22 ittt cs - 8000910: 1ab6 subcs r6, r6, r2 - 8000912: 4675 movcs r5, lr - 8000914: ea40 00dc orrcs.w r0, r0, ip, lsr #3 - 8000918: ea55 0e06 orrs.w lr, r5, r6 - 800091c: d018 beq.n 8000950 <__aeabi_ddiv+0x114> - 800091e: ea4f 1505 mov.w r5, r5, lsl #4 - 8000922: ea45 7516 orr.w r5, r5, r6, lsr #28 - 8000926: ea4f 1606 mov.w r6, r6, lsl #4 - 800092a: ea4f 03c3 mov.w r3, r3, lsl #3 - 800092e: ea43 7352 orr.w r3, r3, r2, lsr #29 - 8000932: ea4f 02c2 mov.w r2, r2, lsl #3 - 8000936: ea5f 1c1c movs.w ip, ip, lsr #4 - 800093a: d1c0 bne.n 80008be <__aeabi_ddiv+0x82> - 800093c: f411 1f80 tst.w r1, #1048576 ; 0x100000 - 8000940: d10b bne.n 800095a <__aeabi_ddiv+0x11e> - 8000942: ea41 0100 orr.w r1, r1, r0 - 8000946: f04f 0000 mov.w r0, #0 - 800094a: f04f 4c00 mov.w ip, #2147483648 ; 0x80000000 - 800094e: e7b6 b.n 80008be <__aeabi_ddiv+0x82> - 8000950: f411 1f80 tst.w r1, #1048576 ; 0x100000 - 8000954: bf04 itt eq - 8000956: 4301 orreq r1, r0 - 8000958: 2000 moveq r0, #0 - 800095a: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd - 800095e: bf88 it hi - 8000960: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700 - 8000964: f63f aeaf bhi.w 80006c6 <__aeabi_dmul+0xde> - 8000968: ebb5 0c03 subs.w ip, r5, r3 - 800096c: bf04 itt eq - 800096e: ebb6 0c02 subseq.w ip, r6, r2 - 8000972: ea5f 0c50 movseq.w ip, r0, lsr #1 - 8000976: f150 0000 adcs.w r0, r0, #0 - 800097a: eb41 5104 adc.w r1, r1, r4, lsl #20 - 800097e: bd70 pop {r4, r5, r6, pc} - 8000980: f00e 4e00 and.w lr, lr, #2147483648 ; 0x80000000 - 8000984: ea4e 3111 orr.w r1, lr, r1, lsr #12 - 8000988: eb14 045c adds.w r4, r4, ip, lsr #1 - 800098c: bfc2 ittt gt - 800098e: ebd4 050c rsbsgt r5, r4, ip - 8000992: ea41 5104 orrgt.w r1, r1, r4, lsl #20 - 8000996: bd70 popgt {r4, r5, r6, pc} - 8000998: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 - 800099c: f04f 0e00 mov.w lr, #0 - 80009a0: 3c01 subs r4, #1 - 80009a2: e690 b.n 80006c6 <__aeabi_dmul+0xde> - 80009a4: ea45 0e06 orr.w lr, r5, r6 - 80009a8: e68d b.n 80006c6 <__aeabi_dmul+0xde> - 80009aa: ea0c 5513 and.w r5, ip, r3, lsr #20 - 80009ae: ea94 0f0c teq r4, ip - 80009b2: bf08 it eq - 80009b4: ea95 0f0c teqeq r5, ip - 80009b8: f43f af3b beq.w 8000832 <__aeabi_dmul+0x24a> - 80009bc: ea94 0f0c teq r4, ip - 80009c0: d10a bne.n 80009d8 <__aeabi_ddiv+0x19c> - 80009c2: ea50 3401 orrs.w r4, r0, r1, lsl #12 - 80009c6: f47f af34 bne.w 8000832 <__aeabi_dmul+0x24a> - 80009ca: ea95 0f0c teq r5, ip - 80009ce: f47f af25 bne.w 800081c <__aeabi_dmul+0x234> - 80009d2: 4610 mov r0, r2 - 80009d4: 4619 mov r1, r3 - 80009d6: e72c b.n 8000832 <__aeabi_dmul+0x24a> - 80009d8: ea95 0f0c teq r5, ip - 80009dc: d106 bne.n 80009ec <__aeabi_ddiv+0x1b0> - 80009de: ea52 3503 orrs.w r5, r2, r3, lsl #12 - 80009e2: f43f aefd beq.w 80007e0 <__aeabi_dmul+0x1f8> - 80009e6: 4610 mov r0, r2 - 80009e8: 4619 mov r1, r3 - 80009ea: e722 b.n 8000832 <__aeabi_dmul+0x24a> - 80009ec: ea50 0641 orrs.w r6, r0, r1, lsl #1 - 80009f0: bf18 it ne - 80009f2: ea52 0643 orrsne.w r6, r2, r3, lsl #1 - 80009f6: f47f aec5 bne.w 8000784 <__aeabi_dmul+0x19c> - 80009fa: ea50 0441 orrs.w r4, r0, r1, lsl #1 - 80009fe: f47f af0d bne.w 800081c <__aeabi_dmul+0x234> - 8000a02: ea52 0543 orrs.w r5, r2, r3, lsl #1 - 8000a06: f47f aeeb bne.w 80007e0 <__aeabi_dmul+0x1f8> - 8000a0a: e712 b.n 8000832 <__aeabi_dmul+0x24a> - -08000a0c <__aeabi_d2iz>: - 8000a0c: ea4f 0241 mov.w r2, r1, lsl #1 - 8000a10: f512 1200 adds.w r2, r2, #2097152 ; 0x200000 - 8000a14: d215 bcs.n 8000a42 <__aeabi_d2iz+0x36> - 8000a16: d511 bpl.n 8000a3c <__aeabi_d2iz+0x30> - 8000a18: f46f 7378 mvn.w r3, #992 ; 0x3e0 - 8000a1c: ebb3 5262 subs.w r2, r3, r2, asr #21 - 8000a20: d912 bls.n 8000a48 <__aeabi_d2iz+0x3c> - 8000a22: ea4f 23c1 mov.w r3, r1, lsl #11 - 8000a26: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000 - 8000a2a: ea43 5350 orr.w r3, r3, r0, lsr #21 - 8000a2e: f011 4f00 tst.w r1, #2147483648 ; 0x80000000 - 8000a32: fa23 f002 lsr.w r0, r3, r2 - 8000a36: bf18 it ne - 8000a38: 4240 negne r0, r0 - 8000a3a: 4770 bx lr - 8000a3c: f04f 0000 mov.w r0, #0 - 8000a40: 4770 bx lr - 8000a42: ea50 3001 orrs.w r0, r0, r1, lsl #12 - 8000a46: d105 bne.n 8000a54 <__aeabi_d2iz+0x48> - 8000a48: f011 4000 ands.w r0, r1, #2147483648 ; 0x80000000 - 8000a4c: bf08 it eq - 8000a4e: f06f 4000 mvneq.w r0, #2147483648 ; 0x80000000 - 8000a52: 4770 bx lr - 8000a54: f04f 0000 mov.w r0, #0 - 8000a58: 4770 bx lr - 8000a5a: bf00 nop - -08000a5c <__aeabi_uldivmod>: - 8000a5c: b953 cbnz r3, 8000a74 <__aeabi_uldivmod+0x18> - 8000a5e: b94a cbnz r2, 8000a74 <__aeabi_uldivmod+0x18> - 8000a60: 2900 cmp r1, #0 - 8000a62: bf08 it eq - 8000a64: 2800 cmpeq r0, #0 - 8000a66: bf1c itt ne - 8000a68: f04f 31ff movne.w r1, #4294967295 ; 0xffffffff - 8000a6c: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff - 8000a70: f000 b970 b.w 8000d54 <__aeabi_idiv0> - 8000a74: f1ad 0c08 sub.w ip, sp, #8 - 8000a78: e96d ce04 strd ip, lr, [sp, #-16]! - 8000a7c: f000 f806 bl 8000a8c <__udivmoddi4> - 8000a80: f8dd e004 ldr.w lr, [sp, #4] - 8000a84: e9dd 2302 ldrd r2, r3, [sp, #8] - 8000a88: b004 add sp, #16 - 8000a8a: 4770 bx lr - -08000a8c <__udivmoddi4>: - 8000a8c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8000a90: 9e08 ldr r6, [sp, #32] - 8000a92: 460d mov r5, r1 - 8000a94: 4604 mov r4, r0 - 8000a96: 460f mov r7, r1 - 8000a98: 2b00 cmp r3, #0 - 8000a9a: d14a bne.n 8000b32 <__udivmoddi4+0xa6> - 8000a9c: 428a cmp r2, r1 - 8000a9e: 4694 mov ip, r2 - 8000aa0: d965 bls.n 8000b6e <__udivmoddi4+0xe2> - 8000aa2: fab2 f382 clz r3, r2 - 8000aa6: b143 cbz r3, 8000aba <__udivmoddi4+0x2e> - 8000aa8: fa02 fc03 lsl.w ip, r2, r3 - 8000aac: f1c3 0220 rsb r2, r3, #32 - 8000ab0: 409f lsls r7, r3 - 8000ab2: fa20 f202 lsr.w r2, r0, r2 - 8000ab6: 4317 orrs r7, r2 - 8000ab8: 409c lsls r4, r3 - 8000aba: ea4f 4e1c mov.w lr, ip, lsr #16 - 8000abe: fa1f f58c uxth.w r5, ip - 8000ac2: fbb7 f1fe udiv r1, r7, lr - 8000ac6: 0c22 lsrs r2, r4, #16 - 8000ac8: fb0e 7711 mls r7, lr, r1, r7 - 8000acc: ea42 4207 orr.w r2, r2, r7, lsl #16 - 8000ad0: fb01 f005 mul.w r0, r1, r5 - 8000ad4: 4290 cmp r0, r2 - 8000ad6: d90a bls.n 8000aee <__udivmoddi4+0x62> - 8000ad8: eb1c 0202 adds.w r2, ip, r2 - 8000adc: f101 37ff add.w r7, r1, #4294967295 ; 0xffffffff - 8000ae0: f080 811c bcs.w 8000d1c <__udivmoddi4+0x290> - 8000ae4: 4290 cmp r0, r2 - 8000ae6: f240 8119 bls.w 8000d1c <__udivmoddi4+0x290> - 8000aea: 3902 subs r1, #2 - 8000aec: 4462 add r2, ip - 8000aee: 1a12 subs r2, r2, r0 - 8000af0: b2a4 uxth r4, r4 - 8000af2: fbb2 f0fe udiv r0, r2, lr - 8000af6: fb0e 2210 mls r2, lr, r0, r2 - 8000afa: ea44 4402 orr.w r4, r4, r2, lsl #16 - 8000afe: fb00 f505 mul.w r5, r0, r5 - 8000b02: 42a5 cmp r5, r4 - 8000b04: d90a bls.n 8000b1c <__udivmoddi4+0x90> - 8000b06: eb1c 0404 adds.w r4, ip, r4 - 8000b0a: f100 32ff add.w r2, r0, #4294967295 ; 0xffffffff - 8000b0e: f080 8107 bcs.w 8000d20 <__udivmoddi4+0x294> - 8000b12: 42a5 cmp r5, r4 - 8000b14: f240 8104 bls.w 8000d20 <__udivmoddi4+0x294> - 8000b18: 4464 add r4, ip - 8000b1a: 3802 subs r0, #2 - 8000b1c: ea40 4001 orr.w r0, r0, r1, lsl #16 - 8000b20: 1b64 subs r4, r4, r5 - 8000b22: 2100 movs r1, #0 - 8000b24: b11e cbz r6, 8000b2e <__udivmoddi4+0xa2> - 8000b26: 40dc lsrs r4, r3 - 8000b28: 2300 movs r3, #0 - 8000b2a: e9c6 4300 strd r4, r3, [r6] - 8000b2e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8000b32: 428b cmp r3, r1 - 8000b34: d908 bls.n 8000b48 <__udivmoddi4+0xbc> - 8000b36: 2e00 cmp r6, #0 - 8000b38: f000 80ed beq.w 8000d16 <__udivmoddi4+0x28a> - 8000b3c: 2100 movs r1, #0 - 8000b3e: e9c6 0500 strd r0, r5, [r6] - 8000b42: 4608 mov r0, r1 - 8000b44: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8000b48: fab3 f183 clz r1, r3 - 8000b4c: 2900 cmp r1, #0 - 8000b4e: d149 bne.n 8000be4 <__udivmoddi4+0x158> - 8000b50: 42ab cmp r3, r5 - 8000b52: d302 bcc.n 8000b5a <__udivmoddi4+0xce> - 8000b54: 4282 cmp r2, r0 - 8000b56: f200 80f8 bhi.w 8000d4a <__udivmoddi4+0x2be> - 8000b5a: 1a84 subs r4, r0, r2 - 8000b5c: eb65 0203 sbc.w r2, r5, r3 - 8000b60: 2001 movs r0, #1 - 8000b62: 4617 mov r7, r2 - 8000b64: 2e00 cmp r6, #0 - 8000b66: d0e2 beq.n 8000b2e <__udivmoddi4+0xa2> - 8000b68: e9c6 4700 strd r4, r7, [r6] - 8000b6c: e7df b.n 8000b2e <__udivmoddi4+0xa2> - 8000b6e: b902 cbnz r2, 8000b72 <__udivmoddi4+0xe6> - 8000b70: deff udf #255 ; 0xff - 8000b72: fab2 f382 clz r3, r2 - 8000b76: 2b00 cmp r3, #0 - 8000b78: f040 8090 bne.w 8000c9c <__udivmoddi4+0x210> - 8000b7c: 1a8a subs r2, r1, r2 - 8000b7e: ea4f 471c mov.w r7, ip, lsr #16 - 8000b82: fa1f fe8c uxth.w lr, ip - 8000b86: 2101 movs r1, #1 - 8000b88: fbb2 f5f7 udiv r5, r2, r7 - 8000b8c: fb07 2015 mls r0, r7, r5, r2 - 8000b90: 0c22 lsrs r2, r4, #16 - 8000b92: ea42 4200 orr.w r2, r2, r0, lsl #16 - 8000b96: fb0e f005 mul.w r0, lr, r5 - 8000b9a: 4290 cmp r0, r2 - 8000b9c: d908 bls.n 8000bb0 <__udivmoddi4+0x124> - 8000b9e: eb1c 0202 adds.w r2, ip, r2 - 8000ba2: f105 38ff add.w r8, r5, #4294967295 ; 0xffffffff - 8000ba6: d202 bcs.n 8000bae <__udivmoddi4+0x122> - 8000ba8: 4290 cmp r0, r2 - 8000baa: f200 80cb bhi.w 8000d44 <__udivmoddi4+0x2b8> - 8000bae: 4645 mov r5, r8 - 8000bb0: 1a12 subs r2, r2, r0 - 8000bb2: b2a4 uxth r4, r4 - 8000bb4: fbb2 f0f7 udiv r0, r2, r7 - 8000bb8: fb07 2210 mls r2, r7, r0, r2 - 8000bbc: ea44 4402 orr.w r4, r4, r2, lsl #16 - 8000bc0: fb0e fe00 mul.w lr, lr, r0 - 8000bc4: 45a6 cmp lr, r4 - 8000bc6: d908 bls.n 8000bda <__udivmoddi4+0x14e> - 8000bc8: eb1c 0404 adds.w r4, ip, r4 - 8000bcc: f100 32ff add.w r2, r0, #4294967295 ; 0xffffffff - 8000bd0: d202 bcs.n 8000bd8 <__udivmoddi4+0x14c> - 8000bd2: 45a6 cmp lr, r4 - 8000bd4: f200 80bb bhi.w 8000d4e <__udivmoddi4+0x2c2> - 8000bd8: 4610 mov r0, r2 - 8000bda: eba4 040e sub.w r4, r4, lr - 8000bde: ea40 4005 orr.w r0, r0, r5, lsl #16 - 8000be2: e79f b.n 8000b24 <__udivmoddi4+0x98> - 8000be4: f1c1 0720 rsb r7, r1, #32 - 8000be8: 408b lsls r3, r1 - 8000bea: fa22 fc07 lsr.w ip, r2, r7 - 8000bee: ea4c 0c03 orr.w ip, ip, r3 - 8000bf2: fa05 f401 lsl.w r4, r5, r1 - 8000bf6: fa20 f307 lsr.w r3, r0, r7 - 8000bfa: 40fd lsrs r5, r7 - 8000bfc: ea4f 491c mov.w r9, ip, lsr #16 - 8000c00: 4323 orrs r3, r4 - 8000c02: fbb5 f8f9 udiv r8, r5, r9 - 8000c06: fa1f fe8c uxth.w lr, ip - 8000c0a: fb09 5518 mls r5, r9, r8, r5 - 8000c0e: 0c1c lsrs r4, r3, #16 - 8000c10: ea44 4405 orr.w r4, r4, r5, lsl #16 - 8000c14: fb08 f50e mul.w r5, r8, lr - 8000c18: 42a5 cmp r5, r4 - 8000c1a: fa02 f201 lsl.w r2, r2, r1 - 8000c1e: fa00 f001 lsl.w r0, r0, r1 - 8000c22: d90b bls.n 8000c3c <__udivmoddi4+0x1b0> - 8000c24: eb1c 0404 adds.w r4, ip, r4 - 8000c28: f108 3aff add.w sl, r8, #4294967295 ; 0xffffffff - 8000c2c: f080 8088 bcs.w 8000d40 <__udivmoddi4+0x2b4> - 8000c30: 42a5 cmp r5, r4 - 8000c32: f240 8085 bls.w 8000d40 <__udivmoddi4+0x2b4> - 8000c36: f1a8 0802 sub.w r8, r8, #2 - 8000c3a: 4464 add r4, ip - 8000c3c: 1b64 subs r4, r4, r5 - 8000c3e: b29d uxth r5, r3 - 8000c40: fbb4 f3f9 udiv r3, r4, r9 - 8000c44: fb09 4413 mls r4, r9, r3, r4 - 8000c48: ea45 4404 orr.w r4, r5, r4, lsl #16 - 8000c4c: fb03 fe0e mul.w lr, r3, lr - 8000c50: 45a6 cmp lr, r4 - 8000c52: d908 bls.n 8000c66 <__udivmoddi4+0x1da> - 8000c54: eb1c 0404 adds.w r4, ip, r4 - 8000c58: f103 35ff add.w r5, r3, #4294967295 ; 0xffffffff - 8000c5c: d26c bcs.n 8000d38 <__udivmoddi4+0x2ac> - 8000c5e: 45a6 cmp lr, r4 - 8000c60: d96a bls.n 8000d38 <__udivmoddi4+0x2ac> - 8000c62: 3b02 subs r3, #2 - 8000c64: 4464 add r4, ip - 8000c66: ea43 4308 orr.w r3, r3, r8, lsl #16 - 8000c6a: fba3 9502 umull r9, r5, r3, r2 - 8000c6e: eba4 040e sub.w r4, r4, lr - 8000c72: 42ac cmp r4, r5 - 8000c74: 46c8 mov r8, r9 - 8000c76: 46ae mov lr, r5 - 8000c78: d356 bcc.n 8000d28 <__udivmoddi4+0x29c> - 8000c7a: d053 beq.n 8000d24 <__udivmoddi4+0x298> - 8000c7c: b156 cbz r6, 8000c94 <__udivmoddi4+0x208> - 8000c7e: ebb0 0208 subs.w r2, r0, r8 - 8000c82: eb64 040e sbc.w r4, r4, lr - 8000c86: fa04 f707 lsl.w r7, r4, r7 - 8000c8a: 40ca lsrs r2, r1 - 8000c8c: 40cc lsrs r4, r1 - 8000c8e: 4317 orrs r7, r2 - 8000c90: e9c6 7400 strd r7, r4, [r6] - 8000c94: 4618 mov r0, r3 - 8000c96: 2100 movs r1, #0 - 8000c98: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8000c9c: f1c3 0120 rsb r1, r3, #32 - 8000ca0: fa02 fc03 lsl.w ip, r2, r3 - 8000ca4: fa20 f201 lsr.w r2, r0, r1 - 8000ca8: fa25 f101 lsr.w r1, r5, r1 - 8000cac: 409d lsls r5, r3 - 8000cae: 432a orrs r2, r5 - 8000cb0: ea4f 471c mov.w r7, ip, lsr #16 - 8000cb4: fa1f fe8c uxth.w lr, ip - 8000cb8: fbb1 f0f7 udiv r0, r1, r7 - 8000cbc: fb07 1510 mls r5, r7, r0, r1 - 8000cc0: 0c11 lsrs r1, r2, #16 - 8000cc2: ea41 4105 orr.w r1, r1, r5, lsl #16 - 8000cc6: fb00 f50e mul.w r5, r0, lr - 8000cca: 428d cmp r5, r1 - 8000ccc: fa04 f403 lsl.w r4, r4, r3 - 8000cd0: d908 bls.n 8000ce4 <__udivmoddi4+0x258> - 8000cd2: eb1c 0101 adds.w r1, ip, r1 - 8000cd6: f100 38ff add.w r8, r0, #4294967295 ; 0xffffffff - 8000cda: d22f bcs.n 8000d3c <__udivmoddi4+0x2b0> - 8000cdc: 428d cmp r5, r1 - 8000cde: d92d bls.n 8000d3c <__udivmoddi4+0x2b0> - 8000ce0: 3802 subs r0, #2 - 8000ce2: 4461 add r1, ip - 8000ce4: 1b49 subs r1, r1, r5 - 8000ce6: b292 uxth r2, r2 - 8000ce8: fbb1 f5f7 udiv r5, r1, r7 - 8000cec: fb07 1115 mls r1, r7, r5, r1 - 8000cf0: ea42 4201 orr.w r2, r2, r1, lsl #16 - 8000cf4: fb05 f10e mul.w r1, r5, lr - 8000cf8: 4291 cmp r1, r2 - 8000cfa: d908 bls.n 8000d0e <__udivmoddi4+0x282> - 8000cfc: eb1c 0202 adds.w r2, ip, r2 - 8000d00: f105 38ff add.w r8, r5, #4294967295 ; 0xffffffff - 8000d04: d216 bcs.n 8000d34 <__udivmoddi4+0x2a8> - 8000d06: 4291 cmp r1, r2 - 8000d08: d914 bls.n 8000d34 <__udivmoddi4+0x2a8> - 8000d0a: 3d02 subs r5, #2 - 8000d0c: 4462 add r2, ip - 8000d0e: 1a52 subs r2, r2, r1 - 8000d10: ea45 4100 orr.w r1, r5, r0, lsl #16 - 8000d14: e738 b.n 8000b88 <__udivmoddi4+0xfc> - 8000d16: 4631 mov r1, r6 - 8000d18: 4630 mov r0, r6 - 8000d1a: e708 b.n 8000b2e <__udivmoddi4+0xa2> - 8000d1c: 4639 mov r1, r7 - 8000d1e: e6e6 b.n 8000aee <__udivmoddi4+0x62> - 8000d20: 4610 mov r0, r2 - 8000d22: e6fb b.n 8000b1c <__udivmoddi4+0x90> - 8000d24: 4548 cmp r0, r9 - 8000d26: d2a9 bcs.n 8000c7c <__udivmoddi4+0x1f0> - 8000d28: ebb9 0802 subs.w r8, r9, r2 - 8000d2c: eb65 0e0c sbc.w lr, r5, ip - 8000d30: 3b01 subs r3, #1 - 8000d32: e7a3 b.n 8000c7c <__udivmoddi4+0x1f0> - 8000d34: 4645 mov r5, r8 - 8000d36: e7ea b.n 8000d0e <__udivmoddi4+0x282> - 8000d38: 462b mov r3, r5 - 8000d3a: e794 b.n 8000c66 <__udivmoddi4+0x1da> - 8000d3c: 4640 mov r0, r8 - 8000d3e: e7d1 b.n 8000ce4 <__udivmoddi4+0x258> - 8000d40: 46d0 mov r8, sl - 8000d42: e77b b.n 8000c3c <__udivmoddi4+0x1b0> - 8000d44: 3d02 subs r5, #2 - 8000d46: 4462 add r2, ip - 8000d48: e732 b.n 8000bb0 <__udivmoddi4+0x124> - 8000d4a: 4608 mov r0, r1 - 8000d4c: e70a b.n 8000b64 <__udivmoddi4+0xd8> - 8000d4e: 4464 add r4, ip - 8000d50: 3802 subs r0, #2 - 8000d52: e742 b.n 8000bda <__udivmoddi4+0x14e> - -08000d54 <__aeabi_idiv0>: - 8000d54: 4770 bx lr - 8000d56: bf00 nop - -08000d58 : - -/** - * delay x ms -**/ -void DEV_Delay_ms(UDOUBLE xms) -{ - 8000d58: b580 push {r7, lr} - 8000d5a: b082 sub sp, #8 - 8000d5c: af00 add r7, sp, #0 - 8000d5e: 6078 str r0, [r7, #4] - HAL_Delay(xms); - 8000d60: 6878 ldr r0, [r7, #4] - 8000d62: f000 ffdd bl 8001d20 -} - 8000d66: bf00 nop - 8000d68: 3708 adds r7, #8 - 8000d6a: 46bd mov sp, r7 - 8000d6c: bd80 pop {r7, pc} - -08000d6e : - - -void GPIO_Config(void) -{ - 8000d6e: b480 push {r7} - 8000d70: af00 add r7, sp, #0 - //DEV_GPIO_Mode(INT_PIN, 0); -} - 8000d72: bf00 nop - 8000d74: 46bd mov sp, r7 - 8000d76: f85d 7b04 ldr.w r7, [sp], #4 - 8000d7a: 4770 bx lr - -08000d7c : -function: I2C Function initialization and transfer -parameter: -Info: -******************************************************************************/ -void DEV_I2C_Init(uint8_t Add) -{ - 8000d7c: b480 push {r7} - 8000d7e: b083 sub sp, #12 - 8000d80: af00 add r7, sp, #0 - 8000d82: 4603 mov r3, r0 - 8000d84: 71fb strb r3, [r7, #7] -#if DEV_I2C - DEV_I2C_Device = 1; - 8000d86: 4b06 ldr r3, [pc, #24] ; (8000da0 ) - 8000d88: 2201 movs r2, #1 - 8000d8a: 701a strb r2, [r3, #0] - I2C_ADDR = Add; - 8000d8c: 4a05 ldr r2, [pc, #20] ; (8000da4 ) - 8000d8e: 79fb ldrb r3, [r7, #7] - 8000d90: 7013 strb r3, [r2, #0] -#endif -} - 8000d92: bf00 nop - 8000d94: 370c adds r7, #12 - 8000d96: 46bd mov sp, r7 - 8000d98: f85d 7b04 ldr.w r7, [sp], #4 - 8000d9c: 4770 bx lr - 8000d9e: bf00 nop - 8000da0: 20000088 .word 0x20000088 - 8000da4: 20000089 .word 0x20000089 - -08000da8 : - -void I2C_Write_Byte(uint8_t Cmd, uint8_t value) -{ - 8000da8: b580 push {r7, lr} - 8000daa: b088 sub sp, #32 - 8000dac: af04 add r7, sp, #16 - 8000dae: 4603 mov r3, r0 - 8000db0: 460a mov r2, r1 - 8000db2: 71fb strb r3, [r7, #7] - 8000db4: 4613 mov r3, r2 - 8000db6: 71bb strb r3, [r7, #6] -#if DEV_I2C - UBYTE Buf[1] = {0}; - 8000db8: 2300 movs r3, #0 - 8000dba: 733b strb r3, [r7, #12] - Buf[0] = value; - 8000dbc: 79bb ldrb r3, [r7, #6] - 8000dbe: 733b strb r3, [r7, #12] - HAL_I2C_Mem_Write(h2c1, I2C_ADDR, Cmd, I2C_MEMADD_SIZE_8BIT, Buf, 1, 0x20); - 8000dc0: 4b0a ldr r3, [pc, #40] ; (8000dec ) - 8000dc2: 6818 ldr r0, [r3, #0] - 8000dc4: 4b0a ldr r3, [pc, #40] ; (8000df0 ) - 8000dc6: 781b ldrb r3, [r3, #0] - 8000dc8: b299 uxth r1, r3 - 8000dca: 79fb ldrb r3, [r7, #7] - 8000dcc: b29a uxth r2, r3 - 8000dce: 2320 movs r3, #32 - 8000dd0: 9302 str r3, [sp, #8] - 8000dd2: 2301 movs r3, #1 - 8000dd4: 9301 str r3, [sp, #4] - 8000dd6: f107 030c add.w r3, r7, #12 - 8000dda: 9300 str r3, [sp, #0] - 8000ddc: 2301 movs r3, #1 - 8000dde: f001 fd19 bl 8002814 -#endif -} - 8000de2: bf00 nop - 8000de4: 3710 adds r7, #16 - 8000de6: 46bd mov sp, r7 - 8000de8: bd80 pop {r7, pc} - 8000dea: bf00 nop - 8000dec: 20000084 .word 0x20000084 - 8000df0: 20000089 .word 0x20000089 - -08000df4 : - -int I2C_Read_Byte(uint8_t Cmd) -{ - 8000df4: b580 push {r7, lr} - 8000df6: b088 sub sp, #32 - 8000df8: af04 add r7, sp, #16 - 8000dfa: 4603 mov r3, r0 - 8000dfc: 71fb strb r3, [r7, #7] -#if DEV_I2C - UBYTE Buf[1]={0}; - 8000dfe: 2300 movs r3, #0 - 8000e00: 733b strb r3, [r7, #12] - HAL_I2C_Mem_Read(h2c1, I2C_ADDR+1, Cmd, I2C_MEMADD_SIZE_8BIT, Buf, 1, 0x20); - 8000e02: 4b0c ldr r3, [pc, #48] ; (8000e34 ) - 8000e04: 6818 ldr r0, [r3, #0] - 8000e06: 4b0c ldr r3, [pc, #48] ; (8000e38 ) - 8000e08: 781b ldrb r3, [r3, #0] - 8000e0a: b29b uxth r3, r3 - 8000e0c: 3301 adds r3, #1 - 8000e0e: b299 uxth r1, r3 - 8000e10: 79fb ldrb r3, [r7, #7] - 8000e12: b29a uxth r2, r3 - 8000e14: 2320 movs r3, #32 - 8000e16: 9302 str r3, [sp, #8] - 8000e18: 2301 movs r3, #1 - 8000e1a: 9301 str r3, [sp, #4] - 8000e1c: f107 030c add.w r3, r7, #12 - 8000e20: 9300 str r3, [sp, #0] - 8000e22: 2301 movs r3, #1 - 8000e24: f001 fe0a bl 8002a3c - return Buf[0]; - 8000e28: 7b3b ldrb r3, [r7, #12] -#endif -} - 8000e2a: 4618 mov r0, r3 - 8000e2c: 3710 adds r7, #16 - 8000e2e: 46bd mov sp, r7 - 8000e30: bd80 pop {r7, pc} - 8000e32: bf00 nop - 8000e34: 20000084 .word 0x20000084 - 8000e38: 20000089 .word 0x20000089 - -08000e3c : - -int I2C_Read_Word(uint8_t Cmd) -{ - 8000e3c: b580 push {r7, lr} - 8000e3e: b088 sub sp, #32 - 8000e40: af04 add r7, sp, #16 - 8000e42: 4603 mov r3, r0 - 8000e44: 71fb strb r3, [r7, #7] -#if DEV_I2C - UBYTE Buf[2]={0, 0}; - 8000e46: 2300 movs r3, #0 - 8000e48: 81bb strh r3, [r7, #12] - HAL_I2C_Mem_Read(h2c1, I2C_ADDR+1, Cmd, I2C_MEMADD_SIZE_8BIT, Buf, 2, 0x20); - 8000e4a: 4b0d ldr r3, [pc, #52] ; (8000e80 ) - 8000e4c: 6818 ldr r0, [r3, #0] - 8000e4e: 4b0d ldr r3, [pc, #52] ; (8000e84 ) - 8000e50: 781b ldrb r3, [r3, #0] - 8000e52: b29b uxth r3, r3 - 8000e54: 3301 adds r3, #1 - 8000e56: b299 uxth r1, r3 - 8000e58: 79fb ldrb r3, [r7, #7] - 8000e5a: b29a uxth r2, r3 - 8000e5c: 2320 movs r3, #32 - 8000e5e: 9302 str r3, [sp, #8] - 8000e60: 2302 movs r3, #2 - 8000e62: 9301 str r3, [sp, #4] - 8000e64: f107 030c add.w r3, r7, #12 - 8000e68: 9300 str r3, [sp, #0] - 8000e6a: 2301 movs r3, #1 - 8000e6c: f001 fde6 bl 8002a3c - return ((Buf[1] << 8) | (Buf[0] & 0xff)); - 8000e70: 7b7b ldrb r3, [r7, #13] - 8000e72: 021b lsls r3, r3, #8 - 8000e74: 7b3a ldrb r2, [r7, #12] - 8000e76: 4313 orrs r3, r2 -#endif -} - 8000e78: 4618 mov r0, r3 - 8000e7a: 3710 adds r7, #16 - 8000e7c: 46bd mov sp, r7 - 8000e7e: bd80 pop {r7, pc} - 8000e80: 20000084 .word 0x20000084 - 8000e84: 20000089 .word 0x20000089 - -08000e88 : -function: Module Initialize, the library and initialize the pins, SPI protocol -parameter: -Info: -******************************************************************************/ -UBYTE DEV_ModuleInit(I2C_HandleTypeDef *communicator) -{ - 8000e88: b580 push {r7, lr} - 8000e8a: b082 sub sp, #8 - 8000e8c: af00 add r7, sp, #0 - 8000e8e: 6078 str r0, [r7, #4] - h2c1 = communicator; - 8000e90: 4a06 ldr r2, [pc, #24] ; (8000eac ) - 8000e92: 687b ldr r3, [r7, #4] - 8000e94: 6013 str r3, [r2, #0] - GPIO_Config(); - 8000e96: f7ff ff6a bl 8000d6e - DEV_I2C_Init(0x29<<1); - 8000e9a: 2052 movs r0, #82 ; 0x52 - 8000e9c: f7ff ff6e bl 8000d7c - return 0; - 8000ea0: 2300 movs r3, #0 -} - 8000ea2: 4618 mov r0, r3 - 8000ea4: 3708 adds r7, #8 - 8000ea6: 46bd mov sp, r7 - 8000ea8: bd80 pop {r7, pc} - 8000eaa: bf00 nop - 8000eac: 20000084 .word 0x20000084 - -08000eb0 : - -/* Private user code ---------------------------------------------------------*/ -/* USER CODE BEGIN 0 */ - -void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) -{ - 8000eb0: b580 push {r7, lr} - 8000eb2: b086 sub sp, #24 - 8000eb4: af00 add r7, sp, #0 - 8000eb6: 4603 mov r3, r0 - 8000eb8: 80fb strh r3, [r7, #6] - if(GPIO_Pin == GPIO_PIN_13) { - 8000eba: 88fb ldrh r3, [r7, #6] - 8000ebc: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 8000ec0: d113 bne.n 8000eea - HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); - 8000ec2: 2201 movs r2, #1 - 8000ec4: 2120 movs r1, #32 - 8000ec6: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 - 8000eca: f001 fbd7 bl 800267c - - const uint8_t test[] = "it works\n"; - 8000ece: 4a09 ldr r2, [pc, #36] ; (8000ef4 ) - 8000ed0: f107 030c add.w r3, r7, #12 - 8000ed4: ca07 ldmia r2, {r0, r1, r2} - 8000ed6: c303 stmia r3!, {r0, r1} - 8000ed8: 801a strh r2, [r3, #0] - - HAL_UART_Transmit(&huart2, test, sizeof(test), 25); - 8000eda: f107 010c add.w r1, r7, #12 - 8000ede: 2319 movs r3, #25 - 8000ee0: 220a movs r2, #10 - 8000ee2: 4805 ldr r0, [pc, #20] ; (8000ef8 ) - 8000ee4: f004 fb08 bl 80054f8 -// -// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); - } else { - __NOP(); - } -} - 8000ee8: e000 b.n 8000eec - __NOP(); - 8000eea: bf00 nop -} - 8000eec: bf00 nop - 8000eee: 3718 adds r7, #24 - 8000ef0: 46bd mov sp, r7 - 8000ef2: bd80 pop {r7, pc} - 8000ef4: 08006ee0 .word 0x08006ee0 - 8000ef8: 20000170 .word 0x20000170 - -08000efc
: -/** - * @brief The application entry point. - * @retval int - */ -int main(void) -{ - 8000efc: b580 push {r7, lr} - 8000efe: b086 sub sp, #24 - 8000f00: af00 add r7, sp, #0 - /* USER CODE END 1 */ - - /* MCU Configuration--------------------------------------------------------*/ - - /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ - HAL_Init(); - 8000f02: f000 fe98 bl 8001c36 - /* USER CODE BEGIN Init */ - - /* USER CODE END Init */ - - /* Configure the system clock */ - SystemClock_Config(); - 8000f06: f000 f831 bl 8000f6c - /* USER CODE BEGIN SysInit */ - - /* USER CODE END SysInit */ - - /* Initialize all configured peripherals */ - MX_GPIO_Init(); - 8000f0a: f000 f909 bl 8001120 - MX_DMA_Init(); - 8000f0e: f000 f8e1 bl 80010d4 - MX_I2C1_Init(); - 8000f12: f000 f871 bl 8000ff8 - MX_USART2_UART_Init(); - 8000f16: f000 f8ad bl 8001074 - /* USER CODE BEGIN 2 */ - - GPIO_InitTypeDef GPIO_InitStruct; - - GPIO_InitStruct.Pin = GPIO_PIN_5; - 8000f1a: 2320 movs r3, #32 - 8000f1c: 607b str r3, [r7, #4] - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8000f1e: 2301 movs r3, #1 - 8000f20: 60bb str r3, [r7, #8] - GPIO_InitStruct.Pull = GPIO_PULLUP; - 8000f22: 2301 movs r3, #1 - 8000f24: 60fb str r3, [r7, #12] - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8000f26: 2302 movs r3, #2 - 8000f28: 613b str r3, [r7, #16] - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8000f2a: 1d3b adds r3, r7, #4 - 8000f2c: 4619 mov r1, r3 - 8000f2e: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 - 8000f32: f001 f9e1 bl 80022f8 - - /* USER CODE END 2 */ - - DEV_ModuleInit(&hi2c1); - 8000f36: 480a ldr r0, [pc, #40] ; (8000f60 ) - 8000f38: f7ff ffa6 bl 8000e88 - - TSL2591_Init(); - 8000f3c: f000 fc74 bl 8001828 - /* USER CODE BEGIN WHILE */ - while (1) - { - /* USER CODE END WHILE */ - - printf("Lux = %d\r\n",TSL2591_Read_Lux()); - 8000f40: f000 fc92 bl 8001868 - 8000f44: 4603 mov r3, r0 - 8000f46: 4619 mov r1, r3 - 8000f48: 4806 ldr r0, [pc, #24] ; (8000f64 ) - 8000f4a: f005 f8ef bl 800612c - TSL2591_SET_LuxInterrupt(50,200); - 8000f4e: 21c8 movs r1, #200 ; 0xc8 - 8000f50: 2032 movs r0, #50 ; 0x32 - 8000f52: f000 fd81 bl 8001a58 - printf("\r\n"); - 8000f56: 4804 ldr r0, [pc, #16] ; (8000f68 ) - 8000f58: f005 f94e bl 80061f8 - { - 8000f5c: e7f0 b.n 8000f40 - 8000f5e: bf00 nop - 8000f60: 2000008c .word 0x2000008c - 8000f64: 08006eec .word 0x08006eec - 8000f68: 08006ef8 .word 0x08006ef8 - -08000f6c : -/** - * @brief System Clock Configuration - * @retval None - */ -void SystemClock_Config(void) -{ - 8000f6c: b580 push {r7, lr} - 8000f6e: b096 sub sp, #88 ; 0x58 - 8000f70: af00 add r7, sp, #0 - RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - 8000f72: f107 0314 add.w r3, r7, #20 - 8000f76: 2244 movs r2, #68 ; 0x44 - 8000f78: 2100 movs r1, #0 - 8000f7a: 4618 mov r0, r3 - 8000f7c: f005 f944 bl 8006208 - RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - 8000f80: 463b mov r3, r7 - 8000f82: 2200 movs r2, #0 - 8000f84: 601a str r2, [r3, #0] - 8000f86: 605a str r2, [r3, #4] - 8000f88: 609a str r2, [r3, #8] - 8000f8a: 60da str r2, [r3, #12] - 8000f8c: 611a str r2, [r3, #16] - - /** Configure the main internal regulator output voltage - */ - if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) - 8000f8e: f44f 7000 mov.w r0, #512 ; 0x200 - 8000f92: f002 ff51 bl 8003e38 - 8000f96: 4603 mov r3, r0 - 8000f98: 2b00 cmp r3, #0 - 8000f9a: d001 beq.n 8000fa0 - { - Error_Handler(); - 8000f9c: f000 f90e bl 80011bc - } - - /** Initializes the RCC Oscillators according to the specified parameters - * in the RCC_OscInitTypeDef structure. - */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI; - 8000fa0: 2310 movs r3, #16 - 8000fa2: 617b str r3, [r7, #20] - RCC_OscInitStruct.MSIState = RCC_MSI_ON; - 8000fa4: 2301 movs r3, #1 - 8000fa6: 62fb str r3, [r7, #44] ; 0x2c - RCC_OscInitStruct.MSICalibrationValue = 0; - 8000fa8: 2300 movs r3, #0 - 8000faa: 633b str r3, [r7, #48] ; 0x30 - RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_6; - 8000fac: 2360 movs r3, #96 ; 0x60 - 8000fae: 637b str r3, [r7, #52] ; 0x34 - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; - 8000fb0: 2300 movs r3, #0 - 8000fb2: 63fb str r3, [r7, #60] ; 0x3c - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - 8000fb4: f107 0314 add.w r3, r7, #20 - 8000fb8: 4618 mov r0, r3 - 8000fba: f002 ff93 bl 8003ee4 - 8000fbe: 4603 mov r3, r0 - 8000fc0: 2b00 cmp r3, #0 - 8000fc2: d001 beq.n 8000fc8 - { - Error_Handler(); - 8000fc4: f000 f8fa bl 80011bc - } - - /** Initializes the CPU, AHB and APB buses clocks - */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - 8000fc8: 230f movs r3, #15 - 8000fca: 603b str r3, [r7, #0] - |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI; - 8000fcc: 2300 movs r3, #0 - 8000fce: 607b str r3, [r7, #4] - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - 8000fd0: 2300 movs r3, #0 - 8000fd2: 60bb str r3, [r7, #8] - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; - 8000fd4: 2300 movs r3, #0 - 8000fd6: 60fb str r3, [r7, #12] - RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - 8000fd8: 2300 movs r3, #0 - 8000fda: 613b str r3, [r7, #16] - - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) - 8000fdc: 463b mov r3, r7 - 8000fde: 2100 movs r1, #0 - 8000fe0: 4618 mov r0, r3 - 8000fe2: f003 fb5b bl 800469c - 8000fe6: 4603 mov r3, r0 - 8000fe8: 2b00 cmp r3, #0 - 8000fea: d001 beq.n 8000ff0 - { - Error_Handler(); - 8000fec: f000 f8e6 bl 80011bc - } -} - 8000ff0: bf00 nop - 8000ff2: 3758 adds r7, #88 ; 0x58 - 8000ff4: 46bd mov sp, r7 - 8000ff6: bd80 pop {r7, pc} - -08000ff8 : - * @brief I2C1 Initialization Function - * @param None - * @retval None - */ -static void MX_I2C1_Init(void) -{ - 8000ff8: b580 push {r7, lr} - 8000ffa: af00 add r7, sp, #0 - /* USER CODE END I2C1_Init 0 */ - - /* USER CODE BEGIN I2C1_Init 1 */ - - /* USER CODE END I2C1_Init 1 */ - hi2c1.Instance = I2C1; - 8000ffc: 4b1b ldr r3, [pc, #108] ; (800106c ) - 8000ffe: 4a1c ldr r2, [pc, #112] ; (8001070 ) - 8001000: 601a str r2, [r3, #0] - hi2c1.Init.Timing = 0x00000E14; - 8001002: 4b1a ldr r3, [pc, #104] ; (800106c ) - 8001004: f640 6214 movw r2, #3604 ; 0xe14 - 8001008: 605a str r2, [r3, #4] - hi2c1.Init.OwnAddress1 = 0; - 800100a: 4b18 ldr r3, [pc, #96] ; (800106c ) - 800100c: 2200 movs r2, #0 - 800100e: 609a str r2, [r3, #8] - hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - 8001010: 4b16 ldr r3, [pc, #88] ; (800106c ) - 8001012: 2201 movs r2, #1 - 8001014: 60da str r2, [r3, #12] - hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - 8001016: 4b15 ldr r3, [pc, #84] ; (800106c ) - 8001018: 2200 movs r2, #0 - 800101a: 611a str r2, [r3, #16] - hi2c1.Init.OwnAddress2 = 0; - 800101c: 4b13 ldr r3, [pc, #76] ; (800106c ) - 800101e: 2200 movs r2, #0 - 8001020: 615a str r2, [r3, #20] - hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; - 8001022: 4b12 ldr r3, [pc, #72] ; (800106c ) - 8001024: 2200 movs r2, #0 - 8001026: 619a str r2, [r3, #24] - hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - 8001028: 4b10 ldr r3, [pc, #64] ; (800106c ) - 800102a: 2200 movs r2, #0 - 800102c: 61da str r2, [r3, #28] - hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - 800102e: 4b0f ldr r3, [pc, #60] ; (800106c ) - 8001030: 2200 movs r2, #0 - 8001032: 621a str r2, [r3, #32] - if (HAL_I2C_Init(&hi2c1) != HAL_OK) - 8001034: 480d ldr r0, [pc, #52] ; (800106c ) - 8001036: f001 fb51 bl 80026dc - 800103a: 4603 mov r3, r0 - 800103c: 2b00 cmp r3, #0 - 800103e: d001 beq.n 8001044 - { - Error_Handler(); - 8001040: f000 f8bc bl 80011bc - } - - /** Configure Analogue filter - */ - if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK) - 8001044: 2100 movs r1, #0 - 8001046: 4809 ldr r0, [pc, #36] ; (800106c ) - 8001048: f002 fe50 bl 8003cec - 800104c: 4603 mov r3, r0 - 800104e: 2b00 cmp r3, #0 - 8001050: d001 beq.n 8001056 - { - Error_Handler(); - 8001052: f000 f8b3 bl 80011bc - } - - /** Configure Digital filter - */ - if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK) - 8001056: 2100 movs r1, #0 - 8001058: 4804 ldr r0, [pc, #16] ; (800106c ) - 800105a: f002 fe92 bl 8003d82 - 800105e: 4603 mov r3, r0 - 8001060: 2b00 cmp r3, #0 - 8001062: d001 beq.n 8001068 - { - Error_Handler(); - 8001064: f000 f8aa bl 80011bc - } - /* USER CODE BEGIN I2C1_Init 2 */ - - /* USER CODE END I2C1_Init 2 */ - -} - 8001068: bf00 nop - 800106a: bd80 pop {r7, pc} - 800106c: 2000008c .word 0x2000008c - 8001070: 40005400 .word 0x40005400 - -08001074 : - * @brief USART2 Initialization Function - * @param None - * @retval None - */ -static void MX_USART2_UART_Init(void) -{ - 8001074: b580 push {r7, lr} - 8001076: af00 add r7, sp, #0 - /* USER CODE END USART2_Init 0 */ - - /* USER CODE BEGIN USART2_Init 1 */ - - /* USER CODE END USART2_Init 1 */ - huart2.Instance = USART2; - 8001078: 4b14 ldr r3, [pc, #80] ; (80010cc ) - 800107a: 4a15 ldr r2, [pc, #84] ; (80010d0 ) - 800107c: 601a str r2, [r3, #0] - huart2.Init.BaudRate = 115200; - 800107e: 4b13 ldr r3, [pc, #76] ; (80010cc ) - 8001080: f44f 32e1 mov.w r2, #115200 ; 0x1c200 - 8001084: 605a str r2, [r3, #4] - huart2.Init.WordLength = UART_WORDLENGTH_8B; - 8001086: 4b11 ldr r3, [pc, #68] ; (80010cc ) - 8001088: 2200 movs r2, #0 - 800108a: 609a str r2, [r3, #8] - huart2.Init.StopBits = UART_STOPBITS_1; - 800108c: 4b0f ldr r3, [pc, #60] ; (80010cc ) - 800108e: 2200 movs r2, #0 - 8001090: 60da str r2, [r3, #12] - huart2.Init.Parity = UART_PARITY_NONE; - 8001092: 4b0e ldr r3, [pc, #56] ; (80010cc ) - 8001094: 2200 movs r2, #0 - 8001096: 611a str r2, [r3, #16] - huart2.Init.Mode = UART_MODE_TX_RX; - 8001098: 4b0c ldr r3, [pc, #48] ; (80010cc ) - 800109a: 220c movs r2, #12 - 800109c: 615a str r2, [r3, #20] - huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; - 800109e: 4b0b ldr r3, [pc, #44] ; (80010cc ) - 80010a0: 2200 movs r2, #0 - 80010a2: 619a str r2, [r3, #24] - huart2.Init.OverSampling = UART_OVERSAMPLING_16; - 80010a4: 4b09 ldr r3, [pc, #36] ; (80010cc ) - 80010a6: 2200 movs r2, #0 - 80010a8: 61da str r2, [r3, #28] - huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - 80010aa: 4b08 ldr r3, [pc, #32] ; (80010cc ) - 80010ac: 2200 movs r2, #0 - 80010ae: 621a str r2, [r3, #32] - huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - 80010b0: 4b06 ldr r3, [pc, #24] ; (80010cc ) - 80010b2: 2200 movs r2, #0 - 80010b4: 625a str r2, [r3, #36] ; 0x24 - if (HAL_UART_Init(&huart2) != HAL_OK) - 80010b6: 4805 ldr r0, [pc, #20] ; (80010cc ) - 80010b8: f004 f9d0 bl 800545c - 80010bc: 4603 mov r3, r0 - 80010be: 2b00 cmp r3, #0 - 80010c0: d001 beq.n 80010c6 - { - Error_Handler(); - 80010c2: f000 f87b bl 80011bc - } - /* USER CODE BEGIN USART2_Init 2 */ - - /* USER CODE END USART2_Init 2 */ - -} - 80010c6: bf00 nop - 80010c8: bd80 pop {r7, pc} - 80010ca: bf00 nop - 80010cc: 20000170 .word 0x20000170 - 80010d0: 40004400 .word 0x40004400 - -080010d4 : - -/** - * Enable DMA controller clock - */ -static void MX_DMA_Init(void) -{ - 80010d4: b580 push {r7, lr} - 80010d6: b082 sub sp, #8 - 80010d8: af00 add r7, sp, #0 - - /* DMA controller clock enable */ - __HAL_RCC_DMA1_CLK_ENABLE(); - 80010da: 4b10 ldr r3, [pc, #64] ; (800111c ) - 80010dc: 6c9b ldr r3, [r3, #72] ; 0x48 - 80010de: 4a0f ldr r2, [pc, #60] ; (800111c ) - 80010e0: f043 0301 orr.w r3, r3, #1 - 80010e4: 6493 str r3, [r2, #72] ; 0x48 - 80010e6: 4b0d ldr r3, [pc, #52] ; (800111c ) - 80010e8: 6c9b ldr r3, [r3, #72] ; 0x48 - 80010ea: f003 0301 and.w r3, r3, #1 - 80010ee: 607b str r3, [r7, #4] - 80010f0: 687b ldr r3, [r7, #4] - - /* DMA interrupt init */ - /* DMA1_Channel6_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 0, 0); - 80010f2: 2200 movs r2, #0 - 80010f4: 2100 movs r1, #0 - 80010f6: 2010 movs r0, #16 - 80010f8: f000 ff11 bl 8001f1e - HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn); - 80010fc: 2010 movs r0, #16 - 80010fe: f000 ff2a bl 8001f56 - /* DMA1_Channel7_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel7_IRQn, 0, 0); - 8001102: 2200 movs r2, #0 - 8001104: 2100 movs r1, #0 - 8001106: 2011 movs r0, #17 - 8001108: f000 ff09 bl 8001f1e - HAL_NVIC_EnableIRQ(DMA1_Channel7_IRQn); - 800110c: 2011 movs r0, #17 - 800110e: f000 ff22 bl 8001f56 - -} - 8001112: bf00 nop - 8001114: 3708 adds r7, #8 - 8001116: 46bd mov sp, r7 - 8001118: bd80 pop {r7, pc} - 800111a: bf00 nop - 800111c: 40021000 .word 0x40021000 - -08001120 : - * @brief GPIO Initialization Function - * @param None - * @retval None - */ -static void MX_GPIO_Init(void) -{ - 8001120: b580 push {r7, lr} - 8001122: b088 sub sp, #32 - 8001124: af00 add r7, sp, #0 - GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8001126: f107 030c add.w r3, r7, #12 - 800112a: 2200 movs r2, #0 - 800112c: 601a str r2, [r3, #0] - 800112e: 605a str r2, [r3, #4] - 8001130: 609a str r2, [r3, #8] - 8001132: 60da str r2, [r3, #12] - 8001134: 611a str r2, [r3, #16] -/* USER CODE BEGIN MX_GPIO_Init_1 */ -/* USER CODE END MX_GPIO_Init_1 */ - - /* GPIO Ports Clock Enable */ - __HAL_RCC_GPIOC_CLK_ENABLE(); - 8001136: 4b1f ldr r3, [pc, #124] ; (80011b4 ) - 8001138: 6cdb ldr r3, [r3, #76] ; 0x4c - 800113a: 4a1e ldr r2, [pc, #120] ; (80011b4 ) - 800113c: f043 0304 orr.w r3, r3, #4 - 8001140: 64d3 str r3, [r2, #76] ; 0x4c - 8001142: 4b1c ldr r3, [pc, #112] ; (80011b4 ) - 8001144: 6cdb ldr r3, [r3, #76] ; 0x4c - 8001146: f003 0304 and.w r3, r3, #4 - 800114a: 60bb str r3, [r7, #8] - 800114c: 68bb ldr r3, [r7, #8] - __HAL_RCC_GPIOA_CLK_ENABLE(); - 800114e: 4b19 ldr r3, [pc, #100] ; (80011b4 ) - 8001150: 6cdb ldr r3, [r3, #76] ; 0x4c - 8001152: 4a18 ldr r2, [pc, #96] ; (80011b4 ) - 8001154: f043 0301 orr.w r3, r3, #1 - 8001158: 64d3 str r3, [r2, #76] ; 0x4c - 800115a: 4b16 ldr r3, [pc, #88] ; (80011b4 ) - 800115c: 6cdb ldr r3, [r3, #76] ; 0x4c - 800115e: f003 0301 and.w r3, r3, #1 - 8001162: 607b str r3, [r7, #4] - 8001164: 687b ldr r3, [r7, #4] - __HAL_RCC_GPIOB_CLK_ENABLE(); - 8001166: 4b13 ldr r3, [pc, #76] ; (80011b4 ) - 8001168: 6cdb ldr r3, [r3, #76] ; 0x4c - 800116a: 4a12 ldr r2, [pc, #72] ; (80011b4 ) - 800116c: f043 0302 orr.w r3, r3, #2 - 8001170: 64d3 str r3, [r2, #76] ; 0x4c - 8001172: 4b10 ldr r3, [pc, #64] ; (80011b4 ) - 8001174: 6cdb ldr r3, [r3, #76] ; 0x4c - 8001176: f003 0302 and.w r3, r3, #2 - 800117a: 603b str r3, [r7, #0] - 800117c: 683b ldr r3, [r7, #0] - - /*Configure GPIO pin : PC13 */ - GPIO_InitStruct.Pin = GPIO_PIN_13; - 800117e: f44f 5300 mov.w r3, #8192 ; 0x2000 - 8001182: 60fb str r3, [r7, #12] - GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; - 8001184: f44f 1388 mov.w r3, #1114112 ; 0x110000 - 8001188: 613b str r3, [r7, #16] - GPIO_InitStruct.Pull = GPIO_NOPULL; - 800118a: 2300 movs r3, #0 - 800118c: 617b str r3, [r7, #20] - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - 800118e: f107 030c add.w r3, r7, #12 - 8001192: 4619 mov r1, r3 - 8001194: 4808 ldr r0, [pc, #32] ; (80011b8 ) - 8001196: f001 f8af bl 80022f8 - - /* EXTI interrupt init*/ - HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0); - 800119a: 2200 movs r2, #0 - 800119c: 2100 movs r1, #0 - 800119e: 2028 movs r0, #40 ; 0x28 - 80011a0: f000 febd bl 8001f1e - HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); - 80011a4: 2028 movs r0, #40 ; 0x28 - 80011a6: f000 fed6 bl 8001f56 - -/* USER CODE BEGIN MX_GPIO_Init_2 */ -/* USER CODE END MX_GPIO_Init_2 */ -} - 80011aa: bf00 nop - 80011ac: 3720 adds r7, #32 - 80011ae: 46bd mov sp, r7 - 80011b0: bd80 pop {r7, pc} - 80011b2: bf00 nop - 80011b4: 40021000 .word 0x40021000 - 80011b8: 48000800 .word 0x48000800 - -080011bc : -/** - * @brief This function is executed in case of error occurrence. - * @retval None - */ -void Error_Handler(void) -{ - 80011bc: b480 push {r7} - 80011be: 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"); - 80011c0: b672 cpsid i -} - 80011c2: 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) - 80011c4: e7fe b.n 80011c4 - ... - -080011c8 : -/* USER CODE END 0 */ -/** - * Initializes the Global MSP. - */ -void HAL_MspInit(void) -{ - 80011c8: b480 push {r7} - 80011ca: b083 sub sp, #12 - 80011cc: af00 add r7, sp, #0 - /* USER CODE BEGIN MspInit 0 */ - - /* USER CODE END MspInit 0 */ - - __HAL_RCC_SYSCFG_CLK_ENABLE(); - 80011ce: 4b0f ldr r3, [pc, #60] ; (800120c ) - 80011d0: 6e1b ldr r3, [r3, #96] ; 0x60 - 80011d2: 4a0e ldr r2, [pc, #56] ; (800120c ) - 80011d4: f043 0301 orr.w r3, r3, #1 - 80011d8: 6613 str r3, [r2, #96] ; 0x60 - 80011da: 4b0c ldr r3, [pc, #48] ; (800120c ) - 80011dc: 6e1b ldr r3, [r3, #96] ; 0x60 - 80011de: f003 0301 and.w r3, r3, #1 - 80011e2: 607b str r3, [r7, #4] - 80011e4: 687b ldr r3, [r7, #4] - __HAL_RCC_PWR_CLK_ENABLE(); - 80011e6: 4b09 ldr r3, [pc, #36] ; (800120c ) - 80011e8: 6d9b ldr r3, [r3, #88] ; 0x58 - 80011ea: 4a08 ldr r2, [pc, #32] ; (800120c ) - 80011ec: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 80011f0: 6593 str r3, [r2, #88] ; 0x58 - 80011f2: 4b06 ldr r3, [pc, #24] ; (800120c ) - 80011f4: 6d9b ldr r3, [r3, #88] ; 0x58 - 80011f6: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 80011fa: 603b str r3, [r7, #0] - 80011fc: 683b ldr r3, [r7, #0] - /* System interrupt init*/ - - /* USER CODE BEGIN MspInit 1 */ - - /* USER CODE END MspInit 1 */ -} - 80011fe: bf00 nop - 8001200: 370c adds r7, #12 - 8001202: 46bd mov sp, r7 - 8001204: f85d 7b04 ldr.w r7, [sp], #4 - 8001208: 4770 bx lr - 800120a: bf00 nop - 800120c: 40021000 .word 0x40021000 - -08001210 : -* This function configures the hardware resources used in this example -* @param hi2c: I2C handle pointer -* @retval None -*/ -void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) -{ - 8001210: b580 push {r7, lr} - 8001212: b0ac sub sp, #176 ; 0xb0 - 8001214: af00 add r7, sp, #0 - 8001216: 6078 str r0, [r7, #4] - GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8001218: f107 039c add.w r3, r7, #156 ; 0x9c - 800121c: 2200 movs r2, #0 - 800121e: 601a str r2, [r3, #0] - 8001220: 605a str r2, [r3, #4] - 8001222: 609a str r2, [r3, #8] - 8001224: 60da str r2, [r3, #12] - 8001226: 611a str r2, [r3, #16] - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - 8001228: f107 0314 add.w r3, r7, #20 - 800122c: 2288 movs r2, #136 ; 0x88 - 800122e: 2100 movs r1, #0 - 8001230: 4618 mov r0, r3 - 8001232: f004 ffe9 bl 8006208 - if(hi2c->Instance==I2C1) - 8001236: 687b ldr r3, [r7, #4] - 8001238: 681b ldr r3, [r3, #0] - 800123a: 4a53 ldr r2, [pc, #332] ; (8001388 ) - 800123c: 4293 cmp r3, r2 - 800123e: f040 809e bne.w 800137e - - /* USER CODE END I2C1_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1; - 8001242: 2340 movs r3, #64 ; 0x40 - 8001244: 617b str r3, [r7, #20] - PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1; - 8001246: 2300 movs r3, #0 - 8001248: 667b str r3, [r7, #100] ; 0x64 - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - 800124a: f107 0314 add.w r3, r7, #20 - 800124e: 4618 mov r0, r3 - 8001250: f003 fc48 bl 8004ae4 - 8001254: 4603 mov r3, r0 - 8001256: 2b00 cmp r3, #0 - 8001258: d001 beq.n 800125e - { - Error_Handler(); - 800125a: f7ff ffaf bl 80011bc - } - - __HAL_RCC_GPIOB_CLK_ENABLE(); - 800125e: 4b4b ldr r3, [pc, #300] ; (800138c ) - 8001260: 6cdb ldr r3, [r3, #76] ; 0x4c - 8001262: 4a4a ldr r2, [pc, #296] ; (800138c ) - 8001264: f043 0302 orr.w r3, r3, #2 - 8001268: 64d3 str r3, [r2, #76] ; 0x4c - 800126a: 4b48 ldr r3, [pc, #288] ; (800138c ) - 800126c: 6cdb ldr r3, [r3, #76] ; 0x4c - 800126e: f003 0302 and.w r3, r3, #2 - 8001272: 613b str r3, [r7, #16] - 8001274: 693b ldr r3, [r7, #16] - /**I2C1 GPIO Configuration - PB8 ------> I2C1_SCL - PB9 ------> I2C1_SDA - */ - GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; - 8001276: f44f 7340 mov.w r3, #768 ; 0x300 - 800127a: f8c7 309c str.w r3, [r7, #156] ; 0x9c - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - 800127e: 2312 movs r3, #18 - 8001280: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 - GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001284: 2300 movs r3, #0 - 8001286: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 800128a: 2303 movs r3, #3 - 800128c: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 - GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; - 8001290: 2304 movs r3, #4 - 8001292: f8c7 30ac str.w r3, [r7, #172] ; 0xac - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8001296: f107 039c add.w r3, r7, #156 ; 0x9c - 800129a: 4619 mov r1, r3 - 800129c: 483c ldr r0, [pc, #240] ; (8001390 ) - 800129e: f001 f82b bl 80022f8 - - /* Peripheral clock enable */ - __HAL_RCC_I2C1_CLK_ENABLE(); - 80012a2: 4b3a ldr r3, [pc, #232] ; (800138c ) - 80012a4: 6d9b ldr r3, [r3, #88] ; 0x58 - 80012a6: 4a39 ldr r2, [pc, #228] ; (800138c ) - 80012a8: f443 1300 orr.w r3, r3, #2097152 ; 0x200000 - 80012ac: 6593 str r3, [r2, #88] ; 0x58 - 80012ae: 4b37 ldr r3, [pc, #220] ; (800138c ) - 80012b0: 6d9b ldr r3, [r3, #88] ; 0x58 - 80012b2: f403 1300 and.w r3, r3, #2097152 ; 0x200000 - 80012b6: 60fb str r3, [r7, #12] - 80012b8: 68fb ldr r3, [r7, #12] - - /* I2C1 DMA Init */ - /* I2C1_RX Init */ - hdma_i2c1_rx.Instance = DMA1_Channel7; - 80012ba: 4b36 ldr r3, [pc, #216] ; (8001394 ) - 80012bc: 4a36 ldr r2, [pc, #216] ; (8001398 ) - 80012be: 601a str r2, [r3, #0] - hdma_i2c1_rx.Init.Request = DMA_REQUEST_3; - 80012c0: 4b34 ldr r3, [pc, #208] ; (8001394 ) - 80012c2: 2203 movs r2, #3 - 80012c4: 605a str r2, [r3, #4] - hdma_i2c1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; - 80012c6: 4b33 ldr r3, [pc, #204] ; (8001394 ) - 80012c8: 2200 movs r2, #0 - 80012ca: 609a str r2, [r3, #8] - hdma_i2c1_rx.Init.PeriphInc = DMA_PINC_DISABLE; - 80012cc: 4b31 ldr r3, [pc, #196] ; (8001394 ) - 80012ce: 2200 movs r2, #0 - 80012d0: 60da str r2, [r3, #12] - hdma_i2c1_rx.Init.MemInc = DMA_MINC_ENABLE; - 80012d2: 4b30 ldr r3, [pc, #192] ; (8001394 ) - 80012d4: 2280 movs r2, #128 ; 0x80 - 80012d6: 611a str r2, [r3, #16] - hdma_i2c1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - 80012d8: 4b2e ldr r3, [pc, #184] ; (8001394 ) - 80012da: 2200 movs r2, #0 - 80012dc: 615a str r2, [r3, #20] - hdma_i2c1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - 80012de: 4b2d ldr r3, [pc, #180] ; (8001394 ) - 80012e0: 2200 movs r2, #0 - 80012e2: 619a str r2, [r3, #24] - hdma_i2c1_rx.Init.Mode = DMA_NORMAL; - 80012e4: 4b2b ldr r3, [pc, #172] ; (8001394 ) - 80012e6: 2200 movs r2, #0 - 80012e8: 61da str r2, [r3, #28] - hdma_i2c1_rx.Init.Priority = DMA_PRIORITY_LOW; - 80012ea: 4b2a ldr r3, [pc, #168] ; (8001394 ) - 80012ec: 2200 movs r2, #0 - 80012ee: 621a str r2, [r3, #32] - if (HAL_DMA_Init(&hdma_i2c1_rx) != HAL_OK) - 80012f0: 4828 ldr r0, [pc, #160] ; (8001394 ) - 80012f2: f000 fe4b bl 8001f8c - 80012f6: 4603 mov r3, r0 - 80012f8: 2b00 cmp r3, #0 - 80012fa: d001 beq.n 8001300 - { - Error_Handler(); - 80012fc: f7ff ff5e bl 80011bc - } - - __HAL_LINKDMA(hi2c,hdmarx,hdma_i2c1_rx); - 8001300: 687b ldr r3, [r7, #4] - 8001302: 4a24 ldr r2, [pc, #144] ; (8001394 ) - 8001304: 63da str r2, [r3, #60] ; 0x3c - 8001306: 4a23 ldr r2, [pc, #140] ; (8001394 ) - 8001308: 687b ldr r3, [r7, #4] - 800130a: 6293 str r3, [r2, #40] ; 0x28 - - /* I2C1_TX Init */ - hdma_i2c1_tx.Instance = DMA1_Channel6; - 800130c: 4b23 ldr r3, [pc, #140] ; (800139c ) - 800130e: 4a24 ldr r2, [pc, #144] ; (80013a0 ) - 8001310: 601a str r2, [r3, #0] - hdma_i2c1_tx.Init.Request = DMA_REQUEST_3; - 8001312: 4b22 ldr r3, [pc, #136] ; (800139c ) - 8001314: 2203 movs r2, #3 - 8001316: 605a str r2, [r3, #4] - hdma_i2c1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; - 8001318: 4b20 ldr r3, [pc, #128] ; (800139c ) - 800131a: 2210 movs r2, #16 - 800131c: 609a str r2, [r3, #8] - hdma_i2c1_tx.Init.PeriphInc = DMA_PINC_DISABLE; - 800131e: 4b1f ldr r3, [pc, #124] ; (800139c ) - 8001320: 2200 movs r2, #0 - 8001322: 60da str r2, [r3, #12] - hdma_i2c1_tx.Init.MemInc = DMA_MINC_ENABLE; - 8001324: 4b1d ldr r3, [pc, #116] ; (800139c ) - 8001326: 2280 movs r2, #128 ; 0x80 - 8001328: 611a str r2, [r3, #16] - hdma_i2c1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - 800132a: 4b1c ldr r3, [pc, #112] ; (800139c ) - 800132c: 2200 movs r2, #0 - 800132e: 615a str r2, [r3, #20] - hdma_i2c1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - 8001330: 4b1a ldr r3, [pc, #104] ; (800139c ) - 8001332: 2200 movs r2, #0 - 8001334: 619a str r2, [r3, #24] - hdma_i2c1_tx.Init.Mode = DMA_NORMAL; - 8001336: 4b19 ldr r3, [pc, #100] ; (800139c ) - 8001338: 2200 movs r2, #0 - 800133a: 61da str r2, [r3, #28] - hdma_i2c1_tx.Init.Priority = DMA_PRIORITY_LOW; - 800133c: 4b17 ldr r3, [pc, #92] ; (800139c ) - 800133e: 2200 movs r2, #0 - 8001340: 621a str r2, [r3, #32] - if (HAL_DMA_Init(&hdma_i2c1_tx) != HAL_OK) - 8001342: 4816 ldr r0, [pc, #88] ; (800139c ) - 8001344: f000 fe22 bl 8001f8c - 8001348: 4603 mov r3, r0 - 800134a: 2b00 cmp r3, #0 - 800134c: d001 beq.n 8001352 - { - Error_Handler(); - 800134e: f7ff ff35 bl 80011bc - } - - __HAL_LINKDMA(hi2c,hdmatx,hdma_i2c1_tx); - 8001352: 687b ldr r3, [r7, #4] - 8001354: 4a11 ldr r2, [pc, #68] ; (800139c ) - 8001356: 639a str r2, [r3, #56] ; 0x38 - 8001358: 4a10 ldr r2, [pc, #64] ; (800139c ) - 800135a: 687b ldr r3, [r7, #4] - 800135c: 6293 str r3, [r2, #40] ; 0x28 - - /* I2C1 interrupt Init */ - HAL_NVIC_SetPriority(I2C1_EV_IRQn, 0, 0); - 800135e: 2200 movs r2, #0 - 8001360: 2100 movs r1, #0 - 8001362: 201f movs r0, #31 - 8001364: f000 fddb bl 8001f1e - HAL_NVIC_EnableIRQ(I2C1_EV_IRQn); - 8001368: 201f movs r0, #31 - 800136a: f000 fdf4 bl 8001f56 - HAL_NVIC_SetPriority(I2C1_ER_IRQn, 0, 0); - 800136e: 2200 movs r2, #0 - 8001370: 2100 movs r1, #0 - 8001372: 2020 movs r0, #32 - 8001374: f000 fdd3 bl 8001f1e - HAL_NVIC_EnableIRQ(I2C1_ER_IRQn); - 8001378: 2020 movs r0, #32 - 800137a: f000 fdec bl 8001f56 - /* USER CODE BEGIN I2C1_MspInit 1 */ - - /* USER CODE END I2C1_MspInit 1 */ - } - -} - 800137e: bf00 nop - 8001380: 37b0 adds r7, #176 ; 0xb0 - 8001382: 46bd mov sp, r7 - 8001384: bd80 pop {r7, pc} - 8001386: bf00 nop - 8001388: 40005400 .word 0x40005400 - 800138c: 40021000 .word 0x40021000 - 8001390: 48000400 .word 0x48000400 - 8001394: 200000e0 .word 0x200000e0 - 8001398: 40020080 .word 0x40020080 - 800139c: 20000128 .word 0x20000128 - 80013a0: 4002006c .word 0x4002006c - -080013a4 : -* This function configures the hardware resources used in this example -* @param huart: UART handle pointer -* @retval None -*/ -void HAL_UART_MspInit(UART_HandleTypeDef* huart) -{ - 80013a4: b580 push {r7, lr} - 80013a6: b0ac sub sp, #176 ; 0xb0 - 80013a8: af00 add r7, sp, #0 - 80013aa: 6078 str r0, [r7, #4] - GPIO_InitTypeDef GPIO_InitStruct = {0}; - 80013ac: f107 039c add.w r3, r7, #156 ; 0x9c - 80013b0: 2200 movs r2, #0 - 80013b2: 601a str r2, [r3, #0] - 80013b4: 605a str r2, [r3, #4] - 80013b6: 609a str r2, [r3, #8] - 80013b8: 60da str r2, [r3, #12] - 80013ba: 611a str r2, [r3, #16] - RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; - 80013bc: f107 0314 add.w r3, r7, #20 - 80013c0: 2288 movs r2, #136 ; 0x88 - 80013c2: 2100 movs r1, #0 - 80013c4: 4618 mov r0, r3 - 80013c6: f004 ff1f bl 8006208 - if(huart->Instance==USART2) - 80013ca: 687b ldr r3, [r7, #4] - 80013cc: 681b ldr r3, [r3, #0] - 80013ce: 4a21 ldr r2, [pc, #132] ; (8001454 ) - 80013d0: 4293 cmp r3, r2 - 80013d2: d13b bne.n 800144c - - /* USER CODE END USART2_MspInit 0 */ - - /** Initializes the peripherals clock - */ - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2; - 80013d4: 2302 movs r3, #2 - 80013d6: 617b str r3, [r7, #20] - PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; - 80013d8: 2300 movs r3, #0 - 80013da: 653b str r3, [r7, #80] ; 0x50 - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) - 80013dc: f107 0314 add.w r3, r7, #20 - 80013e0: 4618 mov r0, r3 - 80013e2: f003 fb7f bl 8004ae4 - 80013e6: 4603 mov r3, r0 - 80013e8: 2b00 cmp r3, #0 - 80013ea: d001 beq.n 80013f0 - { - Error_Handler(); - 80013ec: f7ff fee6 bl 80011bc - } - - /* Peripheral clock enable */ - __HAL_RCC_USART2_CLK_ENABLE(); - 80013f0: 4b19 ldr r3, [pc, #100] ; (8001458 ) - 80013f2: 6d9b ldr r3, [r3, #88] ; 0x58 - 80013f4: 4a18 ldr r2, [pc, #96] ; (8001458 ) - 80013f6: f443 3300 orr.w r3, r3, #131072 ; 0x20000 - 80013fa: 6593 str r3, [r2, #88] ; 0x58 - 80013fc: 4b16 ldr r3, [pc, #88] ; (8001458 ) - 80013fe: 6d9b ldr r3, [r3, #88] ; 0x58 - 8001400: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8001404: 613b str r3, [r7, #16] - 8001406: 693b ldr r3, [r7, #16] - - __HAL_RCC_GPIOA_CLK_ENABLE(); - 8001408: 4b13 ldr r3, [pc, #76] ; (8001458 ) - 800140a: 6cdb ldr r3, [r3, #76] ; 0x4c - 800140c: 4a12 ldr r2, [pc, #72] ; (8001458 ) - 800140e: f043 0301 orr.w r3, r3, #1 - 8001412: 64d3 str r3, [r2, #76] ; 0x4c - 8001414: 4b10 ldr r3, [pc, #64] ; (8001458 ) - 8001416: 6cdb ldr r3, [r3, #76] ; 0x4c - 8001418: f003 0301 and.w r3, r3, #1 - 800141c: 60fb str r3, [r7, #12] - 800141e: 68fb ldr r3, [r7, #12] - /**USART2 GPIO Configuration - PA2 ------> USART2_TX - PA3 ------> USART2_RX - */ - GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; - 8001420: 230c movs r3, #12 - 8001422: f8c7 309c str.w r3, [r7, #156] ; 0x9c - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001426: 2302 movs r3, #2 - 8001428: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 - GPIO_InitStruct.Pull = GPIO_NOPULL; - 800142c: 2300 movs r3, #0 - 800142e: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8001432: 2303 movs r3, #3 - 8001434: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 - GPIO_InitStruct.Alternate = GPIO_AF7_USART2; - 8001438: 2307 movs r3, #7 - 800143a: f8c7 30ac str.w r3, [r7, #172] ; 0xac - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 800143e: f107 039c add.w r3, r7, #156 ; 0x9c - 8001442: 4619 mov r1, r3 - 8001444: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 - 8001448: f000 ff56 bl 80022f8 - /* USER CODE BEGIN USART2_MspInit 1 */ - - /* USER CODE END USART2_MspInit 1 */ - } - -} - 800144c: bf00 nop - 800144e: 37b0 adds r7, #176 ; 0xb0 - 8001450: 46bd mov sp, r7 - 8001452: bd80 pop {r7, pc} - 8001454: 40004400 .word 0x40004400 - 8001458: 40021000 .word 0x40021000 - -0800145c : -/******************************************************************************/ -/** - * @brief This function handles Non maskable interrupt. - */ -void NMI_Handler(void) -{ - 800145c: b480 push {r7} - 800145e: 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) - 8001460: e7fe b.n 8001460 - -08001462 : - -/** - * @brief This function handles Hard fault interrupt. - */ -void HardFault_Handler(void) -{ - 8001462: b480 push {r7} - 8001464: af00 add r7, sp, #0 - /* USER CODE BEGIN HardFault_IRQn 0 */ - - /* USER CODE END HardFault_IRQn 0 */ - while (1) - 8001466: e7fe b.n 8001466 - -08001468 : - -/** - * @brief This function handles Memory management fault. - */ -void MemManage_Handler(void) -{ - 8001468: b480 push {r7} - 800146a: af00 add r7, sp, #0 - /* USER CODE BEGIN MemoryManagement_IRQn 0 */ - - /* USER CODE END MemoryManagement_IRQn 0 */ - while (1) - 800146c: e7fe b.n 800146c - -0800146e : - -/** - * @brief This function handles Prefetch fault, memory access fault. - */ -void BusFault_Handler(void) -{ - 800146e: b480 push {r7} - 8001470: af00 add r7, sp, #0 - /* USER CODE BEGIN BusFault_IRQn 0 */ - - /* USER CODE END BusFault_IRQn 0 */ - while (1) - 8001472: e7fe b.n 8001472 - -08001474 : - -/** - * @brief This function handles Undefined instruction or illegal state. - */ -void UsageFault_Handler(void) -{ - 8001474: b480 push {r7} - 8001476: af00 add r7, sp, #0 - /* USER CODE BEGIN UsageFault_IRQn 0 */ - - /* USER CODE END UsageFault_IRQn 0 */ - while (1) - 8001478: e7fe b.n 8001478 - -0800147a : - -/** - * @brief This function handles System service call via SWI instruction. - */ -void SVC_Handler(void) -{ - 800147a: b480 push {r7} - 800147c: af00 add r7, sp, #0 - - /* USER CODE END SVCall_IRQn 0 */ - /* USER CODE BEGIN SVCall_IRQn 1 */ - - /* USER CODE END SVCall_IRQn 1 */ -} - 800147e: bf00 nop - 8001480: 46bd mov sp, r7 - 8001482: f85d 7b04 ldr.w r7, [sp], #4 - 8001486: 4770 bx lr - -08001488 : - -/** - * @brief This function handles Debug monitor. - */ -void DebugMon_Handler(void) -{ - 8001488: b480 push {r7} - 800148a: af00 add r7, sp, #0 - - /* USER CODE END DebugMonitor_IRQn 0 */ - /* USER CODE BEGIN DebugMonitor_IRQn 1 */ - - /* USER CODE END DebugMonitor_IRQn 1 */ -} - 800148c: bf00 nop - 800148e: 46bd mov sp, r7 - 8001490: f85d 7b04 ldr.w r7, [sp], #4 - 8001494: 4770 bx lr - -08001496 : - -/** - * @brief This function handles Pendable request for system service. - */ -void PendSV_Handler(void) -{ - 8001496: b480 push {r7} - 8001498: af00 add r7, sp, #0 - - /* USER CODE END PendSV_IRQn 0 */ - /* USER CODE BEGIN PendSV_IRQn 1 */ - - /* USER CODE END PendSV_IRQn 1 */ -} - 800149a: bf00 nop - 800149c: 46bd mov sp, r7 - 800149e: f85d 7b04 ldr.w r7, [sp], #4 - 80014a2: 4770 bx lr - -080014a4 : - -/** - * @brief This function handles System tick timer. - */ -void SysTick_Handler(void) -{ - 80014a4: b580 push {r7, lr} - 80014a6: af00 add r7, sp, #0 - /* USER CODE BEGIN SysTick_IRQn 0 */ - - /* USER CODE END SysTick_IRQn 0 */ - HAL_IncTick(); - 80014a8: f000 fc1a bl 8001ce0 - /* USER CODE BEGIN SysTick_IRQn 1 */ - - /* USER CODE END SysTick_IRQn 1 */ -} - 80014ac: bf00 nop - 80014ae: bd80 pop {r7, pc} - -080014b0 : - -/** - * @brief This function handles DMA1 channel6 global interrupt. - */ -void DMA1_Channel6_IRQHandler(void) -{ - 80014b0: b580 push {r7, lr} - 80014b2: af00 add r7, sp, #0 - /* USER CODE BEGIN DMA1_Channel6_IRQn 0 */ - - /* USER CODE END DMA1_Channel6_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_i2c1_tx); - 80014b4: 4802 ldr r0, [pc, #8] ; (80014c0 ) - 80014b6: f000 fe62 bl 800217e - /* USER CODE BEGIN DMA1_Channel6_IRQn 1 */ - - /* USER CODE END DMA1_Channel6_IRQn 1 */ -} - 80014ba: bf00 nop - 80014bc: bd80 pop {r7, pc} - 80014be: bf00 nop - 80014c0: 20000128 .word 0x20000128 - -080014c4 : - -/** - * @brief This function handles DMA1 channel7 global interrupt. - */ -void DMA1_Channel7_IRQHandler(void) -{ - 80014c4: b580 push {r7, lr} - 80014c6: af00 add r7, sp, #0 - /* USER CODE BEGIN DMA1_Channel7_IRQn 0 */ - - /* USER CODE END DMA1_Channel7_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_i2c1_rx); - 80014c8: 4802 ldr r0, [pc, #8] ; (80014d4 ) - 80014ca: f000 fe58 bl 800217e - /* USER CODE BEGIN DMA1_Channel7_IRQn 1 */ - - /* USER CODE END DMA1_Channel7_IRQn 1 */ -} - 80014ce: bf00 nop - 80014d0: bd80 pop {r7, pc} - 80014d2: bf00 nop - 80014d4: 200000e0 .word 0x200000e0 - -080014d8 : - -/** - * @brief This function handles I2C1 event interrupt. - */ -void I2C1_EV_IRQHandler(void) -{ - 80014d8: b580 push {r7, lr} - 80014da: af00 add r7, sp, #0 - /* USER CODE BEGIN I2C1_EV_IRQn 0 */ - - /* USER CODE END I2C1_EV_IRQn 0 */ - HAL_I2C_EV_IRQHandler(&hi2c1); - 80014dc: 4802 ldr r0, [pc, #8] ; (80014e8 ) - 80014de: f001 fbc7 bl 8002c70 - /* USER CODE BEGIN I2C1_EV_IRQn 1 */ - - /* USER CODE END I2C1_EV_IRQn 1 */ -} - 80014e2: bf00 nop - 80014e4: bd80 pop {r7, pc} - 80014e6: bf00 nop - 80014e8: 2000008c .word 0x2000008c - -080014ec : - -/** - * @brief This function handles I2C1 error interrupt. - */ -void I2C1_ER_IRQHandler(void) -{ - 80014ec: b580 push {r7, lr} - 80014ee: af00 add r7, sp, #0 - /* USER CODE BEGIN I2C1_ER_IRQn 0 */ - - /* USER CODE END I2C1_ER_IRQn 0 */ - HAL_I2C_ER_IRQHandler(&hi2c1); - 80014f0: 4802 ldr r0, [pc, #8] ; (80014fc ) - 80014f2: f001 fbd7 bl 8002ca4 - /* USER CODE BEGIN I2C1_ER_IRQn 1 */ - - /* USER CODE END I2C1_ER_IRQn 1 */ -} - 80014f6: bf00 nop - 80014f8: bd80 pop {r7, pc} - 80014fa: bf00 nop - 80014fc: 2000008c .word 0x2000008c - -08001500 : - -/** - * @brief This function handles EXTI line[15:10] interrupts. - */ -void EXTI15_10_IRQHandler(void) -{ - 8001500: b580 push {r7, lr} - 8001502: af00 add r7, sp, #0 - /* USER CODE BEGIN EXTI15_10_IRQn 0 */ - - /* USER CODE END EXTI15_10_IRQn 0 */ - HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13); - 8001504: f44f 5000 mov.w r0, #8192 ; 0x2000 - 8001508: f001 f8d0 bl 80026ac - /* USER CODE BEGIN EXTI15_10_IRQn 1 */ - - /* USER CODE END EXTI15_10_IRQn 1 */ -} - 800150c: bf00 nop - 800150e: bd80 pop {r7, pc} - -08001510 <_read>: - _kill(status, -1); - while (1) {} /* Make sure we hang here */ -} - -__attribute__((weak)) int _read(int file, char *ptr, int len) -{ - 8001510: b580 push {r7, lr} - 8001512: b086 sub sp, #24 - 8001514: af00 add r7, sp, #0 - 8001516: 60f8 str r0, [r7, #12] - 8001518: 60b9 str r1, [r7, #8] - 800151a: 607a str r2, [r7, #4] - (void)file; - int DataIdx; - - for (DataIdx = 0; DataIdx < len; DataIdx++) - 800151c: 2300 movs r3, #0 - 800151e: 617b str r3, [r7, #20] - 8001520: e00a b.n 8001538 <_read+0x28> - { - *ptr++ = __io_getchar(); - 8001522: f3af 8000 nop.w - 8001526: 4601 mov r1, r0 - 8001528: 68bb ldr r3, [r7, #8] - 800152a: 1c5a adds r2, r3, #1 - 800152c: 60ba str r2, [r7, #8] - 800152e: b2ca uxtb r2, r1 - 8001530: 701a strb r2, [r3, #0] - for (DataIdx = 0; DataIdx < len; DataIdx++) - 8001532: 697b ldr r3, [r7, #20] - 8001534: 3301 adds r3, #1 - 8001536: 617b str r3, [r7, #20] - 8001538: 697a ldr r2, [r7, #20] - 800153a: 687b ldr r3, [r7, #4] - 800153c: 429a cmp r2, r3 - 800153e: dbf0 blt.n 8001522 <_read+0x12> - } - - return len; - 8001540: 687b ldr r3, [r7, #4] -} - 8001542: 4618 mov r0, r3 - 8001544: 3718 adds r7, #24 - 8001546: 46bd mov sp, r7 - 8001548: bd80 pop {r7, pc} - -0800154a <_write>: - -__attribute__((weak)) int _write(int file, char *ptr, int len) -{ - 800154a: b580 push {r7, lr} - 800154c: b086 sub sp, #24 - 800154e: af00 add r7, sp, #0 - 8001550: 60f8 str r0, [r7, #12] - 8001552: 60b9 str r1, [r7, #8] - 8001554: 607a str r2, [r7, #4] - (void)file; - int DataIdx; - - for (DataIdx = 0; DataIdx < len; DataIdx++) - 8001556: 2300 movs r3, #0 - 8001558: 617b str r3, [r7, #20] - 800155a: e009 b.n 8001570 <_write+0x26> - { - __io_putchar(*ptr++); - 800155c: 68bb ldr r3, [r7, #8] - 800155e: 1c5a adds r2, r3, #1 - 8001560: 60ba str r2, [r7, #8] - 8001562: 781b ldrb r3, [r3, #0] - 8001564: 4618 mov r0, r3 - 8001566: f3af 8000 nop.w - for (DataIdx = 0; DataIdx < len; DataIdx++) - 800156a: 697b ldr r3, [r7, #20] - 800156c: 3301 adds r3, #1 - 800156e: 617b str r3, [r7, #20] - 8001570: 697a ldr r2, [r7, #20] - 8001572: 687b ldr r3, [r7, #4] - 8001574: 429a cmp r2, r3 - 8001576: dbf1 blt.n 800155c <_write+0x12> - } - return len; - 8001578: 687b ldr r3, [r7, #4] -} - 800157a: 4618 mov r0, r3 - 800157c: 3718 adds r7, #24 - 800157e: 46bd mov sp, r7 - 8001580: bd80 pop {r7, pc} - -08001582 <_close>: - -int _close(int file) -{ - 8001582: b480 push {r7} - 8001584: b083 sub sp, #12 - 8001586: af00 add r7, sp, #0 - 8001588: 6078 str r0, [r7, #4] - (void)file; - return -1; - 800158a: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff -} - 800158e: 4618 mov r0, r3 - 8001590: 370c adds r7, #12 - 8001592: 46bd mov sp, r7 - 8001594: f85d 7b04 ldr.w r7, [sp], #4 - 8001598: 4770 bx lr - -0800159a <_fstat>: - - -int _fstat(int file, struct stat *st) -{ - 800159a: b480 push {r7} - 800159c: b083 sub sp, #12 - 800159e: af00 add r7, sp, #0 - 80015a0: 6078 str r0, [r7, #4] - 80015a2: 6039 str r1, [r7, #0] - (void)file; - st->st_mode = S_IFCHR; - 80015a4: 683b ldr r3, [r7, #0] - 80015a6: f44f 5200 mov.w r2, #8192 ; 0x2000 - 80015aa: 605a str r2, [r3, #4] - return 0; - 80015ac: 2300 movs r3, #0 -} - 80015ae: 4618 mov r0, r3 - 80015b0: 370c adds r7, #12 - 80015b2: 46bd mov sp, r7 - 80015b4: f85d 7b04 ldr.w r7, [sp], #4 - 80015b8: 4770 bx lr - -080015ba <_isatty>: - -int _isatty(int file) -{ - 80015ba: b480 push {r7} - 80015bc: b083 sub sp, #12 - 80015be: af00 add r7, sp, #0 - 80015c0: 6078 str r0, [r7, #4] - (void)file; - return 1; - 80015c2: 2301 movs r3, #1 -} - 80015c4: 4618 mov r0, r3 - 80015c6: 370c adds r7, #12 - 80015c8: 46bd mov sp, r7 - 80015ca: f85d 7b04 ldr.w r7, [sp], #4 - 80015ce: 4770 bx lr - -080015d0 <_lseek>: - -int _lseek(int file, int ptr, int dir) -{ - 80015d0: b480 push {r7} - 80015d2: b085 sub sp, #20 - 80015d4: af00 add r7, sp, #0 - 80015d6: 60f8 str r0, [r7, #12] - 80015d8: 60b9 str r1, [r7, #8] - 80015da: 607a str r2, [r7, #4] - (void)file; - (void)ptr; - (void)dir; - return 0; - 80015dc: 2300 movs r3, #0 -} - 80015de: 4618 mov r0, r3 - 80015e0: 3714 adds r7, #20 - 80015e2: 46bd mov sp, r7 - 80015e4: f85d 7b04 ldr.w r7, [sp], #4 - 80015e8: 4770 bx lr - ... - -080015ec <_sbrk>: - * - * @param incr Memory size - * @return Pointer to allocated memory - */ -void *_sbrk(ptrdiff_t incr) -{ - 80015ec: b580 push {r7, lr} - 80015ee: b086 sub sp, #24 - 80015f0: af00 add r7, sp, #0 - 80015f2: 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; - 80015f4: 4a14 ldr r2, [pc, #80] ; (8001648 <_sbrk+0x5c>) - 80015f6: 4b15 ldr r3, [pc, #84] ; (800164c <_sbrk+0x60>) - 80015f8: 1ad3 subs r3, r2, r3 - 80015fa: 617b str r3, [r7, #20] - const uint8_t *max_heap = (uint8_t *)stack_limit; - 80015fc: 697b ldr r3, [r7, #20] - 80015fe: 613b str r3, [r7, #16] - uint8_t *prev_heap_end; - - /* Initialize heap end at first call */ - if (NULL == __sbrk_heap_end) - 8001600: 4b13 ldr r3, [pc, #76] ; (8001650 <_sbrk+0x64>) - 8001602: 681b ldr r3, [r3, #0] - 8001604: 2b00 cmp r3, #0 - 8001606: d102 bne.n 800160e <_sbrk+0x22> - { - __sbrk_heap_end = &_end; - 8001608: 4b11 ldr r3, [pc, #68] ; (8001650 <_sbrk+0x64>) - 800160a: 4a12 ldr r2, [pc, #72] ; (8001654 <_sbrk+0x68>) - 800160c: 601a str r2, [r3, #0] - } - - /* Protect heap from growing into the reserved MSP stack */ - if (__sbrk_heap_end + incr > max_heap) - 800160e: 4b10 ldr r3, [pc, #64] ; (8001650 <_sbrk+0x64>) - 8001610: 681a ldr r2, [r3, #0] - 8001612: 687b ldr r3, [r7, #4] - 8001614: 4413 add r3, r2 - 8001616: 693a ldr r2, [r7, #16] - 8001618: 429a cmp r2, r3 - 800161a: d207 bcs.n 800162c <_sbrk+0x40> - { - errno = ENOMEM; - 800161c: f004 fdfc bl 8006218 <__errno> - 8001620: 4603 mov r3, r0 - 8001622: 220c movs r2, #12 - 8001624: 601a str r2, [r3, #0] - return (void *)-1; - 8001626: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800162a: e009 b.n 8001640 <_sbrk+0x54> - } - - prev_heap_end = __sbrk_heap_end; - 800162c: 4b08 ldr r3, [pc, #32] ; (8001650 <_sbrk+0x64>) - 800162e: 681b ldr r3, [r3, #0] - 8001630: 60fb str r3, [r7, #12] - __sbrk_heap_end += incr; - 8001632: 4b07 ldr r3, [pc, #28] ; (8001650 <_sbrk+0x64>) - 8001634: 681a ldr r2, [r3, #0] - 8001636: 687b ldr r3, [r7, #4] - 8001638: 4413 add r3, r2 - 800163a: 4a05 ldr r2, [pc, #20] ; (8001650 <_sbrk+0x64>) - 800163c: 6013 str r3, [r2, #0] - - return (void *)prev_heap_end; - 800163e: 68fb ldr r3, [r7, #12] -} - 8001640: 4618 mov r0, r3 - 8001642: 3718 adds r7, #24 - 8001644: 46bd mov sp, r7 - 8001646: bd80 pop {r7, pc} - 8001648: 20018000 .word 0x20018000 - 800164c: 00000400 .word 0x00000400 - 8001650: 200001f8 .word 0x200001f8 - 8001654: 20000350 .word 0x20000350 - -08001658 : - * @brief Setup the microcontroller system. - * @retval None - */ - -void SystemInit(void) -{ - 8001658: b480 push {r7} - 800165a: af00 add r7, sp, #0 - SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; -#endif - - /* FPU settings ------------------------------------------------------------*/ -#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) - SCB->CPACR |= ((3UL << 20U)|(3UL << 22U)); /* set CP10 and CP11 Full Access */ - 800165c: 4b06 ldr r3, [pc, #24] ; (8001678 ) - 800165e: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8001662: 4a05 ldr r2, [pc, #20] ; (8001678 ) - 8001664: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 - 8001668: f8c2 3088 str.w r3, [r2, #136] ; 0x88 -#endif -} - 800166c: bf00 nop - 800166e: 46bd mov sp, r7 - 8001670: f85d 7b04 ldr.w r7, [sp], #4 - 8001674: 4770 bx lr - 8001676: bf00 nop - 8001678: e000ed00 .word 0xe000ed00 - -0800167c : -parameter: - Addr: Register address -Info: -******************************************************************************/ -static UBYTE TSL2591_Read_Byte(UBYTE Addr) -{ - 800167c: b580 push {r7, lr} - 800167e: b082 sub sp, #8 - 8001680: af00 add r7, sp, #0 - 8001682: 4603 mov r3, r0 - 8001684: 71fb strb r3, [r7, #7] - Addr = Addr | COMMAND_BIT; - 8001686: 79fb ldrb r3, [r7, #7] - 8001688: f063 035f orn r3, r3, #95 ; 0x5f - 800168c: 71fb strb r3, [r7, #7] - return I2C_Read_Byte(Addr); - 800168e: 79fb ldrb r3, [r7, #7] - 8001690: 4618 mov r0, r3 - 8001692: f7ff fbaf bl 8000df4 - 8001696: 4603 mov r3, r0 - 8001698: b2db uxtb r3, r3 -} - 800169a: 4618 mov r0, r3 - 800169c: 3708 adds r7, #8 - 800169e: 46bd mov sp, r7 - 80016a0: bd80 pop {r7, pc} - -080016a2 : -parameter: - Addr: Register address -Info: -******************************************************************************/ -static UWORD TSL2591_Read_Word(UBYTE Addr) -{ - 80016a2: b580 push {r7, lr} - 80016a4: b082 sub sp, #8 - 80016a6: af00 add r7, sp, #0 - 80016a8: 4603 mov r3, r0 - 80016aa: 71fb strb r3, [r7, #7] - Addr = Addr | COMMAND_BIT; - 80016ac: 79fb ldrb r3, [r7, #7] - 80016ae: f063 035f orn r3, r3, #95 ; 0x5f - 80016b2: 71fb strb r3, [r7, #7] - return I2C_Read_Word(Addr); - 80016b4: 79fb ldrb r3, [r7, #7] - 80016b6: 4618 mov r0, r3 - 80016b8: f7ff fbc0 bl 8000e3c - 80016bc: 4603 mov r3, r0 - 80016be: b29b uxth r3, r3 -} - 80016c0: 4618 mov r0, r3 - 80016c2: 3708 adds r7, #8 - 80016c4: 46bd mov sp, r7 - 80016c6: bd80 pop {r7, pc} - -080016c8 : - Addr: Register address - Value: Write to the value of the register -Info: -******************************************************************************/ -static void TSL2591_Write_Byte(UBYTE Addr, UBYTE Value) -{ - 80016c8: b580 push {r7, lr} - 80016ca: b082 sub sp, #8 - 80016cc: af00 add r7, sp, #0 - 80016ce: 4603 mov r3, r0 - 80016d0: 460a mov r2, r1 - 80016d2: 71fb strb r3, [r7, #7] - 80016d4: 4613 mov r3, r2 - 80016d6: 71bb strb r3, [r7, #6] - Addr = Addr | COMMAND_BIT; - 80016d8: 79fb ldrb r3, [r7, #7] - 80016da: f063 035f orn r3, r3, #95 ; 0x5f - 80016de: 71fb strb r3, [r7, #7] - I2C_Write_Byte(Addr, Value); - 80016e0: 79ba ldrb r2, [r7, #6] - 80016e2: 79fb ldrb r3, [r7, #7] - 80016e4: 4611 mov r1, r2 - 80016e6: 4618 mov r0, r3 - 80016e8: f7ff fb5e bl 8000da8 -} - 80016ec: bf00 nop - 80016ee: 3708 adds r7, #8 - 80016f0: 46bd mov sp, r7 - 80016f2: bd80 pop {r7, pc} - -080016f4 : -function: Enable TSL2591 -parameter: -Info: -******************************************************************************/ -void TSL2591_Enable(void) -{ - 80016f4: b580 push {r7, lr} - 80016f6: af00 add r7, sp, #0 - TSL2591_Write_Byte(ENABLE_REGISTER, \ - 80016f8: 2193 movs r1, #147 ; 0x93 - 80016fa: 2000 movs r0, #0 - 80016fc: f7ff ffe4 bl 80016c8 - ENABLE_AIEN | ENABLE_POWERON | ENABLE_AEN | ENABLE_NPIEN); -} - 8001700: bf00 nop - 8001702: bd80 pop {r7, pc} - -08001704 : -function: Disable TSL2591 -parameter: -Info: -******************************************************************************/ -void TSL2591_Disable(void) -{ - 8001704: b580 push {r7, lr} - 8001706: af00 add r7, sp, #0 - TSL2591_Write_Byte(ENABLE_REGISTER, \ - 8001708: 2100 movs r1, #0 - 800170a: 2000 movs r0, #0 - 800170c: f7ff ffdc bl 80016c8 - ENABLE_POWEROFF); -} - 8001710: bf00 nop - 8001712: bd80 pop {r7, pc} - -08001714 : -function: Read TSL2591 gain -parameter: -Info: -******************************************************************************/ -UBYTE TSL2591_Get_Gain(void) -{ - 8001714: b580 push {r7, lr} - 8001716: b082 sub sp, #8 - 8001718: af00 add r7, sp, #0 - MEDIUM_AGAIN = (0X10) (25x) - HIGH_AGAIN = (0X20) (428x) - MAX_AGAIN = (0x30) (9876x) - *************************************************/ - UBYTE data; - data = TSL2591_Read_Byte(CONTROL_REGISTER); - 800171a: 2001 movs r0, #1 - 800171c: f7ff ffae bl 800167c - 8001720: 4603 mov r3, r0 - 8001722: 71fb strb r3, [r7, #7] - TSL2591_Gain = data & 0x30; - 8001724: 79fb ldrb r3, [r7, #7] - 8001726: f003 0330 and.w r3, r3, #48 ; 0x30 - 800172a: b2da uxtb r2, r3 - 800172c: 4b04 ldr r3, [pc, #16] ; (8001740 ) - 800172e: 701a strb r2, [r3, #0] - return data & 0x30; - 8001730: 79fb ldrb r3, [r7, #7] - 8001732: f003 0330 and.w r3, r3, #48 ; 0x30 - 8001736: b2db uxtb r3, r3 -} - 8001738: 4618 mov r0, r3 - 800173a: 3708 adds r7, #8 - 800173c: 46bd mov sp, r7 - 800173e: bd80 pop {r7, pc} - 8001740: 200001fc .word 0x200001fc - -08001744 : -function: Set the TSL2591 gain -parameter: -Info: -******************************************************************************/ -void TSL2591_Set_Gain(UBYTE Gain) -{ - 8001744: b580 push {r7, lr} - 8001746: b084 sub sp, #16 - 8001748: af00 add r7, sp, #0 - 800174a: 4603 mov r3, r0 - 800174c: 71fb strb r3, [r7, #7] - UBYTE control=0; - 800174e: 2300 movs r3, #0 - 8001750: 73fb strb r3, [r7, #15] - if(Gain == LOW_AGAIN || Gain == MEDIUM_AGAIN \ - 8001752: 79fb ldrb r3, [r7, #7] - 8001754: 2b00 cmp r3, #0 - 8001756: d008 beq.n 800176a - 8001758: 79fb ldrb r3, [r7, #7] - 800175a: 2b10 cmp r3, #16 - 800175c: d005 beq.n 800176a - || Gain == HIGH_AGAIN || Gain == MAX_AGAIN){ - 800175e: 79fb ldrb r3, [r7, #7] - 8001760: 2b20 cmp r3, #32 - 8001762: d002 beq.n 800176a - 8001764: 79fb ldrb r3, [r7, #7] - 8001766: 2b30 cmp r3, #48 ; 0x30 - 8001768: d115 bne.n 8001796 - control = TSL2591_Read_Byte(CONTROL_REGISTER); - 800176a: 2001 movs r0, #1 - 800176c: f7ff ff86 bl 800167c - 8001770: 4603 mov r3, r0 - 8001772: 73fb strb r3, [r7, #15] - control &= 0xCf; //0b11001111 - 8001774: 7bfb ldrb r3, [r7, #15] - 8001776: f023 0330 bic.w r3, r3, #48 ; 0x30 - 800177a: 73fb strb r3, [r7, #15] - control |= Gain; - 800177c: 7bfa ldrb r2, [r7, #15] - 800177e: 79fb ldrb r3, [r7, #7] - 8001780: 4313 orrs r3, r2 - 8001782: 73fb strb r3, [r7, #15] - TSL2591_Write_Byte(CONTROL_REGISTER, control); - 8001784: 7bfb ldrb r3, [r7, #15] - 8001786: 4619 mov r1, r3 - 8001788: 2001 movs r0, #1 - 800178a: f7ff ff9d bl 80016c8 - TSL2591_Gain = Gain; - 800178e: 4a06 ldr r2, [pc, #24] ; (80017a8 ) - 8001790: 79fb ldrb r3, [r7, #7] - 8001792: 7013 strb r3, [r2, #0] - 8001794: e003 b.n 800179e - }else{ - printf("Gain Parameter Error\r\n"); - 8001796: 4805 ldr r0, [pc, #20] ; (80017ac ) - 8001798: f004 fd2e bl 80061f8 - } -} - 800179c: bf00 nop - 800179e: bf00 nop - 80017a0: 3710 adds r7, #16 - 80017a2: 46bd mov sp, r7 - 80017a4: bd80 pop {r7, pc} - 80017a6: bf00 nop - 80017a8: 200001fc .word 0x200001fc - 80017ac: 08006efc .word 0x08006efc - -080017b0 : -function: Set the TSL2591 Integral Time -parameter: -Info: -******************************************************************************/ -void TSL2591_Set_IntegralTime(UBYTE Time) -{ - 80017b0: b580 push {r7, lr} - 80017b2: b084 sub sp, #16 - 80017b4: af00 add r7, sp, #0 - 80017b6: 4603 mov r3, r0 - 80017b8: 71fb strb r3, [r7, #7] - UBYTE control=0; - 80017ba: 2300 movs r3, #0 - 80017bc: 73fb strb r3, [r7, #15] - if(Time < 0x06){ - 80017be: 79fb ldrb r3, [r7, #7] - 80017c0: 2b05 cmp r3, #5 - 80017c2: d815 bhi.n 80017f0 - control = TSL2591_Read_Byte(CONTROL_REGISTER); - 80017c4: 2001 movs r0, #1 - 80017c6: f7ff ff59 bl 800167c - 80017ca: 4603 mov r3, r0 - 80017cc: 73fb strb r3, [r7, #15] - control &= 0xf8; //0b11111000 - 80017ce: 7bfb ldrb r3, [r7, #15] - 80017d0: f023 0307 bic.w r3, r3, #7 - 80017d4: 73fb strb r3, [r7, #15] - control |= Time; - 80017d6: 7bfa ldrb r2, [r7, #15] - 80017d8: 79fb ldrb r3, [r7, #7] - 80017da: 4313 orrs r3, r2 - 80017dc: 73fb strb r3, [r7, #15] - TSL2591_Write_Byte(CONTROL_REGISTER, control); - 80017de: 7bfb ldrb r3, [r7, #15] - 80017e0: 4619 mov r1, r3 - 80017e2: 2001 movs r0, #1 - 80017e4: f7ff ff70 bl 80016c8 - TSL2591_Time = Time; - 80017e8: 4a05 ldr r2, [pc, #20] ; (8001800 ) - 80017ea: 79fb ldrb r3, [r7, #7] - 80017ec: 7013 strb r3, [r2, #0] - }else{ - printf("Integral Time Parameter Error\r\n"); - } -} - 80017ee: e002 b.n 80017f6 - printf("Integral Time Parameter Error\r\n"); - 80017f0: 4804 ldr r0, [pc, #16] ; (8001804 ) - 80017f2: f004 fd01 bl 80061f8 -} - 80017f6: bf00 nop - 80017f8: 3710 adds r7, #16 - 80017fa: 46bd mov sp, r7 - 80017fc: bd80 pop {r7, pc} - 80017fe: bf00 nop - 8001800: 200001fd .word 0x200001fd - 8001804: 08006f14 .word 0x08006f14 - -08001808 : -function: Read channel data -parameter: -Info: -******************************************************************************/ -UWORD TSL2591_Read_Channel0(void) -{ - 8001808: b580 push {r7, lr} - 800180a: af00 add r7, sp, #0 - return TSL2591_Read_Word(CHAN0_LOW); - 800180c: 2014 movs r0, #20 - 800180e: f7ff ff48 bl 80016a2 - 8001812: 4603 mov r3, r0 -} - 8001814: 4618 mov r0, r3 - 8001816: bd80 pop {r7, pc} - -08001818 : - -UWORD TSL2591_Read_Channel1(void) -{ - 8001818: b580 push {r7, lr} - 800181a: af00 add r7, sp, #0 - return TSL2591_Read_Word(CHAN1_LOW); - 800181c: 2016 movs r0, #22 - 800181e: f7ff ff40 bl 80016a2 - 8001822: 4603 mov r3, r0 -} - 8001824: 4618 mov r0, r3 - 8001826: bd80 pop {r7, pc} - -08001828 : -function: TSL2591 Initialization -parameter: -Info: -******************************************************************************/ -UBYTE TSL2591_Init(void) -{ - 8001828: b580 push {r7, lr} - 800182a: af00 add r7, sp, #0 - DEV_I2C_Init(TSL2591_ADDRESS<<1);//8-bit address - 800182c: 2052 movs r0, #82 ; 0x52 - 800182e: f7ff faa5 bl 8000d7c - printf("ID = 0x%X \r\n",TSL2591_Read_Byte(ID_REGISTER)); - 8001832: 2012 movs r0, #18 - 8001834: f7ff ff22 bl 800167c - 8001838: 4603 mov r3, r0 - 800183a: 4619 mov r1, r3 - 800183c: 4809 ldr r0, [pc, #36] ; (8001864 ) - 800183e: f004 fc75 bl 800612c - TSL2591_Enable(); - 8001842: f7ff ff57 bl 80016f4 - TSL2591_Set_Gain(MEDIUM_AGAIN);//25X GAIN - 8001846: 2010 movs r0, #16 - 8001848: f7ff ff7c bl 8001744 - TSL2591_Set_IntegralTime(ATIME_200MS);//200ms Integration time - 800184c: 2001 movs r0, #1 - 800184e: f7ff ffaf bl 80017b0 - TSL2591_Write_Byte(PERSIST_REGISTER, 0x01);//filter - 8001852: 2101 movs r1, #1 - 8001854: 200c movs r0, #12 - 8001856: f7ff ff37 bl 80016c8 - TSL2591_Disable(); - 800185a: f7ff ff53 bl 8001704 - return 0; - 800185e: 2300 movs r3, #0 -} - 8001860: 4618 mov r0, r3 - 8001862: bd80 pop {r7, pc} - 8001864: 08006f34 .word 0x08006f34 - -08001868 : -function: Read TSL2591 data to convert to Lux value -parameter: -Info: -******************************************************************************/ -UWORD TSL2591_Read_Lux(void) -{ - 8001868: b580 push {r7, lr} - 800186a: b08a sub sp, #40 ; 0x28 - 800186c: af00 add r7, sp, #0 - UWORD atime, max_counts,channel_0,channel_1; - TSL2591_Enable(); - 800186e: f7ff ff41 bl 80016f4 - for(UBYTE i=0; i - DEV_Delay_ms(100); - 800187a: 2064 movs r0, #100 ; 0x64 - 800187c: f7ff fa6c bl 8000d58 - for(UBYTE i=0; i) - 800188c: 781b ldrb r3, [r3, #0] - 800188e: 1c5a adds r2, r3, #1 - 8001890: f897 3021 ldrb.w r3, [r7, #33] ; 0x21 - 8001894: 429a cmp r2, r3 - 8001896: daf0 bge.n 800187a - } - if(DEV_Digital_Read(INT_PIN) == 1) - 8001898: f44f 7100 mov.w r1, #512 ; 0x200 - 800189c: f04f 4090 mov.w r0, #1207959552 ; 0x48000000 - 80018a0: f000 fed4 bl 800264c - 80018a4: 4603 mov r3, r0 - 80018a6: 2b01 cmp r3, #1 - 80018a8: d103 bne.n 80018b2 - printf("INT 0\r\n"); - 80018aa: 4864 ldr r0, [pc, #400] ; (8001a3c ) - 80018ac: f004 fca4 bl 80061f8 - 80018b0: e002 b.n 80018b8 - else - printf("INT 1\r\n"); - 80018b2: 4863 ldr r0, [pc, #396] ; (8001a40 ) - 80018b4: f004 fca0 bl 80061f8 - channel_0 = TSL2591_Read_Channel0(); - 80018b8: f7ff ffa6 bl 8001808 - 80018bc: 4603 mov r3, r0 - 80018be: 84bb strh r3, [r7, #36] ; 0x24 - channel_1 = TSL2591_Read_Channel1(); - 80018c0: f7ff ffaa bl 8001818 - 80018c4: 4603 mov r3, r0 - 80018c6: 847b strh r3, [r7, #34] ; 0x22 - TSL2591_Disable(); - 80018c8: f7ff ff1c bl 8001704 - TSL2591_Enable(); - 80018cc: f7ff ff12 bl 80016f4 - TSL2591_Write_Byte(0xE7, 0x13); - 80018d0: 2113 movs r1, #19 - 80018d2: 20e7 movs r0, #231 ; 0xe7 - 80018d4: f7ff fef8 bl 80016c8 - TSL2591_Disable(); - 80018d8: f7ff ff14 bl 8001704 - - atime = 100 * TSL2591_Time + 100; - 80018dc: 4b56 ldr r3, [pc, #344] ; (8001a38 ) - 80018de: 781b ldrb r3, [r3, #0] - 80018e0: 3301 adds r3, #1 - 80018e2: b29b uxth r3, r3 - 80018e4: 461a mov r2, r3 - 80018e6: 0092 lsls r2, r2, #2 - 80018e8: 4413 add r3, r2 - 80018ea: 461a mov r2, r3 - 80018ec: 0091 lsls r1, r2, #2 - 80018ee: 461a mov r2, r3 - 80018f0: 460b mov r3, r1 - 80018f2: 4413 add r3, r2 - 80018f4: 009b lsls r3, r3, #2 - 80018f6: 82fb strh r3, [r7, #22] - if(TSL2591_Time == ATIME_100MS){ - 80018f8: 4b4f ldr r3, [pc, #316] ; (8001a38 ) - 80018fa: 781b ldrb r3, [r3, #0] - 80018fc: 2b00 cmp r3, #0 - 80018fe: d103 bne.n 8001908 - max_counts = MAX_COUNT_100MS; - 8001900: f648 73ff movw r3, #36863 ; 0x8fff - 8001904: 84fb strh r3, [r7, #38] ; 0x26 - 8001906: e002 b.n 800190e - }else{ - max_counts = MAX_COUNT; - 8001908: f64f 73ff movw r3, #65535 ; 0xffff - 800190c: 84fb strh r3, [r7, #38] ; 0x26 - } - UBYTE gain_t; - if (channel_0 >= max_counts || channel_1 >= max_counts){ - 800190e: 8cba ldrh r2, [r7, #36] ; 0x24 - 8001910: 8cfb ldrh r3, [r7, #38] ; 0x26 - 8001912: 429a cmp r2, r3 - 8001914: d203 bcs.n 800191e - 8001916: 8c7a ldrh r2, [r7, #34] ; 0x22 - 8001918: 8cfb ldrh r3, [r7, #38] ; 0x26 - 800191a: 429a cmp r2, r3 - 800191c: d32d bcc.n 800197a - gain_t = TSL2591_Get_Gain(); - 800191e: f7ff fef9 bl 8001714 - 8001922: 4603 mov r3, r0 - 8001924: 757b strb r3, [r7, #21] - if(gain_t != LOW_AGAIN){ - 8001926: 7d7b ldrb r3, [r7, #21] - 8001928: 2b00 cmp r3, #0 - 800192a: d021 beq.n 8001970 - gain_t = ((gain_t>>4)-1)<<4; - 800192c: 7d7b ldrb r3, [r7, #21] - 800192e: 091b lsrs r3, r3, #4 - 8001930: b2db uxtb r3, r3 - 8001932: 3b01 subs r3, #1 - 8001934: b2db uxtb r3, r3 - 8001936: 011b lsls r3, r3, #4 - 8001938: 757b strb r3, [r7, #21] - TSL2591_Set_Gain(gain_t); - 800193a: 7d7b ldrb r3, [r7, #21] - 800193c: 4618 mov r0, r3 - 800193e: f7ff ff01 bl 8001744 - channel_0 = 0; - 8001942: 2300 movs r3, #0 - 8001944: 84bb strh r3, [r7, #36] ; 0x24 - channel_1 = 0; - 8001946: 2300 movs r3, #0 - 8001948: 847b strh r3, [r7, #34] ; 0x22 - while(channel_0 <= 0 || channel_1 <=0){ - 800194a: e007 b.n 800195c - channel_0 = TSL2591_Read_Channel0(); - 800194c: f7ff ff5c bl 8001808 - 8001950: 4603 mov r3, r0 - 8001952: 84bb strh r3, [r7, #36] ; 0x24 - channel_1 = TSL2591_Read_Channel1(); - 8001954: f7ff ff60 bl 8001818 - 8001958: 4603 mov r3, r0 - 800195a: 847b strh r3, [r7, #34] ; 0x22 - while(channel_0 <= 0 || channel_1 <=0){ - 800195c: 8cbb ldrh r3, [r7, #36] ; 0x24 - 800195e: 2b00 cmp r3, #0 - 8001960: d0f4 beq.n 800194c - 8001962: 8c7b ldrh r3, [r7, #34] ; 0x22 - 8001964: 2b00 cmp r3, #0 - 8001966: d0f1 beq.n 800194c - } - DEV_Delay_ms(100); - 8001968: 2064 movs r0, #100 ; 0x64 - 800196a: f7ff f9f5 bl 8000d58 - 800196e: e004 b.n 800197a - }else{ - printf("Numerical overflow!/r/n"); - 8001970: 4834 ldr r0, [pc, #208] ; (8001a44 ) - 8001972: f004 fbdb bl 800612c - return 0; - 8001976: 2300 movs r3, #0 - 8001978: e052 b.n 8001a20 - } - } - double again; - again = 1.0; - 800197a: f04f 0200 mov.w r2, #0 - 800197e: 4b32 ldr r3, [pc, #200] ; (8001a48 ) - 8001980: e9c7 2306 strd r2, r3, [r7, #24] - if(TSL2591_Gain == MEDIUM_AGAIN){ - 8001984: 4b31 ldr r3, [pc, #196] ; (8001a4c ) - 8001986: 781b ldrb r3, [r3, #0] - 8001988: 2b10 cmp r3, #16 - 800198a: d105 bne.n 8001998 - again = 25.0; - 800198c: f04f 0200 mov.w r2, #0 - 8001990: 4b2f ldr r3, [pc, #188] ; (8001a50 ) - 8001992: e9c7 2306 strd r2, r3, [r7, #24] - 8001996: e012 b.n 80019be - }else if(TSL2591_Gain == HIGH_AGAIN){ - 8001998: 4b2c ldr r3, [pc, #176] ; (8001a4c ) - 800199a: 781b ldrb r3, [r3, #0] - 800199c: 2b20 cmp r3, #32 - 800199e: d105 bne.n 80019ac - again = 428.0; - 80019a0: a321 add r3, pc, #132 ; (adr r3, 8001a28 ) - 80019a2: e9d3 2300 ldrd r2, r3, [r3] - 80019a6: e9c7 2306 strd r2, r3, [r7, #24] - 80019aa: e008 b.n 80019be - }else if(TSL2591_Gain == MAX_AGAIN){ - 80019ac: 4b27 ldr r3, [pc, #156] ; (8001a4c ) - 80019ae: 781b ldrb r3, [r3, #0] - 80019b0: 2b30 cmp r3, #48 ; 0x30 - 80019b2: d104 bne.n 80019be - again = 9876.0; - 80019b4: a31e add r3, pc, #120 ; (adr r3, 8001a30 ) - 80019b6: e9d3 2300 ldrd r2, r3, [r3] - 80019ba: e9c7 2306 strd r2, r3, [r7, #24] - } - double Cpl; - UWORD lux1,lux2=0; - 80019be: 2300 movs r3, #0 - 80019c0: 827b strh r3, [r7, #18] - - Cpl = (atime * again) / LUX_DF; - 80019c2: 8afb ldrh r3, [r7, #22] - 80019c4: 4618 mov r0, r3 - 80019c6: f7fe fda5 bl 8000514 <__aeabi_i2d> - 80019ca: e9d7 2306 ldrd r2, r3, [r7, #24] - 80019ce: f7fe fe0b bl 80005e8 <__aeabi_dmul> - 80019d2: 4602 mov r2, r0 - 80019d4: 460b mov r3, r1 - 80019d6: 4610 mov r0, r2 - 80019d8: 4619 mov r1, r3 - 80019da: f04f 0200 mov.w r2, #0 - 80019de: 4b1d ldr r3, [pc, #116] ; (8001a54 ) - 80019e0: f7fe ff2c bl 800083c <__aeabi_ddiv> - 80019e4: 4602 mov r2, r0 - 80019e6: 460b mov r3, r1 - 80019e8: e9c7 2302 strd r2, r3, [r7, #8] - lux1 = (int)((channel_0 - (2 * channel_1)) / Cpl); - 80019ec: 8cba ldrh r2, [r7, #36] ; 0x24 - 80019ee: 8c7b ldrh r3, [r7, #34] ; 0x22 - 80019f0: 005b lsls r3, r3, #1 - 80019f2: 1ad3 subs r3, r2, r3 - 80019f4: 4618 mov r0, r3 - 80019f6: f7fe fd8d bl 8000514 <__aeabi_i2d> - 80019fa: e9d7 2302 ldrd r2, r3, [r7, #8] - 80019fe: f7fe ff1d bl 800083c <__aeabi_ddiv> - 8001a02: 4602 mov r2, r0 - 8001a04: 460b mov r3, r1 - 8001a06: 4610 mov r0, r2 - 8001a08: 4619 mov r1, r3 - 8001a0a: f7fe ffff bl 8000a0c <__aeabi_d2iz> - 8001a0e: 4603 mov r3, r0 - 8001a10: 80fb strh r3, [r7, #6] - // lux2 = ((0.6 * channel_0) - (channel_1)) / Cpl; - // This is a two segment lux equation where the first - // segment (Lux1) covers fluorescent and incandescent light - // and the second segment (Lux2) covers dimmed incandescent light - - if(lux1>lux2){ - 8001a12: 88fa ldrh r2, [r7, #6] - 8001a14: 8a7b ldrh r3, [r7, #18] - 8001a16: 429a cmp r2, r3 - 8001a18: d901 bls.n 8001a1e - return lux1; - 8001a1a: 88fb ldrh r3, [r7, #6] - 8001a1c: e000 b.n 8001a20 - }else{ - return lux2; - 8001a1e: 8a7b ldrh r3, [r7, #18] - } -} - 8001a20: 4618 mov r0, r3 - 8001a22: 3728 adds r7, #40 ; 0x28 - 8001a24: 46bd mov sp, r7 - 8001a26: bd80 pop {r7, pc} - 8001a28: 00000000 .word 0x00000000 - 8001a2c: 407ac000 .word 0x407ac000 - 8001a30: 00000000 .word 0x00000000 - 8001a34: 40c34a00 .word 0x40c34a00 - 8001a38: 200001fd .word 0x200001fd - 8001a3c: 08006f44 .word 0x08006f44 - 8001a40: 08006f4c .word 0x08006f4c - 8001a44: 08006f54 .word 0x08006f54 - 8001a48: 3ff00000 .word 0x3ff00000 - 8001a4c: 200001fc .word 0x200001fc - 8001a50: 40390000 .word 0x40390000 - 8001a54: 4087d000 .word 0x4087d000 - -08001a58 : - SET_HIGH: Interrupt high threshold -Info: Based on Lux as a comparison - Need to use the function TSL2591_Read_Lux() to update the data -******************************************************************************/ -void TSL2591_SET_LuxInterrupt(UWORD SET_LOW, UWORD SET_HIGH) -{ - 8001a58: b580 push {r7, lr} - 8001a5a: b08a sub sp, #40 ; 0x28 - 8001a5c: af00 add r7, sp, #0 - 8001a5e: 4603 mov r3, r0 - 8001a60: 460a mov r2, r1 - 8001a62: 80fb strh r3, [r7, #6] - 8001a64: 4613 mov r3, r2 - 8001a66: 80bb strh r3, [r7, #4] - double Cpl; - double again; - UWORD atime, channel_1; - atime = 100 * TSL2591_Time + 100; - 8001a68: 4b59 ldr r3, [pc, #356] ; (8001bd0 ) - 8001a6a: 781b ldrb r3, [r3, #0] - 8001a6c: 3301 adds r3, #1 - 8001a6e: b29b uxth r3, r3 - 8001a70: 461a mov r2, r3 - 8001a72: 0092 lsls r2, r2, #2 - 8001a74: 4413 add r3, r2 - 8001a76: 461a mov r2, r3 - 8001a78: 0091 lsls r1, r2, #2 - 8001a7a: 461a mov r2, r3 - 8001a7c: 460b mov r3, r1 - 8001a7e: 4413 add r3, r2 - 8001a80: 009b lsls r3, r3, #2 - 8001a82: 83fb strh r3, [r7, #30] - again = 1.0; - 8001a84: f04f 0200 mov.w r2, #0 - 8001a88: 4b52 ldr r3, [pc, #328] ; (8001bd4 ) - 8001a8a: e9c7 2308 strd r2, r3, [r7, #32] - if(TSL2591_Gain == MEDIUM_AGAIN){ - 8001a8e: 4b52 ldr r3, [pc, #328] ; (8001bd8 ) - 8001a90: 781b ldrb r3, [r3, #0] - 8001a92: 2b10 cmp r3, #16 - 8001a94: d105 bne.n 8001aa2 - again = 25.0; - 8001a96: f04f 0200 mov.w r2, #0 - 8001a9a: 4b50 ldr r3, [pc, #320] ; (8001bdc ) - 8001a9c: e9c7 2308 strd r2, r3, [r7, #32] - 8001aa0: e012 b.n 8001ac8 - }else if(TSL2591_Gain == HIGH_AGAIN){ - 8001aa2: 4b4d ldr r3, [pc, #308] ; (8001bd8 ) - 8001aa4: 781b ldrb r3, [r3, #0] - 8001aa6: 2b20 cmp r3, #32 - 8001aa8: d105 bne.n 8001ab6 - again = 428.0; - 8001aaa: a345 add r3, pc, #276 ; (adr r3, 8001bc0 ) - 8001aac: e9d3 2300 ldrd r2, r3, [r3] - 8001ab0: e9c7 2308 strd r2, r3, [r7, #32] - 8001ab4: e008 b.n 8001ac8 - }else if(TSL2591_Gain == MAX_AGAIN){ - 8001ab6: 4b48 ldr r3, [pc, #288] ; (8001bd8 ) - 8001ab8: 781b ldrb r3, [r3, #0] - 8001aba: 2b30 cmp r3, #48 ; 0x30 - 8001abc: d104 bne.n 8001ac8 - again = 9876.0; - 8001abe: a342 add r3, pc, #264 ; (adr r3, 8001bc8 ) - 8001ac0: e9d3 2300 ldrd r2, r3, [r3] - 8001ac4: e9c7 2308 strd r2, r3, [r7, #32] - } - - Cpl = (atime * again) / LUX_DF; - 8001ac8: 8bfb ldrh r3, [r7, #30] - 8001aca: 4618 mov r0, r3 - 8001acc: f7fe fd22 bl 8000514 <__aeabi_i2d> - 8001ad0: e9d7 2308 ldrd r2, r3, [r7, #32] - 8001ad4: f7fe fd88 bl 80005e8 <__aeabi_dmul> - 8001ad8: 4602 mov r2, r0 - 8001ada: 460b mov r3, r1 - 8001adc: 4610 mov r0, r2 - 8001ade: 4619 mov r1, r3 - 8001ae0: f04f 0200 mov.w r2, #0 - 8001ae4: 4b3e ldr r3, [pc, #248] ; (8001be0 ) - 8001ae6: f7fe fea9 bl 800083c <__aeabi_ddiv> - 8001aea: 4602 mov r2, r0 - 8001aec: 460b mov r3, r1 - 8001aee: e9c7 2304 strd r2, r3, [r7, #16] - channel_1 = TSL2591_Read_Channel1(); - 8001af2: f7ff fe91 bl 8001818 - 8001af6: 4603 mov r3, r0 - 8001af8: 81fb strh r3, [r7, #14] - - SET_HIGH = (int)(Cpl * SET_HIGH)+ 2*channel_1-1; - 8001afa: 88bb ldrh r3, [r7, #4] - 8001afc: 4618 mov r0, r3 - 8001afe: f7fe fd09 bl 8000514 <__aeabi_i2d> - 8001b02: e9d7 2304 ldrd r2, r3, [r7, #16] - 8001b06: f7fe fd6f bl 80005e8 <__aeabi_dmul> - 8001b0a: 4602 mov r2, r0 - 8001b0c: 460b mov r3, r1 - 8001b0e: 4610 mov r0, r2 - 8001b10: 4619 mov r1, r3 - 8001b12: f7fe ff7b bl 8000a0c <__aeabi_d2iz> - 8001b16: 4603 mov r3, r0 - 8001b18: b29a uxth r2, r3 - 8001b1a: 89fb ldrh r3, [r7, #14] - 8001b1c: 005b lsls r3, r3, #1 - 8001b1e: b29b uxth r3, r3 - 8001b20: 4413 add r3, r2 - 8001b22: b29b uxth r3, r3 - 8001b24: 3b01 subs r3, #1 - 8001b26: 80bb strh r3, [r7, #4] - SET_LOW = (int)(Cpl * SET_LOW)+ 2*channel_1+1; - 8001b28: 88fb ldrh r3, [r7, #6] - 8001b2a: 4618 mov r0, r3 - 8001b2c: f7fe fcf2 bl 8000514 <__aeabi_i2d> - 8001b30: e9d7 2304 ldrd r2, r3, [r7, #16] - 8001b34: f7fe fd58 bl 80005e8 <__aeabi_dmul> - 8001b38: 4602 mov r2, r0 - 8001b3a: 460b mov r3, r1 - 8001b3c: 4610 mov r0, r2 - 8001b3e: 4619 mov r1, r3 - 8001b40: f7fe ff64 bl 8000a0c <__aeabi_d2iz> - 8001b44: 4603 mov r3, r0 - 8001b46: b29a uxth r2, r3 - 8001b48: 89fb ldrh r3, [r7, #14] - 8001b4a: 005b lsls r3, r3, #1 - 8001b4c: b29b uxth r3, r3 - 8001b4e: 4413 add r3, r2 - 8001b50: b29b uxth r3, r3 - 8001b52: 3301 adds r3, #1 - 8001b54: 80fb strh r3, [r7, #6] - - TSL2591_Enable(); - 8001b56: f7ff fdcd bl 80016f4 - TSL2591_Write_Byte(AILTL_REGISTER, SET_LOW & 0xFF); - 8001b5a: 88fb ldrh r3, [r7, #6] - 8001b5c: b2db uxtb r3, r3 - 8001b5e: 4619 mov r1, r3 - 8001b60: 2004 movs r0, #4 - 8001b62: f7ff fdb1 bl 80016c8 - TSL2591_Write_Byte(AILTH_REGISTER, SET_LOW >> 8); - 8001b66: 88fb ldrh r3, [r7, #6] - 8001b68: 0a1b lsrs r3, r3, #8 - 8001b6a: b29b uxth r3, r3 - 8001b6c: b2db uxtb r3, r3 - 8001b6e: 4619 mov r1, r3 - 8001b70: 2005 movs r0, #5 - 8001b72: f7ff fda9 bl 80016c8 - - TSL2591_Write_Byte(AIHTL_REGISTER, SET_HIGH & 0xFF); - 8001b76: 88bb ldrh r3, [r7, #4] - 8001b78: b2db uxtb r3, r3 - 8001b7a: 4619 mov r1, r3 - 8001b7c: 2006 movs r0, #6 - 8001b7e: f7ff fda3 bl 80016c8 - TSL2591_Write_Byte(AIHTH_REGISTER, SET_HIGH >> 8); - 8001b82: 88bb ldrh r3, [r7, #4] - 8001b84: 0a1b lsrs r3, r3, #8 - 8001b86: b29b uxth r3, r3 - 8001b88: b2db uxtb r3, r3 - 8001b8a: 4619 mov r1, r3 - 8001b8c: 2007 movs r0, #7 - 8001b8e: f7ff fd9b bl 80016c8 - - TSL2591_Write_Byte(NPAILTL_REGISTER, 0 ); - 8001b92: 2100 movs r1, #0 - 8001b94: 2008 movs r0, #8 - 8001b96: f7ff fd97 bl 80016c8 - TSL2591_Write_Byte(NPAILTH_REGISTER, 0 ); - 8001b9a: 2100 movs r1, #0 - 8001b9c: 2009 movs r0, #9 - 8001b9e: f7ff fd93 bl 80016c8 - - TSL2591_Write_Byte(NPAIHTL_REGISTER, 0xff ); - 8001ba2: 21ff movs r1, #255 ; 0xff - 8001ba4: 200a movs r0, #10 - 8001ba6: f7ff fd8f bl 80016c8 - TSL2591_Write_Byte(NPAIHTH_REGISTER, 0xff ); - 8001baa: 21ff movs r1, #255 ; 0xff - 8001bac: 200b movs r0, #11 - 8001bae: f7ff fd8b bl 80016c8 - TSL2591_Disable(); - 8001bb2: f7ff fda7 bl 8001704 -} - 8001bb6: bf00 nop - 8001bb8: 3728 adds r7, #40 ; 0x28 - 8001bba: 46bd mov sp, r7 - 8001bbc: bd80 pop {r7, pc} - 8001bbe: bf00 nop - 8001bc0: 00000000 .word 0x00000000 - 8001bc4: 407ac000 .word 0x407ac000 - 8001bc8: 00000000 .word 0x00000000 - 8001bcc: 40c34a00 .word 0x40c34a00 - 8001bd0: 200001fd .word 0x200001fd - 8001bd4: 3ff00000 .word 0x3ff00000 - 8001bd8: 200001fc .word 0x200001fc - 8001bdc: 40390000 .word 0x40390000 - 8001be0: 4087d000 .word 0x4087d000 - -08001be4 : - - .section .text.Reset_Handler - .weak Reset_Handler - .type Reset_Handler, %function -Reset_Handler: - ldr sp, =_estack /* Set stack pointer */ - 8001be4: f8df d034 ldr.w sp, [pc, #52] ; 8001c1c - -/* Call the clock system initialization function.*/ - bl SystemInit - 8001be8: f7ff fd36 bl 8001658 - -/* Copy the data segment initializers from flash to SRAM */ - ldr r0, =_sdata - 8001bec: 480c ldr r0, [pc, #48] ; (8001c20 ) - ldr r1, =_edata - 8001bee: 490d ldr r1, [pc, #52] ; (8001c24 ) - ldr r2, =_sidata - 8001bf0: 4a0d ldr r2, [pc, #52] ; (8001c28 ) - movs r3, #0 - 8001bf2: 2300 movs r3, #0 - b LoopCopyDataInit - 8001bf4: e002 b.n 8001bfc - -08001bf6 : - -CopyDataInit: - ldr r4, [r2, r3] - 8001bf6: 58d4 ldr r4, [r2, r3] - str r4, [r0, r3] - 8001bf8: 50c4 str r4, [r0, r3] - adds r3, r3, #4 - 8001bfa: 3304 adds r3, #4 - -08001bfc : - -LoopCopyDataInit: - adds r4, r0, r3 - 8001bfc: 18c4 adds r4, r0, r3 - cmp r4, r1 - 8001bfe: 428c cmp r4, r1 - bcc CopyDataInit - 8001c00: d3f9 bcc.n 8001bf6 - -/* Zero fill the bss segment. */ - ldr r2, =_sbss - 8001c02: 4a0a ldr r2, [pc, #40] ; (8001c2c ) - ldr r4, =_ebss - 8001c04: 4c0a ldr r4, [pc, #40] ; (8001c30 ) - movs r3, #0 - 8001c06: 2300 movs r3, #0 - b LoopFillZerobss - 8001c08: e001 b.n 8001c0e - -08001c0a : - -FillZerobss: - str r3, [r2] - 8001c0a: 6013 str r3, [r2, #0] - adds r2, r2, #4 - 8001c0c: 3204 adds r2, #4 - -08001c0e : - -LoopFillZerobss: - cmp r2, r4 - 8001c0e: 42a2 cmp r2, r4 - bcc FillZerobss - 8001c10: d3fb bcc.n 8001c0a - -/* Call static constructors */ - bl __libc_init_array - 8001c12: f004 fb07 bl 8006224 <__libc_init_array> -/* Call the application's entry point.*/ - bl main - 8001c16: f7ff f971 bl 8000efc
- -08001c1a : - -LoopForever: - b LoopForever - 8001c1a: e7fe b.n 8001c1a - ldr sp, =_estack /* Set stack pointer */ - 8001c1c: 20018000 .word 0x20018000 - ldr r0, =_sdata - 8001c20: 20000000 .word 0x20000000 - ldr r1, =_edata - 8001c24: 20000068 .word 0x20000068 - ldr r2, =_sidata - 8001c28: 08006ff8 .word 0x08006ff8 - ldr r2, =_sbss - 8001c2c: 20000068 .word 0x20000068 - ldr r4, =_ebss - 8001c30: 20000350 .word 0x20000350 - -08001c34 : - * @retval : None -*/ - .section .text.Default_Handler,"ax",%progbits -Default_Handler: -Infinite_Loop: - b Infinite_Loop - 8001c34: e7fe b.n 8001c34 - -08001c36 : - * each 1ms in the SysTick_Handler() interrupt handler. - * - * @retval HAL status - */ -HAL_StatusTypeDef HAL_Init(void) -{ - 8001c36: b580 push {r7, lr} - 8001c38: b082 sub sp, #8 - 8001c3a: af00 add r7, sp, #0 - HAL_StatusTypeDef status = HAL_OK; - 8001c3c: 2300 movs r3, #0 - 8001c3e: 71fb strb r3, [r7, #7] -#if (PREFETCH_ENABLE != 0) - __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); -#endif /* PREFETCH_ENABLE */ - - /* Set Interrupt Group Priority */ - HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); - 8001c40: 2003 movs r0, #3 - 8001c42: f000 f961 bl 8001f08 - - /* Use SysTick as time base source and configure 1ms tick (default clock after Reset is MSI) */ - if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) - 8001c46: 200f movs r0, #15 - 8001c48: f000 f80e bl 8001c68 - 8001c4c: 4603 mov r3, r0 - 8001c4e: 2b00 cmp r3, #0 - 8001c50: d002 beq.n 8001c58 - { - status = HAL_ERROR; - 8001c52: 2301 movs r3, #1 - 8001c54: 71fb strb r3, [r7, #7] - 8001c56: e001 b.n 8001c5c - } - else - { - /* Init the low level hardware */ - HAL_MspInit(); - 8001c58: f7ff fab6 bl 80011c8 - } - - /* Return function status */ - return status; - 8001c5c: 79fb ldrb r3, [r7, #7] -} - 8001c5e: 4618 mov r0, r3 - 8001c60: 3708 adds r7, #8 - 8001c62: 46bd mov sp, r7 - 8001c64: bd80 pop {r7, pc} - ... - -08001c68 : - * implementation in user file. - * @param TickPriority Tick interrupt priority. - * @retval HAL status - */ -__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) -{ - 8001c68: b580 push {r7, lr} - 8001c6a: b084 sub sp, #16 - 8001c6c: af00 add r7, sp, #0 - 8001c6e: 6078 str r0, [r7, #4] - HAL_StatusTypeDef status = HAL_OK; - 8001c70: 2300 movs r3, #0 - 8001c72: 73fb strb r3, [r7, #15] - - /* Check uwTickFreq for MisraC 2012 (even if uwTickFreq is a enum type that doesn't take the value zero)*/ - if ((uint32_t)uwTickFreq != 0U) - 8001c74: 4b17 ldr r3, [pc, #92] ; (8001cd4 ) - 8001c76: 781b ldrb r3, [r3, #0] - 8001c78: 2b00 cmp r3, #0 - 8001c7a: d023 beq.n 8001cc4 - { - /*Configure the SysTick to have interrupt in 1ms time basis*/ - if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / (uint32_t)uwTickFreq)) == 0U) - 8001c7c: 4b16 ldr r3, [pc, #88] ; (8001cd8 ) - 8001c7e: 681a ldr r2, [r3, #0] - 8001c80: 4b14 ldr r3, [pc, #80] ; (8001cd4 ) - 8001c82: 781b ldrb r3, [r3, #0] - 8001c84: 4619 mov r1, r3 - 8001c86: f44f 737a mov.w r3, #1000 ; 0x3e8 - 8001c8a: fbb3 f3f1 udiv r3, r3, r1 - 8001c8e: fbb2 f3f3 udiv r3, r2, r3 - 8001c92: 4618 mov r0, r3 - 8001c94: f000 f96d bl 8001f72 - 8001c98: 4603 mov r3, r0 - 8001c9a: 2b00 cmp r3, #0 - 8001c9c: d10f bne.n 8001cbe - { - /* Configure the SysTick IRQ priority */ - if (TickPriority < (1UL << __NVIC_PRIO_BITS)) - 8001c9e: 687b ldr r3, [r7, #4] - 8001ca0: 2b0f cmp r3, #15 - 8001ca2: d809 bhi.n 8001cb8 - { - HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); - 8001ca4: 2200 movs r2, #0 - 8001ca6: 6879 ldr r1, [r7, #4] - 8001ca8: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8001cac: f000 f937 bl 8001f1e - uwTickPrio = TickPriority; - 8001cb0: 4a0a ldr r2, [pc, #40] ; (8001cdc ) - 8001cb2: 687b ldr r3, [r7, #4] - 8001cb4: 6013 str r3, [r2, #0] - 8001cb6: e007 b.n 8001cc8 - } - else - { - status = HAL_ERROR; - 8001cb8: 2301 movs r3, #1 - 8001cba: 73fb strb r3, [r7, #15] - 8001cbc: e004 b.n 8001cc8 - } - } - else - { - status = HAL_ERROR; - 8001cbe: 2301 movs r3, #1 - 8001cc0: 73fb strb r3, [r7, #15] - 8001cc2: e001 b.n 8001cc8 - } - } - else - { - status = HAL_ERROR; - 8001cc4: 2301 movs r3, #1 - 8001cc6: 73fb strb r3, [r7, #15] - } - - /* Return function status */ - return status; - 8001cc8: 7bfb ldrb r3, [r7, #15] -} - 8001cca: 4618 mov r0, r3 - 8001ccc: 3710 adds r7, #16 - 8001cce: 46bd mov sp, r7 - 8001cd0: bd80 pop {r7, pc} - 8001cd2: bf00 nop - 8001cd4: 20000008 .word 0x20000008 - 8001cd8: 20000000 .word 0x20000000 - 8001cdc: 20000004 .word 0x20000004 - -08001ce0 : - * @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) -{ - 8001ce0: b480 push {r7} - 8001ce2: af00 add r7, sp, #0 - uwTick += (uint32_t)uwTickFreq; - 8001ce4: 4b06 ldr r3, [pc, #24] ; (8001d00 ) - 8001ce6: 781b ldrb r3, [r3, #0] - 8001ce8: 461a mov r2, r3 - 8001cea: 4b06 ldr r3, [pc, #24] ; (8001d04 ) - 8001cec: 681b ldr r3, [r3, #0] - 8001cee: 4413 add r3, r2 - 8001cf0: 4a04 ldr r2, [pc, #16] ; (8001d04 ) - 8001cf2: 6013 str r3, [r2, #0] -} - 8001cf4: bf00 nop - 8001cf6: 46bd mov sp, r7 - 8001cf8: f85d 7b04 ldr.w r7, [sp], #4 - 8001cfc: 4770 bx lr - 8001cfe: bf00 nop - 8001d00: 20000008 .word 0x20000008 - 8001d04: 20000200 .word 0x20000200 - -08001d08 : - * @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) -{ - 8001d08: b480 push {r7} - 8001d0a: af00 add r7, sp, #0 - return uwTick; - 8001d0c: 4b03 ldr r3, [pc, #12] ; (8001d1c ) - 8001d0e: 681b ldr r3, [r3, #0] -} - 8001d10: 4618 mov r0, r3 - 8001d12: 46bd mov sp, r7 - 8001d14: f85d 7b04 ldr.w r7, [sp], #4 - 8001d18: 4770 bx lr - 8001d1a: bf00 nop - 8001d1c: 20000200 .word 0x20000200 - -08001d20 : - * implementations in user file. - * @param Delay specifies the delay time length, in milliseconds. - * @retval None - */ -__weak void HAL_Delay(uint32_t Delay) -{ - 8001d20: b580 push {r7, lr} - 8001d22: b084 sub sp, #16 - 8001d24: af00 add r7, sp, #0 - 8001d26: 6078 str r0, [r7, #4] - uint32_t tickstart = HAL_GetTick(); - 8001d28: f7ff ffee bl 8001d08 - 8001d2c: 60b8 str r0, [r7, #8] - uint32_t wait = Delay; - 8001d2e: 687b ldr r3, [r7, #4] - 8001d30: 60fb str r3, [r7, #12] - - /* Add a period to guaranty minimum wait */ - if (wait < HAL_MAX_DELAY) - 8001d32: 68fb ldr r3, [r7, #12] - 8001d34: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8001d38: d005 beq.n 8001d46 - { - wait += (uint32_t)uwTickFreq; - 8001d3a: 4b0a ldr r3, [pc, #40] ; (8001d64 ) - 8001d3c: 781b ldrb r3, [r3, #0] - 8001d3e: 461a mov r2, r3 - 8001d40: 68fb ldr r3, [r7, #12] - 8001d42: 4413 add r3, r2 - 8001d44: 60fb str r3, [r7, #12] - } - - while ((HAL_GetTick() - tickstart) < wait) - 8001d46: bf00 nop - 8001d48: f7ff ffde bl 8001d08 - 8001d4c: 4602 mov r2, r0 - 8001d4e: 68bb ldr r3, [r7, #8] - 8001d50: 1ad3 subs r3, r2, r3 - 8001d52: 68fa ldr r2, [r7, #12] - 8001d54: 429a cmp r2, r3 - 8001d56: d8f7 bhi.n 8001d48 - { - } -} - 8001d58: bf00 nop - 8001d5a: bf00 nop - 8001d5c: 3710 adds r7, #16 - 8001d5e: 46bd mov sp, r7 - 8001d60: bd80 pop {r7, pc} - 8001d62: bf00 nop - 8001d64: 20000008 .word 0x20000008 - -08001d68 <__NVIC_SetPriorityGrouping>: - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - 8001d68: b480 push {r7} - 8001d6a: b085 sub sp, #20 - 8001d6c: af00 add r7, sp, #0 - 8001d6e: 6078 str r0, [r7, #4] - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8001d70: 687b ldr r3, [r7, #4] - 8001d72: f003 0307 and.w r3, r3, #7 - 8001d76: 60fb str r3, [r7, #12] - - reg_value = SCB->AIRCR; /* read old register configuration */ - 8001d78: 4b0c ldr r3, [pc, #48] ; (8001dac <__NVIC_SetPriorityGrouping+0x44>) - 8001d7a: 68db ldr r3, [r3, #12] - 8001d7c: 60bb str r3, [r7, #8] - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - 8001d7e: 68ba ldr r2, [r7, #8] - 8001d80: f64f 03ff movw r3, #63743 ; 0xf8ff - 8001d84: 4013 ands r3, r2 - 8001d86: 60bb str r3, [r7, #8] - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - 8001d88: 68fb ldr r3, [r7, #12] - 8001d8a: 021a lsls r2, r3, #8 - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - 8001d8c: 68bb ldr r3, [r7, #8] - 8001d8e: 4313 orrs r3, r2 - reg_value = (reg_value | - 8001d90: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 - 8001d94: f443 3300 orr.w r3, r3, #131072 ; 0x20000 - 8001d98: 60bb str r3, [r7, #8] - SCB->AIRCR = reg_value; - 8001d9a: 4a04 ldr r2, [pc, #16] ; (8001dac <__NVIC_SetPriorityGrouping+0x44>) - 8001d9c: 68bb ldr r3, [r7, #8] - 8001d9e: 60d3 str r3, [r2, #12] -} - 8001da0: bf00 nop - 8001da2: 3714 adds r7, #20 - 8001da4: 46bd mov sp, r7 - 8001da6: f85d 7b04 ldr.w r7, [sp], #4 - 8001daa: 4770 bx lr - 8001dac: e000ed00 .word 0xe000ed00 - -08001db0 <__NVIC_GetPriorityGrouping>: - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - 8001db0: b480 push {r7} - 8001db2: af00 add r7, sp, #0 - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); - 8001db4: 4b04 ldr r3, [pc, #16] ; (8001dc8 <__NVIC_GetPriorityGrouping+0x18>) - 8001db6: 68db ldr r3, [r3, #12] - 8001db8: 0a1b lsrs r3, r3, #8 - 8001dba: f003 0307 and.w r3, r3, #7 -} - 8001dbe: 4618 mov r0, r3 - 8001dc0: 46bd mov sp, r7 - 8001dc2: f85d 7b04 ldr.w r7, [sp], #4 - 8001dc6: 4770 bx lr - 8001dc8: e000ed00 .word 0xe000ed00 - -08001dcc <__NVIC_EnableIRQ>: - \details Enables a device specific interrupt in the NVIC interrupt controller. - \param [in] IRQn Device specific interrupt number. - \note IRQn must not be negative. - */ -__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) -{ - 8001dcc: b480 push {r7} - 8001dce: b083 sub sp, #12 - 8001dd0: af00 add r7, sp, #0 - 8001dd2: 4603 mov r3, r0 - 8001dd4: 71fb strb r3, [r7, #7] - if ((int32_t)(IRQn) >= 0) - 8001dd6: f997 3007 ldrsb.w r3, [r7, #7] - 8001dda: 2b00 cmp r3, #0 - 8001ddc: db0b blt.n 8001df6 <__NVIC_EnableIRQ+0x2a> - { - __COMPILER_BARRIER(); - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - 8001dde: 79fb ldrb r3, [r7, #7] - 8001de0: f003 021f and.w r2, r3, #31 - 8001de4: 4907 ldr r1, [pc, #28] ; (8001e04 <__NVIC_EnableIRQ+0x38>) - 8001de6: f997 3007 ldrsb.w r3, [r7, #7] - 8001dea: 095b lsrs r3, r3, #5 - 8001dec: 2001 movs r0, #1 - 8001dee: fa00 f202 lsl.w r2, r0, r2 - 8001df2: f841 2023 str.w r2, [r1, r3, lsl #2] - __COMPILER_BARRIER(); - } -} - 8001df6: bf00 nop - 8001df8: 370c adds r7, #12 - 8001dfa: 46bd mov sp, r7 - 8001dfc: f85d 7b04 ldr.w r7, [sp], #4 - 8001e00: 4770 bx lr - 8001e02: bf00 nop - 8001e04: e000e100 .word 0xe000e100 - -08001e08 <__NVIC_SetPriority>: - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - 8001e08: b480 push {r7} - 8001e0a: b083 sub sp, #12 - 8001e0c: af00 add r7, sp, #0 - 8001e0e: 4603 mov r3, r0 - 8001e10: 6039 str r1, [r7, #0] - 8001e12: 71fb strb r3, [r7, #7] - if ((int32_t)(IRQn) >= 0) - 8001e14: f997 3007 ldrsb.w r3, [r7, #7] - 8001e18: 2b00 cmp r3, #0 - 8001e1a: db0a blt.n 8001e32 <__NVIC_SetPriority+0x2a> - { - NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 8001e1c: 683b ldr r3, [r7, #0] - 8001e1e: b2da uxtb r2, r3 - 8001e20: 490c ldr r1, [pc, #48] ; (8001e54 <__NVIC_SetPriority+0x4c>) - 8001e22: f997 3007 ldrsb.w r3, [r7, #7] - 8001e26: 0112 lsls r2, r2, #4 - 8001e28: b2d2 uxtb r2, r2 - 8001e2a: 440b add r3, r1 - 8001e2c: f883 2300 strb.w r2, [r3, #768] ; 0x300 - } - else - { - SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - 8001e30: e00a b.n 8001e48 <__NVIC_SetPriority+0x40> - SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 8001e32: 683b ldr r3, [r7, #0] - 8001e34: b2da uxtb r2, r3 - 8001e36: 4908 ldr r1, [pc, #32] ; (8001e58 <__NVIC_SetPriority+0x50>) - 8001e38: 79fb ldrb r3, [r7, #7] - 8001e3a: f003 030f and.w r3, r3, #15 - 8001e3e: 3b04 subs r3, #4 - 8001e40: 0112 lsls r2, r2, #4 - 8001e42: b2d2 uxtb r2, r2 - 8001e44: 440b add r3, r1 - 8001e46: 761a strb r2, [r3, #24] -} - 8001e48: bf00 nop - 8001e4a: 370c adds r7, #12 - 8001e4c: 46bd mov sp, r7 - 8001e4e: f85d 7b04 ldr.w r7, [sp], #4 - 8001e52: 4770 bx lr - 8001e54: e000e100 .word 0xe000e100 - 8001e58: e000ed00 .word 0xe000ed00 - -08001e5c : - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - 8001e5c: b480 push {r7} - 8001e5e: b089 sub sp, #36 ; 0x24 - 8001e60: af00 add r7, sp, #0 - 8001e62: 60f8 str r0, [r7, #12] - 8001e64: 60b9 str r1, [r7, #8] - 8001e66: 607a str r2, [r7, #4] - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8001e68: 68fb ldr r3, [r7, #12] - 8001e6a: f003 0307 and.w r3, r3, #7 - 8001e6e: 61fb str r3, [r7, #28] - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - 8001e70: 69fb ldr r3, [r7, #28] - 8001e72: f1c3 0307 rsb r3, r3, #7 - 8001e76: 2b04 cmp r3, #4 - 8001e78: bf28 it cs - 8001e7a: 2304 movcs r3, #4 - 8001e7c: 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)); - 8001e7e: 69fb ldr r3, [r7, #28] - 8001e80: 3304 adds r3, #4 - 8001e82: 2b06 cmp r3, #6 - 8001e84: d902 bls.n 8001e8c - 8001e86: 69fb ldr r3, [r7, #28] - 8001e88: 3b03 subs r3, #3 - 8001e8a: e000 b.n 8001e8e - 8001e8c: 2300 movs r3, #0 - 8001e8e: 617b str r3, [r7, #20] - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8001e90: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 8001e94: 69bb ldr r3, [r7, #24] - 8001e96: fa02 f303 lsl.w r3, r2, r3 - 8001e9a: 43da mvns r2, r3 - 8001e9c: 68bb ldr r3, [r7, #8] - 8001e9e: 401a ands r2, r3 - 8001ea0: 697b ldr r3, [r7, #20] - 8001ea2: 409a lsls r2, r3 - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - 8001ea4: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff - 8001ea8: 697b ldr r3, [r7, #20] - 8001eaa: fa01 f303 lsl.w r3, r1, r3 - 8001eae: 43d9 mvns r1, r3 - 8001eb0: 687b ldr r3, [r7, #4] - 8001eb2: 400b ands r3, r1 - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8001eb4: 4313 orrs r3, r2 - ); -} - 8001eb6: 4618 mov r0, r3 - 8001eb8: 3724 adds r7, #36 ; 0x24 - 8001eba: 46bd mov sp, r7 - 8001ebc: f85d 7b04 ldr.w r7, [sp], #4 - 8001ec0: 4770 bx lr - ... - -08001ec4 : - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - 8001ec4: b580 push {r7, lr} - 8001ec6: b082 sub sp, #8 - 8001ec8: af00 add r7, sp, #0 - 8001eca: 6078 str r0, [r7, #4] - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - 8001ecc: 687b ldr r3, [r7, #4] - 8001ece: 3b01 subs r3, #1 - 8001ed0: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 - 8001ed4: d301 bcc.n 8001eda - { - return (1UL); /* Reload value impossible */ - 8001ed6: 2301 movs r3, #1 - 8001ed8: e00f b.n 8001efa - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - 8001eda: 4a0a ldr r2, [pc, #40] ; (8001f04 ) - 8001edc: 687b ldr r3, [r7, #4] - 8001ede: 3b01 subs r3, #1 - 8001ee0: 6053 str r3, [r2, #4] - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - 8001ee2: 210f movs r1, #15 - 8001ee4: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8001ee8: f7ff ff8e bl 8001e08 <__NVIC_SetPriority> - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - 8001eec: 4b05 ldr r3, [pc, #20] ; (8001f04 ) - 8001eee: 2200 movs r2, #0 - 8001ef0: 609a str r2, [r3, #8] - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - 8001ef2: 4b04 ldr r3, [pc, #16] ; (8001f04 ) - 8001ef4: 2207 movs r2, #7 - 8001ef6: 601a str r2, [r3, #0] - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ - 8001ef8: 2300 movs r3, #0 -} - 8001efa: 4618 mov r0, r3 - 8001efc: 3708 adds r7, #8 - 8001efe: 46bd mov sp, r7 - 8001f00: bd80 pop {r7, pc} - 8001f02: bf00 nop - 8001f04: e000e010 .word 0xe000e010 - -08001f08 : - * @note When the NVIC_PriorityGroup_0 is selected, IRQ pre-emption is no more possible. - * The pending IRQ priority will be managed only by the subpriority. - * @retval None - */ -void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - 8001f08: b580 push {r7, lr} - 8001f0a: b082 sub sp, #8 - 8001f0c: af00 add r7, sp, #0 - 8001f0e: 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); - 8001f10: 6878 ldr r0, [r7, #4] - 8001f12: f7ff ff29 bl 8001d68 <__NVIC_SetPriorityGrouping> -} - 8001f16: bf00 nop - 8001f18: 3708 adds r7, #8 - 8001f1a: 46bd mov sp, r7 - 8001f1c: bd80 pop {r7, pc} - -08001f1e : - * 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) -{ - 8001f1e: b580 push {r7, lr} - 8001f20: b086 sub sp, #24 - 8001f22: af00 add r7, sp, #0 - 8001f24: 4603 mov r3, r0 - 8001f26: 60b9 str r1, [r7, #8] - 8001f28: 607a str r2, [r7, #4] - 8001f2a: 73fb strb r3, [r7, #15] - uint32_t prioritygroup = 0x00; - 8001f2c: 2300 movs r3, #0 - 8001f2e: 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(); - 8001f30: f7ff ff3e bl 8001db0 <__NVIC_GetPriorityGrouping> - 8001f34: 6178 str r0, [r7, #20] - - NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); - 8001f36: 687a ldr r2, [r7, #4] - 8001f38: 68b9 ldr r1, [r7, #8] - 8001f3a: 6978 ldr r0, [r7, #20] - 8001f3c: f7ff ff8e bl 8001e5c - 8001f40: 4602 mov r2, r0 - 8001f42: f997 300f ldrsb.w r3, [r7, #15] - 8001f46: 4611 mov r1, r2 - 8001f48: 4618 mov r0, r3 - 8001f4a: f7ff ff5d bl 8001e08 <__NVIC_SetPriority> -} - 8001f4e: bf00 nop - 8001f50: 3718 adds r7, #24 - 8001f52: 46bd mov sp, r7 - 8001f54: bd80 pop {r7, pc} - -08001f56 : - * 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 (stm32l4xxxx.h)) - * @retval None - */ -void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) -{ - 8001f56: b580 push {r7, lr} - 8001f58: b082 sub sp, #8 - 8001f5a: af00 add r7, sp, #0 - 8001f5c: 4603 mov r3, r0 - 8001f5e: 71fb strb r3, [r7, #7] - /* Check the parameters */ - assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); - - /* Enable interrupt */ - NVIC_EnableIRQ(IRQn); - 8001f60: f997 3007 ldrsb.w r3, [r7, #7] - 8001f64: 4618 mov r0, r3 - 8001f66: f7ff ff31 bl 8001dcc <__NVIC_EnableIRQ> -} - 8001f6a: bf00 nop - 8001f6c: 3708 adds r7, #8 - 8001f6e: 46bd mov sp, r7 - 8001f70: bd80 pop {r7, pc} - -08001f72 : - * @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) -{ - 8001f72: b580 push {r7, lr} - 8001f74: b082 sub sp, #8 - 8001f76: af00 add r7, sp, #0 - 8001f78: 6078 str r0, [r7, #4] - return SysTick_Config(TicksNumb); - 8001f7a: 6878 ldr r0, [r7, #4] - 8001f7c: f7ff ffa2 bl 8001ec4 - 8001f80: 4603 mov r3, r0 -} - 8001f82: 4618 mov r0, r3 - 8001f84: 3708 adds r7, #8 - 8001f86: 46bd mov sp, r7 - 8001f88: bd80 pop {r7, pc} - ... - -08001f8c : - * @param hdma pointer to a DMA_HandleTypeDef structure that contains - * the configuration information for the specified DMA Channel. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma) -{ - 8001f8c: b480 push {r7} - 8001f8e: b085 sub sp, #20 - 8001f90: af00 add r7, sp, #0 - 8001f92: 6078 str r0, [r7, #4] - uint32_t tmp; - - /* Check the DMA handle allocation */ - if (hdma == NULL) - 8001f94: 687b ldr r3, [r7, #4] - 8001f96: 2b00 cmp r3, #0 - 8001f98: d101 bne.n 8001f9e - { - return HAL_ERROR; - 8001f9a: 2301 movs r3, #1 - 8001f9c: e098 b.n 80020d0 - assert_param(IS_DMA_PRIORITY(hdma->Init.Priority)); - - assert_param(IS_DMA_ALL_REQUEST(hdma->Init.Request)); - - /* Compute the channel index */ - if ((uint32_t)(hdma->Instance) < (uint32_t)(DMA2_Channel1)) - 8001f9e: 687b ldr r3, [r7, #4] - 8001fa0: 681b ldr r3, [r3, #0] - 8001fa2: 461a mov r2, r3 - 8001fa4: 4b4d ldr r3, [pc, #308] ; (80020dc ) - 8001fa6: 429a cmp r2, r3 - 8001fa8: d80f bhi.n 8001fca - { - /* DMA1 */ - hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2U; - 8001faa: 687b ldr r3, [r7, #4] - 8001fac: 681b ldr r3, [r3, #0] - 8001fae: 461a mov r2, r3 - 8001fb0: 4b4b ldr r3, [pc, #300] ; (80020e0 ) - 8001fb2: 4413 add r3, r2 - 8001fb4: 4a4b ldr r2, [pc, #300] ; (80020e4 ) - 8001fb6: fba2 2303 umull r2, r3, r2, r3 - 8001fba: 091b lsrs r3, r3, #4 - 8001fbc: 009a lsls r2, r3, #2 - 8001fbe: 687b ldr r3, [r7, #4] - 8001fc0: 645a str r2, [r3, #68] ; 0x44 - hdma->DmaBaseAddress = DMA1; - 8001fc2: 687b ldr r3, [r7, #4] - 8001fc4: 4a48 ldr r2, [pc, #288] ; (80020e8 ) - 8001fc6: 641a str r2, [r3, #64] ; 0x40 - 8001fc8: e00e b.n 8001fe8 - } - else - { - /* DMA2 */ - hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2U; - 8001fca: 687b ldr r3, [r7, #4] - 8001fcc: 681b ldr r3, [r3, #0] - 8001fce: 461a mov r2, r3 - 8001fd0: 4b46 ldr r3, [pc, #280] ; (80020ec ) - 8001fd2: 4413 add r3, r2 - 8001fd4: 4a43 ldr r2, [pc, #268] ; (80020e4 ) - 8001fd6: fba2 2303 umull r2, r3, r2, r3 - 8001fda: 091b lsrs r3, r3, #4 - 8001fdc: 009a lsls r2, r3, #2 - 8001fde: 687b ldr r3, [r7, #4] - 8001fe0: 645a str r2, [r3, #68] ; 0x44 - hdma->DmaBaseAddress = DMA2; - 8001fe2: 687b ldr r3, [r7, #4] - 8001fe4: 4a42 ldr r2, [pc, #264] ; (80020f0 ) - 8001fe6: 641a str r2, [r3, #64] ; 0x40 - } - - /* Change DMA peripheral state */ - hdma->State = HAL_DMA_STATE_BUSY; - 8001fe8: 687b ldr r3, [r7, #4] - 8001fea: 2202 movs r2, #2 - 8001fec: f883 2025 strb.w r2, [r3, #37] ; 0x25 - - /* Get the CR register value */ - tmp = hdma->Instance->CCR; - 8001ff0: 687b ldr r3, [r7, #4] - 8001ff2: 681b ldr r3, [r3, #0] - 8001ff4: 681b ldr r3, [r3, #0] - 8001ff6: 60fb str r3, [r7, #12] - - /* Clear PL, MSIZE, PSIZE, MINC, PINC, CIRC, DIR and MEM2MEM bits */ - tmp &= ((uint32_t)~(DMA_CCR_PL | DMA_CCR_MSIZE | DMA_CCR_PSIZE | - 8001ff8: 68fb ldr r3, [r7, #12] - 8001ffa: f423 43ff bic.w r3, r3, #32640 ; 0x7f80 - 8001ffe: f023 0370 bic.w r3, r3, #112 ; 0x70 - 8002002: 60fb str r3, [r7, #12] - DMA_CCR_MINC | DMA_CCR_PINC | DMA_CCR_CIRC | - DMA_CCR_DIR | DMA_CCR_MEM2MEM)); - - /* Prepare the DMA Channel configuration */ - tmp |= hdma->Init.Direction | - 8002004: 687b ldr r3, [r7, #4] - 8002006: 689a ldr r2, [r3, #8] - hdma->Init.PeriphInc | hdma->Init.MemInc | - 8002008: 687b ldr r3, [r7, #4] - 800200a: 68db ldr r3, [r3, #12] - tmp |= hdma->Init.Direction | - 800200c: 431a orrs r2, r3 - hdma->Init.PeriphInc | hdma->Init.MemInc | - 800200e: 687b ldr r3, [r7, #4] - 8002010: 691b ldr r3, [r3, #16] - 8002012: 431a orrs r2, r3 - hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | - 8002014: 687b ldr r3, [r7, #4] - 8002016: 695b ldr r3, [r3, #20] - hdma->Init.PeriphInc | hdma->Init.MemInc | - 8002018: 431a orrs r2, r3 - hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | - 800201a: 687b ldr r3, [r7, #4] - 800201c: 699b ldr r3, [r3, #24] - 800201e: 431a orrs r2, r3 - hdma->Init.Mode | hdma->Init.Priority; - 8002020: 687b ldr r3, [r7, #4] - 8002022: 69db ldr r3, [r3, #28] - hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | - 8002024: 431a orrs r2, r3 - hdma->Init.Mode | hdma->Init.Priority; - 8002026: 687b ldr r3, [r7, #4] - 8002028: 6a1b ldr r3, [r3, #32] - 800202a: 4313 orrs r3, r2 - tmp |= hdma->Init.Direction | - 800202c: 68fa ldr r2, [r7, #12] - 800202e: 4313 orrs r3, r2 - 8002030: 60fb str r3, [r7, #12] - - /* Write to DMA Channel CR register */ - hdma->Instance->CCR = tmp; - 8002032: 687b ldr r3, [r7, #4] - 8002034: 681b ldr r3, [r3, #0] - 8002036: 68fa ldr r2, [r7, #12] - 8002038: 601a str r2, [r3, #0] -#endif /* DMAMUX1 */ - -#if !defined (DMAMUX1) - - /* Set request selection */ - if (hdma->Init.Direction != DMA_MEMORY_TO_MEMORY) - 800203a: 687b ldr r3, [r7, #4] - 800203c: 689b ldr r3, [r3, #8] - 800203e: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 - 8002042: d039 beq.n 80020b8 - { - /* Write to DMA channel selection register */ - if (DMA1 == hdma->DmaBaseAddress) - 8002044: 687b ldr r3, [r7, #4] - 8002046: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002048: 4a27 ldr r2, [pc, #156] ; (80020e8 ) - 800204a: 4293 cmp r3, r2 - 800204c: d11a bne.n 8002084 - { - /* Reset request selection for DMA1 Channelx */ - DMA1_CSELR->CSELR &= ~(DMA_CSELR_C1S << (hdma->ChannelIndex & 0x1cU)); - 800204e: 4b29 ldr r3, [pc, #164] ; (80020f4 ) - 8002050: 681a ldr r2, [r3, #0] - 8002052: 687b ldr r3, [r7, #4] - 8002054: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002056: f003 031c and.w r3, r3, #28 - 800205a: 210f movs r1, #15 - 800205c: fa01 f303 lsl.w r3, r1, r3 - 8002060: 43db mvns r3, r3 - 8002062: 4924 ldr r1, [pc, #144] ; (80020f4 ) - 8002064: 4013 ands r3, r2 - 8002066: 600b str r3, [r1, #0] - - /* Configure request selection for DMA1 Channelx */ - DMA1_CSELR->CSELR |= (uint32_t)(hdma->Init.Request << (hdma->ChannelIndex & 0x1cU)); - 8002068: 4b22 ldr r3, [pc, #136] ; (80020f4 ) - 800206a: 681a ldr r2, [r3, #0] - 800206c: 687b ldr r3, [r7, #4] - 800206e: 6859 ldr r1, [r3, #4] - 8002070: 687b ldr r3, [r7, #4] - 8002072: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002074: f003 031c and.w r3, r3, #28 - 8002078: fa01 f303 lsl.w r3, r1, r3 - 800207c: 491d ldr r1, [pc, #116] ; (80020f4 ) - 800207e: 4313 orrs r3, r2 - 8002080: 600b str r3, [r1, #0] - 8002082: e019 b.n 80020b8 - } - else /* DMA2 */ - { - /* Reset request selection for DMA2 Channelx */ - DMA2_CSELR->CSELR &= ~(DMA_CSELR_C1S << (hdma->ChannelIndex & 0x1cU)); - 8002084: 4b1c ldr r3, [pc, #112] ; (80020f8 ) - 8002086: 681a ldr r2, [r3, #0] - 8002088: 687b ldr r3, [r7, #4] - 800208a: 6c5b ldr r3, [r3, #68] ; 0x44 - 800208c: f003 031c and.w r3, r3, #28 - 8002090: 210f movs r1, #15 - 8002092: fa01 f303 lsl.w r3, r1, r3 - 8002096: 43db mvns r3, r3 - 8002098: 4917 ldr r1, [pc, #92] ; (80020f8 ) - 800209a: 4013 ands r3, r2 - 800209c: 600b str r3, [r1, #0] - - /* Configure request selection for DMA2 Channelx */ - DMA2_CSELR->CSELR |= (uint32_t)(hdma->Init.Request << (hdma->ChannelIndex & 0x1cU)); - 800209e: 4b16 ldr r3, [pc, #88] ; (80020f8 ) - 80020a0: 681a ldr r2, [r3, #0] - 80020a2: 687b ldr r3, [r7, #4] - 80020a4: 6859 ldr r1, [r3, #4] - 80020a6: 687b ldr r3, [r7, #4] - 80020a8: 6c5b ldr r3, [r3, #68] ; 0x44 - 80020aa: f003 031c and.w r3, r3, #28 - 80020ae: fa01 f303 lsl.w r3, r1, r3 - 80020b2: 4911 ldr r1, [pc, #68] ; (80020f8 ) - 80020b4: 4313 orrs r3, r2 - 80020b6: 600b str r3, [r1, #0] -#endif /* STM32L431xx || STM32L432xx || STM32L433xx || STM32L442xx || STM32L443xx */ - /* STM32L471xx || STM32L475xx || STM32L476xx || STM32L442xx || STM32L486xx */ - /* STM32L496xx || STM32L4A6xx */ - - /* Initialise the error code */ - hdma->ErrorCode = HAL_DMA_ERROR_NONE; - 80020b8: 687b ldr r3, [r7, #4] - 80020ba: 2200 movs r2, #0 - 80020bc: 63da str r2, [r3, #60] ; 0x3c - - /* Initialize the DMA state*/ - hdma->State = HAL_DMA_STATE_READY; - 80020be: 687b ldr r3, [r7, #4] - 80020c0: 2201 movs r2, #1 - 80020c2: f883 2025 strb.w r2, [r3, #37] ; 0x25 - - /* Allocate lock resource and initialize it */ - hdma->Lock = HAL_UNLOCKED; - 80020c6: 687b ldr r3, [r7, #4] - 80020c8: 2200 movs r2, #0 - 80020ca: f883 2024 strb.w r2, [r3, #36] ; 0x24 - - return HAL_OK; - 80020ce: 2300 movs r3, #0 -} - 80020d0: 4618 mov r0, r3 - 80020d2: 3714 adds r7, #20 - 80020d4: 46bd mov sp, r7 - 80020d6: f85d 7b04 ldr.w r7, [sp], #4 - 80020da: 4770 bx lr - 80020dc: 40020407 .word 0x40020407 - 80020e0: bffdfff8 .word 0xbffdfff8 - 80020e4: cccccccd .word 0xcccccccd - 80020e8: 40020000 .word 0x40020000 - 80020ec: bffdfbf8 .word 0xbffdfbf8 - 80020f0: 40020400 .word 0x40020400 - 80020f4: 400200a8 .word 0x400200a8 - 80020f8: 400204a8 .word 0x400204a8 - -080020fc : - * @param hdma pointer to a DMA_HandleTypeDef structure that contains - * the configuration information for the specified DMA Channel. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) -{ - 80020fc: b580 push {r7, lr} - 80020fe: b084 sub sp, #16 - 8002100: af00 add r7, sp, #0 - 8002102: 6078 str r0, [r7, #4] - HAL_StatusTypeDef status = HAL_OK; - 8002104: 2300 movs r3, #0 - 8002106: 73fb strb r3, [r7, #15] - - if (HAL_DMA_STATE_BUSY != hdma->State) - 8002108: 687b ldr r3, [r7, #4] - 800210a: f893 3025 ldrb.w r3, [r3, #37] ; 0x25 - 800210e: b2db uxtb r3, r3 - 8002110: 2b02 cmp r3, #2 - 8002112: d005 beq.n 8002120 - { - /* no transfer ongoing */ - hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; - 8002114: 687b ldr r3, [r7, #4] - 8002116: 2204 movs r2, #4 - 8002118: 63da str r2, [r3, #60] ; 0x3c - - status = HAL_ERROR; - 800211a: 2301 movs r3, #1 - 800211c: 73fb strb r3, [r7, #15] - 800211e: e029 b.n 8002174 - } - else - { - /* Disable DMA IT */ - __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); - 8002120: 687b ldr r3, [r7, #4] - 8002122: 681b ldr r3, [r3, #0] - 8002124: 681a ldr r2, [r3, #0] - 8002126: 687b ldr r3, [r7, #4] - 8002128: 681b ldr r3, [r3, #0] - 800212a: f022 020e bic.w r2, r2, #14 - 800212e: 601a str r2, [r3, #0] - - /* Disable the channel */ - __HAL_DMA_DISABLE(hdma); - 8002130: 687b ldr r3, [r7, #4] - 8002132: 681b ldr r3, [r3, #0] - 8002134: 681a ldr r2, [r3, #0] - 8002136: 687b ldr r3, [r7, #4] - 8002138: 681b ldr r3, [r3, #0] - 800213a: f022 0201 bic.w r2, r2, #1 - 800213e: 601a str r2, [r3, #0] - hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask; - } - -#else - /* Clear all flags */ - hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU)); - 8002140: 687b ldr r3, [r7, #4] - 8002142: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002144: f003 021c and.w r2, r3, #28 - 8002148: 687b ldr r3, [r7, #4] - 800214a: 6c1b ldr r3, [r3, #64] ; 0x40 - 800214c: 2101 movs r1, #1 - 800214e: fa01 f202 lsl.w r2, r1, r2 - 8002152: 605a str r2, [r3, #4] -#endif /* DMAMUX1 */ - - /* Change the DMA state */ - hdma->State = HAL_DMA_STATE_READY; - 8002154: 687b ldr r3, [r7, #4] - 8002156: 2201 movs r2, #1 - 8002158: f883 2025 strb.w r2, [r3, #37] ; 0x25 - - /* Process Unlocked */ - __HAL_UNLOCK(hdma); - 800215c: 687b ldr r3, [r7, #4] - 800215e: 2200 movs r2, #0 - 8002160: f883 2024 strb.w r2, [r3, #36] ; 0x24 - - /* Call User Abort callback */ - if (hdma->XferAbortCallback != NULL) - 8002164: 687b ldr r3, [r7, #4] - 8002166: 6b9b ldr r3, [r3, #56] ; 0x38 - 8002168: 2b00 cmp r3, #0 - 800216a: d003 beq.n 8002174 - { - hdma->XferAbortCallback(hdma); - 800216c: 687b ldr r3, [r7, #4] - 800216e: 6b9b ldr r3, [r3, #56] ; 0x38 - 8002170: 6878 ldr r0, [r7, #4] - 8002172: 4798 blx r3 - } - } - return status; - 8002174: 7bfb ldrb r3, [r7, #15] -} - 8002176: 4618 mov r0, r3 - 8002178: 3710 adds r7, #16 - 800217a: 46bd mov sp, r7 - 800217c: bd80 pop {r7, pc} - -0800217e : - * @param hdma pointer to a DMA_HandleTypeDef structure that contains - * the configuration information for the specified DMA Channel. - * @retval None - */ -void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) -{ - 800217e: b580 push {r7, lr} - 8002180: b084 sub sp, #16 - 8002182: af00 add r7, sp, #0 - 8002184: 6078 str r0, [r7, #4] - uint32_t flag_it = hdma->DmaBaseAddress->ISR; - 8002186: 687b ldr r3, [r7, #4] - 8002188: 6c1b ldr r3, [r3, #64] ; 0x40 - 800218a: 681b ldr r3, [r3, #0] - 800218c: 60fb str r3, [r7, #12] - uint32_t source_it = hdma->Instance->CCR; - 800218e: 687b ldr r3, [r7, #4] - 8002190: 681b ldr r3, [r3, #0] - 8002192: 681b ldr r3, [r3, #0] - 8002194: 60bb str r3, [r7, #8] - - /* Half Transfer Complete Interrupt management ******************************/ - if (((flag_it & (DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1CU))) != 0U) && ((source_it & DMA_IT_HT) != 0U)) - 8002196: 687b ldr r3, [r7, #4] - 8002198: 6c5b ldr r3, [r3, #68] ; 0x44 - 800219a: f003 031c and.w r3, r3, #28 - 800219e: 2204 movs r2, #4 - 80021a0: 409a lsls r2, r3 - 80021a2: 68fb ldr r3, [r7, #12] - 80021a4: 4013 ands r3, r2 - 80021a6: 2b00 cmp r3, #0 - 80021a8: d026 beq.n 80021f8 - 80021aa: 68bb ldr r3, [r7, #8] - 80021ac: f003 0304 and.w r3, r3, #4 - 80021b0: 2b00 cmp r3, #0 - 80021b2: d021 beq.n 80021f8 - { - /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */ - if ((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) - 80021b4: 687b ldr r3, [r7, #4] - 80021b6: 681b ldr r3, [r3, #0] - 80021b8: 681b ldr r3, [r3, #0] - 80021ba: f003 0320 and.w r3, r3, #32 - 80021be: 2b00 cmp r3, #0 - 80021c0: d107 bne.n 80021d2 - { - /* Disable the half transfer interrupt */ - __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT); - 80021c2: 687b ldr r3, [r7, #4] - 80021c4: 681b ldr r3, [r3, #0] - 80021c6: 681a ldr r2, [r3, #0] - 80021c8: 687b ldr r3, [r7, #4] - 80021ca: 681b ldr r3, [r3, #0] - 80021cc: f022 0204 bic.w r2, r2, #4 - 80021d0: 601a str r2, [r3, #0] - } - /* Clear the half transfer complete flag */ - hdma->DmaBaseAddress->IFCR = DMA_ISR_HTIF1 << (hdma->ChannelIndex & 0x1CU); - 80021d2: 687b ldr r3, [r7, #4] - 80021d4: 6c5b ldr r3, [r3, #68] ; 0x44 - 80021d6: f003 021c and.w r2, r3, #28 - 80021da: 687b ldr r3, [r7, #4] - 80021dc: 6c1b ldr r3, [r3, #64] ; 0x40 - 80021de: 2104 movs r1, #4 - 80021e0: fa01 f202 lsl.w r2, r1, r2 - 80021e4: 605a str r2, [r3, #4] - - /* DMA peripheral state is not updated in Half Transfer */ - /* but in Transfer Complete case */ - - if (hdma->XferHalfCpltCallback != NULL) - 80021e6: 687b ldr r3, [r7, #4] - 80021e8: 6b1b ldr r3, [r3, #48] ; 0x30 - 80021ea: 2b00 cmp r3, #0 - 80021ec: d071 beq.n 80022d2 - { - /* Half transfer callback */ - hdma->XferHalfCpltCallback(hdma); - 80021ee: 687b ldr r3, [r7, #4] - 80021f0: 6b1b ldr r3, [r3, #48] ; 0x30 - 80021f2: 6878 ldr r0, [r7, #4] - 80021f4: 4798 blx r3 - if (hdma->XferHalfCpltCallback != NULL) - 80021f6: e06c b.n 80022d2 - } - } - - /* Transfer Complete Interrupt management ***********************************/ - else if (((flag_it & (DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1CU))) != 0U) && ((source_it & DMA_IT_TC) != 0U)) - 80021f8: 687b ldr r3, [r7, #4] - 80021fa: 6c5b ldr r3, [r3, #68] ; 0x44 - 80021fc: f003 031c and.w r3, r3, #28 - 8002200: 2202 movs r2, #2 - 8002202: 409a lsls r2, r3 - 8002204: 68fb ldr r3, [r7, #12] - 8002206: 4013 ands r3, r2 - 8002208: 2b00 cmp r3, #0 - 800220a: d02e beq.n 800226a - 800220c: 68bb ldr r3, [r7, #8] - 800220e: f003 0302 and.w r3, r3, #2 - 8002212: 2b00 cmp r3, #0 - 8002214: d029 beq.n 800226a - { - if ((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U) - 8002216: 687b ldr r3, [r7, #4] - 8002218: 681b ldr r3, [r3, #0] - 800221a: 681b ldr r3, [r3, #0] - 800221c: f003 0320 and.w r3, r3, #32 - 8002220: 2b00 cmp r3, #0 - 8002222: d10b bne.n 800223c - { - /* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */ - /* Disable the transfer complete and error interrupt */ - /* if the DMA mode is not CIRCULAR */ - __HAL_DMA_DISABLE_IT(hdma, DMA_IT_TE | DMA_IT_TC); - 8002224: 687b ldr r3, [r7, #4] - 8002226: 681b ldr r3, [r3, #0] - 8002228: 681a ldr r2, [r3, #0] - 800222a: 687b ldr r3, [r7, #4] - 800222c: 681b ldr r3, [r3, #0] - 800222e: f022 020a bic.w r2, r2, #10 - 8002232: 601a str r2, [r3, #0] - - /* Change the DMA state */ - hdma->State = HAL_DMA_STATE_READY; - 8002234: 687b ldr r3, [r7, #4] - 8002236: 2201 movs r2, #1 - 8002238: f883 2025 strb.w r2, [r3, #37] ; 0x25 - } - /* Clear the transfer complete flag */ - hdma->DmaBaseAddress->IFCR = (DMA_ISR_TCIF1 << (hdma->ChannelIndex & 0x1CU)); - 800223c: 687b ldr r3, [r7, #4] - 800223e: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002240: f003 021c and.w r2, r3, #28 - 8002244: 687b ldr r3, [r7, #4] - 8002246: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002248: 2102 movs r1, #2 - 800224a: fa01 f202 lsl.w r2, r1, r2 - 800224e: 605a str r2, [r3, #4] - - /* Process Unlocked */ - __HAL_UNLOCK(hdma); - 8002250: 687b ldr r3, [r7, #4] - 8002252: 2200 movs r2, #0 - 8002254: f883 2024 strb.w r2, [r3, #36] ; 0x24 - - if (hdma->XferCpltCallback != NULL) - 8002258: 687b ldr r3, [r7, #4] - 800225a: 6adb ldr r3, [r3, #44] ; 0x2c - 800225c: 2b00 cmp r3, #0 - 800225e: d038 beq.n 80022d2 - { - /* Transfer complete callback */ - hdma->XferCpltCallback(hdma); - 8002260: 687b ldr r3, [r7, #4] - 8002262: 6adb ldr r3, [r3, #44] ; 0x2c - 8002264: 6878 ldr r0, [r7, #4] - 8002266: 4798 blx r3 - if (hdma->XferCpltCallback != NULL) - 8002268: e033 b.n 80022d2 - } - } - - /* Transfer Error Interrupt management **************************************/ - else if (((flag_it & (DMA_FLAG_TE1 << (hdma->ChannelIndex & 0x1CU))) != 0U) && ((source_it & DMA_IT_TE) != 0U)) - 800226a: 687b ldr r3, [r7, #4] - 800226c: 6c5b ldr r3, [r3, #68] ; 0x44 - 800226e: f003 031c and.w r3, r3, #28 - 8002272: 2208 movs r2, #8 - 8002274: 409a lsls r2, r3 - 8002276: 68fb ldr r3, [r7, #12] - 8002278: 4013 ands r3, r2 - 800227a: 2b00 cmp r3, #0 - 800227c: d02a beq.n 80022d4 - 800227e: 68bb ldr r3, [r7, #8] - 8002280: f003 0308 and.w r3, r3, #8 - 8002284: 2b00 cmp r3, #0 - 8002286: d025 beq.n 80022d4 - { - /* When a DMA transfer error occurs */ - /* A hardware clear of its EN bits is performed */ - /* Disable ALL DMA IT */ - __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); - 8002288: 687b ldr r3, [r7, #4] - 800228a: 681b ldr r3, [r3, #0] - 800228c: 681a ldr r2, [r3, #0] - 800228e: 687b ldr r3, [r7, #4] - 8002290: 681b ldr r3, [r3, #0] - 8002292: f022 020e bic.w r2, r2, #14 - 8002296: 601a str r2, [r3, #0] - - /* Clear all flags */ - hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU)); - 8002298: 687b ldr r3, [r7, #4] - 800229a: 6c5b ldr r3, [r3, #68] ; 0x44 - 800229c: f003 021c and.w r2, r3, #28 - 80022a0: 687b ldr r3, [r7, #4] - 80022a2: 6c1b ldr r3, [r3, #64] ; 0x40 - 80022a4: 2101 movs r1, #1 - 80022a6: fa01 f202 lsl.w r2, r1, r2 - 80022aa: 605a str r2, [r3, #4] - - /* Update error code */ - hdma->ErrorCode = HAL_DMA_ERROR_TE; - 80022ac: 687b ldr r3, [r7, #4] - 80022ae: 2201 movs r2, #1 - 80022b0: 63da str r2, [r3, #60] ; 0x3c - - /* Change the DMA state */ - hdma->State = HAL_DMA_STATE_READY; - 80022b2: 687b ldr r3, [r7, #4] - 80022b4: 2201 movs r2, #1 - 80022b6: f883 2025 strb.w r2, [r3, #37] ; 0x25 - - /* Process Unlocked */ - __HAL_UNLOCK(hdma); - 80022ba: 687b ldr r3, [r7, #4] - 80022bc: 2200 movs r2, #0 - 80022be: f883 2024 strb.w r2, [r3, #36] ; 0x24 - - if (hdma->XferErrorCallback != NULL) - 80022c2: 687b ldr r3, [r7, #4] - 80022c4: 6b5b ldr r3, [r3, #52] ; 0x34 - 80022c6: 2b00 cmp r3, #0 - 80022c8: d004 beq.n 80022d4 - { - /* Transfer error callback */ - hdma->XferErrorCallback(hdma); - 80022ca: 687b ldr r3, [r7, #4] - 80022cc: 6b5b ldr r3, [r3, #52] ; 0x34 - 80022ce: 6878 ldr r0, [r7, #4] - 80022d0: 4798 blx r3 - } - else - { - /* Nothing To Do */ - } - return; - 80022d2: bf00 nop - 80022d4: bf00 nop -} - 80022d6: 3710 adds r7, #16 - 80022d8: 46bd mov sp, r7 - 80022da: bd80 pop {r7, pc} - -080022dc : - * @param hdma pointer to a DMA_HandleTypeDef structure that contains - * the configuration information for the specified DMA Channel. - * @retval HAL state - */ -HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma) -{ - 80022dc: b480 push {r7} - 80022de: b083 sub sp, #12 - 80022e0: af00 add r7, sp, #0 - 80022e2: 6078 str r0, [r7, #4] - /* Return DMA handle state */ - return hdma->State; - 80022e4: 687b ldr r3, [r7, #4] - 80022e6: f893 3025 ldrb.w r3, [r3, #37] ; 0x25 - 80022ea: b2db uxtb r3, r3 -} - 80022ec: 4618 mov r0, r3 - 80022ee: 370c adds r7, #12 - 80022f0: 46bd mov sp, r7 - 80022f2: f85d 7b04 ldr.w r7, [sp], #4 - 80022f6: 4770 bx lr - -080022f8 : - * @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) -{ - 80022f8: b480 push {r7} - 80022fa: b087 sub sp, #28 - 80022fc: af00 add r7, sp, #0 - 80022fe: 6078 str r0, [r7, #4] - 8002300: 6039 str r1, [r7, #0] - uint32_t position = 0x00u; - 8002302: 2300 movs r3, #0 - 8002304: 617b str r3, [r7, #20] - 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) - 8002306: e17f b.n 8002608 - { - /* Get current io position */ - iocurrent = (GPIO_Init->Pin) & (1uL << position); - 8002308: 683b ldr r3, [r7, #0] - 800230a: 681a ldr r2, [r3, #0] - 800230c: 2101 movs r1, #1 - 800230e: 697b ldr r3, [r7, #20] - 8002310: fa01 f303 lsl.w r3, r1, r3 - 8002314: 4013 ands r3, r2 - 8002316: 60fb str r3, [r7, #12] - - if (iocurrent != 0x00u) - 8002318: 68fb ldr r3, [r7, #12] - 800231a: 2b00 cmp r3, #0 - 800231c: f000 8171 beq.w 8002602 - { - /*--------------------- GPIO Mode Configuration ------------------------*/ - /* In case of Output or Alternate function mode selection */ - if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) - 8002320: 683b ldr r3, [r7, #0] - 8002322: 685b ldr r3, [r3, #4] - 8002324: f003 0303 and.w r3, r3, #3 - 8002328: 2b01 cmp r3, #1 - 800232a: d005 beq.n 8002338 - 800232c: 683b ldr r3, [r7, #0] - 800232e: 685b ldr r3, [r3, #4] - 8002330: f003 0303 and.w r3, r3, #3 - 8002334: 2b02 cmp r3, #2 - 8002336: d130 bne.n 800239a - { - /* Check the Speed parameter */ - assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); - - /* Configure the IO Speed */ - temp = GPIOx->OSPEEDR; - 8002338: 687b ldr r3, [r7, #4] - 800233a: 689b ldr r3, [r3, #8] - 800233c: 613b str r3, [r7, #16] - temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2u)); - 800233e: 697b ldr r3, [r7, #20] - 8002340: 005b lsls r3, r3, #1 - 8002342: 2203 movs r2, #3 - 8002344: fa02 f303 lsl.w r3, r2, r3 - 8002348: 43db mvns r3, r3 - 800234a: 693a ldr r2, [r7, #16] - 800234c: 4013 ands r3, r2 - 800234e: 613b str r3, [r7, #16] - temp |= (GPIO_Init->Speed << (position * 2u)); - 8002350: 683b ldr r3, [r7, #0] - 8002352: 68da ldr r2, [r3, #12] - 8002354: 697b ldr r3, [r7, #20] - 8002356: 005b lsls r3, r3, #1 - 8002358: fa02 f303 lsl.w r3, r2, r3 - 800235c: 693a ldr r2, [r7, #16] - 800235e: 4313 orrs r3, r2 - 8002360: 613b str r3, [r7, #16] - GPIOx->OSPEEDR = temp; - 8002362: 687b ldr r3, [r7, #4] - 8002364: 693a ldr r2, [r7, #16] - 8002366: 609a str r2, [r3, #8] - - /* Configure the IO Output Type */ - temp = GPIOx->OTYPER; - 8002368: 687b ldr r3, [r7, #4] - 800236a: 685b ldr r3, [r3, #4] - 800236c: 613b str r3, [r7, #16] - temp &= ~(GPIO_OTYPER_OT0 << position) ; - 800236e: 2201 movs r2, #1 - 8002370: 697b ldr r3, [r7, #20] - 8002372: fa02 f303 lsl.w r3, r2, r3 - 8002376: 43db mvns r3, r3 - 8002378: 693a ldr r2, [r7, #16] - 800237a: 4013 ands r3, r2 - 800237c: 613b str r3, [r7, #16] - temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); - 800237e: 683b ldr r3, [r7, #0] - 8002380: 685b ldr r3, [r3, #4] - 8002382: 091b lsrs r3, r3, #4 - 8002384: f003 0201 and.w r2, r3, #1 - 8002388: 697b ldr r3, [r7, #20] - 800238a: fa02 f303 lsl.w r3, r2, r3 - 800238e: 693a ldr r2, [r7, #16] - 8002390: 4313 orrs r3, r2 - 8002392: 613b str r3, [r7, #16] - GPIOx->OTYPER = temp; - 8002394: 687b ldr r3, [r7, #4] - 8002396: 693a ldr r2, [r7, #16] - 8002398: 605a str r2, [r3, #4] - } - -#if defined(STM32L471xx) || defined(STM32L475xx) || defined(STM32L476xx) || defined(STM32L485xx) || defined(STM32L486xx) - - /* In case of Analog mode, check if ADC control mode is selected */ - if((GPIO_Init->Mode & GPIO_MODE_ANALOG) == GPIO_MODE_ANALOG) - 800239a: 683b ldr r3, [r7, #0] - 800239c: 685b ldr r3, [r3, #4] - 800239e: f003 0303 and.w r3, r3, #3 - 80023a2: 2b03 cmp r3, #3 - 80023a4: d118 bne.n 80023d8 - { - /* Configure the IO Output Type */ - temp = GPIOx->ASCR; - 80023a6: 687b ldr r3, [r7, #4] - 80023a8: 6adb ldr r3, [r3, #44] ; 0x2c - 80023aa: 613b str r3, [r7, #16] - temp &= ~(GPIO_ASCR_ASC0 << position) ; - 80023ac: 2201 movs r2, #1 - 80023ae: 697b ldr r3, [r7, #20] - 80023b0: fa02 f303 lsl.w r3, r2, r3 - 80023b4: 43db mvns r3, r3 - 80023b6: 693a ldr r2, [r7, #16] - 80023b8: 4013 ands r3, r2 - 80023ba: 613b str r3, [r7, #16] - temp |= (((GPIO_Init->Mode & GPIO_MODE_ANALOG_ADC_CONTROL) >> 3) << position); - 80023bc: 683b ldr r3, [r7, #0] - 80023be: 685b ldr r3, [r3, #4] - 80023c0: 08db lsrs r3, r3, #3 - 80023c2: f003 0201 and.w r2, r3, #1 - 80023c6: 697b ldr r3, [r7, #20] - 80023c8: fa02 f303 lsl.w r3, r2, r3 - 80023cc: 693a ldr r2, [r7, #16] - 80023ce: 4313 orrs r3, r2 - 80023d0: 613b str r3, [r7, #16] - GPIOx->ASCR = temp; - 80023d2: 687b ldr r3, [r7, #4] - 80023d4: 693a ldr r2, [r7, #16] - 80023d6: 62da str r2, [r3, #44] ; 0x2c - } - -#endif /* STM32L471xx || STM32L475xx || STM32L476xx || STM32L485xx || STM32L486xx */ - - /* Activate the Pull-up or Pull down resistor for the current IO */ - if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) - 80023d8: 683b ldr r3, [r7, #0] - 80023da: 685b ldr r3, [r3, #4] - 80023dc: f003 0303 and.w r3, r3, #3 - 80023e0: 2b03 cmp r3, #3 - 80023e2: d017 beq.n 8002414 - { - /* Check the Pull parameter */ - assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); - - temp = GPIOx->PUPDR; - 80023e4: 687b ldr r3, [r7, #4] - 80023e6: 68db ldr r3, [r3, #12] - 80023e8: 613b str r3, [r7, #16] - temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U)); - 80023ea: 697b ldr r3, [r7, #20] - 80023ec: 005b lsls r3, r3, #1 - 80023ee: 2203 movs r2, #3 - 80023f0: fa02 f303 lsl.w r3, r2, r3 - 80023f4: 43db mvns r3, r3 - 80023f6: 693a ldr r2, [r7, #16] - 80023f8: 4013 ands r3, r2 - 80023fa: 613b str r3, [r7, #16] - temp |= ((GPIO_Init->Pull) << (position * 2U)); - 80023fc: 683b ldr r3, [r7, #0] - 80023fe: 689a ldr r2, [r3, #8] - 8002400: 697b ldr r3, [r7, #20] - 8002402: 005b lsls r3, r3, #1 - 8002404: fa02 f303 lsl.w r3, r2, r3 - 8002408: 693a ldr r2, [r7, #16] - 800240a: 4313 orrs r3, r2 - 800240c: 613b str r3, [r7, #16] - GPIOx->PUPDR = temp; - 800240e: 687b ldr r3, [r7, #4] - 8002410: 693a ldr r2, [r7, #16] - 8002412: 60da str r2, [r3, #12] - } - - /* In case of Alternate function mode selection */ - if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) - 8002414: 683b ldr r3, [r7, #0] - 8002416: 685b ldr r3, [r3, #4] - 8002418: f003 0303 and.w r3, r3, #3 - 800241c: 2b02 cmp r3, #2 - 800241e: d123 bne.n 8002468 - /* Check the Alternate function parameters */ - assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); - assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); - - /* Configure Alternate function mapped with the current IO */ - temp = GPIOx->AFR[position >> 3u]; - 8002420: 697b ldr r3, [r7, #20] - 8002422: 08da lsrs r2, r3, #3 - 8002424: 687b ldr r3, [r7, #4] - 8002426: 3208 adds r2, #8 - 8002428: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800242c: 613b str r3, [r7, #16] - temp &= ~(0xFu << ((position & 0x07u) * 4u)); - 800242e: 697b ldr r3, [r7, #20] - 8002430: f003 0307 and.w r3, r3, #7 - 8002434: 009b lsls r3, r3, #2 - 8002436: 220f movs r2, #15 - 8002438: fa02 f303 lsl.w r3, r2, r3 - 800243c: 43db mvns r3, r3 - 800243e: 693a ldr r2, [r7, #16] - 8002440: 4013 ands r3, r2 - 8002442: 613b str r3, [r7, #16] - temp |= ((GPIO_Init->Alternate) << ((position & 0x07u) * 4u)); - 8002444: 683b ldr r3, [r7, #0] - 8002446: 691a ldr r2, [r3, #16] - 8002448: 697b ldr r3, [r7, #20] - 800244a: f003 0307 and.w r3, r3, #7 - 800244e: 009b lsls r3, r3, #2 - 8002450: fa02 f303 lsl.w r3, r2, r3 - 8002454: 693a ldr r2, [r7, #16] - 8002456: 4313 orrs r3, r2 - 8002458: 613b str r3, [r7, #16] - GPIOx->AFR[position >> 3u] = temp; - 800245a: 697b ldr r3, [r7, #20] - 800245c: 08da lsrs r2, r3, #3 - 800245e: 687b ldr r3, [r7, #4] - 8002460: 3208 adds r2, #8 - 8002462: 6939 ldr r1, [r7, #16] - 8002464: f843 1022 str.w r1, [r3, r2, lsl #2] - } - - /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ - temp = GPIOx->MODER; - 8002468: 687b ldr r3, [r7, #4] - 800246a: 681b ldr r3, [r3, #0] - 800246c: 613b str r3, [r7, #16] - temp &= ~(GPIO_MODER_MODE0 << (position * 2u)); - 800246e: 697b ldr r3, [r7, #20] - 8002470: 005b lsls r3, r3, #1 - 8002472: 2203 movs r2, #3 - 8002474: fa02 f303 lsl.w r3, r2, r3 - 8002478: 43db mvns r3, r3 - 800247a: 693a ldr r2, [r7, #16] - 800247c: 4013 ands r3, r2 - 800247e: 613b str r3, [r7, #16] - temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2u)); - 8002480: 683b ldr r3, [r7, #0] - 8002482: 685b ldr r3, [r3, #4] - 8002484: f003 0203 and.w r2, r3, #3 - 8002488: 697b ldr r3, [r7, #20] - 800248a: 005b lsls r3, r3, #1 - 800248c: fa02 f303 lsl.w r3, r2, r3 - 8002490: 693a ldr r2, [r7, #16] - 8002492: 4313 orrs r3, r2 - 8002494: 613b str r3, [r7, #16] - GPIOx->MODER = temp; - 8002496: 687b ldr r3, [r7, #4] - 8002498: 693a ldr r2, [r7, #16] - 800249a: 601a str r2, [r3, #0] - - /*--------------------- EXTI Mode Configuration ------------------------*/ - /* Configure the External Interrupt or event for the current IO */ - if ((GPIO_Init->Mode & EXTI_MODE) != 0x00u) - 800249c: 683b ldr r3, [r7, #0] - 800249e: 685b ldr r3, [r3, #4] - 80024a0: f403 3340 and.w r3, r3, #196608 ; 0x30000 - 80024a4: 2b00 cmp r3, #0 - 80024a6: f000 80ac beq.w 8002602 - { - /* Enable SYSCFG Clock */ - __HAL_RCC_SYSCFG_CLK_ENABLE(); - 80024aa: 4b5f ldr r3, [pc, #380] ; (8002628 ) - 80024ac: 6e1b ldr r3, [r3, #96] ; 0x60 - 80024ae: 4a5e ldr r2, [pc, #376] ; (8002628 ) - 80024b0: f043 0301 orr.w r3, r3, #1 - 80024b4: 6613 str r3, [r2, #96] ; 0x60 - 80024b6: 4b5c ldr r3, [pc, #368] ; (8002628 ) - 80024b8: 6e1b ldr r3, [r3, #96] ; 0x60 - 80024ba: f003 0301 and.w r3, r3, #1 - 80024be: 60bb str r3, [r7, #8] - 80024c0: 68bb ldr r3, [r7, #8] - - temp = SYSCFG->EXTICR[position >> 2u]; - 80024c2: 4a5a ldr r2, [pc, #360] ; (800262c ) - 80024c4: 697b ldr r3, [r7, #20] - 80024c6: 089b lsrs r3, r3, #2 - 80024c8: 3302 adds r3, #2 - 80024ca: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 80024ce: 613b str r3, [r7, #16] - temp &= ~(0x0FuL << (4u * (position & 0x03u))); - 80024d0: 697b ldr r3, [r7, #20] - 80024d2: f003 0303 and.w r3, r3, #3 - 80024d6: 009b lsls r3, r3, #2 - 80024d8: 220f movs r2, #15 - 80024da: fa02 f303 lsl.w r3, r2, r3 - 80024de: 43db mvns r3, r3 - 80024e0: 693a ldr r2, [r7, #16] - 80024e2: 4013 ands r3, r2 - 80024e4: 613b str r3, [r7, #16] - temp |= (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u))); - 80024e6: 687b ldr r3, [r7, #4] - 80024e8: f1b3 4f90 cmp.w r3, #1207959552 ; 0x48000000 - 80024ec: d025 beq.n 800253a - 80024ee: 687b ldr r3, [r7, #4] - 80024f0: 4a4f ldr r2, [pc, #316] ; (8002630 ) - 80024f2: 4293 cmp r3, r2 - 80024f4: d01f beq.n 8002536 - 80024f6: 687b ldr r3, [r7, #4] - 80024f8: 4a4e ldr r2, [pc, #312] ; (8002634 ) - 80024fa: 4293 cmp r3, r2 - 80024fc: d019 beq.n 8002532 - 80024fe: 687b ldr r3, [r7, #4] - 8002500: 4a4d ldr r2, [pc, #308] ; (8002638 ) - 8002502: 4293 cmp r3, r2 - 8002504: d013 beq.n 800252e - 8002506: 687b ldr r3, [r7, #4] - 8002508: 4a4c ldr r2, [pc, #304] ; (800263c ) - 800250a: 4293 cmp r3, r2 - 800250c: d00d beq.n 800252a - 800250e: 687b ldr r3, [r7, #4] - 8002510: 4a4b ldr r2, [pc, #300] ; (8002640 ) - 8002512: 4293 cmp r3, r2 - 8002514: d007 beq.n 8002526 - 8002516: 687b ldr r3, [r7, #4] - 8002518: 4a4a ldr r2, [pc, #296] ; (8002644 ) - 800251a: 4293 cmp r3, r2 - 800251c: d101 bne.n 8002522 - 800251e: 2306 movs r3, #6 - 8002520: e00c b.n 800253c - 8002522: 2307 movs r3, #7 - 8002524: e00a b.n 800253c - 8002526: 2305 movs r3, #5 - 8002528: e008 b.n 800253c - 800252a: 2304 movs r3, #4 - 800252c: e006 b.n 800253c - 800252e: 2303 movs r3, #3 - 8002530: e004 b.n 800253c - 8002532: 2302 movs r3, #2 - 8002534: e002 b.n 800253c - 8002536: 2301 movs r3, #1 - 8002538: e000 b.n 800253c - 800253a: 2300 movs r3, #0 - 800253c: 697a ldr r2, [r7, #20] - 800253e: f002 0203 and.w r2, r2, #3 - 8002542: 0092 lsls r2, r2, #2 - 8002544: 4093 lsls r3, r2 - 8002546: 693a ldr r2, [r7, #16] - 8002548: 4313 orrs r3, r2 - 800254a: 613b str r3, [r7, #16] - SYSCFG->EXTICR[position >> 2u] = temp; - 800254c: 4937 ldr r1, [pc, #220] ; (800262c ) - 800254e: 697b ldr r3, [r7, #20] - 8002550: 089b lsrs r3, r3, #2 - 8002552: 3302 adds r3, #2 - 8002554: 693a ldr r2, [r7, #16] - 8002556: f841 2023 str.w r2, [r1, r3, lsl #2] - - /* Clear Rising Falling edge configuration */ - temp = EXTI->RTSR1; - 800255a: 4b3b ldr r3, [pc, #236] ; (8002648 ) - 800255c: 689b ldr r3, [r3, #8] - 800255e: 613b str r3, [r7, #16] - temp &= ~(iocurrent); - 8002560: 68fb ldr r3, [r7, #12] - 8002562: 43db mvns r3, r3 - 8002564: 693a ldr r2, [r7, #16] - 8002566: 4013 ands r3, r2 - 8002568: 613b str r3, [r7, #16] - if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u) - 800256a: 683b ldr r3, [r7, #0] - 800256c: 685b ldr r3, [r3, #4] - 800256e: f403 1380 and.w r3, r3, #1048576 ; 0x100000 - 8002572: 2b00 cmp r3, #0 - 8002574: d003 beq.n 800257e - { - temp |= iocurrent; - 8002576: 693a ldr r2, [r7, #16] - 8002578: 68fb ldr r3, [r7, #12] - 800257a: 4313 orrs r3, r2 - 800257c: 613b str r3, [r7, #16] - } - EXTI->RTSR1 = temp; - 800257e: 4a32 ldr r2, [pc, #200] ; (8002648 ) - 8002580: 693b ldr r3, [r7, #16] - 8002582: 6093 str r3, [r2, #8] - - temp = EXTI->FTSR1; - 8002584: 4b30 ldr r3, [pc, #192] ; (8002648 ) - 8002586: 68db ldr r3, [r3, #12] - 8002588: 613b str r3, [r7, #16] - temp &= ~(iocurrent); - 800258a: 68fb ldr r3, [r7, #12] - 800258c: 43db mvns r3, r3 - 800258e: 693a ldr r2, [r7, #16] - 8002590: 4013 ands r3, r2 - 8002592: 613b str r3, [r7, #16] - if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u) - 8002594: 683b ldr r3, [r7, #0] - 8002596: 685b ldr r3, [r3, #4] - 8002598: f403 1300 and.w r3, r3, #2097152 ; 0x200000 - 800259c: 2b00 cmp r3, #0 - 800259e: d003 beq.n 80025a8 - { - temp |= iocurrent; - 80025a0: 693a ldr r2, [r7, #16] - 80025a2: 68fb ldr r3, [r7, #12] - 80025a4: 4313 orrs r3, r2 - 80025a6: 613b str r3, [r7, #16] - } - EXTI->FTSR1 = temp; - 80025a8: 4a27 ldr r2, [pc, #156] ; (8002648 ) - 80025aa: 693b ldr r3, [r7, #16] - 80025ac: 60d3 str r3, [r2, #12] - - /* Clear EXTI line configuration */ - temp = EXTI->EMR1; - 80025ae: 4b26 ldr r3, [pc, #152] ; (8002648 ) - 80025b0: 685b ldr r3, [r3, #4] - 80025b2: 613b str r3, [r7, #16] - temp &= ~(iocurrent); - 80025b4: 68fb ldr r3, [r7, #12] - 80025b6: 43db mvns r3, r3 - 80025b8: 693a ldr r2, [r7, #16] - 80025ba: 4013 ands r3, r2 - 80025bc: 613b str r3, [r7, #16] - if ((GPIO_Init->Mode & EXTI_EVT) != 0x00u) - 80025be: 683b ldr r3, [r7, #0] - 80025c0: 685b ldr r3, [r3, #4] - 80025c2: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 80025c6: 2b00 cmp r3, #0 - 80025c8: d003 beq.n 80025d2 - { - temp |= iocurrent; - 80025ca: 693a ldr r2, [r7, #16] - 80025cc: 68fb ldr r3, [r7, #12] - 80025ce: 4313 orrs r3, r2 - 80025d0: 613b str r3, [r7, #16] - } - EXTI->EMR1 = temp; - 80025d2: 4a1d ldr r2, [pc, #116] ; (8002648 ) - 80025d4: 693b ldr r3, [r7, #16] - 80025d6: 6053 str r3, [r2, #4] - - temp = EXTI->IMR1; - 80025d8: 4b1b ldr r3, [pc, #108] ; (8002648 ) - 80025da: 681b ldr r3, [r3, #0] - 80025dc: 613b str r3, [r7, #16] - temp &= ~(iocurrent); - 80025de: 68fb ldr r3, [r7, #12] - 80025e0: 43db mvns r3, r3 - 80025e2: 693a ldr r2, [r7, #16] - 80025e4: 4013 ands r3, r2 - 80025e6: 613b str r3, [r7, #16] - if ((GPIO_Init->Mode & EXTI_IT) != 0x00u) - 80025e8: 683b ldr r3, [r7, #0] - 80025ea: 685b ldr r3, [r3, #4] - 80025ec: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 80025f0: 2b00 cmp r3, #0 - 80025f2: d003 beq.n 80025fc - { - temp |= iocurrent; - 80025f4: 693a ldr r2, [r7, #16] - 80025f6: 68fb ldr r3, [r7, #12] - 80025f8: 4313 orrs r3, r2 - 80025fa: 613b str r3, [r7, #16] - } - EXTI->IMR1 = temp; - 80025fc: 4a12 ldr r2, [pc, #72] ; (8002648 ) - 80025fe: 693b ldr r3, [r7, #16] - 8002600: 6013 str r3, [r2, #0] - } - } - - position++; - 8002602: 697b ldr r3, [r7, #20] - 8002604: 3301 adds r3, #1 - 8002606: 617b str r3, [r7, #20] - while (((GPIO_Init->Pin) >> position) != 0x00u) - 8002608: 683b ldr r3, [r7, #0] - 800260a: 681a ldr r2, [r3, #0] - 800260c: 697b ldr r3, [r7, #20] - 800260e: fa22 f303 lsr.w r3, r2, r3 - 8002612: 2b00 cmp r3, #0 - 8002614: f47f ae78 bne.w 8002308 - } -} - 8002618: bf00 nop - 800261a: bf00 nop - 800261c: 371c adds r7, #28 - 800261e: 46bd mov sp, r7 - 8002620: f85d 7b04 ldr.w r7, [sp], #4 - 8002624: 4770 bx lr - 8002626: bf00 nop - 8002628: 40021000 .word 0x40021000 - 800262c: 40010000 .word 0x40010000 - 8002630: 48000400 .word 0x48000400 - 8002634: 48000800 .word 0x48000800 - 8002638: 48000c00 .word 0x48000c00 - 800263c: 48001000 .word 0x48001000 - 8002640: 48001400 .word 0x48001400 - 8002644: 48001800 .word 0x48001800 - 8002648: 40010400 .word 0x40010400 - -0800264c : - * @param GPIO_Pin specifies the port bit to read. - * This parameter can be any combination of 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) -{ - 800264c: b480 push {r7} - 800264e: b085 sub sp, #20 - 8002650: af00 add r7, sp, #0 - 8002652: 6078 str r0, [r7, #4] - 8002654: 460b mov r3, r1 - 8002656: 807b strh r3, [r7, #2] - GPIO_PinState bitstatus; - - /* Check the parameters */ - assert_param(IS_GPIO_PIN(GPIO_Pin)); - - if ((GPIOx->IDR & GPIO_Pin) != 0x00u) - 8002658: 687b ldr r3, [r7, #4] - 800265a: 691a ldr r2, [r3, #16] - 800265c: 887b ldrh r3, [r7, #2] - 800265e: 4013 ands r3, r2 - 8002660: 2b00 cmp r3, #0 - 8002662: d002 beq.n 800266a - { - bitstatus = GPIO_PIN_SET; - 8002664: 2301 movs r3, #1 - 8002666: 73fb strb r3, [r7, #15] - 8002668: e001 b.n 800266e - } - else - { - bitstatus = GPIO_PIN_RESET; - 800266a: 2300 movs r3, #0 - 800266c: 73fb strb r3, [r7, #15] - } - return bitstatus; - 800266e: 7bfb ldrb r3, [r7, #15] -} - 8002670: 4618 mov r0, r3 - 8002672: 3714 adds r7, #20 - 8002674: 46bd mov sp, r7 - 8002676: f85d 7b04 ldr.w r7, [sp], #4 - 800267a: 4770 bx lr - -0800267c : - * @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) -{ - 800267c: b480 push {r7} - 800267e: b083 sub sp, #12 - 8002680: af00 add r7, sp, #0 - 8002682: 6078 str r0, [r7, #4] - 8002684: 460b mov r3, r1 - 8002686: 807b strh r3, [r7, #2] - 8002688: 4613 mov r3, r2 - 800268a: 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) - 800268c: 787b ldrb r3, [r7, #1] - 800268e: 2b00 cmp r3, #0 - 8002690: d003 beq.n 800269a - { - GPIOx->BSRR = (uint32_t)GPIO_Pin; - 8002692: 887a ldrh r2, [r7, #2] - 8002694: 687b ldr r3, [r7, #4] - 8002696: 619a str r2, [r3, #24] - } - else - { - GPIOx->BRR = (uint32_t)GPIO_Pin; - } -} - 8002698: e002 b.n 80026a0 - GPIOx->BRR = (uint32_t)GPIO_Pin; - 800269a: 887a ldrh r2, [r7, #2] - 800269c: 687b ldr r3, [r7, #4] - 800269e: 629a str r2, [r3, #40] ; 0x28 -} - 80026a0: bf00 nop - 80026a2: 370c adds r7, #12 - 80026a4: 46bd mov sp, r7 - 80026a6: f85d 7b04 ldr.w r7, [sp], #4 - 80026aa: 4770 bx lr - -080026ac : - * @brief Handle EXTI interrupt request. - * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line. - * @retval None - */ -void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) -{ - 80026ac: b580 push {r7, lr} - 80026ae: b082 sub sp, #8 - 80026b0: af00 add r7, sp, #0 - 80026b2: 4603 mov r3, r0 - 80026b4: 80fb strh r3, [r7, #6] - /* EXTI line interrupt detected */ - if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u) - 80026b6: 4b08 ldr r3, [pc, #32] ; (80026d8 ) - 80026b8: 695a ldr r2, [r3, #20] - 80026ba: 88fb ldrh r3, [r7, #6] - 80026bc: 4013 ands r3, r2 - 80026be: 2b00 cmp r3, #0 - 80026c0: d006 beq.n 80026d0 - { - __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); - 80026c2: 4a05 ldr r2, [pc, #20] ; (80026d8 ) - 80026c4: 88fb ldrh r3, [r7, #6] - 80026c6: 6153 str r3, [r2, #20] - HAL_GPIO_EXTI_Callback(GPIO_Pin); - 80026c8: 88fb ldrh r3, [r7, #6] - 80026ca: 4618 mov r0, r3 - 80026cc: f7fe fbf0 bl 8000eb0 - } -} - 80026d0: bf00 nop - 80026d2: 3708 adds r7, #8 - 80026d4: 46bd mov sp, r7 - 80026d6: bd80 pop {r7, pc} - 80026d8: 40010400 .word 0x40010400 - -080026dc : - * @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) -{ - 80026dc: b580 push {r7, lr} - 80026de: b082 sub sp, #8 - 80026e0: af00 add r7, sp, #0 - 80026e2: 6078 str r0, [r7, #4] - /* Check the I2C handle allocation */ - if (hi2c == NULL) - 80026e4: 687b ldr r3, [r7, #4] - 80026e6: 2b00 cmp r3, #0 - 80026e8: d101 bne.n 80026ee - { - return HAL_ERROR; - 80026ea: 2301 movs r3, #1 - 80026ec: e08d b.n 800280a - assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); - assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); - 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) - 80026ee: 687b ldr r3, [r7, #4] - 80026f0: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 80026f4: b2db uxtb r3, r3 - 80026f6: 2b00 cmp r3, #0 - 80026f8: d106 bne.n 8002708 - { - /* Allocate lock resource and initialize it */ - hi2c->Lock = HAL_UNLOCKED; - 80026fa: 687b ldr r3, [r7, #4] - 80026fc: 2200 movs r2, #0 - 80026fe: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ - hi2c->MspInitCallback(hi2c); -#else - /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ - HAL_I2C_MspInit(hi2c); - 8002702: 6878 ldr r0, [r7, #4] - 8002704: f7fe fd84 bl 8001210 -#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - } - - hi2c->State = HAL_I2C_STATE_BUSY; - 8002708: 687b ldr r3, [r7, #4] - 800270a: 2224 movs r2, #36 ; 0x24 - 800270c: f883 2041 strb.w r2, [r3, #65] ; 0x41 - - /* Disable the selected I2C peripheral */ - __HAL_I2C_DISABLE(hi2c); - 8002710: 687b ldr r3, [r7, #4] - 8002712: 681b ldr r3, [r3, #0] - 8002714: 681a ldr r2, [r3, #0] - 8002716: 687b ldr r3, [r7, #4] - 8002718: 681b ldr r3, [r3, #0] - 800271a: f022 0201 bic.w r2, r2, #1 - 800271e: 601a str r2, [r3, #0] - - /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ - /* Configure I2Cx: Frequency range */ - hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; - 8002720: 687b ldr r3, [r7, #4] - 8002722: 685a ldr r2, [r3, #4] - 8002724: 687b ldr r3, [r7, #4] - 8002726: 681b ldr r3, [r3, #0] - 8002728: f022 6270 bic.w r2, r2, #251658240 ; 0xf000000 - 800272c: 611a str r2, [r3, #16] - - /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ - /* Disable Own Address1 before set the Own Address1 configuration */ - hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; - 800272e: 687b ldr r3, [r7, #4] - 8002730: 681b ldr r3, [r3, #0] - 8002732: 689a ldr r2, [r3, #8] - 8002734: 687b ldr r3, [r7, #4] - 8002736: 681b ldr r3, [r3, #0] - 8002738: f422 4200 bic.w r2, r2, #32768 ; 0x8000 - 800273c: 609a str r2, [r3, #8] - - /* Configure I2Cx: Own Address1 and ack own address1 mode */ - if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) - 800273e: 687b ldr r3, [r7, #4] - 8002740: 68db ldr r3, [r3, #12] - 8002742: 2b01 cmp r3, #1 - 8002744: d107 bne.n 8002756 - { - hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); - 8002746: 687b ldr r3, [r7, #4] - 8002748: 689a ldr r2, [r3, #8] - 800274a: 687b ldr r3, [r7, #4] - 800274c: 681b ldr r3, [r3, #0] - 800274e: f442 4200 orr.w r2, r2, #32768 ; 0x8000 - 8002752: 609a str r2, [r3, #8] - 8002754: e006 b.n 8002764 - } - else /* I2C_ADDRESSINGMODE_10BIT */ - { - hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); - 8002756: 687b ldr r3, [r7, #4] - 8002758: 689a ldr r2, [r3, #8] - 800275a: 687b ldr r3, [r7, #4] - 800275c: 681b ldr r3, [r3, #0] - 800275e: f442 4204 orr.w r2, r2, #33792 ; 0x8400 - 8002762: 609a str r2, [r3, #8] - } - - /*---------------------------- I2Cx CR2 Configuration ----------------------*/ - /* Configure I2Cx: Addressing Master mode */ - if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) - 8002764: 687b ldr r3, [r7, #4] - 8002766: 68db ldr r3, [r3, #12] - 8002768: 2b02 cmp r3, #2 - 800276a: d108 bne.n 800277e - { - SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); - 800276c: 687b ldr r3, [r7, #4] - 800276e: 681b ldr r3, [r3, #0] - 8002770: 685a ldr r2, [r3, #4] - 8002772: 687b ldr r3, [r7, #4] - 8002774: 681b ldr r3, [r3, #0] - 8002776: f442 6200 orr.w r2, r2, #2048 ; 0x800 - 800277a: 605a str r2, [r3, #4] - 800277c: e007 b.n 800278e - } - else - { - /* Clear the I2C ADD10 bit */ - CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); - 800277e: 687b ldr r3, [r7, #4] - 8002780: 681b ldr r3, [r3, #0] - 8002782: 685a ldr r2, [r3, #4] - 8002784: 687b ldr r3, [r7, #4] - 8002786: 681b ldr r3, [r3, #0] - 8002788: f422 6200 bic.w r2, r2, #2048 ; 0x800 - 800278c: 605a str r2, [r3, #4] - } - /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ - hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); - 800278e: 687b ldr r3, [r7, #4] - 8002790: 681b ldr r3, [r3, #0] - 8002792: 685b ldr r3, [r3, #4] - 8002794: 687a ldr r2, [r7, #4] - 8002796: 6812 ldr r2, [r2, #0] - 8002798: f043 7300 orr.w r3, r3, #33554432 ; 0x2000000 - 800279c: f443 4300 orr.w r3, r3, #32768 ; 0x8000 - 80027a0: 6053 str r3, [r2, #4] - - /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ - /* Disable Own Address2 before set the Own Address2 configuration */ - hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; - 80027a2: 687b ldr r3, [r7, #4] - 80027a4: 681b ldr r3, [r3, #0] - 80027a6: 68da ldr r2, [r3, #12] - 80027a8: 687b ldr r3, [r7, #4] - 80027aa: 681b ldr r3, [r3, #0] - 80027ac: f422 4200 bic.w r2, r2, #32768 ; 0x8000 - 80027b0: 60da str r2, [r3, #12] - - /* Configure I2Cx: Dual mode and Own Address2 */ - hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ - 80027b2: 687b ldr r3, [r7, #4] - 80027b4: 691a ldr r2, [r3, #16] - 80027b6: 687b ldr r3, [r7, #4] - 80027b8: 695b ldr r3, [r3, #20] - 80027ba: ea42 0103 orr.w r1, r2, r3 - (hi2c->Init.OwnAddress2Masks << 8)); - 80027be: 687b ldr r3, [r7, #4] - 80027c0: 699b ldr r3, [r3, #24] - 80027c2: 021a lsls r2, r3, #8 - hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ - 80027c4: 687b ldr r3, [r7, #4] - 80027c6: 681b ldr r3, [r3, #0] - 80027c8: 430a orrs r2, r1 - 80027ca: 60da str r2, [r3, #12] - - /*---------------------------- I2Cx CR1 Configuration ----------------------*/ - /* Configure I2Cx: Generalcall and NoStretch mode */ - hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); - 80027cc: 687b ldr r3, [r7, #4] - 80027ce: 69d9 ldr r1, [r3, #28] - 80027d0: 687b ldr r3, [r7, #4] - 80027d2: 6a1a ldr r2, [r3, #32] - 80027d4: 687b ldr r3, [r7, #4] - 80027d6: 681b ldr r3, [r3, #0] - 80027d8: 430a orrs r2, r1 - 80027da: 601a str r2, [r3, #0] - - /* Enable the selected I2C peripheral */ - __HAL_I2C_ENABLE(hi2c); - 80027dc: 687b ldr r3, [r7, #4] - 80027de: 681b ldr r3, [r3, #0] - 80027e0: 681a ldr r2, [r3, #0] - 80027e2: 687b ldr r3, [r7, #4] - 80027e4: 681b ldr r3, [r3, #0] - 80027e6: f042 0201 orr.w r2, r2, #1 - 80027ea: 601a str r2, [r3, #0] - - hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 80027ec: 687b ldr r3, [r7, #4] - 80027ee: 2200 movs r2, #0 - 80027f0: 645a str r2, [r3, #68] ; 0x44 - hi2c->State = HAL_I2C_STATE_READY; - 80027f2: 687b ldr r3, [r7, #4] - 80027f4: 2220 movs r2, #32 - 80027f6: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->PreviousState = I2C_STATE_NONE; - 80027fa: 687b ldr r3, [r7, #4] - 80027fc: 2200 movs r2, #0 - 80027fe: 631a str r2, [r3, #48] ; 0x30 - hi2c->Mode = HAL_I2C_MODE_NONE; - 8002800: 687b ldr r3, [r7, #4] - 8002802: 2200 movs r2, #0 - 8002804: f883 2042 strb.w r2, [r3, #66] ; 0x42 - - return HAL_OK; - 8002808: 2300 movs r3, #0 -} - 800280a: 4618 mov r0, r3 - 800280c: 3708 adds r7, #8 - 800280e: 46bd mov sp, r7 - 8002810: bd80 pop {r7, pc} - ... - -08002814 : - * @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) -{ - 8002814: b580 push {r7, lr} - 8002816: b088 sub sp, #32 - 8002818: af02 add r7, sp, #8 - 800281a: 60f8 str r0, [r7, #12] - 800281c: 4608 mov r0, r1 - 800281e: 4611 mov r1, r2 - 8002820: 461a mov r2, r3 - 8002822: 4603 mov r3, r0 - 8002824: 817b strh r3, [r7, #10] - 8002826: 460b mov r3, r1 - 8002828: 813b strh r3, [r7, #8] - 800282a: 4613 mov r3, r2 - 800282c: 80fb strh r3, [r7, #6] - uint32_t tickstart; - - /* Check the parameters */ - assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); - - if (hi2c->State == HAL_I2C_STATE_READY) - 800282e: 68fb ldr r3, [r7, #12] - 8002830: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8002834: b2db uxtb r3, r3 - 8002836: 2b20 cmp r3, #32 - 8002838: f040 80f9 bne.w 8002a2e - { - if ((pData == NULL) || (Size == 0U)) - 800283c: 6a3b ldr r3, [r7, #32] - 800283e: 2b00 cmp r3, #0 - 8002840: d002 beq.n 8002848 - 8002842: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8002844: 2b00 cmp r3, #0 - 8002846: d105 bne.n 8002854 - { - hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; - 8002848: 68fb ldr r3, [r7, #12] - 800284a: f44f 7200 mov.w r2, #512 ; 0x200 - 800284e: 645a str r2, [r3, #68] ; 0x44 - return HAL_ERROR; - 8002850: 2301 movs r3, #1 - 8002852: e0ed b.n 8002a30 - } - - /* Process Locked */ - __HAL_LOCK(hi2c); - 8002854: 68fb ldr r3, [r7, #12] - 8002856: f893 3040 ldrb.w r3, [r3, #64] ; 0x40 - 800285a: 2b01 cmp r3, #1 - 800285c: d101 bne.n 8002862 - 800285e: 2302 movs r3, #2 - 8002860: e0e6 b.n 8002a30 - 8002862: 68fb ldr r3, [r7, #12] - 8002864: 2201 movs r2, #1 - 8002866: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - /* Init tickstart for timeout management*/ - tickstart = HAL_GetTick(); - 800286a: f7ff fa4d bl 8001d08 - 800286e: 6178 str r0, [r7, #20] - - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK) - 8002870: 697b ldr r3, [r7, #20] - 8002872: 9300 str r3, [sp, #0] - 8002874: 2319 movs r3, #25 - 8002876: 2201 movs r2, #1 - 8002878: f44f 4100 mov.w r1, #32768 ; 0x8000 - 800287c: 68f8 ldr r0, [r7, #12] - 800287e: f000 ffec bl 800385a - 8002882: 4603 mov r3, r0 - 8002884: 2b00 cmp r3, #0 - 8002886: d001 beq.n 800288c - { - return HAL_ERROR; - 8002888: 2301 movs r3, #1 - 800288a: e0d1 b.n 8002a30 - } - - hi2c->State = HAL_I2C_STATE_BUSY_TX; - 800288c: 68fb ldr r3, [r7, #12] - 800288e: 2221 movs r2, #33 ; 0x21 - 8002890: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->Mode = HAL_I2C_MODE_MEM; - 8002894: 68fb ldr r3, [r7, #12] - 8002896: 2240 movs r2, #64 ; 0x40 - 8002898: f883 2042 strb.w r2, [r3, #66] ; 0x42 - hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 800289c: 68fb ldr r3, [r7, #12] - 800289e: 2200 movs r2, #0 - 80028a0: 645a str r2, [r3, #68] ; 0x44 - - /* Prepare transfer parameters */ - hi2c->pBuffPtr = pData; - 80028a2: 68fb ldr r3, [r7, #12] - 80028a4: 6a3a ldr r2, [r7, #32] - 80028a6: 625a str r2, [r3, #36] ; 0x24 - hi2c->XferCount = Size; - 80028a8: 68fb ldr r3, [r7, #12] - 80028aa: 8cba ldrh r2, [r7, #36] ; 0x24 - 80028ac: 855a strh r2, [r3, #42] ; 0x2a - hi2c->XferISR = NULL; - 80028ae: 68fb ldr r3, [r7, #12] - 80028b0: 2200 movs r2, #0 - 80028b2: 635a str r2, [r3, #52] ; 0x34 - - /* Send Slave Address and Memory Address */ - if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) - 80028b4: 88f8 ldrh r0, [r7, #6] - 80028b6: 893a ldrh r2, [r7, #8] - 80028b8: 8979 ldrh r1, [r7, #10] - 80028ba: 697b ldr r3, [r7, #20] - 80028bc: 9301 str r3, [sp, #4] - 80028be: 6abb ldr r3, [r7, #40] ; 0x28 - 80028c0: 9300 str r3, [sp, #0] - 80028c2: 4603 mov r3, r0 - 80028c4: 68f8 ldr r0, [r7, #12] - 80028c6: f000 fb81 bl 8002fcc - 80028ca: 4603 mov r3, r0 - 80028cc: 2b00 cmp r3, #0 - 80028ce: d005 beq.n 80028dc - { - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 80028d0: 68fb ldr r3, [r7, #12] - 80028d2: 2200 movs r2, #0 - 80028d4: f883 2040 strb.w r2, [r3, #64] ; 0x40 - return HAL_ERROR; - 80028d8: 2301 movs r3, #1 - 80028da: e0a9 b.n 8002a30 - } - - /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ - if (hi2c->XferCount > MAX_NBYTE_SIZE) - 80028dc: 68fb ldr r3, [r7, #12] - 80028de: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80028e0: b29b uxth r3, r3 - 80028e2: 2bff cmp r3, #255 ; 0xff - 80028e4: d90e bls.n 8002904 - { - hi2c->XferSize = MAX_NBYTE_SIZE; - 80028e6: 68fb ldr r3, [r7, #12] - 80028e8: 22ff movs r2, #255 ; 0xff - 80028ea: 851a strh r2, [r3, #40] ; 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); - 80028ec: 68fb ldr r3, [r7, #12] - 80028ee: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80028f0: b2da uxtb r2, r3 - 80028f2: 8979 ldrh r1, [r7, #10] - 80028f4: 2300 movs r3, #0 - 80028f6: 9300 str r3, [sp, #0] - 80028f8: f04f 7380 mov.w r3, #16777216 ; 0x1000000 - 80028fc: 68f8 ldr r0, [r7, #12] - 80028fe: f001 f965 bl 8003bcc - 8002902: e00f b.n 8002924 - } - else - { - hi2c->XferSize = hi2c->XferCount; - 8002904: 68fb ldr r3, [r7, #12] - 8002906: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002908: b29a uxth r2, r3 - 800290a: 68fb ldr r3, [r7, #12] - 800290c: 851a strh r2, [r3, #40] ; 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); - 800290e: 68fb ldr r3, [r7, #12] - 8002910: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002912: b2da uxtb r2, r3 - 8002914: 8979 ldrh r1, [r7, #10] - 8002916: 2300 movs r3, #0 - 8002918: 9300 str r3, [sp, #0] - 800291a: f04f 7300 mov.w r3, #33554432 ; 0x2000000 - 800291e: 68f8 ldr r0, [r7, #12] - 8002920: f001 f954 bl 8003bcc - } - - do - { - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 8002924: 697a ldr r2, [r7, #20] - 8002926: 6ab9 ldr r1, [r7, #40] ; 0x28 - 8002928: 68f8 ldr r0, [r7, #12] - 800292a: f000 ffe5 bl 80038f8 - 800292e: 4603 mov r3, r0 - 8002930: 2b00 cmp r3, #0 - 8002932: d001 beq.n 8002938 - { - return HAL_ERROR; - 8002934: 2301 movs r3, #1 - 8002936: e07b b.n 8002a30 - } - - /* Write data to TXDR */ - hi2c->Instance->TXDR = *hi2c->pBuffPtr; - 8002938: 68fb ldr r3, [r7, #12] - 800293a: 6a5b ldr r3, [r3, #36] ; 0x24 - 800293c: 781a ldrb r2, [r3, #0] - 800293e: 68fb ldr r3, [r7, #12] - 8002940: 681b ldr r3, [r3, #0] - 8002942: 629a str r2, [r3, #40] ; 0x28 - - /* Increment Buffer pointer */ - hi2c->pBuffPtr++; - 8002944: 68fb ldr r3, [r7, #12] - 8002946: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002948: 1c5a adds r2, r3, #1 - 800294a: 68fb ldr r3, [r7, #12] - 800294c: 625a str r2, [r3, #36] ; 0x24 - - hi2c->XferCount--; - 800294e: 68fb ldr r3, [r7, #12] - 8002950: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002952: b29b uxth r3, r3 - 8002954: 3b01 subs r3, #1 - 8002956: b29a uxth r2, r3 - 8002958: 68fb ldr r3, [r7, #12] - 800295a: 855a strh r2, [r3, #42] ; 0x2a - hi2c->XferSize--; - 800295c: 68fb ldr r3, [r7, #12] - 800295e: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002960: 3b01 subs r3, #1 - 8002962: b29a uxth r2, r3 - 8002964: 68fb ldr r3, [r7, #12] - 8002966: 851a strh r2, [r3, #40] ; 0x28 - - if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) - 8002968: 68fb ldr r3, [r7, #12] - 800296a: 8d5b ldrh r3, [r3, #42] ; 0x2a - 800296c: b29b uxth r3, r3 - 800296e: 2b00 cmp r3, #0 - 8002970: d034 beq.n 80029dc - 8002972: 68fb ldr r3, [r7, #12] - 8002974: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002976: 2b00 cmp r3, #0 - 8002978: d130 bne.n 80029dc - { - /* Wait until TCR flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) - 800297a: 697b ldr r3, [r7, #20] - 800297c: 9300 str r3, [sp, #0] - 800297e: 6abb ldr r3, [r7, #40] ; 0x28 - 8002980: 2200 movs r2, #0 - 8002982: 2180 movs r1, #128 ; 0x80 - 8002984: 68f8 ldr r0, [r7, #12] - 8002986: f000 ff68 bl 800385a - 800298a: 4603 mov r3, r0 - 800298c: 2b00 cmp r3, #0 - 800298e: d001 beq.n 8002994 - { - return HAL_ERROR; - 8002990: 2301 movs r3, #1 - 8002992: e04d b.n 8002a30 - } - - if (hi2c->XferCount > MAX_NBYTE_SIZE) - 8002994: 68fb ldr r3, [r7, #12] - 8002996: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002998: b29b uxth r3, r3 - 800299a: 2bff cmp r3, #255 ; 0xff - 800299c: d90e bls.n 80029bc - { - hi2c->XferSize = MAX_NBYTE_SIZE; - 800299e: 68fb ldr r3, [r7, #12] - 80029a0: 22ff movs r2, #255 ; 0xff - 80029a2: 851a strh r2, [r3, #40] ; 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, - 80029a4: 68fb ldr r3, [r7, #12] - 80029a6: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80029a8: b2da uxtb r2, r3 - 80029aa: 8979 ldrh r1, [r7, #10] - 80029ac: 2300 movs r3, #0 - 80029ae: 9300 str r3, [sp, #0] - 80029b0: f04f 7380 mov.w r3, #16777216 ; 0x1000000 - 80029b4: 68f8 ldr r0, [r7, #12] - 80029b6: f001 f909 bl 8003bcc - 80029ba: e00f b.n 80029dc - I2C_NO_STARTSTOP); - } - else - { - hi2c->XferSize = hi2c->XferCount; - 80029bc: 68fb ldr r3, [r7, #12] - 80029be: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80029c0: b29a uxth r2, r3 - 80029c2: 68fb ldr r3, [r7, #12] - 80029c4: 851a strh r2, [r3, #40] ; 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, - 80029c6: 68fb ldr r3, [r7, #12] - 80029c8: 8d1b ldrh r3, [r3, #40] ; 0x28 - 80029ca: b2da uxtb r2, r3 - 80029cc: 8979 ldrh r1, [r7, #10] - 80029ce: 2300 movs r3, #0 - 80029d0: 9300 str r3, [sp, #0] - 80029d2: f04f 7300 mov.w r3, #33554432 ; 0x2000000 - 80029d6: 68f8 ldr r0, [r7, #12] - 80029d8: f001 f8f8 bl 8003bcc - I2C_NO_STARTSTOP); - } - } - - } while (hi2c->XferCount > 0U); - 80029dc: 68fb ldr r3, [r7, #12] - 80029de: 8d5b ldrh r3, [r3, #42] ; 0x2a - 80029e0: b29b uxth r3, r3 - 80029e2: 2b00 cmp r3, #0 - 80029e4: d19e bne.n 8002924 - - /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ - /* Wait until STOPF flag is reset */ - if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 80029e6: 697a ldr r2, [r7, #20] - 80029e8: 6ab9 ldr r1, [r7, #40] ; 0x28 - 80029ea: 68f8 ldr r0, [r7, #12] - 80029ec: f000 ffcb bl 8003986 - 80029f0: 4603 mov r3, r0 - 80029f2: 2b00 cmp r3, #0 - 80029f4: d001 beq.n 80029fa - { - return HAL_ERROR; - 80029f6: 2301 movs r3, #1 - 80029f8: e01a b.n 8002a30 - } - - /* Clear STOP Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 80029fa: 68fb ldr r3, [r7, #12] - 80029fc: 681b ldr r3, [r3, #0] - 80029fe: 2220 movs r2, #32 - 8002a00: 61da str r2, [r3, #28] - - /* Clear Configuration Register 2 */ - I2C_RESET_CR2(hi2c); - 8002a02: 68fb ldr r3, [r7, #12] - 8002a04: 681b ldr r3, [r3, #0] - 8002a06: 6859 ldr r1, [r3, #4] - 8002a08: 68fb ldr r3, [r7, #12] - 8002a0a: 681a ldr r2, [r3, #0] - 8002a0c: 4b0a ldr r3, [pc, #40] ; (8002a38 ) - 8002a0e: 400b ands r3, r1 - 8002a10: 6053 str r3, [r2, #4] - - hi2c->State = HAL_I2C_STATE_READY; - 8002a12: 68fb ldr r3, [r7, #12] - 8002a14: 2220 movs r2, #32 - 8002a16: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 8002a1a: 68fb ldr r3, [r7, #12] - 8002a1c: 2200 movs r2, #0 - 8002a1e: f883 2042 strb.w r2, [r3, #66] ; 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8002a22: 68fb ldr r3, [r7, #12] - 8002a24: 2200 movs r2, #0 - 8002a26: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - return HAL_OK; - 8002a2a: 2300 movs r3, #0 - 8002a2c: e000 b.n 8002a30 - } - else - { - return HAL_BUSY; - 8002a2e: 2302 movs r3, #2 - } -} - 8002a30: 4618 mov r0, r3 - 8002a32: 3718 adds r7, #24 - 8002a34: 46bd mov sp, r7 - 8002a36: bd80 pop {r7, pc} - 8002a38: fe00e800 .word 0xfe00e800 - -08002a3c : - * @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) -{ - 8002a3c: b580 push {r7, lr} - 8002a3e: b088 sub sp, #32 - 8002a40: af02 add r7, sp, #8 - 8002a42: 60f8 str r0, [r7, #12] - 8002a44: 4608 mov r0, r1 - 8002a46: 4611 mov r1, r2 - 8002a48: 461a mov r2, r3 - 8002a4a: 4603 mov r3, r0 - 8002a4c: 817b strh r3, [r7, #10] - 8002a4e: 460b mov r3, r1 - 8002a50: 813b strh r3, [r7, #8] - 8002a52: 4613 mov r3, r2 - 8002a54: 80fb strh r3, [r7, #6] - uint32_t tickstart; - - /* Check the parameters */ - assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); - - if (hi2c->State == HAL_I2C_STATE_READY) - 8002a56: 68fb ldr r3, [r7, #12] - 8002a58: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8002a5c: b2db uxtb r3, r3 - 8002a5e: 2b20 cmp r3, #32 - 8002a60: f040 80fd bne.w 8002c5e - { - if ((pData == NULL) || (Size == 0U)) - 8002a64: 6a3b ldr r3, [r7, #32] - 8002a66: 2b00 cmp r3, #0 - 8002a68: d002 beq.n 8002a70 - 8002a6a: 8cbb ldrh r3, [r7, #36] ; 0x24 - 8002a6c: 2b00 cmp r3, #0 - 8002a6e: d105 bne.n 8002a7c - { - hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; - 8002a70: 68fb ldr r3, [r7, #12] - 8002a72: f44f 7200 mov.w r2, #512 ; 0x200 - 8002a76: 645a str r2, [r3, #68] ; 0x44 - return HAL_ERROR; - 8002a78: 2301 movs r3, #1 - 8002a7a: e0f1 b.n 8002c60 - } - - /* Process Locked */ - __HAL_LOCK(hi2c); - 8002a7c: 68fb ldr r3, [r7, #12] - 8002a7e: f893 3040 ldrb.w r3, [r3, #64] ; 0x40 - 8002a82: 2b01 cmp r3, #1 - 8002a84: d101 bne.n 8002a8a - 8002a86: 2302 movs r3, #2 - 8002a88: e0ea b.n 8002c60 - 8002a8a: 68fb ldr r3, [r7, #12] - 8002a8c: 2201 movs r2, #1 - 8002a8e: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - /* Init tickstart for timeout management*/ - tickstart = HAL_GetTick(); - 8002a92: f7ff f939 bl 8001d08 - 8002a96: 6178 str r0, [r7, #20] - - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK) - 8002a98: 697b ldr r3, [r7, #20] - 8002a9a: 9300 str r3, [sp, #0] - 8002a9c: 2319 movs r3, #25 - 8002a9e: 2201 movs r2, #1 - 8002aa0: f44f 4100 mov.w r1, #32768 ; 0x8000 - 8002aa4: 68f8 ldr r0, [r7, #12] - 8002aa6: f000 fed8 bl 800385a - 8002aaa: 4603 mov r3, r0 - 8002aac: 2b00 cmp r3, #0 - 8002aae: d001 beq.n 8002ab4 - { - return HAL_ERROR; - 8002ab0: 2301 movs r3, #1 - 8002ab2: e0d5 b.n 8002c60 - } - - hi2c->State = HAL_I2C_STATE_BUSY_RX; - 8002ab4: 68fb ldr r3, [r7, #12] - 8002ab6: 2222 movs r2, #34 ; 0x22 - 8002ab8: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->Mode = HAL_I2C_MODE_MEM; - 8002abc: 68fb ldr r3, [r7, #12] - 8002abe: 2240 movs r2, #64 ; 0x40 - 8002ac0: f883 2042 strb.w r2, [r3, #66] ; 0x42 - hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 8002ac4: 68fb ldr r3, [r7, #12] - 8002ac6: 2200 movs r2, #0 - 8002ac8: 645a str r2, [r3, #68] ; 0x44 - - /* Prepare transfer parameters */ - hi2c->pBuffPtr = pData; - 8002aca: 68fb ldr r3, [r7, #12] - 8002acc: 6a3a ldr r2, [r7, #32] - 8002ace: 625a str r2, [r3, #36] ; 0x24 - hi2c->XferCount = Size; - 8002ad0: 68fb ldr r3, [r7, #12] - 8002ad2: 8cba ldrh r2, [r7, #36] ; 0x24 - 8002ad4: 855a strh r2, [r3, #42] ; 0x2a - hi2c->XferISR = NULL; - 8002ad6: 68fb ldr r3, [r7, #12] - 8002ad8: 2200 movs r2, #0 - 8002ada: 635a str r2, [r3, #52] ; 0x34 - - /* Send Slave Address and Memory Address */ - if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) - 8002adc: 88f8 ldrh r0, [r7, #6] - 8002ade: 893a ldrh r2, [r7, #8] - 8002ae0: 8979 ldrh r1, [r7, #10] - 8002ae2: 697b ldr r3, [r7, #20] - 8002ae4: 9301 str r3, [sp, #4] - 8002ae6: 6abb ldr r3, [r7, #40] ; 0x28 - 8002ae8: 9300 str r3, [sp, #0] - 8002aea: 4603 mov r3, r0 - 8002aec: 68f8 ldr r0, [r7, #12] - 8002aee: f000 fac1 bl 8003074 - 8002af2: 4603 mov r3, r0 - 8002af4: 2b00 cmp r3, #0 - 8002af6: d005 beq.n 8002b04 - { - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8002af8: 68fb ldr r3, [r7, #12] - 8002afa: 2200 movs r2, #0 - 8002afc: f883 2040 strb.w r2, [r3, #64] ; 0x40 - return HAL_ERROR; - 8002b00: 2301 movs r3, #1 - 8002b02: e0ad b.n 8002c60 - } - - /* Send Slave Address */ - /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ - if (hi2c->XferCount > MAX_NBYTE_SIZE) - 8002b04: 68fb ldr r3, [r7, #12] - 8002b06: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002b08: b29b uxth r3, r3 - 8002b0a: 2bff cmp r3, #255 ; 0xff - 8002b0c: d90e bls.n 8002b2c - { - hi2c->XferSize = MAX_NBYTE_SIZE; - 8002b0e: 68fb ldr r3, [r7, #12] - 8002b10: 22ff movs r2, #255 ; 0xff - 8002b12: 851a strh r2, [r3, #40] ; 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, - 8002b14: 68fb ldr r3, [r7, #12] - 8002b16: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002b18: b2da uxtb r2, r3 - 8002b1a: 8979 ldrh r1, [r7, #10] - 8002b1c: 4b52 ldr r3, [pc, #328] ; (8002c68 ) - 8002b1e: 9300 str r3, [sp, #0] - 8002b20: f04f 7380 mov.w r3, #16777216 ; 0x1000000 - 8002b24: 68f8 ldr r0, [r7, #12] - 8002b26: f001 f851 bl 8003bcc - 8002b2a: e00f b.n 8002b4c - I2C_GENERATE_START_READ); - } - else - { - hi2c->XferSize = hi2c->XferCount; - 8002b2c: 68fb ldr r3, [r7, #12] - 8002b2e: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002b30: b29a uxth r2, r3 - 8002b32: 68fb ldr r3, [r7, #12] - 8002b34: 851a strh r2, [r3, #40] ; 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, - 8002b36: 68fb ldr r3, [r7, #12] - 8002b38: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002b3a: b2da uxtb r2, r3 - 8002b3c: 8979 ldrh r1, [r7, #10] - 8002b3e: 4b4a ldr r3, [pc, #296] ; (8002c68 ) - 8002b40: 9300 str r3, [sp, #0] - 8002b42: f04f 7300 mov.w r3, #33554432 ; 0x2000000 - 8002b46: 68f8 ldr r0, [r7, #12] - 8002b48: f001 f840 bl 8003bcc - } - - do - { - /* Wait until RXNE flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) - 8002b4c: 697b ldr r3, [r7, #20] - 8002b4e: 9300 str r3, [sp, #0] - 8002b50: 6abb ldr r3, [r7, #40] ; 0x28 - 8002b52: 2200 movs r2, #0 - 8002b54: 2104 movs r1, #4 - 8002b56: 68f8 ldr r0, [r7, #12] - 8002b58: f000 fe7f bl 800385a - 8002b5c: 4603 mov r3, r0 - 8002b5e: 2b00 cmp r3, #0 - 8002b60: d001 beq.n 8002b66 - { - return HAL_ERROR; - 8002b62: 2301 movs r3, #1 - 8002b64: e07c b.n 8002c60 - } - - /* Read data from RXDR */ - *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; - 8002b66: 68fb ldr r3, [r7, #12] - 8002b68: 681b ldr r3, [r3, #0] - 8002b6a: 6a5a ldr r2, [r3, #36] ; 0x24 - 8002b6c: 68fb ldr r3, [r7, #12] - 8002b6e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002b70: b2d2 uxtb r2, r2 - 8002b72: 701a strb r2, [r3, #0] - - /* Increment Buffer pointer */ - hi2c->pBuffPtr++; - 8002b74: 68fb ldr r3, [r7, #12] - 8002b76: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002b78: 1c5a adds r2, r3, #1 - 8002b7a: 68fb ldr r3, [r7, #12] - 8002b7c: 625a str r2, [r3, #36] ; 0x24 - - hi2c->XferSize--; - 8002b7e: 68fb ldr r3, [r7, #12] - 8002b80: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002b82: 3b01 subs r3, #1 - 8002b84: b29a uxth r2, r3 - 8002b86: 68fb ldr r3, [r7, #12] - 8002b88: 851a strh r2, [r3, #40] ; 0x28 - hi2c->XferCount--; - 8002b8a: 68fb ldr r3, [r7, #12] - 8002b8c: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002b8e: b29b uxth r3, r3 - 8002b90: 3b01 subs r3, #1 - 8002b92: b29a uxth r2, r3 - 8002b94: 68fb ldr r3, [r7, #12] - 8002b96: 855a strh r2, [r3, #42] ; 0x2a - - if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) - 8002b98: 68fb ldr r3, [r7, #12] - 8002b9a: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002b9c: b29b uxth r3, r3 - 8002b9e: 2b00 cmp r3, #0 - 8002ba0: d034 beq.n 8002c0c - 8002ba2: 68fb ldr r3, [r7, #12] - 8002ba4: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002ba6: 2b00 cmp r3, #0 - 8002ba8: d130 bne.n 8002c0c - { - /* Wait until TCR flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) - 8002baa: 697b ldr r3, [r7, #20] - 8002bac: 9300 str r3, [sp, #0] - 8002bae: 6abb ldr r3, [r7, #40] ; 0x28 - 8002bb0: 2200 movs r2, #0 - 8002bb2: 2180 movs r1, #128 ; 0x80 - 8002bb4: 68f8 ldr r0, [r7, #12] - 8002bb6: f000 fe50 bl 800385a - 8002bba: 4603 mov r3, r0 - 8002bbc: 2b00 cmp r3, #0 - 8002bbe: d001 beq.n 8002bc4 - { - return HAL_ERROR; - 8002bc0: 2301 movs r3, #1 - 8002bc2: e04d b.n 8002c60 - } - - if (hi2c->XferCount > MAX_NBYTE_SIZE) - 8002bc4: 68fb ldr r3, [r7, #12] - 8002bc6: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002bc8: b29b uxth r3, r3 - 8002bca: 2bff cmp r3, #255 ; 0xff - 8002bcc: d90e bls.n 8002bec - { - hi2c->XferSize = MAX_NBYTE_SIZE; - 8002bce: 68fb ldr r3, [r7, #12] - 8002bd0: 22ff movs r2, #255 ; 0xff - 8002bd2: 851a strh r2, [r3, #40] ; 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, - 8002bd4: 68fb ldr r3, [r7, #12] - 8002bd6: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002bd8: b2da uxtb r2, r3 - 8002bda: 8979 ldrh r1, [r7, #10] - 8002bdc: 2300 movs r3, #0 - 8002bde: 9300 str r3, [sp, #0] - 8002be0: f04f 7380 mov.w r3, #16777216 ; 0x1000000 - 8002be4: 68f8 ldr r0, [r7, #12] - 8002be6: f000 fff1 bl 8003bcc - 8002bea: e00f b.n 8002c0c - I2C_NO_STARTSTOP); - } - else - { - hi2c->XferSize = hi2c->XferCount; - 8002bec: 68fb ldr r3, [r7, #12] - 8002bee: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002bf0: b29a uxth r2, r3 - 8002bf2: 68fb ldr r3, [r7, #12] - 8002bf4: 851a strh r2, [r3, #40] ; 0x28 - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, - 8002bf6: 68fb ldr r3, [r7, #12] - 8002bf8: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002bfa: b2da uxtb r2, r3 - 8002bfc: 8979 ldrh r1, [r7, #10] - 8002bfe: 2300 movs r3, #0 - 8002c00: 9300 str r3, [sp, #0] - 8002c02: f04f 7300 mov.w r3, #33554432 ; 0x2000000 - 8002c06: 68f8 ldr r0, [r7, #12] - 8002c08: f000 ffe0 bl 8003bcc - I2C_NO_STARTSTOP); - } - } - } while (hi2c->XferCount > 0U); - 8002c0c: 68fb ldr r3, [r7, #12] - 8002c0e: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002c10: b29b uxth r3, r3 - 8002c12: 2b00 cmp r3, #0 - 8002c14: d19a bne.n 8002b4c - - /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ - /* Wait until STOPF flag is reset */ - if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 8002c16: 697a ldr r2, [r7, #20] - 8002c18: 6ab9 ldr r1, [r7, #40] ; 0x28 - 8002c1a: 68f8 ldr r0, [r7, #12] - 8002c1c: f000 feb3 bl 8003986 - 8002c20: 4603 mov r3, r0 - 8002c22: 2b00 cmp r3, #0 - 8002c24: d001 beq.n 8002c2a - { - return HAL_ERROR; - 8002c26: 2301 movs r3, #1 - 8002c28: e01a b.n 8002c60 - } - - /* Clear STOP Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 8002c2a: 68fb ldr r3, [r7, #12] - 8002c2c: 681b ldr r3, [r3, #0] - 8002c2e: 2220 movs r2, #32 - 8002c30: 61da str r2, [r3, #28] - - /* Clear Configuration Register 2 */ - I2C_RESET_CR2(hi2c); - 8002c32: 68fb ldr r3, [r7, #12] - 8002c34: 681b ldr r3, [r3, #0] - 8002c36: 6859 ldr r1, [r3, #4] - 8002c38: 68fb ldr r3, [r7, #12] - 8002c3a: 681a ldr r2, [r3, #0] - 8002c3c: 4b0b ldr r3, [pc, #44] ; (8002c6c ) - 8002c3e: 400b ands r3, r1 - 8002c40: 6053 str r3, [r2, #4] - - hi2c->State = HAL_I2C_STATE_READY; - 8002c42: 68fb ldr r3, [r7, #12] - 8002c44: 2220 movs r2, #32 - 8002c46: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 8002c4a: 68fb ldr r3, [r7, #12] - 8002c4c: 2200 movs r2, #0 - 8002c4e: f883 2042 strb.w r2, [r3, #66] ; 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8002c52: 68fb ldr r3, [r7, #12] - 8002c54: 2200 movs r2, #0 - 8002c56: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - return HAL_OK; - 8002c5a: 2300 movs r3, #0 - 8002c5c: e000 b.n 8002c60 - } - else - { - return HAL_BUSY; - 8002c5e: 2302 movs r3, #2 - } -} - 8002c60: 4618 mov r0, r3 - 8002c62: 3718 adds r7, #24 - 8002c64: 46bd mov sp, r7 - 8002c66: bd80 pop {r7, pc} - 8002c68: 80002400 .word 0x80002400 - 8002c6c: fe00e800 .word 0xfe00e800 - -08002c70 : - * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - * the configuration information for the specified I2C. - * @retval None - */ -void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */ -{ - 8002c70: b580 push {r7, lr} - 8002c72: b084 sub sp, #16 - 8002c74: af00 add r7, sp, #0 - 8002c76: 6078 str r0, [r7, #4] - /* Get current IT Flags and IT sources value */ - uint32_t itflags = READ_REG(hi2c->Instance->ISR); - 8002c78: 687b ldr r3, [r7, #4] - 8002c7a: 681b ldr r3, [r3, #0] - 8002c7c: 699b ldr r3, [r3, #24] - 8002c7e: 60fb str r3, [r7, #12] - uint32_t itsources = READ_REG(hi2c->Instance->CR1); - 8002c80: 687b ldr r3, [r7, #4] - 8002c82: 681b ldr r3, [r3, #0] - 8002c84: 681b ldr r3, [r3, #0] - 8002c86: 60bb str r3, [r7, #8] - - /* I2C events treatment -------------------------------------*/ - if (hi2c->XferISR != NULL) - 8002c88: 687b ldr r3, [r7, #4] - 8002c8a: 6b5b ldr r3, [r3, #52] ; 0x34 - 8002c8c: 2b00 cmp r3, #0 - 8002c8e: d005 beq.n 8002c9c - { - hi2c->XferISR(hi2c, itflags, itsources); - 8002c90: 687b ldr r3, [r7, #4] - 8002c92: 6b5b ldr r3, [r3, #52] ; 0x34 - 8002c94: 68ba ldr r2, [r7, #8] - 8002c96: 68f9 ldr r1, [r7, #12] - 8002c98: 6878 ldr r0, [r7, #4] - 8002c9a: 4798 blx r3 - } -} - 8002c9c: bf00 nop - 8002c9e: 3710 adds r7, #16 - 8002ca0: 46bd mov sp, r7 - 8002ca2: bd80 pop {r7, pc} - -08002ca4 : - * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - * the configuration information for the specified I2C. - * @retval None - */ -void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) -{ - 8002ca4: b580 push {r7, lr} - 8002ca6: b086 sub sp, #24 - 8002ca8: af00 add r7, sp, #0 - 8002caa: 6078 str r0, [r7, #4] - uint32_t itflags = READ_REG(hi2c->Instance->ISR); - 8002cac: 687b ldr r3, [r7, #4] - 8002cae: 681b ldr r3, [r3, #0] - 8002cb0: 699b ldr r3, [r3, #24] - 8002cb2: 617b str r3, [r7, #20] - uint32_t itsources = READ_REG(hi2c->Instance->CR1); - 8002cb4: 687b ldr r3, [r7, #4] - 8002cb6: 681b ldr r3, [r3, #0] - 8002cb8: 681b ldr r3, [r3, #0] - 8002cba: 613b str r3, [r7, #16] - uint32_t tmperror; - - /* I2C Bus error interrupt occurred ------------------------------------*/ - if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ - 8002cbc: 697b ldr r3, [r7, #20] - 8002cbe: f403 7380 and.w r3, r3, #256 ; 0x100 - 8002cc2: 2b00 cmp r3, #0 - 8002cc4: d00f beq.n 8002ce6 - (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) - 8002cc6: 693b ldr r3, [r7, #16] - 8002cc8: f003 0380 and.w r3, r3, #128 ; 0x80 - if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ - 8002ccc: 2b00 cmp r3, #0 - 8002cce: d00a beq.n 8002ce6 - { - hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; - 8002cd0: 687b ldr r3, [r7, #4] - 8002cd2: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002cd4: f043 0201 orr.w r2, r3, #1 - 8002cd8: 687b ldr r3, [r7, #4] - 8002cda: 645a str r2, [r3, #68] ; 0x44 - - /* Clear BERR flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); - 8002cdc: 687b ldr r3, [r7, #4] - 8002cde: 681b ldr r3, [r3, #0] - 8002ce0: f44f 7280 mov.w r2, #256 ; 0x100 - 8002ce4: 61da str r2, [r3, #28] - } - - /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ - if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ - 8002ce6: 697b ldr r3, [r7, #20] - 8002ce8: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8002cec: 2b00 cmp r3, #0 - 8002cee: d00f beq.n 8002d10 - (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) - 8002cf0: 693b ldr r3, [r7, #16] - 8002cf2: f003 0380 and.w r3, r3, #128 ; 0x80 - if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ - 8002cf6: 2b00 cmp r3, #0 - 8002cf8: d00a beq.n 8002d10 - { - hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; - 8002cfa: 687b ldr r3, [r7, #4] - 8002cfc: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002cfe: f043 0208 orr.w r2, r3, #8 - 8002d02: 687b ldr r3, [r7, #4] - 8002d04: 645a str r2, [r3, #68] ; 0x44 - - /* Clear OVR flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); - 8002d06: 687b ldr r3, [r7, #4] - 8002d08: 681b ldr r3, [r3, #0] - 8002d0a: f44f 6280 mov.w r2, #1024 ; 0x400 - 8002d0e: 61da str r2, [r3, #28] - } - - /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ - if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ - 8002d10: 697b ldr r3, [r7, #20] - 8002d12: f403 7300 and.w r3, r3, #512 ; 0x200 - 8002d16: 2b00 cmp r3, #0 - 8002d18: d00f beq.n 8002d3a - (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) - 8002d1a: 693b ldr r3, [r7, #16] - 8002d1c: f003 0380 and.w r3, r3, #128 ; 0x80 - if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ - 8002d20: 2b00 cmp r3, #0 - 8002d22: d00a beq.n 8002d3a - { - hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; - 8002d24: 687b ldr r3, [r7, #4] - 8002d26: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002d28: f043 0202 orr.w r2, r3, #2 - 8002d2c: 687b ldr r3, [r7, #4] - 8002d2e: 645a str r2, [r3, #68] ; 0x44 - - /* Clear ARLO flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); - 8002d30: 687b ldr r3, [r7, #4] - 8002d32: 681b ldr r3, [r3, #0] - 8002d34: f44f 7200 mov.w r2, #512 ; 0x200 - 8002d38: 61da str r2, [r3, #28] - } - - /* Store current volatile hi2c->ErrorCode, misra rule */ - tmperror = hi2c->ErrorCode; - 8002d3a: 687b ldr r3, [r7, #4] - 8002d3c: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002d3e: 60fb str r3, [r7, #12] - - /* Call the Error Callback in case of Error detected */ - if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_NONE) - 8002d40: 68fb ldr r3, [r7, #12] - 8002d42: f003 030b and.w r3, r3, #11 - 8002d46: 2b00 cmp r3, #0 - 8002d48: d003 beq.n 8002d52 - { - I2C_ITError(hi2c, tmperror); - 8002d4a: 68f9 ldr r1, [r7, #12] - 8002d4c: 6878 ldr r0, [r7, #4] - 8002d4e: f000 fc2b bl 80035a8 - } -} - 8002d52: bf00 nop - 8002d54: 3718 adds r7, #24 - 8002d56: 46bd mov sp, r7 - 8002d58: bd80 pop {r7, pc} - -08002d5a : - * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - * the configuration information for the specified I2C. - * @retval None - */ -__weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) -{ - 8002d5a: b480 push {r7} - 8002d5c: b083 sub sp, #12 - 8002d5e: af00 add r7, sp, #0 - 8002d60: 6078 str r0, [r7, #4] - UNUSED(hi2c); - - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file - */ -} - 8002d62: bf00 nop - 8002d64: 370c adds r7, #12 - 8002d66: 46bd mov sp, r7 - 8002d68: f85d 7b04 ldr.w r7, [sp], #4 - 8002d6c: 4770 bx lr - -08002d6e : - * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - * the configuration information for the specified I2C. - * @retval None - */ -__weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) -{ - 8002d6e: b480 push {r7} - 8002d70: b083 sub sp, #12 - 8002d72: af00 add r7, sp, #0 - 8002d74: 6078 str r0, [r7, #4] - UNUSED(hi2c); - - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file - */ -} - 8002d76: bf00 nop - 8002d78: 370c adds r7, #12 - 8002d7a: 46bd mov sp, r7 - 8002d7c: f85d 7b04 ldr.w r7, [sp], #4 - 8002d80: 4770 bx lr - -08002d82 : - * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFERDIRECTION - * @param AddrMatchCode Address Match Code - * @retval None - */ -__weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode) -{ - 8002d82: b480 push {r7} - 8002d84: b083 sub sp, #12 - 8002d86: af00 add r7, sp, #0 - 8002d88: 6078 str r0, [r7, #4] - 8002d8a: 460b mov r3, r1 - 8002d8c: 70fb strb r3, [r7, #3] - 8002d8e: 4613 mov r3, r2 - 8002d90: 803b strh r3, [r7, #0] - UNUSED(AddrMatchCode); - - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_I2C_AddrCallback() could be implemented in the user file - */ -} - 8002d92: bf00 nop - 8002d94: 370c adds r7, #12 - 8002d96: 46bd mov sp, r7 - 8002d98: f85d 7b04 ldr.w r7, [sp], #4 - 8002d9c: 4770 bx lr - -08002d9e : - * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - * the configuration information for the specified I2C. - * @retval None - */ -__weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) -{ - 8002d9e: b480 push {r7} - 8002da0: b083 sub sp, #12 - 8002da2: af00 add r7, sp, #0 - 8002da4: 6078 str r0, [r7, #4] - UNUSED(hi2c); - - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_I2C_ListenCpltCallback() could be implemented in the user file - */ -} - 8002da6: bf00 nop - 8002da8: 370c adds r7, #12 - 8002daa: 46bd mov sp, r7 - 8002dac: f85d 7b04 ldr.w r7, [sp], #4 - 8002db0: 4770 bx lr - -08002db2 : - * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - * the configuration information for the specified I2C. - * @retval None - */ -__weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) -{ - 8002db2: b480 push {r7} - 8002db4: b083 sub sp, #12 - 8002db6: af00 add r7, sp, #0 - 8002db8: 6078 str r0, [r7, #4] - UNUSED(hi2c); - - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_I2C_ErrorCallback could be implemented in the user file - */ -} - 8002dba: bf00 nop - 8002dbc: 370c adds r7, #12 - 8002dbe: 46bd mov sp, r7 - 8002dc0: f85d 7b04 ldr.w r7, [sp], #4 - 8002dc4: 4770 bx lr - -08002dc6 : - * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - * the configuration information for the specified I2C. - * @retval None - */ -__weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) -{ - 8002dc6: b480 push {r7} - 8002dc8: b083 sub sp, #12 - 8002dca: af00 add r7, sp, #0 - 8002dcc: 6078 str r0, [r7, #4] - UNUSED(hi2c); - - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_I2C_AbortCpltCallback could be implemented in the user file - */ -} - 8002dce: bf00 nop - 8002dd0: 370c adds r7, #12 - 8002dd2: 46bd mov sp, r7 - 8002dd4: f85d 7b04 ldr.w r7, [sp], #4 - 8002dd8: 4770 bx lr - -08002dda : - * @param ITSources Interrupt sources enabled. - * @retval HAL status - */ -static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, - uint32_t ITSources) -{ - 8002dda: b580 push {r7, lr} - 8002ddc: b086 sub sp, #24 - 8002dde: af00 add r7, sp, #0 - 8002de0: 60f8 str r0, [r7, #12] - 8002de2: 60b9 str r1, [r7, #8] - 8002de4: 607a str r2, [r7, #4] - uint32_t tmpoptions = hi2c->XferOptions; - 8002de6: 68fb ldr r3, [r7, #12] - 8002de8: 6adb ldr r3, [r3, #44] ; 0x2c - 8002dea: 617b str r3, [r7, #20] - uint32_t tmpITFlags = ITFlags; - 8002dec: 68bb ldr r3, [r7, #8] - 8002dee: 613b str r3, [r7, #16] - - /* Process locked */ - __HAL_LOCK(hi2c); - 8002df0: 68fb ldr r3, [r7, #12] - 8002df2: f893 3040 ldrb.w r3, [r3, #64] ; 0x40 - 8002df6: 2b01 cmp r3, #1 - 8002df8: d101 bne.n 8002dfe - 8002dfa: 2302 movs r3, #2 - 8002dfc: e0e1 b.n 8002fc2 - 8002dfe: 68fb ldr r3, [r7, #12] - 8002e00: 2201 movs r2, #1 - 8002e02: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - /* Check if STOPF is set */ - if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ - 8002e06: 693b ldr r3, [r7, #16] - 8002e08: f003 0320 and.w r3, r3, #32 - 8002e0c: 2b00 cmp r3, #0 - 8002e0e: d008 beq.n 8002e22 - (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) - 8002e10: 687b ldr r3, [r7, #4] - 8002e12: f003 0320 and.w r3, r3, #32 - if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ - 8002e16: 2b00 cmp r3, #0 - 8002e18: d003 beq.n 8002e22 - { - /* Call I2C Slave complete process */ - I2C_ITSlaveCplt(hi2c, tmpITFlags); - 8002e1a: 6939 ldr r1, [r7, #16] - 8002e1c: 68f8 ldr r0, [r7, #12] - 8002e1e: f000 fa5d bl 80032dc - } - - if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ - 8002e22: 693b ldr r3, [r7, #16] - 8002e24: f003 0310 and.w r3, r3, #16 - 8002e28: 2b00 cmp r3, #0 - 8002e2a: d04b beq.n 8002ec4 - (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) - 8002e2c: 687b ldr r3, [r7, #4] - 8002e2e: f003 0310 and.w r3, r3, #16 - if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ - 8002e32: 2b00 cmp r3, #0 - 8002e34: d046 beq.n 8002ec4 - { - /* Check that I2C transfer finished */ - /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ - /* Mean XferCount == 0*/ - /* So clear Flag NACKF only */ - if (hi2c->XferCount == 0U) - 8002e36: 68fb ldr r3, [r7, #12] - 8002e38: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002e3a: b29b uxth r3, r3 - 8002e3c: 2b00 cmp r3, #0 - 8002e3e: d128 bne.n 8002e92 - { - if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) - 8002e40: 68fb ldr r3, [r7, #12] - 8002e42: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8002e46: b2db uxtb r3, r3 - 8002e48: 2b28 cmp r3, #40 ; 0x28 - 8002e4a: d108 bne.n 8002e5e - 8002e4c: 697b ldr r3, [r7, #20] - 8002e4e: f1b3 7f00 cmp.w r3, #33554432 ; 0x2000000 - 8002e52: d104 bne.n 8002e5e - /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for - Warning[Pa134]: left and right operands are identical */ - { - /* Call I2C Listen complete process */ - I2C_ITListenCplt(hi2c, tmpITFlags); - 8002e54: 6939 ldr r1, [r7, #16] - 8002e56: 68f8 ldr r0, [r7, #12] - 8002e58: f000 fb52 bl 8003500 - 8002e5c: e031 b.n 8002ec2 - } - else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)) - 8002e5e: 68fb ldr r3, [r7, #12] - 8002e60: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8002e64: b2db uxtb r3, r3 - 8002e66: 2b29 cmp r3, #41 ; 0x29 - 8002e68: d10e bne.n 8002e88 - 8002e6a: 697b ldr r3, [r7, #20] - 8002e6c: f513 3f80 cmn.w r3, #65536 ; 0x10000 - 8002e70: d00a beq.n 8002e88 - { - /* Clear NACK Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 8002e72: 68fb ldr r3, [r7, #12] - 8002e74: 681b ldr r3, [r3, #0] - 8002e76: 2210 movs r2, #16 - 8002e78: 61da str r2, [r3, #28] - - /* Flush TX register */ - I2C_Flush_TXDR(hi2c); - 8002e7a: 68f8 ldr r0, [r7, #12] - 8002e7c: f000 fcab bl 80037d6 - - /* Last Byte is Transmitted */ - /* Call I2C Slave Sequential complete process */ - I2C_ITSlaveSeqCplt(hi2c); - 8002e80: 68f8 ldr r0, [r7, #12] - 8002e82: f000 f9cf bl 8003224 - 8002e86: e01c b.n 8002ec2 - } - else - { - /* Clear NACK Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 8002e88: 68fb ldr r3, [r7, #12] - 8002e8a: 681b ldr r3, [r3, #0] - 8002e8c: 2210 movs r2, #16 - 8002e8e: 61da str r2, [r3, #28] - if (hi2c->XferCount == 0U) - 8002e90: e08f b.n 8002fb2 - } - else - { - /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ - /* Clear NACK Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 8002e92: 68fb ldr r3, [r7, #12] - 8002e94: 681b ldr r3, [r3, #0] - 8002e96: 2210 movs r2, #16 - 8002e98: 61da str r2, [r3, #28] - - /* Set ErrorCode corresponding to a Non-Acknowledge */ - hi2c->ErrorCode |= HAL_I2C_ERROR_AF; - 8002e9a: 68fb ldr r3, [r7, #12] - 8002e9c: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002e9e: f043 0204 orr.w r2, r3, #4 - 8002ea2: 68fb ldr r3, [r7, #12] - 8002ea4: 645a str r2, [r3, #68] ; 0x44 - - if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) - 8002ea6: 697b ldr r3, [r7, #20] - 8002ea8: 2b00 cmp r3, #0 - 8002eaa: d003 beq.n 8002eb4 - 8002eac: 697b ldr r3, [r7, #20] - 8002eae: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 - 8002eb2: d17e bne.n 8002fb2 - { - /* Call the corresponding callback to inform upper layer of End of Transfer */ - I2C_ITError(hi2c, hi2c->ErrorCode); - 8002eb4: 68fb ldr r3, [r7, #12] - 8002eb6: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002eb8: 4619 mov r1, r3 - 8002eba: 68f8 ldr r0, [r7, #12] - 8002ebc: f000 fb74 bl 80035a8 - if (hi2c->XferCount == 0U) - 8002ec0: e077 b.n 8002fb2 - 8002ec2: e076 b.n 8002fb2 - } - } - } - else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ - 8002ec4: 693b ldr r3, [r7, #16] - 8002ec6: f003 0304 and.w r3, r3, #4 - 8002eca: 2b00 cmp r3, #0 - 8002ecc: d02f beq.n 8002f2e - (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) - 8002ece: 687b ldr r3, [r7, #4] - 8002ed0: f003 0304 and.w r3, r3, #4 - else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ - 8002ed4: 2b00 cmp r3, #0 - 8002ed6: d02a beq.n 8002f2e - { - if (hi2c->XferCount > 0U) - 8002ed8: 68fb ldr r3, [r7, #12] - 8002eda: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002edc: b29b uxth r3, r3 - 8002ede: 2b00 cmp r3, #0 - 8002ee0: d018 beq.n 8002f14 - { - /* Read data from RXDR */ - *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; - 8002ee2: 68fb ldr r3, [r7, #12] - 8002ee4: 681b ldr r3, [r3, #0] - 8002ee6: 6a5a ldr r2, [r3, #36] ; 0x24 - 8002ee8: 68fb ldr r3, [r7, #12] - 8002eea: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002eec: b2d2 uxtb r2, r2 - 8002eee: 701a strb r2, [r3, #0] - - /* Increment Buffer pointer */ - hi2c->pBuffPtr++; - 8002ef0: 68fb ldr r3, [r7, #12] - 8002ef2: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002ef4: 1c5a adds r2, r3, #1 - 8002ef6: 68fb ldr r3, [r7, #12] - 8002ef8: 625a str r2, [r3, #36] ; 0x24 - - hi2c->XferSize--; - 8002efa: 68fb ldr r3, [r7, #12] - 8002efc: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002efe: 3b01 subs r3, #1 - 8002f00: b29a uxth r2, r3 - 8002f02: 68fb ldr r3, [r7, #12] - 8002f04: 851a strh r2, [r3, #40] ; 0x28 - hi2c->XferCount--; - 8002f06: 68fb ldr r3, [r7, #12] - 8002f08: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002f0a: b29b uxth r3, r3 - 8002f0c: 3b01 subs r3, #1 - 8002f0e: b29a uxth r2, r3 - 8002f10: 68fb ldr r3, [r7, #12] - 8002f12: 855a strh r2, [r3, #42] ; 0x2a - } - - if ((hi2c->XferCount == 0U) && \ - 8002f14: 68fb ldr r3, [r7, #12] - 8002f16: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002f18: b29b uxth r3, r3 - 8002f1a: 2b00 cmp r3, #0 - 8002f1c: d14b bne.n 8002fb6 - 8002f1e: 697b ldr r3, [r7, #20] - 8002f20: f513 3f80 cmn.w r3, #65536 ; 0x10000 - 8002f24: d047 beq.n 8002fb6 - (tmpoptions != I2C_NO_OPTION_FRAME)) - { - /* Call I2C Slave Sequential complete process */ - I2C_ITSlaveSeqCplt(hi2c); - 8002f26: 68f8 ldr r0, [r7, #12] - 8002f28: f000 f97c bl 8003224 - if ((hi2c->XferCount == 0U) && \ - 8002f2c: e043 b.n 8002fb6 - } - } - else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ - 8002f2e: 693b ldr r3, [r7, #16] - 8002f30: f003 0308 and.w r3, r3, #8 - 8002f34: 2b00 cmp r3, #0 - 8002f36: d009 beq.n 8002f4c - (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) - 8002f38: 687b ldr r3, [r7, #4] - 8002f3a: f003 0308 and.w r3, r3, #8 - else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ - 8002f3e: 2b00 cmp r3, #0 - 8002f40: d004 beq.n 8002f4c - { - I2C_ITAddrCplt(hi2c, tmpITFlags); - 8002f42: 6939 ldr r1, [r7, #16] - 8002f44: 68f8 ldr r0, [r7, #12] - 8002f46: f000 f8e9 bl 800311c - 8002f4a: e035 b.n 8002fb8 - } - else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ - 8002f4c: 693b ldr r3, [r7, #16] - 8002f4e: f003 0302 and.w r3, r3, #2 - 8002f52: 2b00 cmp r3, #0 - 8002f54: d030 beq.n 8002fb8 - (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) - 8002f56: 687b ldr r3, [r7, #4] - 8002f58: f003 0302 and.w r3, r3, #2 - else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ - 8002f5c: 2b00 cmp r3, #0 - 8002f5e: d02b beq.n 8002fb8 - { - /* Write data to TXDR only if XferCount not reach "0" */ - /* A TXIS flag can be set, during STOP treatment */ - /* Check if all Data have already been sent */ - /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ - if (hi2c->XferCount > 0U) - 8002f60: 68fb ldr r3, [r7, #12] - 8002f62: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002f64: b29b uxth r3, r3 - 8002f66: 2b00 cmp r3, #0 - 8002f68: d018 beq.n 8002f9c - { - /* Write data to TXDR */ - hi2c->Instance->TXDR = *hi2c->pBuffPtr; - 8002f6a: 68fb ldr r3, [r7, #12] - 8002f6c: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002f6e: 781a ldrb r2, [r3, #0] - 8002f70: 68fb ldr r3, [r7, #12] - 8002f72: 681b ldr r3, [r3, #0] - 8002f74: 629a str r2, [r3, #40] ; 0x28 - - /* Increment Buffer pointer */ - hi2c->pBuffPtr++; - 8002f76: 68fb ldr r3, [r7, #12] - 8002f78: 6a5b ldr r3, [r3, #36] ; 0x24 - 8002f7a: 1c5a adds r2, r3, #1 - 8002f7c: 68fb ldr r3, [r7, #12] - 8002f7e: 625a str r2, [r3, #36] ; 0x24 - - hi2c->XferCount--; - 8002f80: 68fb ldr r3, [r7, #12] - 8002f82: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8002f84: b29b uxth r3, r3 - 8002f86: 3b01 subs r3, #1 - 8002f88: b29a uxth r2, r3 - 8002f8a: 68fb ldr r3, [r7, #12] - 8002f8c: 855a strh r2, [r3, #42] ; 0x2a - hi2c->XferSize--; - 8002f8e: 68fb ldr r3, [r7, #12] - 8002f90: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8002f92: 3b01 subs r3, #1 - 8002f94: b29a uxth r2, r3 - 8002f96: 68fb ldr r3, [r7, #12] - 8002f98: 851a strh r2, [r3, #40] ; 0x28 - 8002f9a: e00d b.n 8002fb8 - } - else - { - if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) - 8002f9c: 697b ldr r3, [r7, #20] - 8002f9e: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 - 8002fa2: d002 beq.n 8002faa - 8002fa4: 697b ldr r3, [r7, #20] - 8002fa6: 2b00 cmp r3, #0 - 8002fa8: d106 bne.n 8002fb8 - { - /* Last Byte is Transmitted */ - /* Call I2C Slave Sequential complete process */ - I2C_ITSlaveSeqCplt(hi2c); - 8002faa: 68f8 ldr r0, [r7, #12] - 8002fac: f000 f93a bl 8003224 - 8002fb0: e002 b.n 8002fb8 - if (hi2c->XferCount == 0U) - 8002fb2: bf00 nop - 8002fb4: e000 b.n 8002fb8 - if ((hi2c->XferCount == 0U) && \ - 8002fb6: bf00 nop - { - /* Nothing to do */ - } - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8002fb8: 68fb ldr r3, [r7, #12] - 8002fba: 2200 movs r2, #0 - 8002fbc: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - return HAL_OK; - 8002fc0: 2300 movs r3, #0 -} - 8002fc2: 4618 mov r0, r3 - 8002fc4: 3718 adds r7, #24 - 8002fc6: 46bd mov sp, r7 - 8002fc8: bd80 pop {r7, pc} - ... - -08002fcc : - * @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) -{ - 8002fcc: b580 push {r7, lr} - 8002fce: b086 sub sp, #24 - 8002fd0: af02 add r7, sp, #8 - 8002fd2: 60f8 str r0, [r7, #12] - 8002fd4: 4608 mov r0, r1 - 8002fd6: 4611 mov r1, r2 - 8002fd8: 461a mov r2, r3 - 8002fda: 4603 mov r3, r0 - 8002fdc: 817b strh r3, [r7, #10] - 8002fde: 460b mov r3, r1 - 8002fe0: 813b strh r3, [r7, #8] - 8002fe2: 4613 mov r3, r2 - 8002fe4: 80fb strh r3, [r7, #6] - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRITE); - 8002fe6: 88fb ldrh r3, [r7, #6] - 8002fe8: b2da uxtb r2, r3 - 8002fea: 8979 ldrh r1, [r7, #10] - 8002fec: 4b20 ldr r3, [pc, #128] ; (8003070 ) - 8002fee: 9300 str r3, [sp, #0] - 8002ff0: f04f 7380 mov.w r3, #16777216 ; 0x1000000 - 8002ff4: 68f8 ldr r0, [r7, #12] - 8002ff6: f000 fde9 bl 8003bcc - - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 8002ffa: 69fa ldr r2, [r7, #28] - 8002ffc: 69b9 ldr r1, [r7, #24] - 8002ffe: 68f8 ldr r0, [r7, #12] - 8003000: f000 fc7a bl 80038f8 - 8003004: 4603 mov r3, r0 - 8003006: 2b00 cmp r3, #0 - 8003008: d001 beq.n 800300e - { - return HAL_ERROR; - 800300a: 2301 movs r3, #1 - 800300c: e02c b.n 8003068 - } - - /* If Memory address size is 8Bit */ - if (MemAddSize == I2C_MEMADD_SIZE_8BIT) - 800300e: 88fb ldrh r3, [r7, #6] - 8003010: 2b01 cmp r3, #1 - 8003012: d105 bne.n 8003020 - { - /* Send Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); - 8003014: 893b ldrh r3, [r7, #8] - 8003016: b2da uxtb r2, r3 - 8003018: 68fb ldr r3, [r7, #12] - 800301a: 681b ldr r3, [r3, #0] - 800301c: 629a str r2, [r3, #40] ; 0x28 - 800301e: e015 b.n 800304c - } - /* If Memory address size is 16Bit */ - else - { - /* Send MSB of Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); - 8003020: 893b ldrh r3, [r7, #8] - 8003022: 0a1b lsrs r3, r3, #8 - 8003024: b29b uxth r3, r3 - 8003026: b2da uxtb r2, r3 - 8003028: 68fb ldr r3, [r7, #12] - 800302a: 681b ldr r3, [r3, #0] - 800302c: 629a str r2, [r3, #40] ; 0x28 - - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 800302e: 69fa ldr r2, [r7, #28] - 8003030: 69b9 ldr r1, [r7, #24] - 8003032: 68f8 ldr r0, [r7, #12] - 8003034: f000 fc60 bl 80038f8 - 8003038: 4603 mov r3, r0 - 800303a: 2b00 cmp r3, #0 - 800303c: d001 beq.n 8003042 - { - return HAL_ERROR; - 800303e: 2301 movs r3, #1 - 8003040: e012 b.n 8003068 - } - - /* Send LSB of Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); - 8003042: 893b ldrh r3, [r7, #8] - 8003044: b2da uxtb r2, r3 - 8003046: 68fb ldr r3, [r7, #12] - 8003048: 681b ldr r3, [r3, #0] - 800304a: 629a str r2, [r3, #40] ; 0x28 - } - - /* Wait until TCR flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) - 800304c: 69fb ldr r3, [r7, #28] - 800304e: 9300 str r3, [sp, #0] - 8003050: 69bb ldr r3, [r7, #24] - 8003052: 2200 movs r2, #0 - 8003054: 2180 movs r1, #128 ; 0x80 - 8003056: 68f8 ldr r0, [r7, #12] - 8003058: f000 fbff bl 800385a - 800305c: 4603 mov r3, r0 - 800305e: 2b00 cmp r3, #0 - 8003060: d001 beq.n 8003066 - { - return HAL_ERROR; - 8003062: 2301 movs r3, #1 - 8003064: e000 b.n 8003068 - } - - return HAL_OK; - 8003066: 2300 movs r3, #0 -} - 8003068: 4618 mov r0, r3 - 800306a: 3710 adds r7, #16 - 800306c: 46bd mov sp, r7 - 800306e: bd80 pop {r7, pc} - 8003070: 80002000 .word 0x80002000 - -08003074 : - * @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) -{ - 8003074: b580 push {r7, lr} - 8003076: b086 sub sp, #24 - 8003078: af02 add r7, sp, #8 - 800307a: 60f8 str r0, [r7, #12] - 800307c: 4608 mov r0, r1 - 800307e: 4611 mov r1, r2 - 8003080: 461a mov r2, r3 - 8003082: 4603 mov r3, r0 - 8003084: 817b strh r3, [r7, #10] - 8003086: 460b mov r3, r1 - 8003088: 813b strh r3, [r7, #8] - 800308a: 4613 mov r3, r2 - 800308c: 80fb strh r3, [r7, #6] - I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE); - 800308e: 88fb ldrh r3, [r7, #6] - 8003090: b2da uxtb r2, r3 - 8003092: 8979 ldrh r1, [r7, #10] - 8003094: 4b20 ldr r3, [pc, #128] ; (8003118 ) - 8003096: 9300 str r3, [sp, #0] - 8003098: 2300 movs r3, #0 - 800309a: 68f8 ldr r0, [r7, #12] - 800309c: f000 fd96 bl 8003bcc - - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 80030a0: 69fa ldr r2, [r7, #28] - 80030a2: 69b9 ldr r1, [r7, #24] - 80030a4: 68f8 ldr r0, [r7, #12] - 80030a6: f000 fc27 bl 80038f8 - 80030aa: 4603 mov r3, r0 - 80030ac: 2b00 cmp r3, #0 - 80030ae: d001 beq.n 80030b4 - { - return HAL_ERROR; - 80030b0: 2301 movs r3, #1 - 80030b2: e02c b.n 800310e - } - - /* If Memory address size is 8Bit */ - if (MemAddSize == I2C_MEMADD_SIZE_8BIT) - 80030b4: 88fb ldrh r3, [r7, #6] - 80030b6: 2b01 cmp r3, #1 - 80030b8: d105 bne.n 80030c6 - { - /* Send Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); - 80030ba: 893b ldrh r3, [r7, #8] - 80030bc: b2da uxtb r2, r3 - 80030be: 68fb ldr r3, [r7, #12] - 80030c0: 681b ldr r3, [r3, #0] - 80030c2: 629a str r2, [r3, #40] ; 0x28 - 80030c4: e015 b.n 80030f2 - } - /* If Memory address size is 16Bit */ - else - { - /* Send MSB of Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); - 80030c6: 893b ldrh r3, [r7, #8] - 80030c8: 0a1b lsrs r3, r3, #8 - 80030ca: b29b uxth r3, r3 - 80030cc: b2da uxtb r2, r3 - 80030ce: 68fb ldr r3, [r7, #12] - 80030d0: 681b ldr r3, [r3, #0] - 80030d2: 629a str r2, [r3, #40] ; 0x28 - - /* Wait until TXIS flag is set */ - if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) - 80030d4: 69fa ldr r2, [r7, #28] - 80030d6: 69b9 ldr r1, [r7, #24] - 80030d8: 68f8 ldr r0, [r7, #12] - 80030da: f000 fc0d bl 80038f8 - 80030de: 4603 mov r3, r0 - 80030e0: 2b00 cmp r3, #0 - 80030e2: d001 beq.n 80030e8 - { - return HAL_ERROR; - 80030e4: 2301 movs r3, #1 - 80030e6: e012 b.n 800310e - } - - /* Send LSB of Memory Address */ - hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); - 80030e8: 893b ldrh r3, [r7, #8] - 80030ea: b2da uxtb r2, r3 - 80030ec: 68fb ldr r3, [r7, #12] - 80030ee: 681b ldr r3, [r3, #0] - 80030f0: 629a str r2, [r3, #40] ; 0x28 - } - - /* Wait until TC flag is set */ - if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) - 80030f2: 69fb ldr r3, [r7, #28] - 80030f4: 9300 str r3, [sp, #0] - 80030f6: 69bb ldr r3, [r7, #24] - 80030f8: 2200 movs r2, #0 - 80030fa: 2140 movs r1, #64 ; 0x40 - 80030fc: 68f8 ldr r0, [r7, #12] - 80030fe: f000 fbac bl 800385a - 8003102: 4603 mov r3, r0 - 8003104: 2b00 cmp r3, #0 - 8003106: d001 beq.n 800310c - { - return HAL_ERROR; - 8003108: 2301 movs r3, #1 - 800310a: e000 b.n 800310e - } - - return HAL_OK; - 800310c: 2300 movs r3, #0 -} - 800310e: 4618 mov r0, r3 - 8003110: 3710 adds r7, #16 - 8003112: 46bd mov sp, r7 - 8003114: bd80 pop {r7, pc} - 8003116: bf00 nop - 8003118: 80002000 .word 0x80002000 - -0800311c : - * @param hi2c I2C handle. - * @param ITFlags Interrupt flags to handle. - * @retval None - */ -static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) -{ - 800311c: b580 push {r7, lr} - 800311e: b084 sub sp, #16 - 8003120: af00 add r7, sp, #0 - 8003122: 6078 str r0, [r7, #4] - 8003124: 6039 str r1, [r7, #0] - - /* Prevent unused argument(s) compilation warning */ - UNUSED(ITFlags); - - /* In case of Listen state, need to inform upper layer of address match code event */ - if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) - 8003126: 687b ldr r3, [r7, #4] - 8003128: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 800312c: b2db uxtb r3, r3 - 800312e: f003 0328 and.w r3, r3, #40 ; 0x28 - 8003132: 2b28 cmp r3, #40 ; 0x28 - 8003134: d16a bne.n 800320c - { - transferdirection = I2C_GET_DIR(hi2c); - 8003136: 687b ldr r3, [r7, #4] - 8003138: 681b ldr r3, [r3, #0] - 800313a: 699b ldr r3, [r3, #24] - 800313c: 0c1b lsrs r3, r3, #16 - 800313e: b2db uxtb r3, r3 - 8003140: f003 0301 and.w r3, r3, #1 - 8003144: 73fb strb r3, [r7, #15] - slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); - 8003146: 687b ldr r3, [r7, #4] - 8003148: 681b ldr r3, [r3, #0] - 800314a: 699b ldr r3, [r3, #24] - 800314c: 0c1b lsrs r3, r3, #16 - 800314e: b29b uxth r3, r3 - 8003150: f003 03fe and.w r3, r3, #254 ; 0xfe - 8003154: 81bb strh r3, [r7, #12] - ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); - 8003156: 687b ldr r3, [r7, #4] - 8003158: 681b ldr r3, [r3, #0] - 800315a: 689b ldr r3, [r3, #8] - 800315c: b29b uxth r3, r3 - 800315e: f3c3 0309 ubfx r3, r3, #0, #10 - 8003162: 817b strh r3, [r7, #10] - ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); - 8003164: 687b ldr r3, [r7, #4] - 8003166: 681b ldr r3, [r3, #0] - 8003168: 68db ldr r3, [r3, #12] - 800316a: b29b uxth r3, r3 - 800316c: f003 03fe and.w r3, r3, #254 ; 0xfe - 8003170: 813b strh r3, [r7, #8] - - /* If 10bits addressing mode is selected */ - if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) - 8003172: 687b ldr r3, [r7, #4] - 8003174: 68db ldr r3, [r3, #12] - 8003176: 2b02 cmp r3, #2 - 8003178: d138 bne.n 80031ec - { - if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) - 800317a: 897b ldrh r3, [r7, #10] - 800317c: 09db lsrs r3, r3, #7 - 800317e: b29a uxth r2, r3 - 8003180: 89bb ldrh r3, [r7, #12] - 8003182: 4053 eors r3, r2 - 8003184: b29b uxth r3, r3 - 8003186: f003 0306 and.w r3, r3, #6 - 800318a: 2b00 cmp r3, #0 - 800318c: d11c bne.n 80031c8 - { - slaveaddrcode = ownadd1code; - 800318e: 897b ldrh r3, [r7, #10] - 8003190: 81bb strh r3, [r7, #12] - hi2c->AddrEventCount++; - 8003192: 687b ldr r3, [r7, #4] - 8003194: 6c9b ldr r3, [r3, #72] ; 0x48 - 8003196: 1c5a adds r2, r3, #1 - 8003198: 687b ldr r3, [r7, #4] - 800319a: 649a str r2, [r3, #72] ; 0x48 - if (hi2c->AddrEventCount == 2U) - 800319c: 687b ldr r3, [r7, #4] - 800319e: 6c9b ldr r3, [r3, #72] ; 0x48 - 80031a0: 2b02 cmp r3, #2 - 80031a2: d13b bne.n 800321c - { - /* Reset Address Event counter */ - hi2c->AddrEventCount = 0U; - 80031a4: 687b ldr r3, [r7, #4] - 80031a6: 2200 movs r2, #0 - 80031a8: 649a str r2, [r3, #72] ; 0x48 - - /* Clear ADDR flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); - 80031aa: 687b ldr r3, [r7, #4] - 80031ac: 681b ldr r3, [r3, #0] - 80031ae: 2208 movs r2, #8 - 80031b0: 61da str r2, [r3, #28] - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 80031b2: 687b ldr r3, [r7, #4] - 80031b4: 2200 movs r2, #0 - 80031b6: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - /* Call Slave Addr callback */ -#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) - hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); -#else - HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); - 80031ba: 89ba ldrh r2, [r7, #12] - 80031bc: 7bfb ldrb r3, [r7, #15] - 80031be: 4619 mov r1, r3 - 80031c0: 6878 ldr r0, [r7, #4] - 80031c2: f7ff fdde bl 8002d82 - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - } -} - 80031c6: e029 b.n 800321c - slaveaddrcode = ownadd2code; - 80031c8: 893b ldrh r3, [r7, #8] - 80031ca: 81bb strh r3, [r7, #12] - I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); - 80031cc: f44f 4100 mov.w r1, #32768 ; 0x8000 - 80031d0: 6878 ldr r0, [r7, #4] - 80031d2: f000 fd2d bl 8003c30 - __HAL_UNLOCK(hi2c); - 80031d6: 687b ldr r3, [r7, #4] - 80031d8: 2200 movs r2, #0 - 80031da: f883 2040 strb.w r2, [r3, #64] ; 0x40 - HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); - 80031de: 89ba ldrh r2, [r7, #12] - 80031e0: 7bfb ldrb r3, [r7, #15] - 80031e2: 4619 mov r1, r3 - 80031e4: 6878 ldr r0, [r7, #4] - 80031e6: f7ff fdcc bl 8002d82 -} - 80031ea: e017 b.n 800321c - I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); - 80031ec: f44f 4100 mov.w r1, #32768 ; 0x8000 - 80031f0: 6878 ldr r0, [r7, #4] - 80031f2: f000 fd1d bl 8003c30 - __HAL_UNLOCK(hi2c); - 80031f6: 687b ldr r3, [r7, #4] - 80031f8: 2200 movs r2, #0 - 80031fa: f883 2040 strb.w r2, [r3, #64] ; 0x40 - HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); - 80031fe: 89ba ldrh r2, [r7, #12] - 8003200: 7bfb ldrb r3, [r7, #15] - 8003202: 4619 mov r1, r3 - 8003204: 6878 ldr r0, [r7, #4] - 8003206: f7ff fdbc bl 8002d82 -} - 800320a: e007 b.n 800321c - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); - 800320c: 687b ldr r3, [r7, #4] - 800320e: 681b ldr r3, [r3, #0] - 8003210: 2208 movs r2, #8 - 8003212: 61da str r2, [r3, #28] - __HAL_UNLOCK(hi2c); - 8003214: 687b ldr r3, [r7, #4] - 8003216: 2200 movs r2, #0 - 8003218: f883 2040 strb.w r2, [r3, #64] ; 0x40 -} - 800321c: bf00 nop - 800321e: 3710 adds r7, #16 - 8003220: 46bd mov sp, r7 - 8003222: bd80 pop {r7, pc} - -08003224 : - * @brief I2C Slave sequential complete process. - * @param hi2c I2C handle. - * @retval None - */ -static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) -{ - 8003224: b580 push {r7, lr} - 8003226: b084 sub sp, #16 - 8003228: af00 add r7, sp, #0 - 800322a: 6078 str r0, [r7, #4] - uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); - 800322c: 687b ldr r3, [r7, #4] - 800322e: 681b ldr r3, [r3, #0] - 8003230: 681b ldr r3, [r3, #0] - 8003232: 60fb str r3, [r7, #12] - - /* Reset I2C handle mode */ - hi2c->Mode = HAL_I2C_MODE_NONE; - 8003234: 687b ldr r3, [r7, #4] - 8003236: 2200 movs r2, #0 - 8003238: f883 2042 strb.w r2, [r3, #66] ; 0x42 - - /* If a DMA is ongoing, Update handle size context */ - if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) - 800323c: 68fb ldr r3, [r7, #12] - 800323e: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 8003242: 2b00 cmp r3, #0 - 8003244: d008 beq.n 8003258 - { - /* Disable DMA Request */ - hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; - 8003246: 687b ldr r3, [r7, #4] - 8003248: 681b ldr r3, [r3, #0] - 800324a: 681a ldr r2, [r3, #0] - 800324c: 687b ldr r3, [r7, #4] - 800324e: 681b ldr r3, [r3, #0] - 8003250: f422 4280 bic.w r2, r2, #16384 ; 0x4000 - 8003254: 601a str r2, [r3, #0] - 8003256: e00c b.n 8003272 - } - else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) - 8003258: 68fb ldr r3, [r7, #12] - 800325a: f403 4300 and.w r3, r3, #32768 ; 0x8000 - 800325e: 2b00 cmp r3, #0 - 8003260: d007 beq.n 8003272 - { - /* Disable DMA Request */ - hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; - 8003262: 687b ldr r3, [r7, #4] - 8003264: 681b ldr r3, [r3, #0] - 8003266: 681a ldr r2, [r3, #0] - 8003268: 687b ldr r3, [r7, #4] - 800326a: 681b ldr r3, [r3, #0] - 800326c: f422 4200 bic.w r2, r2, #32768 ; 0x8000 - 8003270: 601a str r2, [r3, #0] - else - { - /* Do nothing */ - } - - if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) - 8003272: 687b ldr r3, [r7, #4] - 8003274: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8003278: b2db uxtb r3, r3 - 800327a: 2b29 cmp r3, #41 ; 0x29 - 800327c: d112 bne.n 80032a4 - { - /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ - hi2c->State = HAL_I2C_STATE_LISTEN; - 800327e: 687b ldr r3, [r7, #4] - 8003280: 2228 movs r2, #40 ; 0x28 - 8003282: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; - 8003286: 687b ldr r3, [r7, #4] - 8003288: 2221 movs r2, #33 ; 0x21 - 800328a: 631a str r2, [r3, #48] ; 0x30 - - /* Disable Interrupts */ - I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); - 800328c: 2101 movs r1, #1 - 800328e: 6878 ldr r0, [r7, #4] - 8003290: f000 fcce bl 8003c30 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8003294: 687b ldr r3, [r7, #4] - 8003296: 2200 movs r2, #0 - 8003298: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - /* Call the corresponding callback to inform upper layer of End of Transfer */ -#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) - hi2c->SlaveTxCpltCallback(hi2c); -#else - HAL_I2C_SlaveTxCpltCallback(hi2c); - 800329c: 6878 ldr r0, [r7, #4] - 800329e: f7ff fd5c bl 8002d5a - } - else - { - /* Nothing to do */ - } -} - 80032a2: e017 b.n 80032d4 - else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) - 80032a4: 687b ldr r3, [r7, #4] - 80032a6: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 80032aa: b2db uxtb r3, r3 - 80032ac: 2b2a cmp r3, #42 ; 0x2a - 80032ae: d111 bne.n 80032d4 - hi2c->State = HAL_I2C_STATE_LISTEN; - 80032b0: 687b ldr r3, [r7, #4] - 80032b2: 2228 movs r2, #40 ; 0x28 - 80032b4: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; - 80032b8: 687b ldr r3, [r7, #4] - 80032ba: 2222 movs r2, #34 ; 0x22 - 80032bc: 631a str r2, [r3, #48] ; 0x30 - I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); - 80032be: 2102 movs r1, #2 - 80032c0: 6878 ldr r0, [r7, #4] - 80032c2: f000 fcb5 bl 8003c30 - __HAL_UNLOCK(hi2c); - 80032c6: 687b ldr r3, [r7, #4] - 80032c8: 2200 movs r2, #0 - 80032ca: f883 2040 strb.w r2, [r3, #64] ; 0x40 - HAL_I2C_SlaveRxCpltCallback(hi2c); - 80032ce: 6878 ldr r0, [r7, #4] - 80032d0: f7ff fd4d bl 8002d6e -} - 80032d4: bf00 nop - 80032d6: 3710 adds r7, #16 - 80032d8: 46bd mov sp, r7 - 80032da: bd80 pop {r7, pc} - -080032dc : - * @param hi2c I2C handle. - * @param ITFlags Interrupt flags to handle. - * @retval None - */ -static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) -{ - 80032dc: b580 push {r7, lr} - 80032de: b086 sub sp, #24 - 80032e0: af00 add r7, sp, #0 - 80032e2: 6078 str r0, [r7, #4] - 80032e4: 6039 str r1, [r7, #0] - uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); - 80032e6: 687b ldr r3, [r7, #4] - 80032e8: 681b ldr r3, [r3, #0] - 80032ea: 681b ldr r3, [r3, #0] - 80032ec: 613b str r3, [r7, #16] - uint32_t tmpITFlags = ITFlags; - 80032ee: 683b ldr r3, [r7, #0] - 80032f0: 617b str r3, [r7, #20] - HAL_I2C_StateTypeDef tmpstate = hi2c->State; - 80032f2: 687b ldr r3, [r7, #4] - 80032f4: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 80032f8: 73fb strb r3, [r7, #15] - - /* Clear STOP Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 80032fa: 687b ldr r3, [r7, #4] - 80032fc: 681b ldr r3, [r3, #0] - 80032fe: 2220 movs r2, #32 - 8003300: 61da str r2, [r3, #28] - - /* Disable Interrupts and Store Previous state */ - if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) - 8003302: 7bfb ldrb r3, [r7, #15] - 8003304: 2b21 cmp r3, #33 ; 0x21 - 8003306: d002 beq.n 800330e - 8003308: 7bfb ldrb r3, [r7, #15] - 800330a: 2b29 cmp r3, #41 ; 0x29 - 800330c: d108 bne.n 8003320 - { - I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); - 800330e: f248 0101 movw r1, #32769 ; 0x8001 - 8003312: 6878 ldr r0, [r7, #4] - 8003314: f000 fc8c bl 8003c30 - hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; - 8003318: 687b ldr r3, [r7, #4] - 800331a: 2221 movs r2, #33 ; 0x21 - 800331c: 631a str r2, [r3, #48] ; 0x30 - 800331e: e019 b.n 8003354 - } - else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) - 8003320: 7bfb ldrb r3, [r7, #15] - 8003322: 2b22 cmp r3, #34 ; 0x22 - 8003324: d002 beq.n 800332c - 8003326: 7bfb ldrb r3, [r7, #15] - 8003328: 2b2a cmp r3, #42 ; 0x2a - 800332a: d108 bne.n 800333e - { - I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); - 800332c: f248 0102 movw r1, #32770 ; 0x8002 - 8003330: 6878 ldr r0, [r7, #4] - 8003332: f000 fc7d bl 8003c30 - hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; - 8003336: 687b ldr r3, [r7, #4] - 8003338: 2222 movs r2, #34 ; 0x22 - 800333a: 631a str r2, [r3, #48] ; 0x30 - 800333c: e00a b.n 8003354 - } - else if (tmpstate == HAL_I2C_STATE_LISTEN) - 800333e: 7bfb ldrb r3, [r7, #15] - 8003340: 2b28 cmp r3, #40 ; 0x28 - 8003342: d107 bne.n 8003354 - { - I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT); - 8003344: f248 0103 movw r1, #32771 ; 0x8003 - 8003348: 6878 ldr r0, [r7, #4] - 800334a: f000 fc71 bl 8003c30 - hi2c->PreviousState = I2C_STATE_NONE; - 800334e: 687b ldr r3, [r7, #4] - 8003350: 2200 movs r2, #0 - 8003352: 631a str r2, [r3, #48] ; 0x30 - { - /* Do nothing */ - } - - /* Disable Address Acknowledge */ - hi2c->Instance->CR2 |= I2C_CR2_NACK; - 8003354: 687b ldr r3, [r7, #4] - 8003356: 681b ldr r3, [r3, #0] - 8003358: 685a ldr r2, [r3, #4] - 800335a: 687b ldr r3, [r7, #4] - 800335c: 681b ldr r3, [r3, #0] - 800335e: f442 4200 orr.w r2, r2, #32768 ; 0x8000 - 8003362: 605a str r2, [r3, #4] - - /* Clear Configuration Register 2 */ - I2C_RESET_CR2(hi2c); - 8003364: 687b ldr r3, [r7, #4] - 8003366: 681b ldr r3, [r3, #0] - 8003368: 6859 ldr r1, [r3, #4] - 800336a: 687b ldr r3, [r7, #4] - 800336c: 681a ldr r2, [r3, #0] - 800336e: 4b62 ldr r3, [pc, #392] ; (80034f8 ) - 8003370: 400b ands r3, r1 - 8003372: 6053 str r3, [r2, #4] - - /* Flush TX register */ - I2C_Flush_TXDR(hi2c); - 8003374: 6878 ldr r0, [r7, #4] - 8003376: f000 fa2e bl 80037d6 - - /* If a DMA is ongoing, Update handle size context */ - if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) - 800337a: 693b ldr r3, [r7, #16] - 800337c: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 8003380: 2b00 cmp r3, #0 - 8003382: d013 beq.n 80033ac - { - /* Disable DMA Request */ - hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; - 8003384: 687b ldr r3, [r7, #4] - 8003386: 681b ldr r3, [r3, #0] - 8003388: 681a ldr r2, [r3, #0] - 800338a: 687b ldr r3, [r7, #4] - 800338c: 681b ldr r3, [r3, #0] - 800338e: f422 4280 bic.w r2, r2, #16384 ; 0x4000 - 8003392: 601a str r2, [r3, #0] - - if (hi2c->hdmatx != NULL) - 8003394: 687b ldr r3, [r7, #4] - 8003396: 6b9b ldr r3, [r3, #56] ; 0x38 - 8003398: 2b00 cmp r3, #0 - 800339a: d01f beq.n 80033dc - { - hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx); - 800339c: 687b ldr r3, [r7, #4] - 800339e: 6b9b ldr r3, [r3, #56] ; 0x38 - 80033a0: 681b ldr r3, [r3, #0] - 80033a2: 685b ldr r3, [r3, #4] - 80033a4: b29a uxth r2, r3 - 80033a6: 687b ldr r3, [r7, #4] - 80033a8: 855a strh r2, [r3, #42] ; 0x2a - 80033aa: e017 b.n 80033dc - } - } - else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) - 80033ac: 693b ldr r3, [r7, #16] - 80033ae: f403 4300 and.w r3, r3, #32768 ; 0x8000 - 80033b2: 2b00 cmp r3, #0 - 80033b4: d012 beq.n 80033dc - { - /* Disable DMA Request */ - hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; - 80033b6: 687b ldr r3, [r7, #4] - 80033b8: 681b ldr r3, [r3, #0] - 80033ba: 681a ldr r2, [r3, #0] - 80033bc: 687b ldr r3, [r7, #4] - 80033be: 681b ldr r3, [r3, #0] - 80033c0: f422 4200 bic.w r2, r2, #32768 ; 0x8000 - 80033c4: 601a str r2, [r3, #0] - - if (hi2c->hdmarx != NULL) - 80033c6: 687b ldr r3, [r7, #4] - 80033c8: 6bdb ldr r3, [r3, #60] ; 0x3c - 80033ca: 2b00 cmp r3, #0 - 80033cc: d006 beq.n 80033dc - { - hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx); - 80033ce: 687b ldr r3, [r7, #4] - 80033d0: 6bdb ldr r3, [r3, #60] ; 0x3c - 80033d2: 681b ldr r3, [r3, #0] - 80033d4: 685b ldr r3, [r3, #4] - 80033d6: b29a uxth r2, r3 - 80033d8: 687b ldr r3, [r7, #4] - 80033da: 855a strh r2, [r3, #42] ; 0x2a - { - /* Do nothing */ - } - - /* Store Last receive data if any */ - if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) - 80033dc: 697b ldr r3, [r7, #20] - 80033de: f003 0304 and.w r3, r3, #4 - 80033e2: 2b00 cmp r3, #0 - 80033e4: d020 beq.n 8003428 - { - /* Remove RXNE flag on temporary variable as read done */ - tmpITFlags &= ~I2C_FLAG_RXNE; - 80033e6: 697b ldr r3, [r7, #20] - 80033e8: f023 0304 bic.w r3, r3, #4 - 80033ec: 617b str r3, [r7, #20] - - /* Read data from RXDR */ - *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; - 80033ee: 687b ldr r3, [r7, #4] - 80033f0: 681b ldr r3, [r3, #0] - 80033f2: 6a5a ldr r2, [r3, #36] ; 0x24 - 80033f4: 687b ldr r3, [r7, #4] - 80033f6: 6a5b ldr r3, [r3, #36] ; 0x24 - 80033f8: b2d2 uxtb r2, r2 - 80033fa: 701a strb r2, [r3, #0] - - /* Increment Buffer pointer */ - hi2c->pBuffPtr++; - 80033fc: 687b ldr r3, [r7, #4] - 80033fe: 6a5b ldr r3, [r3, #36] ; 0x24 - 8003400: 1c5a adds r2, r3, #1 - 8003402: 687b ldr r3, [r7, #4] - 8003404: 625a str r2, [r3, #36] ; 0x24 - - if ((hi2c->XferSize > 0U)) - 8003406: 687b ldr r3, [r7, #4] - 8003408: 8d1b ldrh r3, [r3, #40] ; 0x28 - 800340a: 2b00 cmp r3, #0 - 800340c: d00c beq.n 8003428 - { - hi2c->XferSize--; - 800340e: 687b ldr r3, [r7, #4] - 8003410: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8003412: 3b01 subs r3, #1 - 8003414: b29a uxth r2, r3 - 8003416: 687b ldr r3, [r7, #4] - 8003418: 851a strh r2, [r3, #40] ; 0x28 - hi2c->XferCount--; - 800341a: 687b ldr r3, [r7, #4] - 800341c: 8d5b ldrh r3, [r3, #42] ; 0x2a - 800341e: b29b uxth r3, r3 - 8003420: 3b01 subs r3, #1 - 8003422: b29a uxth r2, r3 - 8003424: 687b ldr r3, [r7, #4] - 8003426: 855a strh r2, [r3, #42] ; 0x2a - } - } - - /* All data are not transferred, so set error code accordingly */ - if (hi2c->XferCount != 0U) - 8003428: 687b ldr r3, [r7, #4] - 800342a: 8d5b ldrh r3, [r3, #42] ; 0x2a - 800342c: b29b uxth r3, r3 - 800342e: 2b00 cmp r3, #0 - 8003430: d005 beq.n 800343e - { - /* Set ErrorCode corresponding to a Non-Acknowledge */ - hi2c->ErrorCode |= HAL_I2C_ERROR_AF; - 8003432: 687b ldr r3, [r7, #4] - 8003434: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003436: f043 0204 orr.w r2, r3, #4 - 800343a: 687b ldr r3, [r7, #4] - 800343c: 645a str r2, [r3, #68] ; 0x44 - } - - hi2c->Mode = HAL_I2C_MODE_NONE; - 800343e: 687b ldr r3, [r7, #4] - 8003440: 2200 movs r2, #0 - 8003442: f883 2042 strb.w r2, [r3, #66] ; 0x42 - hi2c->XferISR = NULL; - 8003446: 687b ldr r3, [r7, #4] - 8003448: 2200 movs r2, #0 - 800344a: 635a str r2, [r3, #52] ; 0x34 - - if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) - 800344c: 687b ldr r3, [r7, #4] - 800344e: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003450: 2b00 cmp r3, #0 - 8003452: d010 beq.n 8003476 - { - /* Call the corresponding callback to inform upper layer of End of Transfer */ - I2C_ITError(hi2c, hi2c->ErrorCode); - 8003454: 687b ldr r3, [r7, #4] - 8003456: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003458: 4619 mov r1, r3 - 800345a: 6878 ldr r0, [r7, #4] - 800345c: f000 f8a4 bl 80035a8 - - /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ - if (hi2c->State == HAL_I2C_STATE_LISTEN) - 8003460: 687b ldr r3, [r7, #4] - 8003462: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8003466: b2db uxtb r3, r3 - 8003468: 2b28 cmp r3, #40 ; 0x28 - 800346a: d141 bne.n 80034f0 - { - /* Call I2C Listen complete process */ - I2C_ITListenCplt(hi2c, tmpITFlags); - 800346c: 6979 ldr r1, [r7, #20] - 800346e: 6878 ldr r0, [r7, #4] - 8003470: f000 f846 bl 8003500 - hi2c->SlaveTxCpltCallback(hi2c); -#else - HAL_I2C_SlaveTxCpltCallback(hi2c); -#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - } -} - 8003474: e03c b.n 80034f0 - else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) - 8003476: 687b ldr r3, [r7, #4] - 8003478: 6adb ldr r3, [r3, #44] ; 0x2c - 800347a: f513 3f80 cmn.w r3, #65536 ; 0x10000 - 800347e: d014 beq.n 80034aa - I2C_ITSlaveSeqCplt(hi2c); - 8003480: 6878 ldr r0, [r7, #4] - 8003482: f7ff fecf bl 8003224 - hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 8003486: 687b ldr r3, [r7, #4] - 8003488: 4a1c ldr r2, [pc, #112] ; (80034fc ) - 800348a: 62da str r2, [r3, #44] ; 0x2c - hi2c->State = HAL_I2C_STATE_READY; - 800348c: 687b ldr r3, [r7, #4] - 800348e: 2220 movs r2, #32 - 8003490: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->PreviousState = I2C_STATE_NONE; - 8003494: 687b ldr r3, [r7, #4] - 8003496: 2200 movs r2, #0 - 8003498: 631a str r2, [r3, #48] ; 0x30 - __HAL_UNLOCK(hi2c); - 800349a: 687b ldr r3, [r7, #4] - 800349c: 2200 movs r2, #0 - 800349e: f883 2040 strb.w r2, [r3, #64] ; 0x40 - HAL_I2C_ListenCpltCallback(hi2c); - 80034a2: 6878 ldr r0, [r7, #4] - 80034a4: f7ff fc7b bl 8002d9e -} - 80034a8: e022 b.n 80034f0 - else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) - 80034aa: 687b ldr r3, [r7, #4] - 80034ac: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 80034b0: b2db uxtb r3, r3 - 80034b2: 2b22 cmp r3, #34 ; 0x22 - 80034b4: d10e bne.n 80034d4 - hi2c->State = HAL_I2C_STATE_READY; - 80034b6: 687b ldr r3, [r7, #4] - 80034b8: 2220 movs r2, #32 - 80034ba: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->PreviousState = I2C_STATE_NONE; - 80034be: 687b ldr r3, [r7, #4] - 80034c0: 2200 movs r2, #0 - 80034c2: 631a str r2, [r3, #48] ; 0x30 - __HAL_UNLOCK(hi2c); - 80034c4: 687b ldr r3, [r7, #4] - 80034c6: 2200 movs r2, #0 - 80034c8: f883 2040 strb.w r2, [r3, #64] ; 0x40 - HAL_I2C_SlaveRxCpltCallback(hi2c); - 80034cc: 6878 ldr r0, [r7, #4] - 80034ce: f7ff fc4e bl 8002d6e -} - 80034d2: e00d b.n 80034f0 - hi2c->State = HAL_I2C_STATE_READY; - 80034d4: 687b ldr r3, [r7, #4] - 80034d6: 2220 movs r2, #32 - 80034d8: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->PreviousState = I2C_STATE_NONE; - 80034dc: 687b ldr r3, [r7, #4] - 80034de: 2200 movs r2, #0 - 80034e0: 631a str r2, [r3, #48] ; 0x30 - __HAL_UNLOCK(hi2c); - 80034e2: 687b ldr r3, [r7, #4] - 80034e4: 2200 movs r2, #0 - 80034e6: f883 2040 strb.w r2, [r3, #64] ; 0x40 - HAL_I2C_SlaveTxCpltCallback(hi2c); - 80034ea: 6878 ldr r0, [r7, #4] - 80034ec: f7ff fc35 bl 8002d5a -} - 80034f0: bf00 nop - 80034f2: 3718 adds r7, #24 - 80034f4: 46bd mov sp, r7 - 80034f6: bd80 pop {r7, pc} - 80034f8: fe00e800 .word 0xfe00e800 - 80034fc: ffff0000 .word 0xffff0000 - -08003500 : - * @param hi2c I2C handle. - * @param ITFlags Interrupt flags to handle. - * @retval None - */ -static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) -{ - 8003500: b580 push {r7, lr} - 8003502: b082 sub sp, #8 - 8003504: af00 add r7, sp, #0 - 8003506: 6078 str r0, [r7, #4] - 8003508: 6039 str r1, [r7, #0] - /* Reset handle parameters */ - hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 800350a: 687b ldr r3, [r7, #4] - 800350c: 4a25 ldr r2, [pc, #148] ; (80035a4 ) - 800350e: 62da str r2, [r3, #44] ; 0x2c - hi2c->PreviousState = I2C_STATE_NONE; - 8003510: 687b ldr r3, [r7, #4] - 8003512: 2200 movs r2, #0 - 8003514: 631a str r2, [r3, #48] ; 0x30 - hi2c->State = HAL_I2C_STATE_READY; - 8003516: 687b ldr r3, [r7, #4] - 8003518: 2220 movs r2, #32 - 800351a: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 800351e: 687b ldr r3, [r7, #4] - 8003520: 2200 movs r2, #0 - 8003522: f883 2042 strb.w r2, [r3, #66] ; 0x42 - hi2c->XferISR = NULL; - 8003526: 687b ldr r3, [r7, #4] - 8003528: 2200 movs r2, #0 - 800352a: 635a str r2, [r3, #52] ; 0x34 - - /* Store Last receive data if any */ - if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) - 800352c: 683b ldr r3, [r7, #0] - 800352e: f003 0304 and.w r3, r3, #4 - 8003532: 2b00 cmp r3, #0 - 8003534: d022 beq.n 800357c - { - /* Read data from RXDR */ - *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; - 8003536: 687b ldr r3, [r7, #4] - 8003538: 681b ldr r3, [r3, #0] - 800353a: 6a5a ldr r2, [r3, #36] ; 0x24 - 800353c: 687b ldr r3, [r7, #4] - 800353e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8003540: b2d2 uxtb r2, r2 - 8003542: 701a strb r2, [r3, #0] - - /* Increment Buffer pointer */ - hi2c->pBuffPtr++; - 8003544: 687b ldr r3, [r7, #4] - 8003546: 6a5b ldr r3, [r3, #36] ; 0x24 - 8003548: 1c5a adds r2, r3, #1 - 800354a: 687b ldr r3, [r7, #4] - 800354c: 625a str r2, [r3, #36] ; 0x24 - - if ((hi2c->XferSize > 0U)) - 800354e: 687b ldr r3, [r7, #4] - 8003550: 8d1b ldrh r3, [r3, #40] ; 0x28 - 8003552: 2b00 cmp r3, #0 - 8003554: d012 beq.n 800357c - { - hi2c->XferSize--; - 8003556: 687b ldr r3, [r7, #4] - 8003558: 8d1b ldrh r3, [r3, #40] ; 0x28 - 800355a: 3b01 subs r3, #1 - 800355c: b29a uxth r2, r3 - 800355e: 687b ldr r3, [r7, #4] - 8003560: 851a strh r2, [r3, #40] ; 0x28 - hi2c->XferCount--; - 8003562: 687b ldr r3, [r7, #4] - 8003564: 8d5b ldrh r3, [r3, #42] ; 0x2a - 8003566: b29b uxth r3, r3 - 8003568: 3b01 subs r3, #1 - 800356a: b29a uxth r2, r3 - 800356c: 687b ldr r3, [r7, #4] - 800356e: 855a strh r2, [r3, #42] ; 0x2a - - /* Set ErrorCode corresponding to a Non-Acknowledge */ - hi2c->ErrorCode |= HAL_I2C_ERROR_AF; - 8003570: 687b ldr r3, [r7, #4] - 8003572: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003574: f043 0204 orr.w r2, r3, #4 - 8003578: 687b ldr r3, [r7, #4] - 800357a: 645a str r2, [r3, #68] ; 0x44 - } - } - - /* Disable all Interrupts*/ - I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); - 800357c: f248 0103 movw r1, #32771 ; 0x8003 - 8003580: 6878 ldr r0, [r7, #4] - 8003582: f000 fb55 bl 8003c30 - - /* Clear NACK Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 8003586: 687b ldr r3, [r7, #4] - 8003588: 681b ldr r3, [r3, #0] - 800358a: 2210 movs r2, #16 - 800358c: 61da str r2, [r3, #28] - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 800358e: 687b ldr r3, [r7, #4] - 8003590: 2200 movs r2, #0 - 8003592: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ -#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) - hi2c->ListenCpltCallback(hi2c); -#else - HAL_I2C_ListenCpltCallback(hi2c); - 8003596: 6878 ldr r0, [r7, #4] - 8003598: f7ff fc01 bl 8002d9e -#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -} - 800359c: bf00 nop - 800359e: 3708 adds r7, #8 - 80035a0: 46bd mov sp, r7 - 80035a2: bd80 pop {r7, pc} - 80035a4: ffff0000 .word 0xffff0000 - -080035a8 : - * @param hi2c I2C handle. - * @param ErrorCode Error code to handle. - * @retval None - */ -static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) -{ - 80035a8: b580 push {r7, lr} - 80035aa: b084 sub sp, #16 - 80035ac: af00 add r7, sp, #0 - 80035ae: 6078 str r0, [r7, #4] - 80035b0: 6039 str r1, [r7, #0] - HAL_I2C_StateTypeDef tmpstate = hi2c->State; - 80035b2: 687b ldr r3, [r7, #4] - 80035b4: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 80035b8: 73fb strb r3, [r7, #15] - - uint32_t tmppreviousstate; - - /* Reset handle parameters */ - hi2c->Mode = HAL_I2C_MODE_NONE; - 80035ba: 687b ldr r3, [r7, #4] - 80035bc: 2200 movs r2, #0 - 80035be: f883 2042 strb.w r2, [r3, #66] ; 0x42 - hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 80035c2: 687b ldr r3, [r7, #4] - 80035c4: 4a6d ldr r2, [pc, #436] ; (800377c ) - 80035c6: 62da str r2, [r3, #44] ; 0x2c - hi2c->XferCount = 0U; - 80035c8: 687b ldr r3, [r7, #4] - 80035ca: 2200 movs r2, #0 - 80035cc: 855a strh r2, [r3, #42] ; 0x2a - - /* Set new error code */ - hi2c->ErrorCode |= ErrorCode; - 80035ce: 687b ldr r3, [r7, #4] - 80035d0: 6c5a ldr r2, [r3, #68] ; 0x44 - 80035d2: 683b ldr r3, [r7, #0] - 80035d4: 431a orrs r2, r3 - 80035d6: 687b ldr r3, [r7, #4] - 80035d8: 645a str r2, [r3, #68] ; 0x44 - - /* Disable Interrupts */ - if ((tmpstate == HAL_I2C_STATE_LISTEN) || - 80035da: 7bfb ldrb r3, [r7, #15] - 80035dc: 2b28 cmp r3, #40 ; 0x28 - 80035de: d005 beq.n 80035ec - 80035e0: 7bfb ldrb r3, [r7, #15] - 80035e2: 2b29 cmp r3, #41 ; 0x29 - 80035e4: d002 beq.n 80035ec - (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || - 80035e6: 7bfb ldrb r3, [r7, #15] - 80035e8: 2b2a cmp r3, #42 ; 0x2a - 80035ea: d10b bne.n 8003604 - (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) - { - /* Disable all interrupts, except interrupts related to LISTEN state */ - I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); - 80035ec: 2103 movs r1, #3 - 80035ee: 6878 ldr r0, [r7, #4] - 80035f0: f000 fb1e bl 8003c30 - - /* keep HAL_I2C_STATE_LISTEN if set */ - hi2c->State = HAL_I2C_STATE_LISTEN; - 80035f4: 687b ldr r3, [r7, #4] - 80035f6: 2228 movs r2, #40 ; 0x28 - 80035f8: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->XferISR = I2C_Slave_ISR_IT; - 80035fc: 687b ldr r3, [r7, #4] - 80035fe: 4a60 ldr r2, [pc, #384] ; (8003780 ) - 8003600: 635a str r2, [r3, #52] ; 0x34 - 8003602: e030 b.n 8003666 - } - else - { - /* Disable all interrupts */ - I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); - 8003604: f248 0103 movw r1, #32771 ; 0x8003 - 8003608: 6878 ldr r0, [r7, #4] - 800360a: f000 fb11 bl 8003c30 - - /* Flush TX register */ - I2C_Flush_TXDR(hi2c); - 800360e: 6878 ldr r0, [r7, #4] - 8003610: f000 f8e1 bl 80037d6 - - /* If state is an abort treatment on going, don't change state */ - /* This change will be do later */ - if (hi2c->State != HAL_I2C_STATE_ABORT) - 8003614: 687b ldr r3, [r7, #4] - 8003616: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 800361a: b2db uxtb r3, r3 - 800361c: 2b60 cmp r3, #96 ; 0x60 - 800361e: d01f beq.n 8003660 - { - /* Set HAL_I2C_STATE_READY */ - hi2c->State = HAL_I2C_STATE_READY; - 8003620: 687b ldr r3, [r7, #4] - 8003622: 2220 movs r2, #32 - 8003624: f883 2041 strb.w r2, [r3, #65] ; 0x41 - - /* Check if a STOPF is detected */ - if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) - 8003628: 687b ldr r3, [r7, #4] - 800362a: 681b ldr r3, [r3, #0] - 800362c: 699b ldr r3, [r3, #24] - 800362e: f003 0320 and.w r3, r3, #32 - 8003632: 2b20 cmp r3, #32 - 8003634: d114 bne.n 8003660 - { - if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) - 8003636: 687b ldr r3, [r7, #4] - 8003638: 681b ldr r3, [r3, #0] - 800363a: 699b ldr r3, [r3, #24] - 800363c: f003 0310 and.w r3, r3, #16 - 8003640: 2b10 cmp r3, #16 - 8003642: d109 bne.n 8003658 - { - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 8003644: 687b ldr r3, [r7, #4] - 8003646: 681b ldr r3, [r3, #0] - 8003648: 2210 movs r2, #16 - 800364a: 61da str r2, [r3, #28] - hi2c->ErrorCode |= HAL_I2C_ERROR_AF; - 800364c: 687b ldr r3, [r7, #4] - 800364e: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003650: f043 0204 orr.w r2, r3, #4 - 8003654: 687b ldr r3, [r7, #4] - 8003656: 645a str r2, [r3, #68] ; 0x44 - } - - /* Clear STOP Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 8003658: 687b ldr r3, [r7, #4] - 800365a: 681b ldr r3, [r3, #0] - 800365c: 2220 movs r2, #32 - 800365e: 61da str r2, [r3, #28] - } - - } - hi2c->XferISR = NULL; - 8003660: 687b ldr r3, [r7, #4] - 8003662: 2200 movs r2, #0 - 8003664: 635a str r2, [r3, #52] ; 0x34 - } - - /* Abort DMA TX transfer if any */ - tmppreviousstate = hi2c->PreviousState; - 8003666: 687b ldr r3, [r7, #4] - 8003668: 6b1b ldr r3, [r3, #48] ; 0x30 - 800366a: 60bb str r3, [r7, #8] - - if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ - 800366c: 687b ldr r3, [r7, #4] - 800366e: 6b9b ldr r3, [r3, #56] ; 0x38 - 8003670: 2b00 cmp r3, #0 - 8003672: d039 beq.n 80036e8 - 8003674: 68bb ldr r3, [r7, #8] - 8003676: 2b11 cmp r3, #17 - 8003678: d002 beq.n 8003680 - 800367a: 68bb ldr r3, [r7, #8] - 800367c: 2b21 cmp r3, #33 ; 0x21 - 800367e: d133 bne.n 80036e8 - (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) - { - if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) - 8003680: 687b ldr r3, [r7, #4] - 8003682: 681b ldr r3, [r3, #0] - 8003684: 681b ldr r3, [r3, #0] - 8003686: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 800368a: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 - 800368e: d107 bne.n 80036a0 - { - hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; - 8003690: 687b ldr r3, [r7, #4] - 8003692: 681b ldr r3, [r3, #0] - 8003694: 681a ldr r2, [r3, #0] - 8003696: 687b ldr r3, [r7, #4] - 8003698: 681b ldr r3, [r3, #0] - 800369a: f422 4280 bic.w r2, r2, #16384 ; 0x4000 - 800369e: 601a str r2, [r3, #0] - } - - if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) - 80036a0: 687b ldr r3, [r7, #4] - 80036a2: 6b9b ldr r3, [r3, #56] ; 0x38 - 80036a4: 4618 mov r0, r3 - 80036a6: f7fe fe19 bl 80022dc - 80036aa: 4603 mov r3, r0 - 80036ac: 2b01 cmp r3, #1 - 80036ae: d017 beq.n 80036e0 - { - /* Set the I2C DMA Abort callback : - will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ - hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; - 80036b0: 687b ldr r3, [r7, #4] - 80036b2: 6b9b ldr r3, [r3, #56] ; 0x38 - 80036b4: 4a33 ldr r2, [pc, #204] ; (8003784 ) - 80036b6: 639a str r2, [r3, #56] ; 0x38 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 80036b8: 687b ldr r3, [r7, #4] - 80036ba: 2200 movs r2, #0 - 80036bc: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - /* Abort DMA TX */ - if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) - 80036c0: 687b ldr r3, [r7, #4] - 80036c2: 6b9b ldr r3, [r3, #56] ; 0x38 - 80036c4: 4618 mov r0, r3 - 80036c6: f7fe fd19 bl 80020fc - 80036ca: 4603 mov r3, r0 - 80036cc: 2b00 cmp r3, #0 - 80036ce: d04d beq.n 800376c - { - /* Call Directly XferAbortCallback function in case of error */ - hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); - 80036d0: 687b ldr r3, [r7, #4] - 80036d2: 6b9b ldr r3, [r3, #56] ; 0x38 - 80036d4: 6b9b ldr r3, [r3, #56] ; 0x38 - 80036d6: 687a ldr r2, [r7, #4] - 80036d8: 6b92 ldr r2, [r2, #56] ; 0x38 - 80036da: 4610 mov r0, r2 - 80036dc: 4798 blx r3 - if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) - 80036de: e045 b.n 800376c - } - } - else - { - I2C_TreatErrorCallback(hi2c); - 80036e0: 6878 ldr r0, [r7, #4] - 80036e2: f000 f851 bl 8003788 - if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) - 80036e6: e041 b.n 800376c - } - } - /* Abort DMA RX transfer if any */ - else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ - 80036e8: 687b ldr r3, [r7, #4] - 80036ea: 6bdb ldr r3, [r3, #60] ; 0x3c - 80036ec: 2b00 cmp r3, #0 - 80036ee: d039 beq.n 8003764 - 80036f0: 68bb ldr r3, [r7, #8] - 80036f2: 2b12 cmp r3, #18 - 80036f4: d002 beq.n 80036fc - 80036f6: 68bb ldr r3, [r7, #8] - 80036f8: 2b22 cmp r3, #34 ; 0x22 - 80036fa: d133 bne.n 8003764 - (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) - { - if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) - 80036fc: 687b ldr r3, [r7, #4] - 80036fe: 681b ldr r3, [r3, #0] - 8003700: 681b ldr r3, [r3, #0] - 8003702: f403 4300 and.w r3, r3, #32768 ; 0x8000 - 8003706: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 800370a: d107 bne.n 800371c - { - hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; - 800370c: 687b ldr r3, [r7, #4] - 800370e: 681b ldr r3, [r3, #0] - 8003710: 681a ldr r2, [r3, #0] - 8003712: 687b ldr r3, [r7, #4] - 8003714: 681b ldr r3, [r3, #0] - 8003716: f422 4200 bic.w r2, r2, #32768 ; 0x8000 - 800371a: 601a str r2, [r3, #0] - } - - if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) - 800371c: 687b ldr r3, [r7, #4] - 800371e: 6bdb ldr r3, [r3, #60] ; 0x3c - 8003720: 4618 mov r0, r3 - 8003722: f7fe fddb bl 80022dc - 8003726: 4603 mov r3, r0 - 8003728: 2b01 cmp r3, #1 - 800372a: d017 beq.n 800375c - { - /* Set the I2C DMA Abort callback : - will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ - hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; - 800372c: 687b ldr r3, [r7, #4] - 800372e: 6bdb ldr r3, [r3, #60] ; 0x3c - 8003730: 4a14 ldr r2, [pc, #80] ; (8003784 ) - 8003732: 639a str r2, [r3, #56] ; 0x38 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8003734: 687b ldr r3, [r7, #4] - 8003736: 2200 movs r2, #0 - 8003738: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - /* Abort DMA RX */ - if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) - 800373c: 687b ldr r3, [r7, #4] - 800373e: 6bdb ldr r3, [r3, #60] ; 0x3c - 8003740: 4618 mov r0, r3 - 8003742: f7fe fcdb bl 80020fc - 8003746: 4603 mov r3, r0 - 8003748: 2b00 cmp r3, #0 - 800374a: d011 beq.n 8003770 - { - /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ - hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); - 800374c: 687b ldr r3, [r7, #4] - 800374e: 6bdb ldr r3, [r3, #60] ; 0x3c - 8003750: 6b9b ldr r3, [r3, #56] ; 0x38 - 8003752: 687a ldr r2, [r7, #4] - 8003754: 6bd2 ldr r2, [r2, #60] ; 0x3c - 8003756: 4610 mov r0, r2 - 8003758: 4798 blx r3 - if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) - 800375a: e009 b.n 8003770 - } - } - else - { - I2C_TreatErrorCallback(hi2c); - 800375c: 6878 ldr r0, [r7, #4] - 800375e: f000 f813 bl 8003788 - if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) - 8003762: e005 b.n 8003770 - } - } - else - { - I2C_TreatErrorCallback(hi2c); - 8003764: 6878 ldr r0, [r7, #4] - 8003766: f000 f80f bl 8003788 - } -} - 800376a: e002 b.n 8003772 - if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) - 800376c: bf00 nop - 800376e: e000 b.n 8003772 - if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) - 8003770: bf00 nop -} - 8003772: bf00 nop - 8003774: 3710 adds r7, #16 - 8003776: 46bd mov sp, r7 - 8003778: bd80 pop {r7, pc} - 800377a: bf00 nop - 800377c: ffff0000 .word 0xffff0000 - 8003780: 08002ddb .word 0x08002ddb - 8003784: 0800381f .word 0x0800381f - -08003788 : - * @brief I2C Error callback treatment. - * @param hi2c I2C handle. - * @retval None - */ -static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) -{ - 8003788: b580 push {r7, lr} - 800378a: b082 sub sp, #8 - 800378c: af00 add r7, sp, #0 - 800378e: 6078 str r0, [r7, #4] - if (hi2c->State == HAL_I2C_STATE_ABORT) - 8003790: 687b ldr r3, [r7, #4] - 8003792: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8003796: b2db uxtb r3, r3 - 8003798: 2b60 cmp r3, #96 ; 0x60 - 800379a: d10e bne.n 80037ba - { - hi2c->State = HAL_I2C_STATE_READY; - 800379c: 687b ldr r3, [r7, #4] - 800379e: 2220 movs r2, #32 - 80037a0: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->PreviousState = I2C_STATE_NONE; - 80037a4: 687b ldr r3, [r7, #4] - 80037a6: 2200 movs r2, #0 - 80037a8: 631a str r2, [r3, #48] ; 0x30 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 80037aa: 687b ldr r3, [r7, #4] - 80037ac: 2200 movs r2, #0 - 80037ae: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - /* Call the corresponding callback to inform upper layer of End of Transfer */ -#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) - hi2c->AbortCpltCallback(hi2c); -#else - HAL_I2C_AbortCpltCallback(hi2c); - 80037b2: 6878 ldr r0, [r7, #4] - 80037b4: f7ff fb07 bl 8002dc6 - hi2c->ErrorCallback(hi2c); -#else - HAL_I2C_ErrorCallback(hi2c); -#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - } -} - 80037b8: e009 b.n 80037ce - hi2c->PreviousState = I2C_STATE_NONE; - 80037ba: 687b ldr r3, [r7, #4] - 80037bc: 2200 movs r2, #0 - 80037be: 631a str r2, [r3, #48] ; 0x30 - __HAL_UNLOCK(hi2c); - 80037c0: 687b ldr r3, [r7, #4] - 80037c2: 2200 movs r2, #0 - 80037c4: f883 2040 strb.w r2, [r3, #64] ; 0x40 - HAL_I2C_ErrorCallback(hi2c); - 80037c8: 6878 ldr r0, [r7, #4] - 80037ca: f7ff faf2 bl 8002db2 -} - 80037ce: bf00 nop - 80037d0: 3708 adds r7, #8 - 80037d2: 46bd mov sp, r7 - 80037d4: bd80 pop {r7, pc} - -080037d6 : - * @brief I2C Tx data register flush process. - * @param hi2c I2C handle. - * @retval None - */ -static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) -{ - 80037d6: b480 push {r7} - 80037d8: b083 sub sp, #12 - 80037da: af00 add r7, sp, #0 - 80037dc: 6078 str r0, [r7, #4] - /* If a pending TXIS flag is set */ - /* Write a dummy data in TXDR to clear it */ - if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) - 80037de: 687b ldr r3, [r7, #4] - 80037e0: 681b ldr r3, [r3, #0] - 80037e2: 699b ldr r3, [r3, #24] - 80037e4: f003 0302 and.w r3, r3, #2 - 80037e8: 2b02 cmp r3, #2 - 80037ea: d103 bne.n 80037f4 - { - hi2c->Instance->TXDR = 0x00U; - 80037ec: 687b ldr r3, [r7, #4] - 80037ee: 681b ldr r3, [r3, #0] - 80037f0: 2200 movs r2, #0 - 80037f2: 629a str r2, [r3, #40] ; 0x28 - } - - /* Flush TX register if not empty */ - if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) - 80037f4: 687b ldr r3, [r7, #4] - 80037f6: 681b ldr r3, [r3, #0] - 80037f8: 699b ldr r3, [r3, #24] - 80037fa: f003 0301 and.w r3, r3, #1 - 80037fe: 2b01 cmp r3, #1 - 8003800: d007 beq.n 8003812 - { - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); - 8003802: 687b ldr r3, [r7, #4] - 8003804: 681b ldr r3, [r3, #0] - 8003806: 699a ldr r2, [r3, #24] - 8003808: 687b ldr r3, [r7, #4] - 800380a: 681b ldr r3, [r3, #0] - 800380c: f042 0201 orr.w r2, r2, #1 - 8003810: 619a str r2, [r3, #24] - } -} - 8003812: bf00 nop - 8003814: 370c adds r7, #12 - 8003816: 46bd mov sp, r7 - 8003818: f85d 7b04 ldr.w r7, [sp], #4 - 800381c: 4770 bx lr - -0800381e : - * (To be called at end of DMA Abort procedure). - * @param hdma DMA handle. - * @retval None - */ -static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) -{ - 800381e: b580 push {r7, lr} - 8003820: b084 sub sp, #16 - 8003822: af00 add r7, sp, #0 - 8003824: 6078 str r0, [r7, #4] - /* Derogation MISRAC2012-Rule-11.5 */ - I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); - 8003826: 687b ldr r3, [r7, #4] - 8003828: 6a9b ldr r3, [r3, #40] ; 0x28 - 800382a: 60fb str r3, [r7, #12] - - /* Reset AbortCpltCallback */ - if (hi2c->hdmatx != NULL) - 800382c: 68fb ldr r3, [r7, #12] - 800382e: 6b9b ldr r3, [r3, #56] ; 0x38 - 8003830: 2b00 cmp r3, #0 - 8003832: d003 beq.n 800383c - { - hi2c->hdmatx->XferAbortCallback = NULL; - 8003834: 68fb ldr r3, [r7, #12] - 8003836: 6b9b ldr r3, [r3, #56] ; 0x38 - 8003838: 2200 movs r2, #0 - 800383a: 639a str r2, [r3, #56] ; 0x38 - } - if (hi2c->hdmarx != NULL) - 800383c: 68fb ldr r3, [r7, #12] - 800383e: 6bdb ldr r3, [r3, #60] ; 0x3c - 8003840: 2b00 cmp r3, #0 - 8003842: d003 beq.n 800384c - { - hi2c->hdmarx->XferAbortCallback = NULL; - 8003844: 68fb ldr r3, [r7, #12] - 8003846: 6bdb ldr r3, [r3, #60] ; 0x3c - 8003848: 2200 movs r2, #0 - 800384a: 639a str r2, [r3, #56] ; 0x38 - } - - I2C_TreatErrorCallback(hi2c); - 800384c: 68f8 ldr r0, [r7, #12] - 800384e: f7ff ff9b bl 8003788 -} - 8003852: bf00 nop - 8003854: 3710 adds r7, #16 - 8003856: 46bd mov sp, r7 - 8003858: bd80 pop {r7, pc} - -0800385a : - * @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) -{ - 800385a: b580 push {r7, lr} - 800385c: b084 sub sp, #16 - 800385e: af00 add r7, sp, #0 - 8003860: 60f8 str r0, [r7, #12] - 8003862: 60b9 str r1, [r7, #8] - 8003864: 603b str r3, [r7, #0] - 8003866: 4613 mov r3, r2 - 8003868: 71fb strb r3, [r7, #7] - while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) - 800386a: e031 b.n 80038d0 - { - /* Check for the Timeout */ - if (Timeout != HAL_MAX_DELAY) - 800386c: 683b ldr r3, [r7, #0] - 800386e: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8003872: d02d beq.n 80038d0 - { - if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8003874: f7fe fa48 bl 8001d08 - 8003878: 4602 mov r2, r0 - 800387a: 69bb ldr r3, [r7, #24] - 800387c: 1ad3 subs r3, r2, r3 - 800387e: 683a ldr r2, [r7, #0] - 8003880: 429a cmp r2, r3 - 8003882: d302 bcc.n 800388a - 8003884: 683b ldr r3, [r7, #0] - 8003886: 2b00 cmp r3, #0 - 8003888: d122 bne.n 80038d0 - { - if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) - 800388a: 68fb ldr r3, [r7, #12] - 800388c: 681b ldr r3, [r3, #0] - 800388e: 699a ldr r2, [r3, #24] - 8003890: 68bb ldr r3, [r7, #8] - 8003892: 4013 ands r3, r2 - 8003894: 68ba ldr r2, [r7, #8] - 8003896: 429a cmp r2, r3 - 8003898: bf0c ite eq - 800389a: 2301 moveq r3, #1 - 800389c: 2300 movne r3, #0 - 800389e: b2db uxtb r3, r3 - 80038a0: 461a mov r2, r3 - 80038a2: 79fb ldrb r3, [r7, #7] - 80038a4: 429a cmp r2, r3 - 80038a6: d113 bne.n 80038d0 - { - hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 80038a8: 68fb ldr r3, [r7, #12] - 80038aa: 6c5b ldr r3, [r3, #68] ; 0x44 - 80038ac: f043 0220 orr.w r2, r3, #32 - 80038b0: 68fb ldr r3, [r7, #12] - 80038b2: 645a str r2, [r3, #68] ; 0x44 - hi2c->State = HAL_I2C_STATE_READY; - 80038b4: 68fb ldr r3, [r7, #12] - 80038b6: 2220 movs r2, #32 - 80038b8: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 80038bc: 68fb ldr r3, [r7, #12] - 80038be: 2200 movs r2, #0 - 80038c0: f883 2042 strb.w r2, [r3, #66] ; 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 80038c4: 68fb ldr r3, [r7, #12] - 80038c6: 2200 movs r2, #0 - 80038c8: f883 2040 strb.w r2, [r3, #64] ; 0x40 - return HAL_ERROR; - 80038cc: 2301 movs r3, #1 - 80038ce: e00f b.n 80038f0 - while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) - 80038d0: 68fb ldr r3, [r7, #12] - 80038d2: 681b ldr r3, [r3, #0] - 80038d4: 699a ldr r2, [r3, #24] - 80038d6: 68bb ldr r3, [r7, #8] - 80038d8: 4013 ands r3, r2 - 80038da: 68ba ldr r2, [r7, #8] - 80038dc: 429a cmp r2, r3 - 80038de: bf0c ite eq - 80038e0: 2301 moveq r3, #1 - 80038e2: 2300 movne r3, #0 - 80038e4: b2db uxtb r3, r3 - 80038e6: 461a mov r2, r3 - 80038e8: 79fb ldrb r3, [r7, #7] - 80038ea: 429a cmp r2, r3 - 80038ec: d0be beq.n 800386c - } - } - } - } - return HAL_OK; - 80038ee: 2300 movs r3, #0 -} - 80038f0: 4618 mov r0, r3 - 80038f2: 3710 adds r7, #16 - 80038f4: 46bd mov sp, r7 - 80038f6: bd80 pop {r7, pc} - -080038f8 : - * @param Tickstart Tick start value - * @retval HAL status - */ -static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, - uint32_t Tickstart) -{ - 80038f8: b580 push {r7, lr} - 80038fa: b084 sub sp, #16 - 80038fc: af00 add r7, sp, #0 - 80038fe: 60f8 str r0, [r7, #12] - 8003900: 60b9 str r1, [r7, #8] - 8003902: 607a str r2, [r7, #4] - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) - 8003904: e033 b.n 800396e - { - /* Check if an error is detected */ - if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) - 8003906: 687a ldr r2, [r7, #4] - 8003908: 68b9 ldr r1, [r7, #8] - 800390a: 68f8 ldr r0, [r7, #12] - 800390c: f000 f87e bl 8003a0c - 8003910: 4603 mov r3, r0 - 8003912: 2b00 cmp r3, #0 - 8003914: d001 beq.n 800391a - { - return HAL_ERROR; - 8003916: 2301 movs r3, #1 - 8003918: e031 b.n 800397e - } - - /* Check for the Timeout */ - if (Timeout != HAL_MAX_DELAY) - 800391a: 68bb ldr r3, [r7, #8] - 800391c: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8003920: d025 beq.n 800396e - { - if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8003922: f7fe f9f1 bl 8001d08 - 8003926: 4602 mov r2, r0 - 8003928: 687b ldr r3, [r7, #4] - 800392a: 1ad3 subs r3, r2, r3 - 800392c: 68ba ldr r2, [r7, #8] - 800392e: 429a cmp r2, r3 - 8003930: d302 bcc.n 8003938 - 8003932: 68bb ldr r3, [r7, #8] - 8003934: 2b00 cmp r3, #0 - 8003936: d11a bne.n 800396e - { - if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)) - 8003938: 68fb ldr r3, [r7, #12] - 800393a: 681b ldr r3, [r3, #0] - 800393c: 699b ldr r3, [r3, #24] - 800393e: f003 0302 and.w r3, r3, #2 - 8003942: 2b02 cmp r3, #2 - 8003944: d013 beq.n 800396e - { - hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 8003946: 68fb ldr r3, [r7, #12] - 8003948: 6c5b ldr r3, [r3, #68] ; 0x44 - 800394a: f043 0220 orr.w r2, r3, #32 - 800394e: 68fb ldr r3, [r7, #12] - 8003950: 645a str r2, [r3, #68] ; 0x44 - hi2c->State = HAL_I2C_STATE_READY; - 8003952: 68fb ldr r3, [r7, #12] - 8003954: 2220 movs r2, #32 - 8003956: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 800395a: 68fb ldr r3, [r7, #12] - 800395c: 2200 movs r2, #0 - 800395e: f883 2042 strb.w r2, [r3, #66] ; 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8003962: 68fb ldr r3, [r7, #12] - 8003964: 2200 movs r2, #0 - 8003966: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - return HAL_ERROR; - 800396a: 2301 movs r3, #1 - 800396c: e007 b.n 800397e - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) - 800396e: 68fb ldr r3, [r7, #12] - 8003970: 681b ldr r3, [r3, #0] - 8003972: 699b ldr r3, [r3, #24] - 8003974: f003 0302 and.w r3, r3, #2 - 8003978: 2b02 cmp r3, #2 - 800397a: d1c4 bne.n 8003906 - } - } - } - } - return HAL_OK; - 800397c: 2300 movs r3, #0 -} - 800397e: 4618 mov r0, r3 - 8003980: 3710 adds r7, #16 - 8003982: 46bd mov sp, r7 - 8003984: bd80 pop {r7, pc} - -08003986 : - * @param Tickstart Tick start value - * @retval HAL status - */ -static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, - uint32_t Tickstart) -{ - 8003986: b580 push {r7, lr} - 8003988: b084 sub sp, #16 - 800398a: af00 add r7, sp, #0 - 800398c: 60f8 str r0, [r7, #12] - 800398e: 60b9 str r1, [r7, #8] - 8003990: 607a str r2, [r7, #4] - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) - 8003992: e02f b.n 80039f4 - { - /* Check if an error is detected */ - if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) - 8003994: 687a ldr r2, [r7, #4] - 8003996: 68b9 ldr r1, [r7, #8] - 8003998: 68f8 ldr r0, [r7, #12] - 800399a: f000 f837 bl 8003a0c - 800399e: 4603 mov r3, r0 - 80039a0: 2b00 cmp r3, #0 - 80039a2: d001 beq.n 80039a8 - { - return HAL_ERROR; - 80039a4: 2301 movs r3, #1 - 80039a6: e02d b.n 8003a04 - } - - /* Check for the Timeout */ - if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 80039a8: f7fe f9ae bl 8001d08 - 80039ac: 4602 mov r2, r0 - 80039ae: 687b ldr r3, [r7, #4] - 80039b0: 1ad3 subs r3, r2, r3 - 80039b2: 68ba ldr r2, [r7, #8] - 80039b4: 429a cmp r2, r3 - 80039b6: d302 bcc.n 80039be - 80039b8: 68bb ldr r3, [r7, #8] - 80039ba: 2b00 cmp r3, #0 - 80039bc: d11a bne.n 80039f4 - { - if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) - 80039be: 68fb ldr r3, [r7, #12] - 80039c0: 681b ldr r3, [r3, #0] - 80039c2: 699b ldr r3, [r3, #24] - 80039c4: f003 0320 and.w r3, r3, #32 - 80039c8: 2b20 cmp r3, #32 - 80039ca: d013 beq.n 80039f4 - { - hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 80039cc: 68fb ldr r3, [r7, #12] - 80039ce: 6c5b ldr r3, [r3, #68] ; 0x44 - 80039d0: f043 0220 orr.w r2, r3, #32 - 80039d4: 68fb ldr r3, [r7, #12] - 80039d6: 645a str r2, [r3, #68] ; 0x44 - hi2c->State = HAL_I2C_STATE_READY; - 80039d8: 68fb ldr r3, [r7, #12] - 80039da: 2220 movs r2, #32 - 80039dc: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 80039e0: 68fb ldr r3, [r7, #12] - 80039e2: 2200 movs r2, #0 - 80039e4: f883 2042 strb.w r2, [r3, #66] ; 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 80039e8: 68fb ldr r3, [r7, #12] - 80039ea: 2200 movs r2, #0 - 80039ec: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - return HAL_ERROR; - 80039f0: 2301 movs r3, #1 - 80039f2: e007 b.n 8003a04 - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) - 80039f4: 68fb ldr r3, [r7, #12] - 80039f6: 681b ldr r3, [r3, #0] - 80039f8: 699b ldr r3, [r3, #24] - 80039fa: f003 0320 and.w r3, r3, #32 - 80039fe: 2b20 cmp r3, #32 - 8003a00: d1c8 bne.n 8003994 - } - } - } - return HAL_OK; - 8003a02: 2300 movs r3, #0 -} - 8003a04: 4618 mov r0, r3 - 8003a06: 3710 adds r7, #16 - 8003a08: 46bd mov sp, r7 - 8003a0a: bd80 pop {r7, pc} - -08003a0c : - * @param Timeout Timeout duration - * @param Tickstart Tick start value - * @retval HAL status - */ -static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) -{ - 8003a0c: b580 push {r7, lr} - 8003a0e: b08a sub sp, #40 ; 0x28 - 8003a10: af00 add r7, sp, #0 - 8003a12: 60f8 str r0, [r7, #12] - 8003a14: 60b9 str r1, [r7, #8] - 8003a16: 607a str r2, [r7, #4] - HAL_StatusTypeDef status = HAL_OK; - 8003a18: 2300 movs r3, #0 - 8003a1a: f887 3027 strb.w r3, [r7, #39] ; 0x27 - uint32_t itflag = hi2c->Instance->ISR; - 8003a1e: 68fb ldr r3, [r7, #12] - 8003a20: 681b ldr r3, [r3, #0] - 8003a22: 699b ldr r3, [r3, #24] - 8003a24: 61bb str r3, [r7, #24] - uint32_t error_code = 0; - 8003a26: 2300 movs r3, #0 - 8003a28: 623b str r3, [r7, #32] - uint32_t tickstart = Tickstart; - 8003a2a: 687b ldr r3, [r7, #4] - 8003a2c: 61fb str r3, [r7, #28] - uint32_t tmp1; - HAL_I2C_ModeTypeDef tmp2; - - if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) - 8003a2e: 69bb ldr r3, [r7, #24] - 8003a30: f003 0310 and.w r3, r3, #16 - 8003a34: 2b00 cmp r3, #0 - 8003a36: d068 beq.n 8003b0a - { - /* Clear NACKF Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 8003a38: 68fb ldr r3, [r7, #12] - 8003a3a: 681b ldr r3, [r3, #0] - 8003a3c: 2210 movs r2, #16 - 8003a3e: 61da str r2, [r3, #28] - - /* Wait until STOP Flag is set or timeout occurred */ - /* AutoEnd should be initiate after AF */ - while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) - 8003a40: e049 b.n 8003ad6 - { - /* Check for the Timeout */ - if (Timeout != HAL_MAX_DELAY) - 8003a42: 68bb ldr r3, [r7, #8] - 8003a44: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8003a48: d045 beq.n 8003ad6 - { - if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) - 8003a4a: f7fe f95d bl 8001d08 - 8003a4e: 4602 mov r2, r0 - 8003a50: 69fb ldr r3, [r7, #28] - 8003a52: 1ad3 subs r3, r2, r3 - 8003a54: 68ba ldr r2, [r7, #8] - 8003a56: 429a cmp r2, r3 - 8003a58: d302 bcc.n 8003a60 - 8003a5a: 68bb ldr r3, [r7, #8] - 8003a5c: 2b00 cmp r3, #0 - 8003a5e: d13a bne.n 8003ad6 - { - tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); - 8003a60: 68fb ldr r3, [r7, #12] - 8003a62: 681b ldr r3, [r3, #0] - 8003a64: 685b ldr r3, [r3, #4] - 8003a66: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 8003a6a: 617b str r3, [r7, #20] - tmp2 = hi2c->Mode; - 8003a6c: 68fb ldr r3, [r7, #12] - 8003a6e: f893 3042 ldrb.w r3, [r3, #66] ; 0x42 - 8003a72: 74fb strb r3, [r7, #19] - - /* In case of I2C still busy, try to regenerate a STOP manually */ - if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ - 8003a74: 68fb ldr r3, [r7, #12] - 8003a76: 681b ldr r3, [r3, #0] - 8003a78: 699b ldr r3, [r3, #24] - 8003a7a: f403 4300 and.w r3, r3, #32768 ; 0x8000 - 8003a7e: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 8003a82: d121 bne.n 8003ac8 - 8003a84: 697b ldr r3, [r7, #20] - 8003a86: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 - 8003a8a: d01d beq.n 8003ac8 - (tmp1 != I2C_CR2_STOP) && \ - 8003a8c: 7cfb ldrb r3, [r7, #19] - 8003a8e: 2b20 cmp r3, #32 - 8003a90: d01a beq.n 8003ac8 - (tmp2 != HAL_I2C_MODE_SLAVE)) - { - /* Generate Stop */ - hi2c->Instance->CR2 |= I2C_CR2_STOP; - 8003a92: 68fb ldr r3, [r7, #12] - 8003a94: 681b ldr r3, [r3, #0] - 8003a96: 685a ldr r2, [r3, #4] - 8003a98: 68fb ldr r3, [r7, #12] - 8003a9a: 681b ldr r3, [r3, #0] - 8003a9c: f442 4280 orr.w r2, r2, #16384 ; 0x4000 - 8003aa0: 605a str r2, [r3, #4] - - /* Update Tick with new reference */ - tickstart = HAL_GetTick(); - 8003aa2: f7fe f931 bl 8001d08 - 8003aa6: 61f8 str r0, [r7, #28] - } - - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) - 8003aa8: e00e b.n 8003ac8 - { - /* Check for the Timeout */ - if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) - 8003aaa: f7fe f92d bl 8001d08 - 8003aae: 4602 mov r2, r0 - 8003ab0: 69fb ldr r3, [r7, #28] - 8003ab2: 1ad3 subs r3, r2, r3 - 8003ab4: 2b19 cmp r3, #25 - 8003ab6: d907 bls.n 8003ac8 - { - error_code |= HAL_I2C_ERROR_TIMEOUT; - 8003ab8: 6a3b ldr r3, [r7, #32] - 8003aba: f043 0320 orr.w r3, r3, #32 - 8003abe: 623b str r3, [r7, #32] - - status = HAL_ERROR; - 8003ac0: 2301 movs r3, #1 - 8003ac2: f887 3027 strb.w r3, [r7, #39] ; 0x27 - - break; - 8003ac6: e006 b.n 8003ad6 - while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) - 8003ac8: 68fb ldr r3, [r7, #12] - 8003aca: 681b ldr r3, [r3, #0] - 8003acc: 699b ldr r3, [r3, #24] - 8003ace: f003 0320 and.w r3, r3, #32 - 8003ad2: 2b20 cmp r3, #32 - 8003ad4: d1e9 bne.n 8003aaa - while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) - 8003ad6: 68fb ldr r3, [r7, #12] - 8003ad8: 681b ldr r3, [r3, #0] - 8003ada: 699b ldr r3, [r3, #24] - 8003adc: f003 0320 and.w r3, r3, #32 - 8003ae0: 2b20 cmp r3, #32 - 8003ae2: d003 beq.n 8003aec - 8003ae4: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8003ae8: 2b00 cmp r3, #0 - 8003aea: d0aa beq.n 8003a42 - } - } - } - - /* In case STOP Flag is detected, clear it */ - if (status == HAL_OK) - 8003aec: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8003af0: 2b00 cmp r3, #0 - 8003af2: d103 bne.n 8003afc - { - /* Clear STOP Flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 8003af4: 68fb ldr r3, [r7, #12] - 8003af6: 681b ldr r3, [r3, #0] - 8003af8: 2220 movs r2, #32 - 8003afa: 61da str r2, [r3, #28] - } - - error_code |= HAL_I2C_ERROR_AF; - 8003afc: 6a3b ldr r3, [r7, #32] - 8003afe: f043 0304 orr.w r3, r3, #4 - 8003b02: 623b str r3, [r7, #32] - - status = HAL_ERROR; - 8003b04: 2301 movs r3, #1 - 8003b06: f887 3027 strb.w r3, [r7, #39] ; 0x27 - } - - /* Refresh Content of Status register */ - itflag = hi2c->Instance->ISR; - 8003b0a: 68fb ldr r3, [r7, #12] - 8003b0c: 681b ldr r3, [r3, #0] - 8003b0e: 699b ldr r3, [r3, #24] - 8003b10: 61bb str r3, [r7, #24] - - /* Then verify if an additional errors occurs */ - /* Check if a Bus error occurred */ - if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) - 8003b12: 69bb ldr r3, [r7, #24] - 8003b14: f403 7380 and.w r3, r3, #256 ; 0x100 - 8003b18: 2b00 cmp r3, #0 - 8003b1a: d00b beq.n 8003b34 - { - error_code |= HAL_I2C_ERROR_BERR; - 8003b1c: 6a3b ldr r3, [r7, #32] - 8003b1e: f043 0301 orr.w r3, r3, #1 - 8003b22: 623b str r3, [r7, #32] - - /* Clear BERR flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); - 8003b24: 68fb ldr r3, [r7, #12] - 8003b26: 681b ldr r3, [r3, #0] - 8003b28: f44f 7280 mov.w r2, #256 ; 0x100 - 8003b2c: 61da str r2, [r3, #28] - - status = HAL_ERROR; - 8003b2e: 2301 movs r3, #1 - 8003b30: f887 3027 strb.w r3, [r7, #39] ; 0x27 - } - - /* Check if an Over-Run/Under-Run error occurred */ - if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) - 8003b34: 69bb ldr r3, [r7, #24] - 8003b36: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8003b3a: 2b00 cmp r3, #0 - 8003b3c: d00b beq.n 8003b56 - { - error_code |= HAL_I2C_ERROR_OVR; - 8003b3e: 6a3b ldr r3, [r7, #32] - 8003b40: f043 0308 orr.w r3, r3, #8 - 8003b44: 623b str r3, [r7, #32] - - /* Clear OVR flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); - 8003b46: 68fb ldr r3, [r7, #12] - 8003b48: 681b ldr r3, [r3, #0] - 8003b4a: f44f 6280 mov.w r2, #1024 ; 0x400 - 8003b4e: 61da str r2, [r3, #28] - - status = HAL_ERROR; - 8003b50: 2301 movs r3, #1 - 8003b52: f887 3027 strb.w r3, [r7, #39] ; 0x27 - } - - /* Check if an Arbitration Loss error occurred */ - if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) - 8003b56: 69bb ldr r3, [r7, #24] - 8003b58: f403 7300 and.w r3, r3, #512 ; 0x200 - 8003b5c: 2b00 cmp r3, #0 - 8003b5e: d00b beq.n 8003b78 - { - error_code |= HAL_I2C_ERROR_ARLO; - 8003b60: 6a3b ldr r3, [r7, #32] - 8003b62: f043 0302 orr.w r3, r3, #2 - 8003b66: 623b str r3, [r7, #32] - - /* Clear ARLO flag */ - __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); - 8003b68: 68fb ldr r3, [r7, #12] - 8003b6a: 681b ldr r3, [r3, #0] - 8003b6c: f44f 7200 mov.w r2, #512 ; 0x200 - 8003b70: 61da str r2, [r3, #28] - - status = HAL_ERROR; - 8003b72: 2301 movs r3, #1 - 8003b74: f887 3027 strb.w r3, [r7, #39] ; 0x27 - } - - if (status != HAL_OK) - 8003b78: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 - 8003b7c: 2b00 cmp r3, #0 - 8003b7e: d01c beq.n 8003bba - { - /* Flush TX register */ - I2C_Flush_TXDR(hi2c); - 8003b80: 68f8 ldr r0, [r7, #12] - 8003b82: f7ff fe28 bl 80037d6 - - /* Clear Configuration Register 2 */ - I2C_RESET_CR2(hi2c); - 8003b86: 68fb ldr r3, [r7, #12] - 8003b88: 681b ldr r3, [r3, #0] - 8003b8a: 6859 ldr r1, [r3, #4] - 8003b8c: 68fb ldr r3, [r7, #12] - 8003b8e: 681a ldr r2, [r3, #0] - 8003b90: 4b0d ldr r3, [pc, #52] ; (8003bc8 ) - 8003b92: 400b ands r3, r1 - 8003b94: 6053 str r3, [r2, #4] - - hi2c->ErrorCode |= error_code; - 8003b96: 68fb ldr r3, [r7, #12] - 8003b98: 6c5a ldr r2, [r3, #68] ; 0x44 - 8003b9a: 6a3b ldr r3, [r7, #32] - 8003b9c: 431a orrs r2, r3 - 8003b9e: 68fb ldr r3, [r7, #12] - 8003ba0: 645a str r2, [r3, #68] ; 0x44 - hi2c->State = HAL_I2C_STATE_READY; - 8003ba2: 68fb ldr r3, [r7, #12] - 8003ba4: 2220 movs r2, #32 - 8003ba6: f883 2041 strb.w r2, [r3, #65] ; 0x41 - hi2c->Mode = HAL_I2C_MODE_NONE; - 8003baa: 68fb ldr r3, [r7, #12] - 8003bac: 2200 movs r2, #0 - 8003bae: f883 2042 strb.w r2, [r3, #66] ; 0x42 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8003bb2: 68fb ldr r3, [r7, #12] - 8003bb4: 2200 movs r2, #0 - 8003bb6: f883 2040 strb.w r2, [r3, #64] ; 0x40 - } - - return status; - 8003bba: f897 3027 ldrb.w r3, [r7, #39] ; 0x27 -} - 8003bbe: 4618 mov r0, r3 - 8003bc0: 3728 adds r7, #40 ; 0x28 - 8003bc2: 46bd mov sp, r7 - 8003bc4: bd80 pop {r7, pc} - 8003bc6: bf00 nop - 8003bc8: fe00e800 .word 0xfe00e800 - -08003bcc : - * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. - * @retval None - */ -static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t Mode, - uint32_t Request) -{ - 8003bcc: b480 push {r7} - 8003bce: b087 sub sp, #28 - 8003bd0: af00 add r7, sp, #0 - 8003bd2: 60f8 str r0, [r7, #12] - 8003bd4: 607b str r3, [r7, #4] - 8003bd6: 460b mov r3, r1 - 8003bd8: 817b strh r3, [r7, #10] - 8003bda: 4613 mov r3, r2 - 8003bdc: 727b strb r3, [r7, #9] - assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); - assert_param(IS_TRANSFER_MODE(Mode)); - assert_param(IS_TRANSFER_REQUEST(Request)); - - /* Declaration of tmp to prevent undefined behavior of volatile usage */ - uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ - 8003bde: 897b ldrh r3, [r7, #10] - 8003be0: f3c3 0209 ubfx r2, r3, #0, #10 - (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ - 8003be4: 7a7b ldrb r3, [r7, #9] - 8003be6: 041b lsls r3, r3, #16 - 8003be8: f403 037f and.w r3, r3, #16711680 ; 0xff0000 - uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ - 8003bec: 431a orrs r2, r3 - (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ - 8003bee: 687b ldr r3, [r7, #4] - 8003bf0: 431a orrs r2, r3 - uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ - 8003bf2: 6a3b ldr r3, [r7, #32] - 8003bf4: 4313 orrs r3, r2 - 8003bf6: f023 4300 bic.w r3, r3, #2147483648 ; 0x80000000 - 8003bfa: 617b str r3, [r7, #20] - (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); - - /* update CR2 register */ - MODIFY_REG(hi2c->Instance->CR2, \ - 8003bfc: 68fb ldr r3, [r7, #12] - 8003bfe: 681b ldr r3, [r3, #0] - 8003c00: 685a ldr r2, [r3, #4] - 8003c02: 6a3b ldr r3, [r7, #32] - 8003c04: 0d5b lsrs r3, r3, #21 - 8003c06: f403 6180 and.w r1, r3, #1024 ; 0x400 - 8003c0a: 4b08 ldr r3, [pc, #32] ; (8003c2c ) - 8003c0c: 430b orrs r3, r1 - 8003c0e: 43db mvns r3, r3 - 8003c10: ea02 0103 and.w r1, r2, r3 - 8003c14: 68fb ldr r3, [r7, #12] - 8003c16: 681b ldr r3, [r3, #0] - 8003c18: 697a ldr r2, [r7, #20] - 8003c1a: 430a orrs r2, r1 - 8003c1c: 605a str r2, [r3, #4] - ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ - (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ - I2C_CR2_START | I2C_CR2_STOP)), tmp); -} - 8003c1e: bf00 nop - 8003c20: 371c adds r7, #28 - 8003c22: 46bd mov sp, r7 - 8003c24: f85d 7b04 ldr.w r7, [sp], #4 - 8003c28: 4770 bx lr - 8003c2a: bf00 nop - 8003c2c: 03ff63ff .word 0x03ff63ff - -08003c30 : - * the configuration information for the specified I2C. - * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. - * @retval None - */ -static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) -{ - 8003c30: b480 push {r7} - 8003c32: b085 sub sp, #20 - 8003c34: af00 add r7, sp, #0 - 8003c36: 6078 str r0, [r7, #4] - 8003c38: 460b mov r3, r1 - 8003c3a: 807b strh r3, [r7, #2] - uint32_t tmpisr = 0U; - 8003c3c: 2300 movs r3, #0 - 8003c3e: 60fb str r3, [r7, #12] - - if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) - 8003c40: 887b ldrh r3, [r7, #2] - 8003c42: f003 0301 and.w r3, r3, #1 - 8003c46: 2b00 cmp r3, #0 - 8003c48: d00f beq.n 8003c6a - { - /* Disable TC and TXI interrupts */ - tmpisr |= I2C_IT_TCI | I2C_IT_TXI; - 8003c4a: 68fb ldr r3, [r7, #12] - 8003c4c: f043 0342 orr.w r3, r3, #66 ; 0x42 - 8003c50: 60fb str r3, [r7, #12] - - if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) - 8003c52: 687b ldr r3, [r7, #4] - 8003c54: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8003c58: b2db uxtb r3, r3 - 8003c5a: f003 0328 and.w r3, r3, #40 ; 0x28 - 8003c5e: 2b28 cmp r3, #40 ; 0x28 - 8003c60: d003 beq.n 8003c6a - { - /* Disable NACK and STOP interrupts */ - tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; - 8003c62: 68fb ldr r3, [r7, #12] - 8003c64: f043 03b0 orr.w r3, r3, #176 ; 0xb0 - 8003c68: 60fb str r3, [r7, #12] - } - } - - if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) - 8003c6a: 887b ldrh r3, [r7, #2] - 8003c6c: f003 0302 and.w r3, r3, #2 - 8003c70: 2b00 cmp r3, #0 - 8003c72: d00f beq.n 8003c94 - { - /* Disable TC and RXI interrupts */ - tmpisr |= I2C_IT_TCI | I2C_IT_RXI; - 8003c74: 68fb ldr r3, [r7, #12] - 8003c76: f043 0344 orr.w r3, r3, #68 ; 0x44 - 8003c7a: 60fb str r3, [r7, #12] - - if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) - 8003c7c: 687b ldr r3, [r7, #4] - 8003c7e: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8003c82: b2db uxtb r3, r3 - 8003c84: f003 0328 and.w r3, r3, #40 ; 0x28 - 8003c88: 2b28 cmp r3, #40 ; 0x28 - 8003c8a: d003 beq.n 8003c94 - { - /* Disable NACK and STOP interrupts */ - tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; - 8003c8c: 68fb ldr r3, [r7, #12] - 8003c8e: f043 03b0 orr.w r3, r3, #176 ; 0xb0 - 8003c92: 60fb str r3, [r7, #12] - } - } - - if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) - 8003c94: f9b7 3002 ldrsh.w r3, [r7, #2] - 8003c98: 2b00 cmp r3, #0 - 8003c9a: da03 bge.n 8003ca4 - { - /* Disable ADDR, NACK and STOP interrupts */ - tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; - 8003c9c: 68fb ldr r3, [r7, #12] - 8003c9e: f043 03b8 orr.w r3, r3, #184 ; 0xb8 - 8003ca2: 60fb str r3, [r7, #12] - } - - if (InterruptRequest == I2C_XFER_ERROR_IT) - 8003ca4: 887b ldrh r3, [r7, #2] - 8003ca6: 2b10 cmp r3, #16 - 8003ca8: d103 bne.n 8003cb2 - { - /* Enable ERR and NACK interrupts */ - tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; - 8003caa: 68fb ldr r3, [r7, #12] - 8003cac: f043 0390 orr.w r3, r3, #144 ; 0x90 - 8003cb0: 60fb str r3, [r7, #12] - } - - if (InterruptRequest == I2C_XFER_CPLT_IT) - 8003cb2: 887b ldrh r3, [r7, #2] - 8003cb4: 2b20 cmp r3, #32 - 8003cb6: d103 bne.n 8003cc0 - { - /* Enable STOP interrupts */ - tmpisr |= I2C_IT_STOPI; - 8003cb8: 68fb ldr r3, [r7, #12] - 8003cba: f043 0320 orr.w r3, r3, #32 - 8003cbe: 60fb str r3, [r7, #12] - } - - if (InterruptRequest == I2C_XFER_RELOAD_IT) - 8003cc0: 887b ldrh r3, [r7, #2] - 8003cc2: 2b40 cmp r3, #64 ; 0x40 - 8003cc4: d103 bne.n 8003cce - { - /* Enable TC interrupts */ - tmpisr |= I2C_IT_TCI; - 8003cc6: 68fb ldr r3, [r7, #12] - 8003cc8: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8003ccc: 60fb str r3, [r7, #12] - } - - /* Disable interrupts only at the end */ - /* to avoid a breaking situation like at "t" time */ - /* all disable interrupts request are not done */ - __HAL_I2C_DISABLE_IT(hi2c, tmpisr); - 8003cce: 687b ldr r3, [r7, #4] - 8003cd0: 681b ldr r3, [r3, #0] - 8003cd2: 6819 ldr r1, [r3, #0] - 8003cd4: 68fb ldr r3, [r7, #12] - 8003cd6: 43da mvns r2, r3 - 8003cd8: 687b ldr r3, [r7, #4] - 8003cda: 681b ldr r3, [r3, #0] - 8003cdc: 400a ands r2, r1 - 8003cde: 601a str r2, [r3, #0] -} - 8003ce0: bf00 nop - 8003ce2: 3714 adds r7, #20 - 8003ce4: 46bd mov sp, r7 - 8003ce6: f85d 7b04 ldr.w r7, [sp], #4 - 8003cea: 4770 bx lr - -08003cec : - * the configuration information for the specified I2Cx peripheral. - * @param AnalogFilter New state of the Analog filter. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter) -{ - 8003cec: b480 push {r7} - 8003cee: b083 sub sp, #12 - 8003cf0: af00 add r7, sp, #0 - 8003cf2: 6078 str r0, [r7, #4] - 8003cf4: 6039 str r1, [r7, #0] - /* Check the parameters */ - assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); - assert_param(IS_I2C_ANALOG_FILTER(AnalogFilter)); - - if (hi2c->State == HAL_I2C_STATE_READY) - 8003cf6: 687b ldr r3, [r7, #4] - 8003cf8: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8003cfc: b2db uxtb r3, r3 - 8003cfe: 2b20 cmp r3, #32 - 8003d00: d138 bne.n 8003d74 - { - /* Process Locked */ - __HAL_LOCK(hi2c); - 8003d02: 687b ldr r3, [r7, #4] - 8003d04: f893 3040 ldrb.w r3, [r3, #64] ; 0x40 - 8003d08: 2b01 cmp r3, #1 - 8003d0a: d101 bne.n 8003d10 - 8003d0c: 2302 movs r3, #2 - 8003d0e: e032 b.n 8003d76 - 8003d10: 687b ldr r3, [r7, #4] - 8003d12: 2201 movs r2, #1 - 8003d14: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - hi2c->State = HAL_I2C_STATE_BUSY; - 8003d18: 687b ldr r3, [r7, #4] - 8003d1a: 2224 movs r2, #36 ; 0x24 - 8003d1c: f883 2041 strb.w r2, [r3, #65] ; 0x41 - - /* Disable the selected I2C peripheral */ - __HAL_I2C_DISABLE(hi2c); - 8003d20: 687b ldr r3, [r7, #4] - 8003d22: 681b ldr r3, [r3, #0] - 8003d24: 681a ldr r2, [r3, #0] - 8003d26: 687b ldr r3, [r7, #4] - 8003d28: 681b ldr r3, [r3, #0] - 8003d2a: f022 0201 bic.w r2, r2, #1 - 8003d2e: 601a str r2, [r3, #0] - - /* Reset I2Cx ANOFF bit */ - hi2c->Instance->CR1 &= ~(I2C_CR1_ANFOFF); - 8003d30: 687b ldr r3, [r7, #4] - 8003d32: 681b ldr r3, [r3, #0] - 8003d34: 681a ldr r2, [r3, #0] - 8003d36: 687b ldr r3, [r7, #4] - 8003d38: 681b ldr r3, [r3, #0] - 8003d3a: f422 5280 bic.w r2, r2, #4096 ; 0x1000 - 8003d3e: 601a str r2, [r3, #0] - - /* Set analog filter bit*/ - hi2c->Instance->CR1 |= AnalogFilter; - 8003d40: 687b ldr r3, [r7, #4] - 8003d42: 681b ldr r3, [r3, #0] - 8003d44: 6819 ldr r1, [r3, #0] - 8003d46: 687b ldr r3, [r7, #4] - 8003d48: 681b ldr r3, [r3, #0] - 8003d4a: 683a ldr r2, [r7, #0] - 8003d4c: 430a orrs r2, r1 - 8003d4e: 601a str r2, [r3, #0] - - __HAL_I2C_ENABLE(hi2c); - 8003d50: 687b ldr r3, [r7, #4] - 8003d52: 681b ldr r3, [r3, #0] - 8003d54: 681a ldr r2, [r3, #0] - 8003d56: 687b ldr r3, [r7, #4] - 8003d58: 681b ldr r3, [r3, #0] - 8003d5a: f042 0201 orr.w r2, r2, #1 - 8003d5e: 601a str r2, [r3, #0] - - hi2c->State = HAL_I2C_STATE_READY; - 8003d60: 687b ldr r3, [r7, #4] - 8003d62: 2220 movs r2, #32 - 8003d64: f883 2041 strb.w r2, [r3, #65] ; 0x41 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8003d68: 687b ldr r3, [r7, #4] - 8003d6a: 2200 movs r2, #0 - 8003d6c: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - return HAL_OK; - 8003d70: 2300 movs r3, #0 - 8003d72: e000 b.n 8003d76 - } - else - { - return HAL_BUSY; - 8003d74: 2302 movs r3, #2 - } -} - 8003d76: 4618 mov r0, r3 - 8003d78: 370c adds r7, #12 - 8003d7a: 46bd mov sp, r7 - 8003d7c: f85d 7b04 ldr.w r7, [sp], #4 - 8003d80: 4770 bx lr - -08003d82 : - * the configuration information for the specified I2Cx peripheral. - * @param DigitalFilter Coefficient of digital noise filter between Min_Data=0x00 and Max_Data=0x0F. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter) -{ - 8003d82: b480 push {r7} - 8003d84: b085 sub sp, #20 - 8003d86: af00 add r7, sp, #0 - 8003d88: 6078 str r0, [r7, #4] - 8003d8a: 6039 str r1, [r7, #0] - - /* Check the parameters */ - assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); - assert_param(IS_I2C_DIGITAL_FILTER(DigitalFilter)); - - if (hi2c->State == HAL_I2C_STATE_READY) - 8003d8c: 687b ldr r3, [r7, #4] - 8003d8e: f893 3041 ldrb.w r3, [r3, #65] ; 0x41 - 8003d92: b2db uxtb r3, r3 - 8003d94: 2b20 cmp r3, #32 - 8003d96: d139 bne.n 8003e0c - { - /* Process Locked */ - __HAL_LOCK(hi2c); - 8003d98: 687b ldr r3, [r7, #4] - 8003d9a: f893 3040 ldrb.w r3, [r3, #64] ; 0x40 - 8003d9e: 2b01 cmp r3, #1 - 8003da0: d101 bne.n 8003da6 - 8003da2: 2302 movs r3, #2 - 8003da4: e033 b.n 8003e0e - 8003da6: 687b ldr r3, [r7, #4] - 8003da8: 2201 movs r2, #1 - 8003daa: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - hi2c->State = HAL_I2C_STATE_BUSY; - 8003dae: 687b ldr r3, [r7, #4] - 8003db0: 2224 movs r2, #36 ; 0x24 - 8003db2: f883 2041 strb.w r2, [r3, #65] ; 0x41 - - /* Disable the selected I2C peripheral */ - __HAL_I2C_DISABLE(hi2c); - 8003db6: 687b ldr r3, [r7, #4] - 8003db8: 681b ldr r3, [r3, #0] - 8003dba: 681a ldr r2, [r3, #0] - 8003dbc: 687b ldr r3, [r7, #4] - 8003dbe: 681b ldr r3, [r3, #0] - 8003dc0: f022 0201 bic.w r2, r2, #1 - 8003dc4: 601a str r2, [r3, #0] - - /* Get the old register value */ - tmpreg = hi2c->Instance->CR1; - 8003dc6: 687b ldr r3, [r7, #4] - 8003dc8: 681b ldr r3, [r3, #0] - 8003dca: 681b ldr r3, [r3, #0] - 8003dcc: 60fb str r3, [r7, #12] - - /* Reset I2Cx DNF bits [11:8] */ - tmpreg &= ~(I2C_CR1_DNF); - 8003dce: 68fb ldr r3, [r7, #12] - 8003dd0: f423 6370 bic.w r3, r3, #3840 ; 0xf00 - 8003dd4: 60fb str r3, [r7, #12] - - /* Set I2Cx DNF coefficient */ - tmpreg |= DigitalFilter << 8U; - 8003dd6: 683b ldr r3, [r7, #0] - 8003dd8: 021b lsls r3, r3, #8 - 8003dda: 68fa ldr r2, [r7, #12] - 8003ddc: 4313 orrs r3, r2 - 8003dde: 60fb str r3, [r7, #12] - - /* Store the new register value */ - hi2c->Instance->CR1 = tmpreg; - 8003de0: 687b ldr r3, [r7, #4] - 8003de2: 681b ldr r3, [r3, #0] - 8003de4: 68fa ldr r2, [r7, #12] - 8003de6: 601a str r2, [r3, #0] - - __HAL_I2C_ENABLE(hi2c); - 8003de8: 687b ldr r3, [r7, #4] - 8003dea: 681b ldr r3, [r3, #0] - 8003dec: 681a ldr r2, [r3, #0] - 8003dee: 687b ldr r3, [r7, #4] - 8003df0: 681b ldr r3, [r3, #0] - 8003df2: f042 0201 orr.w r2, r2, #1 - 8003df6: 601a str r2, [r3, #0] - - hi2c->State = HAL_I2C_STATE_READY; - 8003df8: 687b ldr r3, [r7, #4] - 8003dfa: 2220 movs r2, #32 - 8003dfc: f883 2041 strb.w r2, [r3, #65] ; 0x41 - - /* Process Unlocked */ - __HAL_UNLOCK(hi2c); - 8003e00: 687b ldr r3, [r7, #4] - 8003e02: 2200 movs r2, #0 - 8003e04: f883 2040 strb.w r2, [r3, #64] ; 0x40 - - return HAL_OK; - 8003e08: 2300 movs r3, #0 - 8003e0a: e000 b.n 8003e0e - } - else - { - return HAL_BUSY; - 8003e0c: 2302 movs r3, #2 - } -} - 8003e0e: 4618 mov r0, r3 - 8003e10: 3714 adds r7, #20 - 8003e12: 46bd mov sp, r7 - 8003e14: f85d 7b04 ldr.w r7, [sp], #4 - 8003e18: 4770 bx lr - ... - -08003e1c : - * @brief Return Voltage Scaling Range. - * @retval VOS bit field (PWR_REGULATOR_VOLTAGE_SCALE1 or PWR_REGULATOR_VOLTAGE_SCALE2 - * or PWR_REGULATOR_VOLTAGE_SCALE1_BOOST when applicable) - */ -uint32_t HAL_PWREx_GetVoltageRange(void) -{ - 8003e1c: b480 push {r7} - 8003e1e: af00 add r7, sp, #0 - else - { - return PWR_REGULATOR_VOLTAGE_SCALE1_BOOST; - } -#else - return (PWR->CR1 & PWR_CR1_VOS); - 8003e20: 4b04 ldr r3, [pc, #16] ; (8003e34 ) - 8003e22: 681b ldr r3, [r3, #0] - 8003e24: f403 63c0 and.w r3, r3, #1536 ; 0x600 -#endif -} - 8003e28: 4618 mov r0, r3 - 8003e2a: 46bd mov sp, r7 - 8003e2c: f85d 7b04 ldr.w r7, [sp], #4 - 8003e30: 4770 bx lr - 8003e32: bf00 nop - 8003e34: 40007000 .word 0x40007000 - -08003e38 : - * cleared before returning the status. If the flag is not cleared within - * 50 microseconds, HAL_TIMEOUT status is reported. - * @retval HAL Status - */ -HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling) -{ - 8003e38: b480 push {r7} - 8003e3a: b085 sub sp, #20 - 8003e3c: af00 add r7, sp, #0 - 8003e3e: 6078 str r0, [r7, #4] - } - -#else - - /* If Set Range 1 */ - if (VoltageScaling == PWR_REGULATOR_VOLTAGE_SCALE1) - 8003e40: 687b ldr r3, [r7, #4] - 8003e42: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8003e46: d130 bne.n 8003eaa - { - if (READ_BIT(PWR->CR1, PWR_CR1_VOS) != PWR_REGULATOR_VOLTAGE_SCALE1) - 8003e48: 4b23 ldr r3, [pc, #140] ; (8003ed8 ) - 8003e4a: 681b ldr r3, [r3, #0] - 8003e4c: f403 63c0 and.w r3, r3, #1536 ; 0x600 - 8003e50: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8003e54: d038 beq.n 8003ec8 - { - /* Set Range 1 */ - MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE1); - 8003e56: 4b20 ldr r3, [pc, #128] ; (8003ed8 ) - 8003e58: 681b ldr r3, [r3, #0] - 8003e5a: f423 63c0 bic.w r3, r3, #1536 ; 0x600 - 8003e5e: 4a1e ldr r2, [pc, #120] ; (8003ed8 ) - 8003e60: f443 7300 orr.w r3, r3, #512 ; 0x200 - 8003e64: 6013 str r3, [r2, #0] - - /* Wait until VOSF is cleared */ - wait_loop_index = ((PWR_FLAG_SETTING_DELAY_US * SystemCoreClock) / 1000000U) + 1U; - 8003e66: 4b1d ldr r3, [pc, #116] ; (8003edc ) - 8003e68: 681b ldr r3, [r3, #0] - 8003e6a: 2232 movs r2, #50 ; 0x32 - 8003e6c: fb02 f303 mul.w r3, r2, r3 - 8003e70: 4a1b ldr r2, [pc, #108] ; (8003ee0 ) - 8003e72: fba2 2303 umull r2, r3, r2, r3 - 8003e76: 0c9b lsrs r3, r3, #18 - 8003e78: 3301 adds r3, #1 - 8003e7a: 60fb str r3, [r7, #12] - while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) - 8003e7c: e002 b.n 8003e84 - { - wait_loop_index--; - 8003e7e: 68fb ldr r3, [r7, #12] - 8003e80: 3b01 subs r3, #1 - 8003e82: 60fb str r3, [r7, #12] - while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) && (wait_loop_index != 0U)) - 8003e84: 4b14 ldr r3, [pc, #80] ; (8003ed8 ) - 8003e86: 695b ldr r3, [r3, #20] - 8003e88: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8003e8c: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 8003e90: d102 bne.n 8003e98 - 8003e92: 68fb ldr r3, [r7, #12] - 8003e94: 2b00 cmp r3, #0 - 8003e96: d1f2 bne.n 8003e7e - } - if (HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_VOSF)) - 8003e98: 4b0f ldr r3, [pc, #60] ; (8003ed8 ) - 8003e9a: 695b ldr r3, [r3, #20] - 8003e9c: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8003ea0: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 8003ea4: d110 bne.n 8003ec8 - { - return HAL_TIMEOUT; - 8003ea6: 2303 movs r3, #3 - 8003ea8: e00f b.n 8003eca - } - } - } - else - { - if (READ_BIT(PWR->CR1, PWR_CR1_VOS) != PWR_REGULATOR_VOLTAGE_SCALE2) - 8003eaa: 4b0b ldr r3, [pc, #44] ; (8003ed8 ) - 8003eac: 681b ldr r3, [r3, #0] - 8003eae: f403 63c0 and.w r3, r3, #1536 ; 0x600 - 8003eb2: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 8003eb6: d007 beq.n 8003ec8 - { - /* Set Range 2 */ - MODIFY_REG(PWR->CR1, PWR_CR1_VOS, PWR_REGULATOR_VOLTAGE_SCALE2); - 8003eb8: 4b07 ldr r3, [pc, #28] ; (8003ed8 ) - 8003eba: 681b ldr r3, [r3, #0] - 8003ebc: f423 63c0 bic.w r3, r3, #1536 ; 0x600 - 8003ec0: 4a05 ldr r2, [pc, #20] ; (8003ed8 ) - 8003ec2: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 8003ec6: 6013 str r3, [r2, #0] - /* No need to wait for VOSF to be cleared for this transition */ - } - } -#endif - - return HAL_OK; - 8003ec8: 2300 movs r3, #0 -} - 8003eca: 4618 mov r0, r3 - 8003ecc: 3714 adds r7, #20 - 8003ece: 46bd mov sp, r7 - 8003ed0: f85d 7b04 ldr.w r7, [sp], #4 - 8003ed4: 4770 bx lr - 8003ed6: bf00 nop - 8003ed8: 40007000 .word 0x40007000 - 8003edc: 20000000 .word 0x20000000 - 8003ee0: 431bde83 .word 0x431bde83 - -08003ee4 : - * @note If HSE failed to start, HSE should be disabled before recalling - HAL_RCC_OscConfig(). - * @retval HAL status - */ -HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) -{ - 8003ee4: b580 push {r7, lr} - 8003ee6: b088 sub sp, #32 - 8003ee8: af00 add r7, sp, #0 - 8003eea: 6078 str r0, [r7, #4] - uint32_t tickstart; - HAL_StatusTypeDef status; - uint32_t sysclk_source, pll_config; - - /* Check Null pointer */ - if(RCC_OscInitStruct == NULL) - 8003eec: 687b ldr r3, [r7, #4] - 8003eee: 2b00 cmp r3, #0 - 8003ef0: d101 bne.n 8003ef6 - { - return HAL_ERROR; - 8003ef2: 2301 movs r3, #1 - 8003ef4: e3ca b.n 800468c - } - - /* Check the parameters */ - assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); - - sysclk_source = __HAL_RCC_GET_SYSCLK_SOURCE(); - 8003ef6: 4b97 ldr r3, [pc, #604] ; (8004154 ) - 8003ef8: 689b ldr r3, [r3, #8] - 8003efa: f003 030c and.w r3, r3, #12 - 8003efe: 61bb str r3, [r7, #24] - pll_config = __HAL_RCC_GET_PLL_OSCSOURCE(); - 8003f00: 4b94 ldr r3, [pc, #592] ; (8004154 ) - 8003f02: 68db ldr r3, [r3, #12] - 8003f04: f003 0303 and.w r3, r3, #3 - 8003f08: 617b str r3, [r7, #20] - - /*----------------------------- MSI Configuration --------------------------*/ - if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_MSI) == RCC_OSCILLATORTYPE_MSI) - 8003f0a: 687b ldr r3, [r7, #4] - 8003f0c: 681b ldr r3, [r3, #0] - 8003f0e: f003 0310 and.w r3, r3, #16 - 8003f12: 2b00 cmp r3, #0 - 8003f14: f000 80e4 beq.w 80040e0 - assert_param(IS_RCC_MSI(RCC_OscInitStruct->MSIState)); - assert_param(IS_RCC_MSICALIBRATION_VALUE(RCC_OscInitStruct->MSICalibrationValue)); - assert_param(IS_RCC_MSI_CLOCK_RANGE(RCC_OscInitStruct->MSIClockRange)); - - /* Check if MSI is used as system clock or as PLL source when PLL is selected as system clock */ - if((sysclk_source == RCC_CFGR_SWS_MSI) || - 8003f18: 69bb ldr r3, [r7, #24] - 8003f1a: 2b00 cmp r3, #0 - 8003f1c: d007 beq.n 8003f2e - 8003f1e: 69bb ldr r3, [r7, #24] - 8003f20: 2b0c cmp r3, #12 - 8003f22: f040 808b bne.w 800403c - ((sysclk_source == RCC_CFGR_SWS_PLL) && (pll_config == RCC_PLLSOURCE_MSI))) - 8003f26: 697b ldr r3, [r7, #20] - 8003f28: 2b01 cmp r3, #1 - 8003f2a: f040 8087 bne.w 800403c - { - if((READ_BIT(RCC->CR, RCC_CR_MSIRDY) != 0U) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF)) - 8003f2e: 4b89 ldr r3, [pc, #548] ; (8004154 ) - 8003f30: 681b ldr r3, [r3, #0] - 8003f32: f003 0302 and.w r3, r3, #2 - 8003f36: 2b00 cmp r3, #0 - 8003f38: d005 beq.n 8003f46 - 8003f3a: 687b ldr r3, [r7, #4] - 8003f3c: 699b ldr r3, [r3, #24] - 8003f3e: 2b00 cmp r3, #0 - 8003f40: d101 bne.n 8003f46 - { - return HAL_ERROR; - 8003f42: 2301 movs r3, #1 - 8003f44: e3a2 b.n 800468c - else - { - /* To correctly read data from FLASH memory, the number of wait states (LATENCY) - must be correctly programmed according to the frequency of the CPU clock - (HCLK) and the supply voltage of the device. */ - if(RCC_OscInitStruct->MSIClockRange > __HAL_RCC_GET_MSI_RANGE()) - 8003f46: 687b ldr r3, [r7, #4] - 8003f48: 6a1a ldr r2, [r3, #32] - 8003f4a: 4b82 ldr r3, [pc, #520] ; (8004154 ) - 8003f4c: 681b ldr r3, [r3, #0] - 8003f4e: f003 0308 and.w r3, r3, #8 - 8003f52: 2b00 cmp r3, #0 - 8003f54: d004 beq.n 8003f60 - 8003f56: 4b7f ldr r3, [pc, #508] ; (8004154 ) - 8003f58: 681b ldr r3, [r3, #0] - 8003f5a: f003 03f0 and.w r3, r3, #240 ; 0xf0 - 8003f5e: e005 b.n 8003f6c - 8003f60: 4b7c ldr r3, [pc, #496] ; (8004154 ) - 8003f62: f8d3 3094 ldr.w r3, [r3, #148] ; 0x94 - 8003f66: 091b lsrs r3, r3, #4 - 8003f68: f003 03f0 and.w r3, r3, #240 ; 0xf0 - 8003f6c: 4293 cmp r3, r2 - 8003f6e: d223 bcs.n 8003fb8 - { - /* First increase number of wait states update if necessary */ - if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) - 8003f70: 687b ldr r3, [r7, #4] - 8003f72: 6a1b ldr r3, [r3, #32] - 8003f74: 4618 mov r0, r3 - 8003f76: f000 fd55 bl 8004a24 - 8003f7a: 4603 mov r3, r0 - 8003f7c: 2b00 cmp r3, #0 - 8003f7e: d001 beq.n 8003f84 - { - return HAL_ERROR; - 8003f80: 2301 movs r3, #1 - 8003f82: e383 b.n 800468c - } - - /* Selects the Multiple Speed oscillator (MSI) clock range .*/ - __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); - 8003f84: 4b73 ldr r3, [pc, #460] ; (8004154 ) - 8003f86: 681b ldr r3, [r3, #0] - 8003f88: 4a72 ldr r2, [pc, #456] ; (8004154 ) - 8003f8a: f043 0308 orr.w r3, r3, #8 - 8003f8e: 6013 str r3, [r2, #0] - 8003f90: 4b70 ldr r3, [pc, #448] ; (8004154 ) - 8003f92: 681b ldr r3, [r3, #0] - 8003f94: f023 02f0 bic.w r2, r3, #240 ; 0xf0 - 8003f98: 687b ldr r3, [r7, #4] - 8003f9a: 6a1b ldr r3, [r3, #32] - 8003f9c: 496d ldr r1, [pc, #436] ; (8004154 ) - 8003f9e: 4313 orrs r3, r2 - 8003fa0: 600b str r3, [r1, #0] - /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ - __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); - 8003fa2: 4b6c ldr r3, [pc, #432] ; (8004154 ) - 8003fa4: 685b ldr r3, [r3, #4] - 8003fa6: f423 427f bic.w r2, r3, #65280 ; 0xff00 - 8003faa: 687b ldr r3, [r7, #4] - 8003fac: 69db ldr r3, [r3, #28] - 8003fae: 021b lsls r3, r3, #8 - 8003fb0: 4968 ldr r1, [pc, #416] ; (8004154 ) - 8003fb2: 4313 orrs r3, r2 - 8003fb4: 604b str r3, [r1, #4] - 8003fb6: e025 b.n 8004004 - } - else - { - /* Else, keep current flash latency while decreasing applies */ - /* Selects the Multiple Speed oscillator (MSI) clock range .*/ - __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); - 8003fb8: 4b66 ldr r3, [pc, #408] ; (8004154 ) - 8003fba: 681b ldr r3, [r3, #0] - 8003fbc: 4a65 ldr r2, [pc, #404] ; (8004154 ) - 8003fbe: f043 0308 orr.w r3, r3, #8 - 8003fc2: 6013 str r3, [r2, #0] - 8003fc4: 4b63 ldr r3, [pc, #396] ; (8004154 ) - 8003fc6: 681b ldr r3, [r3, #0] - 8003fc8: f023 02f0 bic.w r2, r3, #240 ; 0xf0 - 8003fcc: 687b ldr r3, [r7, #4] - 8003fce: 6a1b ldr r3, [r3, #32] - 8003fd0: 4960 ldr r1, [pc, #384] ; (8004154 ) - 8003fd2: 4313 orrs r3, r2 - 8003fd4: 600b str r3, [r1, #0] - /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ - __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); - 8003fd6: 4b5f ldr r3, [pc, #380] ; (8004154 ) - 8003fd8: 685b ldr r3, [r3, #4] - 8003fda: f423 427f bic.w r2, r3, #65280 ; 0xff00 - 8003fde: 687b ldr r3, [r7, #4] - 8003fe0: 69db ldr r3, [r3, #28] - 8003fe2: 021b lsls r3, r3, #8 - 8003fe4: 495b ldr r1, [pc, #364] ; (8004154 ) - 8003fe6: 4313 orrs r3, r2 - 8003fe8: 604b str r3, [r1, #4] - - /* Decrease number of wait states update if necessary */ - /* Only possible when MSI is the System clock source */ - if(sysclk_source == RCC_CFGR_SWS_MSI) - 8003fea: 69bb ldr r3, [r7, #24] - 8003fec: 2b00 cmp r3, #0 - 8003fee: d109 bne.n 8004004 - { - if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) - 8003ff0: 687b ldr r3, [r7, #4] - 8003ff2: 6a1b ldr r3, [r3, #32] - 8003ff4: 4618 mov r0, r3 - 8003ff6: f000 fd15 bl 8004a24 - 8003ffa: 4603 mov r3, r0 - 8003ffc: 2b00 cmp r3, #0 - 8003ffe: d001 beq.n 8004004 - { - return HAL_ERROR; - 8004000: 2301 movs r3, #1 - 8004002: e343 b.n 800468c - } - } - } - - /* Update the SystemCoreClock global variable */ - SystemCoreClock = HAL_RCC_GetSysClockFreq() >> (AHBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos] & 0x1FU); - 8004004: f000 fc4a bl 800489c - 8004008: 4602 mov r2, r0 - 800400a: 4b52 ldr r3, [pc, #328] ; (8004154 ) - 800400c: 689b ldr r3, [r3, #8] - 800400e: 091b lsrs r3, r3, #4 - 8004010: f003 030f and.w r3, r3, #15 - 8004014: 4950 ldr r1, [pc, #320] ; (8004158 ) - 8004016: 5ccb ldrb r3, [r1, r3] - 8004018: f003 031f and.w r3, r3, #31 - 800401c: fa22 f303 lsr.w r3, r2, r3 - 8004020: 4a4e ldr r2, [pc, #312] ; (800415c ) - 8004022: 6013 str r3, [r2, #0] - - /* Configure the source of time base considering new system clocks settings*/ - status = HAL_InitTick(uwTickPrio); - 8004024: 4b4e ldr r3, [pc, #312] ; (8004160 ) - 8004026: 681b ldr r3, [r3, #0] - 8004028: 4618 mov r0, r3 - 800402a: f7fd fe1d bl 8001c68 - 800402e: 4603 mov r3, r0 - 8004030: 73fb strb r3, [r7, #15] - if(status != HAL_OK) - 8004032: 7bfb ldrb r3, [r7, #15] - 8004034: 2b00 cmp r3, #0 - 8004036: d052 beq.n 80040de - { - return status; - 8004038: 7bfb ldrb r3, [r7, #15] - 800403a: e327 b.n 800468c - } - } - else - { - /* Check the MSI State */ - if(RCC_OscInitStruct->MSIState != RCC_MSI_OFF) - 800403c: 687b ldr r3, [r7, #4] - 800403e: 699b ldr r3, [r3, #24] - 8004040: 2b00 cmp r3, #0 - 8004042: d032 beq.n 80040aa - { - /* Enable the Internal High Speed oscillator (MSI). */ - __HAL_RCC_MSI_ENABLE(); - 8004044: 4b43 ldr r3, [pc, #268] ; (8004154 ) - 8004046: 681b ldr r3, [r3, #0] - 8004048: 4a42 ldr r2, [pc, #264] ; (8004154 ) - 800404a: f043 0301 orr.w r3, r3, #1 - 800404e: 6013 str r3, [r2, #0] - - /* Get timeout */ - tickstart = HAL_GetTick(); - 8004050: f7fd fe5a bl 8001d08 - 8004054: 6138 str r0, [r7, #16] - - /* Wait till MSI is ready */ - while(READ_BIT(RCC->CR, RCC_CR_MSIRDY) == 0U) - 8004056: e008 b.n 800406a - { - if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) - 8004058: f7fd fe56 bl 8001d08 - 800405c: 4602 mov r2, r0 - 800405e: 693b ldr r3, [r7, #16] - 8004060: 1ad3 subs r3, r2, r3 - 8004062: 2b02 cmp r3, #2 - 8004064: d901 bls.n 800406a - { - return HAL_TIMEOUT; - 8004066: 2303 movs r3, #3 - 8004068: e310 b.n 800468c - while(READ_BIT(RCC->CR, RCC_CR_MSIRDY) == 0U) - 800406a: 4b3a ldr r3, [pc, #232] ; (8004154 ) - 800406c: 681b ldr r3, [r3, #0] - 800406e: f003 0302 and.w r3, r3, #2 - 8004072: 2b00 cmp r3, #0 - 8004074: d0f0 beq.n 8004058 - } - } - /* Selects the Multiple Speed oscillator (MSI) clock range .*/ - __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); - 8004076: 4b37 ldr r3, [pc, #220] ; (8004154 ) - 8004078: 681b ldr r3, [r3, #0] - 800407a: 4a36 ldr r2, [pc, #216] ; (8004154 ) - 800407c: f043 0308 orr.w r3, r3, #8 - 8004080: 6013 str r3, [r2, #0] - 8004082: 4b34 ldr r3, [pc, #208] ; (8004154 ) - 8004084: 681b ldr r3, [r3, #0] - 8004086: f023 02f0 bic.w r2, r3, #240 ; 0xf0 - 800408a: 687b ldr r3, [r7, #4] - 800408c: 6a1b ldr r3, [r3, #32] - 800408e: 4931 ldr r1, [pc, #196] ; (8004154 ) - 8004090: 4313 orrs r3, r2 - 8004092: 600b str r3, [r1, #0] - /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ - __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); - 8004094: 4b2f ldr r3, [pc, #188] ; (8004154 ) - 8004096: 685b ldr r3, [r3, #4] - 8004098: f423 427f bic.w r2, r3, #65280 ; 0xff00 - 800409c: 687b ldr r3, [r7, #4] - 800409e: 69db ldr r3, [r3, #28] - 80040a0: 021b lsls r3, r3, #8 - 80040a2: 492c ldr r1, [pc, #176] ; (8004154 ) - 80040a4: 4313 orrs r3, r2 - 80040a6: 604b str r3, [r1, #4] - 80040a8: e01a b.n 80040e0 - - } - else - { - /* Disable the Internal High Speed oscillator (MSI). */ - __HAL_RCC_MSI_DISABLE(); - 80040aa: 4b2a ldr r3, [pc, #168] ; (8004154 ) - 80040ac: 681b ldr r3, [r3, #0] - 80040ae: 4a29 ldr r2, [pc, #164] ; (8004154 ) - 80040b0: f023 0301 bic.w r3, r3, #1 - 80040b4: 6013 str r3, [r2, #0] - - /* Get timeout */ - tickstart = HAL_GetTick(); - 80040b6: f7fd fe27 bl 8001d08 - 80040ba: 6138 str r0, [r7, #16] - - /* Wait till MSI is ready */ - while(READ_BIT(RCC->CR, RCC_CR_MSIRDY) != 0U) - 80040bc: e008 b.n 80040d0 - { - if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) - 80040be: f7fd fe23 bl 8001d08 - 80040c2: 4602 mov r2, r0 - 80040c4: 693b ldr r3, [r7, #16] - 80040c6: 1ad3 subs r3, r2, r3 - 80040c8: 2b02 cmp r3, #2 - 80040ca: d901 bls.n 80040d0 - { - return HAL_TIMEOUT; - 80040cc: 2303 movs r3, #3 - 80040ce: e2dd b.n 800468c - while(READ_BIT(RCC->CR, RCC_CR_MSIRDY) != 0U) - 80040d0: 4b20 ldr r3, [pc, #128] ; (8004154 ) - 80040d2: 681b ldr r3, [r3, #0] - 80040d4: f003 0302 and.w r3, r3, #2 - 80040d8: 2b00 cmp r3, #0 - 80040da: d1f0 bne.n 80040be - 80040dc: e000 b.n 80040e0 - if((READ_BIT(RCC->CR, RCC_CR_MSIRDY) != 0U) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF)) - 80040de: bf00 nop - } - } - } - } - /*------------------------------- HSE Configuration ------------------------*/ - if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) - 80040e0: 687b ldr r3, [r7, #4] - 80040e2: 681b ldr r3, [r3, #0] - 80040e4: f003 0301 and.w r3, r3, #1 - 80040e8: 2b00 cmp r3, #0 - 80040ea: d074 beq.n 80041d6 - { - /* 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((sysclk_source == RCC_CFGR_SWS_HSE) || - 80040ec: 69bb ldr r3, [r7, #24] - 80040ee: 2b08 cmp r3, #8 - 80040f0: d005 beq.n 80040fe - 80040f2: 69bb ldr r3, [r7, #24] - 80040f4: 2b0c cmp r3, #12 - 80040f6: d10e bne.n 8004116 - ((sysclk_source == RCC_CFGR_SWS_PLL) && (pll_config == RCC_PLLSOURCE_HSE))) - 80040f8: 697b ldr r3, [r7, #20] - 80040fa: 2b03 cmp r3, #3 - 80040fc: d10b bne.n 8004116 - { - if((READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 80040fe: 4b15 ldr r3, [pc, #84] ; (8004154 ) - 8004100: 681b ldr r3, [r3, #0] - 8004102: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8004106: 2b00 cmp r3, #0 - 8004108: d064 beq.n 80041d4 - 800410a: 687b ldr r3, [r7, #4] - 800410c: 685b ldr r3, [r3, #4] - 800410e: 2b00 cmp r3, #0 - 8004110: d160 bne.n 80041d4 - { - return HAL_ERROR; - 8004112: 2301 movs r3, #1 - 8004114: e2ba b.n 800468c - } - } - else - { - /* Set the new HSE configuration ---------------------------------------*/ - __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); - 8004116: 687b ldr r3, [r7, #4] - 8004118: 685b ldr r3, [r3, #4] - 800411a: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 800411e: d106 bne.n 800412e - 8004120: 4b0c ldr r3, [pc, #48] ; (8004154 ) - 8004122: 681b ldr r3, [r3, #0] - 8004124: 4a0b ldr r2, [pc, #44] ; (8004154 ) - 8004126: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 800412a: 6013 str r3, [r2, #0] - 800412c: e026 b.n 800417c - 800412e: 687b ldr r3, [r7, #4] - 8004130: 685b ldr r3, [r3, #4] - 8004132: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 - 8004136: d115 bne.n 8004164 - 8004138: 4b06 ldr r3, [pc, #24] ; (8004154 ) - 800413a: 681b ldr r3, [r3, #0] - 800413c: 4a05 ldr r2, [pc, #20] ; (8004154 ) - 800413e: f443 2380 orr.w r3, r3, #262144 ; 0x40000 - 8004142: 6013 str r3, [r2, #0] - 8004144: 4b03 ldr r3, [pc, #12] ; (8004154 ) - 8004146: 681b ldr r3, [r3, #0] - 8004148: 4a02 ldr r2, [pc, #8] ; (8004154 ) - 800414a: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 800414e: 6013 str r3, [r2, #0] - 8004150: e014 b.n 800417c - 8004152: bf00 nop - 8004154: 40021000 .word 0x40021000 - 8004158: 08006f6c .word 0x08006f6c - 800415c: 20000000 .word 0x20000000 - 8004160: 20000004 .word 0x20000004 - 8004164: 4ba0 ldr r3, [pc, #640] ; (80043e8 ) - 8004166: 681b ldr r3, [r3, #0] - 8004168: 4a9f ldr r2, [pc, #636] ; (80043e8 ) - 800416a: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 800416e: 6013 str r3, [r2, #0] - 8004170: 4b9d ldr r3, [pc, #628] ; (80043e8 ) - 8004172: 681b ldr r3, [r3, #0] - 8004174: 4a9c ldr r2, [pc, #624] ; (80043e8 ) - 8004176: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 800417a: 6013 str r3, [r2, #0] - - /* Check the HSE State */ - if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) - 800417c: 687b ldr r3, [r7, #4] - 800417e: 685b ldr r3, [r3, #4] - 8004180: 2b00 cmp r3, #0 - 8004182: d013 beq.n 80041ac - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8004184: f7fd fdc0 bl 8001d08 - 8004188: 6138 str r0, [r7, #16] - - /* Wait till HSE is ready */ - while(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) - 800418a: e008 b.n 800419e - { - if((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) - 800418c: f7fd fdbc bl 8001d08 - 8004190: 4602 mov r2, r0 - 8004192: 693b ldr r3, [r7, #16] - 8004194: 1ad3 subs r3, r2, r3 - 8004196: 2b64 cmp r3, #100 ; 0x64 - 8004198: d901 bls.n 800419e - { - return HAL_TIMEOUT; - 800419a: 2303 movs r3, #3 - 800419c: e276 b.n 800468c - while(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) - 800419e: 4b92 ldr r3, [pc, #584] ; (80043e8 ) - 80041a0: 681b ldr r3, [r3, #0] - 80041a2: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 80041a6: 2b00 cmp r3, #0 - 80041a8: d0f0 beq.n 800418c - 80041aa: e014 b.n 80041d6 - } - } - else - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 80041ac: f7fd fdac bl 8001d08 - 80041b0: 6138 str r0, [r7, #16] - - /* Wait till HSE is disabled */ - while(READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) - 80041b2: e008 b.n 80041c6 - { - if((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) - 80041b4: f7fd fda8 bl 8001d08 - 80041b8: 4602 mov r2, r0 - 80041ba: 693b ldr r3, [r7, #16] - 80041bc: 1ad3 subs r3, r2, r3 - 80041be: 2b64 cmp r3, #100 ; 0x64 - 80041c0: d901 bls.n 80041c6 - { - return HAL_TIMEOUT; - 80041c2: 2303 movs r3, #3 - 80041c4: e262 b.n 800468c - while(READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) - 80041c6: 4b88 ldr r3, [pc, #544] ; (80043e8 ) - 80041c8: 681b ldr r3, [r3, #0] - 80041ca: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 80041ce: 2b00 cmp r3, #0 - 80041d0: d1f0 bne.n 80041b4 - 80041d2: e000 b.n 80041d6 - if((READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 80041d4: bf00 nop - } - } - } - } - /*----------------------------- HSI Configuration --------------------------*/ - if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) - 80041d6: 687b ldr r3, [r7, #4] - 80041d8: 681b ldr r3, [r3, #0] - 80041da: f003 0302 and.w r3, r3, #2 - 80041de: 2b00 cmp r3, #0 - 80041e0: d060 beq.n 80042a4 - /* Check the parameters */ - assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); - assert_param(IS_RCC_HSI_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((sysclk_source == RCC_CFGR_SWS_HSI) || - 80041e2: 69bb ldr r3, [r7, #24] - 80041e4: 2b04 cmp r3, #4 - 80041e6: d005 beq.n 80041f4 - 80041e8: 69bb ldr r3, [r7, #24] - 80041ea: 2b0c cmp r3, #12 - 80041ec: d119 bne.n 8004222 - ((sysclk_source == RCC_CFGR_SWS_PLL) && (pll_config == RCC_PLLSOURCE_HSI))) - 80041ee: 697b ldr r3, [r7, #20] - 80041f0: 2b02 cmp r3, #2 - 80041f2: d116 bne.n 8004222 - { - /* When HSI is used as system clock it will not be disabled */ - if((READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState == RCC_HSI_OFF)) - 80041f4: 4b7c ldr r3, [pc, #496] ; (80043e8 ) - 80041f6: 681b ldr r3, [r3, #0] - 80041f8: f403 6380 and.w r3, r3, #1024 ; 0x400 - 80041fc: 2b00 cmp r3, #0 - 80041fe: d005 beq.n 800420c - 8004200: 687b ldr r3, [r7, #4] - 8004202: 68db ldr r3, [r3, #12] - 8004204: 2b00 cmp r3, #0 - 8004206: d101 bne.n 800420c - { - return HAL_ERROR; - 8004208: 2301 movs r3, #1 - 800420a: e23f b.n 800468c - } - /* Otherwise, just the calibration is allowed */ - else - { - /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ - __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 800420c: 4b76 ldr r3, [pc, #472] ; (80043e8 ) - 800420e: 685b ldr r3, [r3, #4] - 8004210: f023 52f8 bic.w r2, r3, #520093696 ; 0x1f000000 - 8004214: 687b ldr r3, [r7, #4] - 8004216: 691b ldr r3, [r3, #16] - 8004218: 061b lsls r3, r3, #24 - 800421a: 4973 ldr r1, [pc, #460] ; (80043e8 ) - 800421c: 4313 orrs r3, r2 - 800421e: 604b str r3, [r1, #4] - if((READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState == RCC_HSI_OFF)) - 8004220: e040 b.n 80042a4 - } - } - else - { - /* Check the HSI State */ - if(RCC_OscInitStruct->HSIState != RCC_HSI_OFF) - 8004222: 687b ldr r3, [r7, #4] - 8004224: 68db ldr r3, [r3, #12] - 8004226: 2b00 cmp r3, #0 - 8004228: d023 beq.n 8004272 - { - /* Enable the Internal High Speed oscillator (HSI). */ - __HAL_RCC_HSI_ENABLE(); - 800422a: 4b6f ldr r3, [pc, #444] ; (80043e8 ) - 800422c: 681b ldr r3, [r3, #0] - 800422e: 4a6e ldr r2, [pc, #440] ; (80043e8 ) - 8004230: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8004234: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8004236: f7fd fd67 bl 8001d08 - 800423a: 6138 str r0, [r7, #16] - - /* Wait till HSI is ready */ - while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) - 800423c: e008 b.n 8004250 - { - if((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) - 800423e: f7fd fd63 bl 8001d08 - 8004242: 4602 mov r2, r0 - 8004244: 693b ldr r3, [r7, #16] - 8004246: 1ad3 subs r3, r2, r3 - 8004248: 2b02 cmp r3, #2 - 800424a: d901 bls.n 8004250 - { - return HAL_TIMEOUT; - 800424c: 2303 movs r3, #3 - 800424e: e21d b.n 800468c - while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) - 8004250: 4b65 ldr r3, [pc, #404] ; (80043e8 ) - 8004252: 681b ldr r3, [r3, #0] - 8004254: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8004258: 2b00 cmp r3, #0 - 800425a: d0f0 beq.n 800423e - } - } - - /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ - __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 800425c: 4b62 ldr r3, [pc, #392] ; (80043e8 ) - 800425e: 685b ldr r3, [r3, #4] - 8004260: f023 52f8 bic.w r2, r3, #520093696 ; 0x1f000000 - 8004264: 687b ldr r3, [r7, #4] - 8004266: 691b ldr r3, [r3, #16] - 8004268: 061b lsls r3, r3, #24 - 800426a: 495f ldr r1, [pc, #380] ; (80043e8 ) - 800426c: 4313 orrs r3, r2 - 800426e: 604b str r3, [r1, #4] - 8004270: e018 b.n 80042a4 - } - else - { - /* Disable the Internal High Speed oscillator (HSI). */ - __HAL_RCC_HSI_DISABLE(); - 8004272: 4b5d ldr r3, [pc, #372] ; (80043e8 ) - 8004274: 681b ldr r3, [r3, #0] - 8004276: 4a5c ldr r2, [pc, #368] ; (80043e8 ) - 8004278: f423 7380 bic.w r3, r3, #256 ; 0x100 - 800427c: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 800427e: f7fd fd43 bl 8001d08 - 8004282: 6138 str r0, [r7, #16] - - /* Wait till HSI is disabled */ - while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) - 8004284: e008 b.n 8004298 - { - if((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) - 8004286: f7fd fd3f bl 8001d08 - 800428a: 4602 mov r2, r0 - 800428c: 693b ldr r3, [r7, #16] - 800428e: 1ad3 subs r3, r2, r3 - 8004290: 2b02 cmp r3, #2 - 8004292: d901 bls.n 8004298 - { - return HAL_TIMEOUT; - 8004294: 2303 movs r3, #3 - 8004296: e1f9 b.n 800468c - while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U) - 8004298: 4b53 ldr r3, [pc, #332] ; (80043e8 ) - 800429a: 681b ldr r3, [r3, #0] - 800429c: f403 6380 and.w r3, r3, #1024 ; 0x400 - 80042a0: 2b00 cmp r3, #0 - 80042a2: d1f0 bne.n 8004286 - } - } - } - } - /*------------------------------ LSI Configuration -------------------------*/ - if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) - 80042a4: 687b ldr r3, [r7, #4] - 80042a6: 681b ldr r3, [r3, #0] - 80042a8: f003 0308 and.w r3, r3, #8 - 80042ac: 2b00 cmp r3, #0 - 80042ae: d03c beq.n 800432a - { - /* Check the parameters */ - assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); - - /* Check the LSI State */ - if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF) - 80042b0: 687b ldr r3, [r7, #4] - 80042b2: 695b ldr r3, [r3, #20] - 80042b4: 2b00 cmp r3, #0 - 80042b6: d01c beq.n 80042f2 - MODIFY_REG(RCC->CSR, RCC_CSR_LSIPREDIV, RCC_OscInitStruct->LSIDiv); - } -#endif /* RCC_CSR_LSIPREDIV */ - - /* Enable the Internal Low Speed oscillator (LSI). */ - __HAL_RCC_LSI_ENABLE(); - 80042b8: 4b4b ldr r3, [pc, #300] ; (80043e8 ) - 80042ba: f8d3 3094 ldr.w r3, [r3, #148] ; 0x94 - 80042be: 4a4a ldr r2, [pc, #296] ; (80043e8 ) - 80042c0: f043 0301 orr.w r3, r3, #1 - 80042c4: f8c2 3094 str.w r3, [r2, #148] ; 0x94 - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 80042c8: f7fd fd1e bl 8001d08 - 80042cc: 6138 str r0, [r7, #16] - - /* Wait till LSI is ready */ - while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == 0U) - 80042ce: e008 b.n 80042e2 - { - if((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) - 80042d0: f7fd fd1a bl 8001d08 - 80042d4: 4602 mov r2, r0 - 80042d6: 693b ldr r3, [r7, #16] - 80042d8: 1ad3 subs r3, r2, r3 - 80042da: 2b02 cmp r3, #2 - 80042dc: d901 bls.n 80042e2 - { - return HAL_TIMEOUT; - 80042de: 2303 movs r3, #3 - 80042e0: e1d4 b.n 800468c - while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == 0U) - 80042e2: 4b41 ldr r3, [pc, #260] ; (80043e8 ) - 80042e4: f8d3 3094 ldr.w r3, [r3, #148] ; 0x94 - 80042e8: f003 0302 and.w r3, r3, #2 - 80042ec: 2b00 cmp r3, #0 - 80042ee: d0ef beq.n 80042d0 - 80042f0: e01b b.n 800432a - } - } - else - { - /* Disable the Internal Low Speed oscillator (LSI). */ - __HAL_RCC_LSI_DISABLE(); - 80042f2: 4b3d ldr r3, [pc, #244] ; (80043e8 ) - 80042f4: f8d3 3094 ldr.w r3, [r3, #148] ; 0x94 - 80042f8: 4a3b ldr r2, [pc, #236] ; (80043e8 ) - 80042fa: f023 0301 bic.w r3, r3, #1 - 80042fe: f8c2 3094 str.w r3, [r2, #148] ; 0x94 - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8004302: f7fd fd01 bl 8001d08 - 8004306: 6138 str r0, [r7, #16] - - /* Wait till LSI is disabled */ - while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) != 0U) - 8004308: e008 b.n 800431c - { - if((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) - 800430a: f7fd fcfd bl 8001d08 - 800430e: 4602 mov r2, r0 - 8004310: 693b ldr r3, [r7, #16] - 8004312: 1ad3 subs r3, r2, r3 - 8004314: 2b02 cmp r3, #2 - 8004316: d901 bls.n 800431c - { - return HAL_TIMEOUT; - 8004318: 2303 movs r3, #3 - 800431a: e1b7 b.n 800468c - while(READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) != 0U) - 800431c: 4b32 ldr r3, [pc, #200] ; (80043e8 ) - 800431e: f8d3 3094 ldr.w r3, [r3, #148] ; 0x94 - 8004322: f003 0302 and.w r3, r3, #2 - 8004326: 2b00 cmp r3, #0 - 8004328: d1ef bne.n 800430a - } - } - } - } - /*------------------------------ LSE Configuration -------------------------*/ - if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) - 800432a: 687b ldr r3, [r7, #4] - 800432c: 681b ldr r3, [r3, #0] - 800432e: f003 0304 and.w r3, r3, #4 - 8004332: 2b00 cmp r3, #0 - 8004334: f000 80a6 beq.w 8004484 - { - FlagStatus pwrclkchanged = RESET; - 8004338: 2300 movs r3, #0 - 800433a: 77fb strb r3, [r7, #31] - /* 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_IS_BIT_CLR(RCC->APB1ENR1, RCC_APB1ENR1_PWREN)) - 800433c: 4b2a ldr r3, [pc, #168] ; (80043e8 ) - 800433e: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004340: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8004344: 2b00 cmp r3, #0 - 8004346: d10d bne.n 8004364 - { - __HAL_RCC_PWR_CLK_ENABLE(); - 8004348: 4b27 ldr r3, [pc, #156] ; (80043e8 ) - 800434a: 6d9b ldr r3, [r3, #88] ; 0x58 - 800434c: 4a26 ldr r2, [pc, #152] ; (80043e8 ) - 800434e: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8004352: 6593 str r3, [r2, #88] ; 0x58 - 8004354: 4b24 ldr r3, [pc, #144] ; (80043e8 ) - 8004356: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004358: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 800435c: 60bb str r3, [r7, #8] - 800435e: 68bb ldr r3, [r7, #8] - pwrclkchanged = SET; - 8004360: 2301 movs r3, #1 - 8004362: 77fb strb r3, [r7, #31] - } - - if(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) - 8004364: 4b21 ldr r3, [pc, #132] ; (80043ec ) - 8004366: 681b ldr r3, [r3, #0] - 8004368: f403 7380 and.w r3, r3, #256 ; 0x100 - 800436c: 2b00 cmp r3, #0 - 800436e: d118 bne.n 80043a2 - { - /* Enable write access to Backup domain */ - SET_BIT(PWR->CR1, PWR_CR1_DBP); - 8004370: 4b1e ldr r3, [pc, #120] ; (80043ec ) - 8004372: 681b ldr r3, [r3, #0] - 8004374: 4a1d ldr r2, [pc, #116] ; (80043ec ) - 8004376: f443 7380 orr.w r3, r3, #256 ; 0x100 - 800437a: 6013 str r3, [r2, #0] - - /* Wait for Backup domain Write protection disable */ - tickstart = HAL_GetTick(); - 800437c: f7fd fcc4 bl 8001d08 - 8004380: 6138 str r0, [r7, #16] - - while(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) - 8004382: e008 b.n 8004396 - { - if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 8004384: f7fd fcc0 bl 8001d08 - 8004388: 4602 mov r2, r0 - 800438a: 693b ldr r3, [r7, #16] - 800438c: 1ad3 subs r3, r2, r3 - 800438e: 2b02 cmp r3, #2 - 8004390: d901 bls.n 8004396 - { - return HAL_TIMEOUT; - 8004392: 2303 movs r3, #3 - 8004394: e17a b.n 800468c - while(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) - 8004396: 4b15 ldr r3, [pc, #84] ; (80043ec ) - 8004398: 681b ldr r3, [r3, #0] - 800439a: f403 7380 and.w r3, r3, #256 ; 0x100 - 800439e: 2b00 cmp r3, #0 - 80043a0: d0f0 beq.n 8004384 - { - CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEON); - CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEBYP); - } -#else - __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); - 80043a2: 687b ldr r3, [r7, #4] - 80043a4: 689b ldr r3, [r3, #8] - 80043a6: 2b01 cmp r3, #1 - 80043a8: d108 bne.n 80043bc - 80043aa: 4b0f ldr r3, [pc, #60] ; (80043e8 ) - 80043ac: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80043b0: 4a0d ldr r2, [pc, #52] ; (80043e8 ) - 80043b2: f043 0301 orr.w r3, r3, #1 - 80043b6: f8c2 3090 str.w r3, [r2, #144] ; 0x90 - 80043ba: e029 b.n 8004410 - 80043bc: 687b ldr r3, [r7, #4] - 80043be: 689b ldr r3, [r3, #8] - 80043c0: 2b05 cmp r3, #5 - 80043c2: d115 bne.n 80043f0 - 80043c4: 4b08 ldr r3, [pc, #32] ; (80043e8 ) - 80043c6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80043ca: 4a07 ldr r2, [pc, #28] ; (80043e8 ) - 80043cc: f043 0304 orr.w r3, r3, #4 - 80043d0: f8c2 3090 str.w r3, [r2, #144] ; 0x90 - 80043d4: 4b04 ldr r3, [pc, #16] ; (80043e8 ) - 80043d6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80043da: 4a03 ldr r2, [pc, #12] ; (80043e8 ) - 80043dc: f043 0301 orr.w r3, r3, #1 - 80043e0: f8c2 3090 str.w r3, [r2, #144] ; 0x90 - 80043e4: e014 b.n 8004410 - 80043e6: bf00 nop - 80043e8: 40021000 .word 0x40021000 - 80043ec: 40007000 .word 0x40007000 - 80043f0: 4b9c ldr r3, [pc, #624] ; (8004664 ) - 80043f2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80043f6: 4a9b ldr r2, [pc, #620] ; (8004664 ) - 80043f8: f023 0301 bic.w r3, r3, #1 - 80043fc: f8c2 3090 str.w r3, [r2, #144] ; 0x90 - 8004400: 4b98 ldr r3, [pc, #608] ; (8004664 ) - 8004402: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8004406: 4a97 ldr r2, [pc, #604] ; (8004664 ) - 8004408: f023 0304 bic.w r3, r3, #4 - 800440c: f8c2 3090 str.w r3, [r2, #144] ; 0x90 -#endif /* RCC_BDCR_LSESYSDIS */ - - /* Check the LSE State */ - if(RCC_OscInitStruct->LSEState != RCC_LSE_OFF) - 8004410: 687b ldr r3, [r7, #4] - 8004412: 689b ldr r3, [r3, #8] - 8004414: 2b00 cmp r3, #0 - 8004416: d016 beq.n 8004446 - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8004418: f7fd fc76 bl 8001d08 - 800441c: 6138 str r0, [r7, #16] - - /* Wait till LSE is ready */ - while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) - 800441e: e00a b.n 8004436 - { - if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) - 8004420: f7fd fc72 bl 8001d08 - 8004424: 4602 mov r2, r0 - 8004426: 693b ldr r3, [r7, #16] - 8004428: 1ad3 subs r3, r2, r3 - 800442a: f241 3288 movw r2, #5000 ; 0x1388 - 800442e: 4293 cmp r3, r2 - 8004430: d901 bls.n 8004436 - { - return HAL_TIMEOUT; - 8004432: 2303 movs r3, #3 - 8004434: e12a b.n 800468c - while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) - 8004436: 4b8b ldr r3, [pc, #556] ; (8004664 ) - 8004438: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800443c: f003 0302 and.w r3, r3, #2 - 8004440: 2b00 cmp r3, #0 - 8004442: d0ed beq.n 8004420 - 8004444: e015 b.n 8004472 - } - } - else - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8004446: f7fd fc5f bl 8001d08 - 800444a: 6138 str r0, [r7, #16] - - /* Wait till LSE is disabled */ - while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) != 0U) - 800444c: e00a b.n 8004464 - { - if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) - 800444e: f7fd fc5b bl 8001d08 - 8004452: 4602 mov r2, r0 - 8004454: 693b ldr r3, [r7, #16] - 8004456: 1ad3 subs r3, r2, r3 - 8004458: f241 3288 movw r2, #5000 ; 0x1388 - 800445c: 4293 cmp r3, r2 - 800445e: d901 bls.n 8004464 - { - return HAL_TIMEOUT; - 8004460: 2303 movs r3, #3 - 8004462: e113 b.n 800468c - while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) != 0U) - 8004464: 4b7f ldr r3, [pc, #508] ; (8004664 ) - 8004466: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800446a: f003 0302 and.w r3, r3, #2 - 800446e: 2b00 cmp r3, #0 - 8004470: d1ed bne.n 800444e - CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSESYSDIS); -#endif /* RCC_BDCR_LSESYSDIS */ - } - - /* Restore clock configuration if changed */ - if(pwrclkchanged == SET) - 8004472: 7ffb ldrb r3, [r7, #31] - 8004474: 2b01 cmp r3, #1 - 8004476: d105 bne.n 8004484 - { - __HAL_RCC_PWR_CLK_DISABLE(); - 8004478: 4b7a ldr r3, [pc, #488] ; (8004664 ) - 800447a: 6d9b ldr r3, [r3, #88] ; 0x58 - 800447c: 4a79 ldr r2, [pc, #484] ; (8004664 ) - 800447e: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 - 8004482: 6593 str r3, [r2, #88] ; 0x58 -#endif /* RCC_HSI48_SUPPORT */ - /*-------------------------------- PLL Configuration -----------------------*/ - /* Check the parameters */ - assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); - - if(RCC_OscInitStruct->PLL.PLLState != RCC_PLL_NONE) - 8004484: 687b ldr r3, [r7, #4] - 8004486: 6a9b ldr r3, [r3, #40] ; 0x28 - 8004488: 2b00 cmp r3, #0 - 800448a: f000 80fe beq.w 800468a - { - /* PLL On ? */ - if(RCC_OscInitStruct->PLL.PLLState == RCC_PLL_ON) - 800448e: 687b ldr r3, [r7, #4] - 8004490: 6a9b ldr r3, [r3, #40] ; 0x28 - 8004492: 2b02 cmp r3, #2 - 8004494: f040 80d0 bne.w 8004638 -#endif /* RCC_PLLP_SUPPORT */ - assert_param(IS_RCC_PLLQ_VALUE(RCC_OscInitStruct->PLL.PLLQ)); - assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); - - /* Do nothing if PLL configuration is the unchanged */ - pll_config = RCC->PLLCFGR; - 8004498: 4b72 ldr r3, [pc, #456] ; (8004664 ) - 800449a: 68db ldr r3, [r3, #12] - 800449c: 617b str r3, [r7, #20] - if((READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 800449e: 697b ldr r3, [r7, #20] - 80044a0: f003 0203 and.w r2, r3, #3 - 80044a4: 687b ldr r3, [r7, #4] - 80044a6: 6adb ldr r3, [r3, #44] ; 0x2c - 80044a8: 429a cmp r2, r3 - 80044aa: d130 bne.n 800450e - (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != ((RCC_OscInitStruct->PLL.PLLM - 1U) << RCC_PLLCFGR_PLLM_Pos)) || - 80044ac: 697b ldr r3, [r7, #20] - 80044ae: f003 0270 and.w r2, r3, #112 ; 0x70 - 80044b2: 687b ldr r3, [r7, #4] - 80044b4: 6b1b ldr r3, [r3, #48] ; 0x30 - 80044b6: 3b01 subs r3, #1 - 80044b8: 011b lsls r3, r3, #4 - if((READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 80044ba: 429a cmp r2, r3 - 80044bc: d127 bne.n 800450e - (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || - 80044be: 697b ldr r3, [r7, #20] - 80044c0: f403 42fe and.w r2, r3, #32512 ; 0x7f00 - 80044c4: 687b ldr r3, [r7, #4] - 80044c6: 6b5b ldr r3, [r3, #52] ; 0x34 - 80044c8: 021b lsls r3, r3, #8 - (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != ((RCC_OscInitStruct->PLL.PLLM - 1U) << RCC_PLLCFGR_PLLM_Pos)) || - 80044ca: 429a cmp r2, r3 - 80044cc: d11f bne.n 800450e -#if defined(RCC_PLLP_SUPPORT) -#if defined(RCC_PLLP_DIV_2_31_SUPPORT) - (READ_BIT(pll_config, RCC_PLLCFGR_PLLPDIV) != (RCC_OscInitStruct->PLL.PLLP << RCC_PLLCFGR_PLLPDIV_Pos)) || -#else - (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((RCC_OscInitStruct->PLL.PLLP == RCC_PLLP_DIV7) ? 0U : 1U)) || - 80044ce: 697b ldr r3, [r7, #20] - 80044d0: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 80044d4: 687a ldr r2, [r7, #4] - 80044d6: 6b92 ldr r2, [r2, #56] ; 0x38 - 80044d8: 2a07 cmp r2, #7 - 80044da: bf14 ite ne - 80044dc: 2201 movne r2, #1 - 80044de: 2200 moveq r2, #0 - 80044e0: b2d2 uxtb r2, r2 - (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || - 80044e2: 4293 cmp r3, r2 - 80044e4: d113 bne.n 800450e -#endif -#endif - (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U) << RCC_PLLCFGR_PLLQ_Pos)) || - 80044e6: 697b ldr r3, [r7, #20] - 80044e8: f403 02c0 and.w r2, r3, #6291456 ; 0x600000 - 80044ec: 687b ldr r3, [r7, #4] - 80044ee: 6bdb ldr r3, [r3, #60] ; 0x3c - 80044f0: 085b lsrs r3, r3, #1 - 80044f2: 3b01 subs r3, #1 - 80044f4: 055b lsls r3, r3, #21 - (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((RCC_OscInitStruct->PLL.PLLP == RCC_PLLP_DIV7) ? 0U : 1U)) || - 80044f6: 429a cmp r2, r3 - 80044f8: d109 bne.n 800450e - (READ_BIT(pll_config, RCC_PLLCFGR_PLLR) != ((((RCC_OscInitStruct->PLL.PLLR) >> 1U) - 1U) << RCC_PLLCFGR_PLLR_Pos))) - 80044fa: 697b ldr r3, [r7, #20] - 80044fc: f003 62c0 and.w r2, r3, #100663296 ; 0x6000000 - 8004500: 687b ldr r3, [r7, #4] - 8004502: 6c1b ldr r3, [r3, #64] ; 0x40 - 8004504: 085b lsrs r3, r3, #1 - 8004506: 3b01 subs r3, #1 - 8004508: 065b lsls r3, r3, #25 - (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != ((((RCC_OscInitStruct->PLL.PLLQ) >> 1U) - 1U) << RCC_PLLCFGR_PLLQ_Pos)) || - 800450a: 429a cmp r2, r3 - 800450c: d06e beq.n 80045ec - { - /* Check if the PLL is used as system clock or not */ - if(sysclk_source != RCC_CFGR_SWS_PLL) - 800450e: 69bb ldr r3, [r7, #24] - 8004510: 2b0c cmp r3, #12 - 8004512: d069 beq.n 80045e8 - { -#if defined(RCC_PLLSAI1_SUPPORT) || defined(RCC_PLLSAI2_SUPPORT) - /* Check if main PLL can be updated */ - /* Not possible if the source is shared by other enabled PLLSAIx */ - if((READ_BIT(RCC->CR, RCC_CR_PLLSAI1ON) != 0U) - 8004514: 4b53 ldr r3, [pc, #332] ; (8004664 ) - 8004516: 681b ldr r3, [r3, #0] - 8004518: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 - 800451c: 2b00 cmp r3, #0 - 800451e: d105 bne.n 800452c -#if defined(RCC_PLLSAI2_SUPPORT) - || (READ_BIT(RCC->CR, RCC_CR_PLLSAI2ON) != 0U) - 8004520: 4b50 ldr r3, [pc, #320] ; (8004664 ) - 8004522: 681b ldr r3, [r3, #0] - 8004524: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8004528: 2b00 cmp r3, #0 - 800452a: d001 beq.n 8004530 -#endif - ) - { - return HAL_ERROR; - 800452c: 2301 movs r3, #1 - 800452e: e0ad b.n 800468c - } - else -#endif /* RCC_PLLSAI1_SUPPORT || RCC_PLLSAI2_SUPPORT */ - { - /* Disable the main PLL. */ - __HAL_RCC_PLL_DISABLE(); - 8004530: 4b4c ldr r3, [pc, #304] ; (8004664 ) - 8004532: 681b ldr r3, [r3, #0] - 8004534: 4a4b ldr r2, [pc, #300] ; (8004664 ) - 8004536: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 - 800453a: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 800453c: f7fd fbe4 bl 8001d08 - 8004540: 6138 str r0, [r7, #16] - - /* Wait till PLL is ready */ - while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) - 8004542: e008 b.n 8004556 - { - if((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8004544: f7fd fbe0 bl 8001d08 - 8004548: 4602 mov r2, r0 - 800454a: 693b ldr r3, [r7, #16] - 800454c: 1ad3 subs r3, r2, r3 - 800454e: 2b02 cmp r3, #2 - 8004550: d901 bls.n 8004556 - { - return HAL_TIMEOUT; - 8004552: 2303 movs r3, #3 - 8004554: e09a b.n 800468c - while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) - 8004556: 4b43 ldr r3, [pc, #268] ; (8004664 ) - 8004558: 681b ldr r3, [r3, #0] - 800455a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 800455e: 2b00 cmp r3, #0 - 8004560: d1f0 bne.n 8004544 - } - } - - /* Configure the main PLL clock source, multiplication and division factors. */ -#if defined(RCC_PLLP_SUPPORT) - __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, - 8004562: 4b40 ldr r3, [pc, #256] ; (8004664 ) - 8004564: 68da ldr r2, [r3, #12] - 8004566: 4b40 ldr r3, [pc, #256] ; (8004668 ) - 8004568: 4013 ands r3, r2 - 800456a: 687a ldr r2, [r7, #4] - 800456c: 6ad1 ldr r1, [r2, #44] ; 0x2c - 800456e: 687a ldr r2, [r7, #4] - 8004570: 6b12 ldr r2, [r2, #48] ; 0x30 - 8004572: 3a01 subs r2, #1 - 8004574: 0112 lsls r2, r2, #4 - 8004576: 4311 orrs r1, r2 - 8004578: 687a ldr r2, [r7, #4] - 800457a: 6b52 ldr r2, [r2, #52] ; 0x34 - 800457c: 0212 lsls r2, r2, #8 - 800457e: 4311 orrs r1, r2 - 8004580: 687a ldr r2, [r7, #4] - 8004582: 6bd2 ldr r2, [r2, #60] ; 0x3c - 8004584: 0852 lsrs r2, r2, #1 - 8004586: 3a01 subs r2, #1 - 8004588: 0552 lsls r2, r2, #21 - 800458a: 4311 orrs r1, r2 - 800458c: 687a ldr r2, [r7, #4] - 800458e: 6c12 ldr r2, [r2, #64] ; 0x40 - 8004590: 0852 lsrs r2, r2, #1 - 8004592: 3a01 subs r2, #1 - 8004594: 0652 lsls r2, r2, #25 - 8004596: 4311 orrs r1, r2 - 8004598: 687a ldr r2, [r7, #4] - 800459a: 6b92 ldr r2, [r2, #56] ; 0x38 - 800459c: 0912 lsrs r2, r2, #4 - 800459e: 0452 lsls r2, r2, #17 - 80045a0: 430a orrs r2, r1 - 80045a2: 4930 ldr r1, [pc, #192] ; (8004664 ) - 80045a4: 4313 orrs r3, r2 - 80045a6: 60cb str r3, [r1, #12] - RCC_OscInitStruct->PLL.PLLQ, - RCC_OscInitStruct->PLL.PLLR); -#endif - - /* Enable the main PLL. */ - __HAL_RCC_PLL_ENABLE(); - 80045a8: 4b2e ldr r3, [pc, #184] ; (8004664 ) - 80045aa: 681b ldr r3, [r3, #0] - 80045ac: 4a2d ldr r2, [pc, #180] ; (8004664 ) - 80045ae: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000 - 80045b2: 6013 str r3, [r2, #0] - - /* Enable PLL System Clock output. */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SYSCLK); - 80045b4: 4b2b ldr r3, [pc, #172] ; (8004664 ) - 80045b6: 68db ldr r3, [r3, #12] - 80045b8: 4a2a ldr r2, [pc, #168] ; (8004664 ) - 80045ba: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000 - 80045be: 60d3 str r3, [r2, #12] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 80045c0: f7fd fba2 bl 8001d08 - 80045c4: 6138 str r0, [r7, #16] - - /* Wait till PLL is ready */ - while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 80045c6: e008 b.n 80045da - { - if((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 80045c8: f7fd fb9e bl 8001d08 - 80045cc: 4602 mov r2, r0 - 80045ce: 693b ldr r3, [r7, #16] - 80045d0: 1ad3 subs r3, r2, r3 - 80045d2: 2b02 cmp r3, #2 - 80045d4: d901 bls.n 80045da - { - return HAL_TIMEOUT; - 80045d6: 2303 movs r3, #3 - 80045d8: e058 b.n 800468c - while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 80045da: 4b22 ldr r3, [pc, #136] ; (8004664 ) - 80045dc: 681b ldr r3, [r3, #0] - 80045de: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 80045e2: 2b00 cmp r3, #0 - 80045e4: d0f0 beq.n 80045c8 - if(sysclk_source != RCC_CFGR_SWS_PLL) - 80045e6: e050 b.n 800468a - } - } - else - { - /* PLL is already used as System core clock */ - return HAL_ERROR; - 80045e8: 2301 movs r3, #1 - 80045ea: e04f b.n 800468c - } - else - { - /* PLL configuration is unchanged */ - /* Re-enable PLL if it was disabled (ie. low power mode) */ - if(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 80045ec: 4b1d ldr r3, [pc, #116] ; (8004664 ) - 80045ee: 681b ldr r3, [r3, #0] - 80045f0: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 80045f4: 2b00 cmp r3, #0 - 80045f6: d148 bne.n 800468a - { - /* Enable the main PLL. */ - __HAL_RCC_PLL_ENABLE(); - 80045f8: 4b1a ldr r3, [pc, #104] ; (8004664 ) - 80045fa: 681b ldr r3, [r3, #0] - 80045fc: 4a19 ldr r2, [pc, #100] ; (8004664 ) - 80045fe: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000 - 8004602: 6013 str r3, [r2, #0] - - /* Enable PLL System Clock output. */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SYSCLK); - 8004604: 4b17 ldr r3, [pc, #92] ; (8004664 ) - 8004606: 68db ldr r3, [r3, #12] - 8004608: 4a16 ldr r2, [pc, #88] ; (8004664 ) - 800460a: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000 - 800460e: 60d3 str r3, [r2, #12] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8004610: f7fd fb7a bl 8001d08 - 8004614: 6138 str r0, [r7, #16] - - /* Wait till PLL is ready */ - while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 8004616: e008 b.n 800462a - { - if((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8004618: f7fd fb76 bl 8001d08 - 800461c: 4602 mov r2, r0 - 800461e: 693b ldr r3, [r7, #16] - 8004620: 1ad3 subs r3, r2, r3 - 8004622: 2b02 cmp r3, #2 - 8004624: d901 bls.n 800462a - { - return HAL_TIMEOUT; - 8004626: 2303 movs r3, #3 - 8004628: e030 b.n 800468c - while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 800462a: 4b0e ldr r3, [pc, #56] ; (8004664 ) - 800462c: 681b ldr r3, [r3, #0] - 800462e: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8004632: 2b00 cmp r3, #0 - 8004634: d0f0 beq.n 8004618 - 8004636: e028 b.n 800468a - } - } - else - { - /* Check that PLL is not used as system clock or not */ - if(sysclk_source != RCC_CFGR_SWS_PLL) - 8004638: 69bb ldr r3, [r7, #24] - 800463a: 2b0c cmp r3, #12 - 800463c: d023 beq.n 8004686 - { - /* Disable the main PLL. */ - __HAL_RCC_PLL_DISABLE(); - 800463e: 4b09 ldr r3, [pc, #36] ; (8004664 ) - 8004640: 681b ldr r3, [r3, #0] - 8004642: 4a08 ldr r2, [pc, #32] ; (8004664 ) - 8004644: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 - 8004648: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 800464a: f7fd fb5d bl 8001d08 - 800464e: 6138 str r0, [r7, #16] - - /* Wait till PLL is disabled */ - while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) - 8004650: e00c b.n 800466c - { - if((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) - 8004652: f7fd fb59 bl 8001d08 - 8004656: 4602 mov r2, r0 - 8004658: 693b ldr r3, [r7, #16] - 800465a: 1ad3 subs r3, r2, r3 - 800465c: 2b02 cmp r3, #2 - 800465e: d905 bls.n 800466c - { - return HAL_TIMEOUT; - 8004660: 2303 movs r3, #3 - 8004662: e013 b.n 800468c - 8004664: 40021000 .word 0x40021000 - 8004668: f99d808c .word 0xf99d808c - while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U) - 800466c: 4b09 ldr r3, [pc, #36] ; (8004694 ) - 800466e: 681b ldr r3, [r3, #0] - 8004670: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8004674: 2b00 cmp r3, #0 - 8004676: d1ec bne.n 8004652 - } - } - /* Unselect main PLL clock source and disable main PLL outputs to save power */ -#if defined(RCC_PLLSAI2_SUPPORT) - RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLSRC | RCC_PLL_SYSCLK | RCC_PLL_48M1CLK | RCC_PLL_SAI3CLK); - 8004678: 4b06 ldr r3, [pc, #24] ; (8004694 ) - 800467a: 68da ldr r2, [r3, #12] - 800467c: 4905 ldr r1, [pc, #20] ; (8004694 ) - 800467e: 4b06 ldr r3, [pc, #24] ; (8004698 ) - 8004680: 4013 ands r3, r2 - 8004682: 60cb str r3, [r1, #12] - 8004684: e001 b.n 800468a -#endif /* RCC_PLLSAI2_SUPPORT */ - } - else - { - /* PLL is already used as System core clock */ - return HAL_ERROR; - 8004686: 2301 movs r3, #1 - 8004688: e000 b.n 800468c - } - } - } - return HAL_OK; - 800468a: 2300 movs r3, #0 -} - 800468c: 4618 mov r0, r3 - 800468e: 3720 adds r7, #32 - 8004690: 46bd mov sp, r7 - 8004692: bd80 pop {r7, pc} - 8004694: 40021000 .word 0x40021000 - 8004698: feeefffc .word 0xfeeefffc - -0800469c : - * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency - * (for more details refer to section above "Initialization/de-initialization functions") - * @retval None - */ -HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) -{ - 800469c: b580 push {r7, lr} - 800469e: b084 sub sp, #16 - 80046a0: af00 add r7, sp, #0 - 80046a2: 6078 str r0, [r7, #4] - 80046a4: 6039 str r1, [r7, #0] - uint32_t hpre = RCC_SYSCLK_DIV1; -#endif - HAL_StatusTypeDef status; - - /* Check Null pointer */ - if(RCC_ClkInitStruct == NULL) - 80046a6: 687b ldr r3, [r7, #4] - 80046a8: 2b00 cmp r3, #0 - 80046aa: d101 bne.n 80046b0 - { - return HAL_ERROR; - 80046ac: 2301 movs r3, #1 - 80046ae: e0e7 b.n 8004880 - /* To correctly read data from FLASH memory, the number of wait states (LATENCY) - must be correctly programmed according to the frequency of the CPU clock - (HCLK) and the supply voltage of the device. */ - - /* Increasing the number of wait states because of higher CPU frequency */ - if(FLatency > __HAL_FLASH_GET_LATENCY()) - 80046b0: 4b75 ldr r3, [pc, #468] ; (8004888 ) - 80046b2: 681b ldr r3, [r3, #0] - 80046b4: f003 0307 and.w r3, r3, #7 - 80046b8: 683a ldr r2, [r7, #0] - 80046ba: 429a cmp r2, r3 - 80046bc: d910 bls.n 80046e0 - { - /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ - __HAL_FLASH_SET_LATENCY(FLatency); - 80046be: 4b72 ldr r3, [pc, #456] ; (8004888 ) - 80046c0: 681b ldr r3, [r3, #0] - 80046c2: f023 0207 bic.w r2, r3, #7 - 80046c6: 4970 ldr r1, [pc, #448] ; (8004888 ) - 80046c8: 683b ldr r3, [r7, #0] - 80046ca: 4313 orrs r3, r2 - 80046cc: 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) - 80046ce: 4b6e ldr r3, [pc, #440] ; (8004888 ) - 80046d0: 681b ldr r3, [r3, #0] - 80046d2: f003 0307 and.w r3, r3, #7 - 80046d6: 683a ldr r2, [r7, #0] - 80046d8: 429a cmp r2, r3 - 80046da: d001 beq.n 80046e0 - { - return HAL_ERROR; - 80046dc: 2301 movs r3, #1 - 80046de: e0cf b.n 8004880 - } - } - - /*----------------- HCLK Configuration prior to SYSCLK----------------------*/ - /* Apply higher HCLK prescaler request here to ensure CPU clock is not of of spec when SYSCLK is increased */ - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) - 80046e0: 687b ldr r3, [r7, #4] - 80046e2: 681b ldr r3, [r3, #0] - 80046e4: f003 0302 and.w r3, r3, #2 - 80046e8: 2b00 cmp r3, #0 - 80046ea: d010 beq.n 800470e - { - assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); - - if(RCC_ClkInitStruct->AHBCLKDivider > READ_BIT(RCC->CFGR, RCC_CFGR_HPRE)) - 80046ec: 687b ldr r3, [r7, #4] - 80046ee: 689a ldr r2, [r3, #8] - 80046f0: 4b66 ldr r3, [pc, #408] ; (800488c ) - 80046f2: 689b ldr r3, [r3, #8] - 80046f4: f003 03f0 and.w r3, r3, #240 ; 0xf0 - 80046f8: 429a cmp r2, r3 - 80046fa: d908 bls.n 800470e - { - MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); - 80046fc: 4b63 ldr r3, [pc, #396] ; (800488c ) - 80046fe: 689b ldr r3, [r3, #8] - 8004700: f023 02f0 bic.w r2, r3, #240 ; 0xf0 - 8004704: 687b ldr r3, [r7, #4] - 8004706: 689b ldr r3, [r3, #8] - 8004708: 4960 ldr r1, [pc, #384] ; (800488c ) - 800470a: 4313 orrs r3, r2 - 800470c: 608b str r3, [r1, #8] - } - } - - /*------------------------- SYSCLK Configuration ---------------------------*/ - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) - 800470e: 687b ldr r3, [r7, #4] - 8004710: 681b ldr r3, [r3, #0] - 8004712: f003 0301 and.w r3, r3, #1 - 8004716: 2b00 cmp r3, #0 - 8004718: d04c beq.n 80047b4 - { - assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); - - /* PLL is selected as System Clock Source */ - if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) - 800471a: 687b ldr r3, [r7, #4] - 800471c: 685b ldr r3, [r3, #4] - 800471e: 2b03 cmp r3, #3 - 8004720: d107 bne.n 8004732 - { - /* Check the PLL ready flag */ - if(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == 0U) - 8004722: 4b5a ldr r3, [pc, #360] ; (800488c ) - 8004724: 681b ldr r3, [r3, #0] - 8004726: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 800472a: 2b00 cmp r3, #0 - 800472c: d121 bne.n 8004772 - { - return HAL_ERROR; - 800472e: 2301 movs r3, #1 - 8004730: e0a6 b.n 8004880 -#endif - } - else - { - /* HSE is selected as System Clock Source */ - if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) - 8004732: 687b ldr r3, [r7, #4] - 8004734: 685b ldr r3, [r3, #4] - 8004736: 2b02 cmp r3, #2 - 8004738: d107 bne.n 800474a - { - /* Check the HSE ready flag */ - if(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) - 800473a: 4b54 ldr r3, [pc, #336] ; (800488c ) - 800473c: 681b ldr r3, [r3, #0] - 800473e: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8004742: 2b00 cmp r3, #0 - 8004744: d115 bne.n 8004772 - { - return HAL_ERROR; - 8004746: 2301 movs r3, #1 - 8004748: e09a b.n 8004880 - } - } - /* MSI is selected as System Clock Source */ - else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_MSI) - 800474a: 687b ldr r3, [r7, #4] - 800474c: 685b ldr r3, [r3, #4] - 800474e: 2b00 cmp r3, #0 - 8004750: d107 bne.n 8004762 - { - /* Check the MSI ready flag */ - if(READ_BIT(RCC->CR, RCC_CR_MSIRDY) == 0U) - 8004752: 4b4e ldr r3, [pc, #312] ; (800488c ) - 8004754: 681b ldr r3, [r3, #0] - 8004756: f003 0302 and.w r3, r3, #2 - 800475a: 2b00 cmp r3, #0 - 800475c: d109 bne.n 8004772 - { - return HAL_ERROR; - 800475e: 2301 movs r3, #1 - 8004760: e08e b.n 8004880 - } - /* HSI is selected as System Clock Source */ - else - { - /* Check the HSI ready flag */ - if(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U) - 8004762: 4b4a ldr r3, [pc, #296] ; (800488c ) - 8004764: 681b ldr r3, [r3, #0] - 8004766: f403 6380 and.w r3, r3, #1024 ; 0x400 - 800476a: 2b00 cmp r3, #0 - 800476c: d101 bne.n 8004772 - { - return HAL_ERROR; - 800476e: 2301 movs r3, #1 - 8004770: e086 b.n 8004880 - } -#endif - - } - - MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, RCC_ClkInitStruct->SYSCLKSource); - 8004772: 4b46 ldr r3, [pc, #280] ; (800488c ) - 8004774: 689b ldr r3, [r3, #8] - 8004776: f023 0203 bic.w r2, r3, #3 - 800477a: 687b ldr r3, [r7, #4] - 800477c: 685b ldr r3, [r3, #4] - 800477e: 4943 ldr r1, [pc, #268] ; (800488c ) - 8004780: 4313 orrs r3, r2 - 8004782: 608b str r3, [r1, #8] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8004784: f7fd fac0 bl 8001d08 - 8004788: 60f8 str r0, [r7, #12] - - while(__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 800478a: e00a b.n 80047a2 - { - if((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) - 800478c: f7fd fabc bl 8001d08 - 8004790: 4602 mov r2, r0 - 8004792: 68fb ldr r3, [r7, #12] - 8004794: 1ad3 subs r3, r2, r3 - 8004796: f241 3288 movw r2, #5000 ; 0x1388 - 800479a: 4293 cmp r3, r2 - 800479c: d901 bls.n 80047a2 - { - return HAL_TIMEOUT; - 800479e: 2303 movs r3, #3 - 80047a0: e06e b.n 8004880 - while(__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 80047a2: 4b3a ldr r3, [pc, #232] ; (800488c ) - 80047a4: 689b ldr r3, [r3, #8] - 80047a6: f003 020c and.w r2, r3, #12 - 80047aa: 687b ldr r3, [r7, #4] - 80047ac: 685b ldr r3, [r3, #4] - 80047ae: 009b lsls r3, r3, #2 - 80047b0: 429a cmp r2, r3 - 80047b2: d1eb bne.n 800478c - } -#endif - - /*----------------- HCLK Configuration after SYSCLK-------------------------*/ - /* Apply lower HCLK prescaler request here to ensure CPU clock is not of of spec when SYSCLK is set */ - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) - 80047b4: 687b ldr r3, [r7, #4] - 80047b6: 681b ldr r3, [r3, #0] - 80047b8: f003 0302 and.w r3, r3, #2 - 80047bc: 2b00 cmp r3, #0 - 80047be: d010 beq.n 80047e2 - { - if(RCC_ClkInitStruct->AHBCLKDivider < READ_BIT(RCC->CFGR, RCC_CFGR_HPRE)) - 80047c0: 687b ldr r3, [r7, #4] - 80047c2: 689a ldr r2, [r3, #8] - 80047c4: 4b31 ldr r3, [pc, #196] ; (800488c ) - 80047c6: 689b ldr r3, [r3, #8] - 80047c8: f003 03f0 and.w r3, r3, #240 ; 0xf0 - 80047cc: 429a cmp r2, r3 - 80047ce: d208 bcs.n 80047e2 - { - MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); - 80047d0: 4b2e ldr r3, [pc, #184] ; (800488c ) - 80047d2: 689b ldr r3, [r3, #8] - 80047d4: f023 02f0 bic.w r2, r3, #240 ; 0xf0 - 80047d8: 687b ldr r3, [r7, #4] - 80047da: 689b ldr r3, [r3, #8] - 80047dc: 492b ldr r1, [pc, #172] ; (800488c ) - 80047de: 4313 orrs r3, r2 - 80047e0: 608b str r3, [r1, #8] - } - } - - /* Allow decreasing of the number of wait states (because of lower CPU frequency expected) */ - if(FLatency < __HAL_FLASH_GET_LATENCY()) - 80047e2: 4b29 ldr r3, [pc, #164] ; (8004888 ) - 80047e4: 681b ldr r3, [r3, #0] - 80047e6: f003 0307 and.w r3, r3, #7 - 80047ea: 683a ldr r2, [r7, #0] - 80047ec: 429a cmp r2, r3 - 80047ee: d210 bcs.n 8004812 - { - /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ - __HAL_FLASH_SET_LATENCY(FLatency); - 80047f0: 4b25 ldr r3, [pc, #148] ; (8004888 ) - 80047f2: 681b ldr r3, [r3, #0] - 80047f4: f023 0207 bic.w r2, r3, #7 - 80047f8: 4923 ldr r1, [pc, #140] ; (8004888 ) - 80047fa: 683b ldr r3, [r7, #0] - 80047fc: 4313 orrs r3, r2 - 80047fe: 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) - 8004800: 4b21 ldr r3, [pc, #132] ; (8004888 ) - 8004802: 681b ldr r3, [r3, #0] - 8004804: f003 0307 and.w r3, r3, #7 - 8004808: 683a ldr r2, [r7, #0] - 800480a: 429a cmp r2, r3 - 800480c: d001 beq.n 8004812 - { - return HAL_ERROR; - 800480e: 2301 movs r3, #1 - 8004810: e036 b.n 8004880 - } - } - - /*-------------------------- PCLK1 Configuration ---------------------------*/ - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 8004812: 687b ldr r3, [r7, #4] - 8004814: 681b ldr r3, [r3, #0] - 8004816: f003 0304 and.w r3, r3, #4 - 800481a: 2b00 cmp r3, #0 - 800481c: d008 beq.n 8004830 - { - assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); - MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); - 800481e: 4b1b ldr r3, [pc, #108] ; (800488c ) - 8004820: 689b ldr r3, [r3, #8] - 8004822: f423 62e0 bic.w r2, r3, #1792 ; 0x700 - 8004826: 687b ldr r3, [r7, #4] - 8004828: 68db ldr r3, [r3, #12] - 800482a: 4918 ldr r1, [pc, #96] ; (800488c ) - 800482c: 4313 orrs r3, r2 - 800482e: 608b str r3, [r1, #8] - } - - /*-------------------------- PCLK2 Configuration ---------------------------*/ - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 8004830: 687b ldr r3, [r7, #4] - 8004832: 681b ldr r3, [r3, #0] - 8004834: f003 0308 and.w r3, r3, #8 - 8004838: 2b00 cmp r3, #0 - 800483a: d009 beq.n 8004850 - { - assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); - MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); - 800483c: 4b13 ldr r3, [pc, #76] ; (800488c ) - 800483e: 689b ldr r3, [r3, #8] - 8004840: f423 5260 bic.w r2, r3, #14336 ; 0x3800 - 8004844: 687b ldr r3, [r7, #4] - 8004846: 691b ldr r3, [r3, #16] - 8004848: 00db lsls r3, r3, #3 - 800484a: 4910 ldr r1, [pc, #64] ; (800488c ) - 800484c: 4313 orrs r3, r2 - 800484e: 608b str r3, [r1, #8] - } - - /* Update the SystemCoreClock global variable */ - SystemCoreClock = HAL_RCC_GetSysClockFreq() >> (AHBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos] & 0x1FU); - 8004850: f000 f824 bl 800489c - 8004854: 4602 mov r2, r0 - 8004856: 4b0d ldr r3, [pc, #52] ; (800488c ) - 8004858: 689b ldr r3, [r3, #8] - 800485a: 091b lsrs r3, r3, #4 - 800485c: f003 030f and.w r3, r3, #15 - 8004860: 490b ldr r1, [pc, #44] ; (8004890 ) - 8004862: 5ccb ldrb r3, [r1, r3] - 8004864: f003 031f and.w r3, r3, #31 - 8004868: fa22 f303 lsr.w r3, r2, r3 - 800486c: 4a09 ldr r2, [pc, #36] ; (8004894 ) - 800486e: 6013 str r3, [r2, #0] - - /* Configure the source of time base considering new system clocks settings*/ - status = HAL_InitTick(uwTickPrio); - 8004870: 4b09 ldr r3, [pc, #36] ; (8004898 ) - 8004872: 681b ldr r3, [r3, #0] - 8004874: 4618 mov r0, r3 - 8004876: f7fd f9f7 bl 8001c68 - 800487a: 4603 mov r3, r0 - 800487c: 72fb strb r3, [r7, #11] - - return status; - 800487e: 7afb ldrb r3, [r7, #11] -} - 8004880: 4618 mov r0, r3 - 8004882: 3710 adds r7, #16 - 8004884: 46bd mov sp, r7 - 8004886: bd80 pop {r7, pc} - 8004888: 40022000 .word 0x40022000 - 800488c: 40021000 .word 0x40021000 - 8004890: 08006f6c .word 0x08006f6c - 8004894: 20000000 .word 0x20000000 - 8004898: 20000004 .word 0x20000004 - -0800489c : - * - * - * @retval SYSCLK frequency - */ -uint32_t HAL_RCC_GetSysClockFreq(void) -{ - 800489c: b480 push {r7} - 800489e: b089 sub sp, #36 ; 0x24 - 80048a0: af00 add r7, sp, #0 - uint32_t msirange = 0U, sysclockfreq = 0U; - 80048a2: 2300 movs r3, #0 - 80048a4: 61fb str r3, [r7, #28] - 80048a6: 2300 movs r3, #0 - 80048a8: 61bb str r3, [r7, #24] - uint32_t pllvco, pllsource, pllr, pllm; /* no init needed */ - uint32_t sysclk_source, pll_oscsource; - - sysclk_source = __HAL_RCC_GET_SYSCLK_SOURCE(); - 80048aa: 4b3e ldr r3, [pc, #248] ; (80049a4 ) - 80048ac: 689b ldr r3, [r3, #8] - 80048ae: f003 030c and.w r3, r3, #12 - 80048b2: 613b str r3, [r7, #16] - pll_oscsource = __HAL_RCC_GET_PLL_OSCSOURCE(); - 80048b4: 4b3b ldr r3, [pc, #236] ; (80049a4 ) - 80048b6: 68db ldr r3, [r3, #12] - 80048b8: f003 0303 and.w r3, r3, #3 - 80048bc: 60fb str r3, [r7, #12] - - if((sysclk_source == RCC_CFGR_SWS_MSI) || - 80048be: 693b ldr r3, [r7, #16] - 80048c0: 2b00 cmp r3, #0 - 80048c2: d005 beq.n 80048d0 - 80048c4: 693b ldr r3, [r7, #16] - 80048c6: 2b0c cmp r3, #12 - 80048c8: d121 bne.n 800490e - ((sysclk_source == RCC_CFGR_SWS_PLL) && (pll_oscsource == RCC_PLLSOURCE_MSI))) - 80048ca: 68fb ldr r3, [r7, #12] - 80048cc: 2b01 cmp r3, #1 - 80048ce: d11e bne.n 800490e - { - /* MSI or PLL with MSI source used as system clock source */ - - /* Get SYSCLK source */ - if(READ_BIT(RCC->CR, RCC_CR_MSIRGSEL) == 0U) - 80048d0: 4b34 ldr r3, [pc, #208] ; (80049a4 ) - 80048d2: 681b ldr r3, [r3, #0] - 80048d4: f003 0308 and.w r3, r3, #8 - 80048d8: 2b00 cmp r3, #0 - 80048da: d107 bne.n 80048ec - { /* MSISRANGE from RCC_CSR applies */ - msirange = READ_BIT(RCC->CSR, RCC_CSR_MSISRANGE) >> RCC_CSR_MSISRANGE_Pos; - 80048dc: 4b31 ldr r3, [pc, #196] ; (80049a4 ) - 80048de: f8d3 3094 ldr.w r3, [r3, #148] ; 0x94 - 80048e2: 0a1b lsrs r3, r3, #8 - 80048e4: f003 030f and.w r3, r3, #15 - 80048e8: 61fb str r3, [r7, #28] - 80048ea: e005 b.n 80048f8 - } - else - { /* MSIRANGE from RCC_CR applies */ - msirange = READ_BIT(RCC->CR, RCC_CR_MSIRANGE) >> RCC_CR_MSIRANGE_Pos; - 80048ec: 4b2d ldr r3, [pc, #180] ; (80049a4 ) - 80048ee: 681b ldr r3, [r3, #0] - 80048f0: 091b lsrs r3, r3, #4 - 80048f2: f003 030f and.w r3, r3, #15 - 80048f6: 61fb str r3, [r7, #28] - } - /*MSI frequency range in HZ*/ - msirange = MSIRangeTable[msirange]; - 80048f8: 4a2b ldr r2, [pc, #172] ; (80049a8 ) - 80048fa: 69fb ldr r3, [r7, #28] - 80048fc: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8004900: 61fb str r3, [r7, #28] - - if(sysclk_source == RCC_CFGR_SWS_MSI) - 8004902: 693b ldr r3, [r7, #16] - 8004904: 2b00 cmp r3, #0 - 8004906: d10d bne.n 8004924 - { - /* MSI used as system clock source */ - sysclockfreq = msirange; - 8004908: 69fb ldr r3, [r7, #28] - 800490a: 61bb str r3, [r7, #24] - if(sysclk_source == RCC_CFGR_SWS_MSI) - 800490c: e00a b.n 8004924 - } - } - else if(sysclk_source == RCC_CFGR_SWS_HSI) - 800490e: 693b ldr r3, [r7, #16] - 8004910: 2b04 cmp r3, #4 - 8004912: d102 bne.n 800491a - { - /* HSI used as system clock source */ - sysclockfreq = HSI_VALUE; - 8004914: 4b25 ldr r3, [pc, #148] ; (80049ac ) - 8004916: 61bb str r3, [r7, #24] - 8004918: e004 b.n 8004924 - } - else if(sysclk_source == RCC_CFGR_SWS_HSE) - 800491a: 693b ldr r3, [r7, #16] - 800491c: 2b08 cmp r3, #8 - 800491e: d101 bne.n 8004924 - { - /* HSE used as system clock source */ - sysclockfreq = HSE_VALUE; - 8004920: 4b23 ldr r3, [pc, #140] ; (80049b0 ) - 8004922: 61bb str r3, [r7, #24] - else - { - /* unexpected case: sysclockfreq at 0 */ - } - - if(sysclk_source == RCC_CFGR_SWS_PLL) - 8004924: 693b ldr r3, [r7, #16] - 8004926: 2b0c cmp r3, #12 - 8004928: d134 bne.n 8004994 - /* PLL used as system clock source */ - - /* PLL_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE) * PLLN / PLLM - SYSCLK = PLL_VCO / PLLR - */ - pllsource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC); - 800492a: 4b1e ldr r3, [pc, #120] ; (80049a4 ) - 800492c: 68db ldr r3, [r3, #12] - 800492e: f003 0303 and.w r3, r3, #3 - 8004932: 60bb str r3, [r7, #8] - - switch (pllsource) - 8004934: 68bb ldr r3, [r7, #8] - 8004936: 2b02 cmp r3, #2 - 8004938: d003 beq.n 8004942 - 800493a: 68bb ldr r3, [r7, #8] - 800493c: 2b03 cmp r3, #3 - 800493e: d003 beq.n 8004948 - 8004940: e005 b.n 800494e - { - case RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */ - pllvco = HSI_VALUE; - 8004942: 4b1a ldr r3, [pc, #104] ; (80049ac ) - 8004944: 617b str r3, [r7, #20] - break; - 8004946: e005 b.n 8004954 - - case RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */ - pllvco = HSE_VALUE; - 8004948: 4b19 ldr r3, [pc, #100] ; (80049b0 ) - 800494a: 617b str r3, [r7, #20] - break; - 800494c: e002 b.n 8004954 - - case RCC_PLLSOURCE_MSI: /* MSI used as PLL clock source */ - default: - pllvco = msirange; - 800494e: 69fb ldr r3, [r7, #28] - 8004950: 617b str r3, [r7, #20] - break; - 8004952: bf00 nop - } - pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ; - 8004954: 4b13 ldr r3, [pc, #76] ; (80049a4 ) - 8004956: 68db ldr r3, [r3, #12] - 8004958: 091b lsrs r3, r3, #4 - 800495a: f003 0307 and.w r3, r3, #7 - 800495e: 3301 adds r3, #1 - 8004960: 607b str r3, [r7, #4] - pllvco = (pllvco * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)) / pllm; - 8004962: 4b10 ldr r3, [pc, #64] ; (80049a4 ) - 8004964: 68db ldr r3, [r3, #12] - 8004966: 0a1b lsrs r3, r3, #8 - 8004968: f003 037f and.w r3, r3, #127 ; 0x7f - 800496c: 697a ldr r2, [r7, #20] - 800496e: fb03 f202 mul.w r2, r3, r2 - 8004972: 687b ldr r3, [r7, #4] - 8004974: fbb2 f3f3 udiv r3, r2, r3 - 8004978: 617b str r3, [r7, #20] - pllr = ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U ) * 2U; - 800497a: 4b0a ldr r3, [pc, #40] ; (80049a4 ) - 800497c: 68db ldr r3, [r3, #12] - 800497e: 0e5b lsrs r3, r3, #25 - 8004980: f003 0303 and.w r3, r3, #3 - 8004984: 3301 adds r3, #1 - 8004986: 005b lsls r3, r3, #1 - 8004988: 603b str r3, [r7, #0] - sysclockfreq = pllvco / pllr; - 800498a: 697a ldr r2, [r7, #20] - 800498c: 683b ldr r3, [r7, #0] - 800498e: fbb2 f3f3 udiv r3, r2, r3 - 8004992: 61bb str r3, [r7, #24] - } - - return sysclockfreq; - 8004994: 69bb ldr r3, [r7, #24] -} - 8004996: 4618 mov r0, r3 - 8004998: 3724 adds r7, #36 ; 0x24 - 800499a: 46bd mov sp, r7 - 800499c: f85d 7b04 ldr.w r7, [sp], #4 - 80049a0: 4770 bx lr - 80049a2: bf00 nop - 80049a4: 40021000 .word 0x40021000 - 80049a8: 08006f84 .word 0x08006f84 - 80049ac: 00f42400 .word 0x00f42400 - 80049b0: 007a1200 .word 0x007a1200 - -080049b4 : - * - * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency. - * @retval HCLK frequency in Hz - */ -uint32_t HAL_RCC_GetHCLKFreq(void) -{ - 80049b4: b480 push {r7} - 80049b6: af00 add r7, sp, #0 - return SystemCoreClock; - 80049b8: 4b03 ldr r3, [pc, #12] ; (80049c8 ) - 80049ba: 681b ldr r3, [r3, #0] -} - 80049bc: 4618 mov r0, r3 - 80049be: 46bd mov sp, r7 - 80049c0: f85d 7b04 ldr.w r7, [sp], #4 - 80049c4: 4770 bx lr - 80049c6: bf00 nop - 80049c8: 20000000 .word 0x20000000 - -080049cc : - * @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 in Hz - */ -uint32_t HAL_RCC_GetPCLK1Freq(void) -{ - 80049cc: b580 push {r7, lr} - 80049ce: af00 add r7, sp, #0 - /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ - return (HAL_RCC_GetHCLKFreq() >> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos] & 0x1FU)); - 80049d0: f7ff fff0 bl 80049b4 - 80049d4: 4602 mov r2, r0 - 80049d6: 4b06 ldr r3, [pc, #24] ; (80049f0 ) - 80049d8: 689b ldr r3, [r3, #8] - 80049da: 0a1b lsrs r3, r3, #8 - 80049dc: f003 0307 and.w r3, r3, #7 - 80049e0: 4904 ldr r1, [pc, #16] ; (80049f4 ) - 80049e2: 5ccb ldrb r3, [r1, r3] - 80049e4: f003 031f and.w r3, r3, #31 - 80049e8: fa22 f303 lsr.w r3, r2, r3 -} - 80049ec: 4618 mov r0, r3 - 80049ee: bd80 pop {r7, pc} - 80049f0: 40021000 .word 0x40021000 - 80049f4: 08006f7c .word 0x08006f7c - -080049f8 : - * @note Each time PCLK2 changes, this function must be called to update the - * right PCLK2 value. Otherwise, any configuration based on this function will be incorrect. - * @retval PCLK2 frequency in Hz - */ -uint32_t HAL_RCC_GetPCLK2Freq(void) -{ - 80049f8: b580 push {r7, lr} - 80049fa: af00 add r7, sp, #0 - /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ - return (HAL_RCC_GetHCLKFreq()>> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos] & 0x1FU)); - 80049fc: f7ff ffda bl 80049b4 - 8004a00: 4602 mov r2, r0 - 8004a02: 4b06 ldr r3, [pc, #24] ; (8004a1c ) - 8004a04: 689b ldr r3, [r3, #8] - 8004a06: 0adb lsrs r3, r3, #11 - 8004a08: f003 0307 and.w r3, r3, #7 - 8004a0c: 4904 ldr r1, [pc, #16] ; (8004a20 ) - 8004a0e: 5ccb ldrb r3, [r1, r3] - 8004a10: f003 031f and.w r3, r3, #31 - 8004a14: fa22 f303 lsr.w r3, r2, r3 -} - 8004a18: 4618 mov r0, r3 - 8004a1a: bd80 pop {r7, pc} - 8004a1c: 40021000 .word 0x40021000 - 8004a20: 08006f7c .word 0x08006f7c - -08004a24 : - voltage range. - * @param msirange MSI range value from RCC_MSIRANGE_0 to RCC_MSIRANGE_11 - * @retval HAL status - */ -static HAL_StatusTypeDef RCC_SetFlashLatencyFromMSIRange(uint32_t msirange) -{ - 8004a24: b580 push {r7, lr} - 8004a26: b086 sub sp, #24 - 8004a28: af00 add r7, sp, #0 - 8004a2a: 6078 str r0, [r7, #4] - uint32_t vos; - uint32_t latency = FLASH_LATENCY_0; /* default value 0WS */ - 8004a2c: 2300 movs r3, #0 - 8004a2e: 613b str r3, [r7, #16] - - if(__HAL_RCC_PWR_IS_CLK_ENABLED()) - 8004a30: 4b2a ldr r3, [pc, #168] ; (8004adc ) - 8004a32: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004a34: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8004a38: 2b00 cmp r3, #0 - 8004a3a: d003 beq.n 8004a44 - { - vos = HAL_PWREx_GetVoltageRange(); - 8004a3c: f7ff f9ee bl 8003e1c - 8004a40: 6178 str r0, [r7, #20] - 8004a42: e014 b.n 8004a6e - } - else - { - __HAL_RCC_PWR_CLK_ENABLE(); - 8004a44: 4b25 ldr r3, [pc, #148] ; (8004adc ) - 8004a46: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004a48: 4a24 ldr r2, [pc, #144] ; (8004adc ) - 8004a4a: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8004a4e: 6593 str r3, [r2, #88] ; 0x58 - 8004a50: 4b22 ldr r3, [pc, #136] ; (8004adc ) - 8004a52: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004a54: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8004a58: 60fb str r3, [r7, #12] - 8004a5a: 68fb ldr r3, [r7, #12] - vos = HAL_PWREx_GetVoltageRange(); - 8004a5c: f7ff f9de bl 8003e1c - 8004a60: 6178 str r0, [r7, #20] - __HAL_RCC_PWR_CLK_DISABLE(); - 8004a62: 4b1e ldr r3, [pc, #120] ; (8004adc ) - 8004a64: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004a66: 4a1d ldr r2, [pc, #116] ; (8004adc ) - 8004a68: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 - 8004a6c: 6593 str r3, [r2, #88] ; 0x58 - } - - if(vos == PWR_REGULATOR_VOLTAGE_SCALE1) - 8004a6e: 697b ldr r3, [r7, #20] - 8004a70: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8004a74: d10b bne.n 8004a8e - { - if(msirange > RCC_MSIRANGE_8) - 8004a76: 687b ldr r3, [r7, #4] - 8004a78: 2b80 cmp r3, #128 ; 0x80 - 8004a7a: d919 bls.n 8004ab0 - { - /* MSI > 16Mhz */ - if(msirange > RCC_MSIRANGE_10) - 8004a7c: 687b ldr r3, [r7, #4] - 8004a7e: 2ba0 cmp r3, #160 ; 0xa0 - 8004a80: d902 bls.n 8004a88 - { - /* MSI 48Mhz */ - latency = FLASH_LATENCY_2; /* 2WS */ - 8004a82: 2302 movs r3, #2 - 8004a84: 613b str r3, [r7, #16] - 8004a86: e013 b.n 8004ab0 - } - else - { - /* MSI 24Mhz or 32Mhz */ - latency = FLASH_LATENCY_1; /* 1WS */ - 8004a88: 2301 movs r3, #1 - 8004a8a: 613b str r3, [r7, #16] - 8004a8c: e010 b.n 8004ab0 - latency = FLASH_LATENCY_1; /* 1WS */ - } - /* else MSI < 8Mhz default FLASH_LATENCY_0 0WS */ - } -#else - if(msirange > RCC_MSIRANGE_8) - 8004a8e: 687b ldr r3, [r7, #4] - 8004a90: 2b80 cmp r3, #128 ; 0x80 - 8004a92: d902 bls.n 8004a9a - { - /* MSI > 16Mhz */ - latency = FLASH_LATENCY_3; /* 3WS */ - 8004a94: 2303 movs r3, #3 - 8004a96: 613b str r3, [r7, #16] - 8004a98: e00a b.n 8004ab0 - } - else - { - if(msirange == RCC_MSIRANGE_8) - 8004a9a: 687b ldr r3, [r7, #4] - 8004a9c: 2b80 cmp r3, #128 ; 0x80 - 8004a9e: d102 bne.n 8004aa6 - { - /* MSI 16Mhz */ - latency = FLASH_LATENCY_2; /* 2WS */ - 8004aa0: 2302 movs r3, #2 - 8004aa2: 613b str r3, [r7, #16] - 8004aa4: e004 b.n 8004ab0 - } - else if(msirange == RCC_MSIRANGE_7) - 8004aa6: 687b ldr r3, [r7, #4] - 8004aa8: 2b70 cmp r3, #112 ; 0x70 - 8004aaa: d101 bne.n 8004ab0 - { - /* MSI 8Mhz */ - latency = FLASH_LATENCY_1; /* 1WS */ - 8004aac: 2301 movs r3, #1 - 8004aae: 613b str r3, [r7, #16] - /* else MSI < 8Mhz default FLASH_LATENCY_0 0WS */ - } -#endif - } - - __HAL_FLASH_SET_LATENCY(latency); - 8004ab0: 4b0b ldr r3, [pc, #44] ; (8004ae0 ) - 8004ab2: 681b ldr r3, [r3, #0] - 8004ab4: f023 0207 bic.w r2, r3, #7 - 8004ab8: 4909 ldr r1, [pc, #36] ; (8004ae0 ) - 8004aba: 693b ldr r3, [r7, #16] - 8004abc: 4313 orrs r3, r2 - 8004abe: 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() != latency) - 8004ac0: 4b07 ldr r3, [pc, #28] ; (8004ae0 ) - 8004ac2: 681b ldr r3, [r3, #0] - 8004ac4: f003 0307 and.w r3, r3, #7 - 8004ac8: 693a ldr r2, [r7, #16] - 8004aca: 429a cmp r2, r3 - 8004acc: d001 beq.n 8004ad2 - { - return HAL_ERROR; - 8004ace: 2301 movs r3, #1 - 8004ad0: e000 b.n 8004ad4 - } - - return HAL_OK; - 8004ad2: 2300 movs r3, #0 -} - 8004ad4: 4618 mov r0, r3 - 8004ad6: 3718 adds r7, #24 - 8004ad8: 46bd mov sp, r7 - 8004ada: bd80 pop {r7, pc} - 8004adc: 40021000 .word 0x40021000 - 8004ae0: 40022000 .word 0x40022000 - -08004ae4 : - * the RTC clock source: in this case the access to Backup domain is enabled. - * - * @retval HAL status - */ -HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) -{ - 8004ae4: b580 push {r7, lr} - 8004ae6: b086 sub sp, #24 - 8004ae8: af00 add r7, sp, #0 - 8004aea: 6078 str r0, [r7, #4] - uint32_t tmpregister, tickstart; /* no init needed */ - HAL_StatusTypeDef ret = HAL_OK; /* Intermediate status */ - 8004aec: 2300 movs r3, #0 - 8004aee: 74fb strb r3, [r7, #19] - HAL_StatusTypeDef status = HAL_OK; /* Final status */ - 8004af0: 2300 movs r3, #0 - 8004af2: 74bb strb r3, [r7, #18] - assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); - -#if defined(SAI1) - - /*-------------------------- SAI1 clock source configuration ---------------------*/ - if((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1)) - 8004af4: 687b ldr r3, [r7, #4] - 8004af6: 681b ldr r3, [r3, #0] - 8004af8: f403 6300 and.w r3, r3, #2048 ; 0x800 - 8004afc: 2b00 cmp r3, #0 - 8004afe: d041 beq.n 8004b84 - { - /* Check the parameters */ - assert_param(IS_RCC_SAI1CLK(PeriphClkInit->Sai1ClockSelection)); - - switch(PeriphClkInit->Sai1ClockSelection) - 8004b00: 687b ldr r3, [r7, #4] - 8004b02: 6e5b ldr r3, [r3, #100] ; 0x64 - 8004b04: f5b3 0f40 cmp.w r3, #12582912 ; 0xc00000 - 8004b08: d02a beq.n 8004b60 - 8004b0a: f5b3 0f40 cmp.w r3, #12582912 ; 0xc00000 - 8004b0e: d824 bhi.n 8004b5a - 8004b10: f5b3 0f00 cmp.w r3, #8388608 ; 0x800000 - 8004b14: d008 beq.n 8004b28 - 8004b16: f5b3 0f00 cmp.w r3, #8388608 ; 0x800000 - 8004b1a: d81e bhi.n 8004b5a - 8004b1c: 2b00 cmp r3, #0 - 8004b1e: d00a beq.n 8004b36 - 8004b20: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 - 8004b24: d010 beq.n 8004b48 - 8004b26: e018 b.n 8004b5a - { - case RCC_SAI1CLKSOURCE_PLL: /* PLL is used as clock source for SAI1*/ - /* Enable SAI Clock output generated from System PLL . */ -#if defined(RCC_PLLSAI2_SUPPORT) - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SAI3CLK); - 8004b28: 4b86 ldr r3, [pc, #536] ; (8004d44 ) - 8004b2a: 68db ldr r3, [r3, #12] - 8004b2c: 4a85 ldr r2, [pc, #532] ; (8004d44 ) - 8004b2e: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 8004b32: 60d3 str r3, [r2, #12] -#else - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SAI2CLK); -#endif /* RCC_PLLSAI2_SUPPORT */ - /* SAI1 clock source config set later after clock selection check */ - break; - 8004b34: e015 b.n 8004b62 - - case RCC_SAI1CLKSOURCE_PLLSAI1: /* PLLSAI1 is used as clock source for SAI1*/ - /* PLLSAI1 input clock, parameters M, N & P configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_P_UPDATE); - 8004b36: 687b ldr r3, [r7, #4] - 8004b38: 3304 adds r3, #4 - 8004b3a: 2100 movs r1, #0 - 8004b3c: 4618 mov r0, r3 - 8004b3e: f000 fabb bl 80050b8 - 8004b42: 4603 mov r3, r0 - 8004b44: 74fb strb r3, [r7, #19] - /* SAI1 clock source config set later after clock selection check */ - break; - 8004b46: e00c b.n 8004b62 - -#if defined(RCC_PLLSAI2_SUPPORT) - - case RCC_SAI1CLKSOURCE_PLLSAI2: /* PLLSAI2 is used as clock source for SAI1*/ - /* PLLSAI2 input clock, parameters M, N & P configuration clock output (PLLSAI2ClockOut) */ - ret = RCCEx_PLLSAI2_Config(&(PeriphClkInit->PLLSAI2), DIVIDER_P_UPDATE); - 8004b48: 687b ldr r3, [r7, #4] - 8004b4a: 3320 adds r3, #32 - 8004b4c: 2100 movs r1, #0 - 8004b4e: 4618 mov r0, r3 - 8004b50: f000 fba6 bl 80052a0 - 8004b54: 4603 mov r3, r0 - 8004b56: 74fb strb r3, [r7, #19] - /* SAI1 clock source config set later after clock selection check */ - break; - 8004b58: e003 b.n 8004b62 -#endif /* STM32L4P5xx || STM32L4Q5xx || STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */ - /* SAI1 clock source config set later after clock selection check */ - break; - - default: - ret = HAL_ERROR; - 8004b5a: 2301 movs r3, #1 - 8004b5c: 74fb strb r3, [r7, #19] - break; - 8004b5e: e000 b.n 8004b62 - break; - 8004b60: bf00 nop - } - - if(ret == HAL_OK) - 8004b62: 7cfb ldrb r3, [r7, #19] - 8004b64: 2b00 cmp r3, #0 - 8004b66: d10b bne.n 8004b80 - { - /* Set the source of SAI1 clock*/ - __HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection); - 8004b68: 4b76 ldr r3, [pc, #472] ; (8004d44 ) - 8004b6a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004b6e: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 - 8004b72: 687b ldr r3, [r7, #4] - 8004b74: 6e5b ldr r3, [r3, #100] ; 0x64 - 8004b76: 4973 ldr r1, [pc, #460] ; (8004d44 ) - 8004b78: 4313 orrs r3, r2 - 8004b7a: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - 8004b7e: e001 b.n 8004b84 - } - else - { - /* set overall return value */ - status = ret; - 8004b80: 7cfb ldrb r3, [r7, #19] - 8004b82: 74bb strb r3, [r7, #18] -#endif /* SAI1 */ - -#if defined(SAI2) - - /*-------------------------- SAI2 clock source configuration ---------------------*/ - if((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2)) - 8004b84: 687b ldr r3, [r7, #4] - 8004b86: 681b ldr r3, [r3, #0] - 8004b88: f403 5380 and.w r3, r3, #4096 ; 0x1000 - 8004b8c: 2b00 cmp r3, #0 - 8004b8e: d041 beq.n 8004c14 - { - /* Check the parameters */ - assert_param(IS_RCC_SAI2CLK(PeriphClkInit->Sai2ClockSelection)); - - switch(PeriphClkInit->Sai2ClockSelection) - 8004b90: 687b ldr r3, [r7, #4] - 8004b92: 6e9b ldr r3, [r3, #104] ; 0x68 - 8004b94: f1b3 7f40 cmp.w r3, #50331648 ; 0x3000000 - 8004b98: d02a beq.n 8004bf0 - 8004b9a: f1b3 7f40 cmp.w r3, #50331648 ; 0x3000000 - 8004b9e: d824 bhi.n 8004bea - 8004ba0: f1b3 7f00 cmp.w r3, #33554432 ; 0x2000000 - 8004ba4: d008 beq.n 8004bb8 - 8004ba6: f1b3 7f00 cmp.w r3, #33554432 ; 0x2000000 - 8004baa: d81e bhi.n 8004bea - 8004bac: 2b00 cmp r3, #0 - 8004bae: d00a beq.n 8004bc6 - 8004bb0: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 - 8004bb4: d010 beq.n 8004bd8 - 8004bb6: e018 b.n 8004bea - { - case RCC_SAI2CLKSOURCE_PLL: /* PLL is used as clock source for SAI2*/ - /* Enable SAI Clock output generated from System PLL . */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SAI3CLK); - 8004bb8: 4b62 ldr r3, [pc, #392] ; (8004d44 ) - 8004bba: 68db ldr r3, [r3, #12] - 8004bbc: 4a61 ldr r2, [pc, #388] ; (8004d44 ) - 8004bbe: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 8004bc2: 60d3 str r3, [r2, #12] - /* SAI2 clock source config set later after clock selection check */ - break; - 8004bc4: e015 b.n 8004bf2 - - case RCC_SAI2CLKSOURCE_PLLSAI1: /* PLLSAI1 is used as clock source for SAI2*/ - /* PLLSAI1 input clock, parameters M, N & P configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_P_UPDATE); - 8004bc6: 687b ldr r3, [r7, #4] - 8004bc8: 3304 adds r3, #4 - 8004bca: 2100 movs r1, #0 - 8004bcc: 4618 mov r0, r3 - 8004bce: f000 fa73 bl 80050b8 - 8004bd2: 4603 mov r3, r0 - 8004bd4: 74fb strb r3, [r7, #19] - /* SAI2 clock source config set later after clock selection check */ - break; - 8004bd6: e00c b.n 8004bf2 - - case RCC_SAI2CLKSOURCE_PLLSAI2: /* PLLSAI2 is used as clock source for SAI2*/ - /* PLLSAI2 input clock, parameters M, N & P configuration and clock output (PLLSAI2ClockOut) */ - ret = RCCEx_PLLSAI2_Config(&(PeriphClkInit->PLLSAI2), DIVIDER_P_UPDATE); - 8004bd8: 687b ldr r3, [r7, #4] - 8004bda: 3320 adds r3, #32 - 8004bdc: 2100 movs r1, #0 - 8004bde: 4618 mov r0, r3 - 8004be0: f000 fb5e bl 80052a0 - 8004be4: 4603 mov r3, r0 - 8004be6: 74fb strb r3, [r7, #19] - /* SAI2 clock source config set later after clock selection check */ - break; - 8004be8: e003 b.n 8004bf2 -#endif /* STM32L4P5xx || STM32L4Q5xx || STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */ - /* SAI2 clock source config set later after clock selection check */ - break; - - default: - ret = HAL_ERROR; - 8004bea: 2301 movs r3, #1 - 8004bec: 74fb strb r3, [r7, #19] - break; - 8004bee: e000 b.n 8004bf2 - break; - 8004bf0: bf00 nop - } - - if(ret == HAL_OK) - 8004bf2: 7cfb ldrb r3, [r7, #19] - 8004bf4: 2b00 cmp r3, #0 - 8004bf6: d10b bne.n 8004c10 - { - /* Set the source of SAI2 clock*/ - __HAL_RCC_SAI2_CONFIG(PeriphClkInit->Sai2ClockSelection); - 8004bf8: 4b52 ldr r3, [pc, #328] ; (8004d44 ) - 8004bfa: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004bfe: f023 7240 bic.w r2, r3, #50331648 ; 0x3000000 - 8004c02: 687b ldr r3, [r7, #4] - 8004c04: 6e9b ldr r3, [r3, #104] ; 0x68 - 8004c06: 494f ldr r1, [pc, #316] ; (8004d44 ) - 8004c08: 4313 orrs r3, r2 - 8004c0a: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - 8004c0e: e001 b.n 8004c14 - } - else - { - /* set overall return value */ - status = ret; - 8004c10: 7cfb ldrb r3, [r7, #19] - 8004c12: 74bb strb r3, [r7, #18] - } - } -#endif /* SAI2 */ - - /*-------------------------- RTC clock source configuration ----------------------*/ - if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC) - 8004c14: 687b ldr r3, [r7, #4] - 8004c16: 681b ldr r3, [r3, #0] - 8004c18: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8004c1c: 2b00 cmp r3, #0 - 8004c1e: f000 80a0 beq.w 8004d62 - { - FlagStatus pwrclkchanged = RESET; - 8004c22: 2300 movs r3, #0 - 8004c24: 747b strb r3, [r7, #17] - - /* Check for RTC Parameters used to output RTCCLK */ - assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); - - /* Enable Power Clock */ - if(__HAL_RCC_PWR_IS_CLK_DISABLED() != 0U) - 8004c26: 4b47 ldr r3, [pc, #284] ; (8004d44 ) - 8004c28: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004c2a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8004c2e: 2b00 cmp r3, #0 - 8004c30: d101 bne.n 8004c36 - 8004c32: 2301 movs r3, #1 - 8004c34: e000 b.n 8004c38 - 8004c36: 2300 movs r3, #0 - 8004c38: 2b00 cmp r3, #0 - 8004c3a: d00d beq.n 8004c58 - { - __HAL_RCC_PWR_CLK_ENABLE(); - 8004c3c: 4b41 ldr r3, [pc, #260] ; (8004d44 ) - 8004c3e: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004c40: 4a40 ldr r2, [pc, #256] ; (8004d44 ) - 8004c42: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8004c46: 6593 str r3, [r2, #88] ; 0x58 - 8004c48: 4b3e ldr r3, [pc, #248] ; (8004d44 ) - 8004c4a: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004c4c: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8004c50: 60bb str r3, [r7, #8] - 8004c52: 68bb ldr r3, [r7, #8] - pwrclkchanged = SET; - 8004c54: 2301 movs r3, #1 - 8004c56: 747b strb r3, [r7, #17] - } - - /* Enable write access to Backup domain */ - SET_BIT(PWR->CR1, PWR_CR1_DBP); - 8004c58: 4b3b ldr r3, [pc, #236] ; (8004d48 ) - 8004c5a: 681b ldr r3, [r3, #0] - 8004c5c: 4a3a ldr r2, [pc, #232] ; (8004d48 ) - 8004c5e: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8004c62: 6013 str r3, [r2, #0] - - /* Wait for Backup domain Write protection disable */ - tickstart = HAL_GetTick(); - 8004c64: f7fd f850 bl 8001d08 - 8004c68: 60f8 str r0, [r7, #12] - - while(READ_BIT(PWR->CR1, PWR_CR1_DBP) == 0U) - 8004c6a: e009 b.n 8004c80 - { - if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 8004c6c: f7fd f84c bl 8001d08 - 8004c70: 4602 mov r2, r0 - 8004c72: 68fb ldr r3, [r7, #12] - 8004c74: 1ad3 subs r3, r2, r3 - 8004c76: 2b02 cmp r3, #2 - 8004c78: d902 bls.n 8004c80 - { - ret = HAL_TIMEOUT; - 8004c7a: 2303 movs r3, #3 - 8004c7c: 74fb strb r3, [r7, #19] - break; - 8004c7e: e005 b.n 8004c8c - while(READ_BIT(PWR->CR1, PWR_CR1_DBP) == 0U) - 8004c80: 4b31 ldr r3, [pc, #196] ; (8004d48 ) - 8004c82: 681b ldr r3, [r3, #0] - 8004c84: f403 7380 and.w r3, r3, #256 ; 0x100 - 8004c88: 2b00 cmp r3, #0 - 8004c8a: d0ef beq.n 8004c6c - } - } - - if(ret == HAL_OK) - 8004c8c: 7cfb ldrb r3, [r7, #19] - 8004c8e: 2b00 cmp r3, #0 - 8004c90: d15c bne.n 8004d4c - { - /* Reset the Backup domain only if the RTC Clock source selection is modified from default */ - tmpregister = READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL); - 8004c92: 4b2c ldr r3, [pc, #176] ; (8004d44 ) - 8004c94: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8004c98: f403 7340 and.w r3, r3, #768 ; 0x300 - 8004c9c: 617b str r3, [r7, #20] - - if((tmpregister != RCC_RTCCLKSOURCE_NONE) && (tmpregister != PeriphClkInit->RTCClockSelection)) - 8004c9e: 697b ldr r3, [r7, #20] - 8004ca0: 2b00 cmp r3, #0 - 8004ca2: d01f beq.n 8004ce4 - 8004ca4: 687b ldr r3, [r7, #4] - 8004ca6: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 - 8004caa: 697a ldr r2, [r7, #20] - 8004cac: 429a cmp r2, r3 - 8004cae: d019 beq.n 8004ce4 - { - /* Store the content of BDCR register before the reset of Backup Domain */ - tmpregister = READ_BIT(RCC->BDCR, ~(RCC_BDCR_RTCSEL)); - 8004cb0: 4b24 ldr r3, [pc, #144] ; (8004d44 ) - 8004cb2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8004cb6: f423 7340 bic.w r3, r3, #768 ; 0x300 - 8004cba: 617b str r3, [r7, #20] - /* RTC Clock selection can be changed only if the Backup Domain is reset */ - __HAL_RCC_BACKUPRESET_FORCE(); - 8004cbc: 4b21 ldr r3, [pc, #132] ; (8004d44 ) - 8004cbe: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8004cc2: 4a20 ldr r2, [pc, #128] ; (8004d44 ) - 8004cc4: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 8004cc8: f8c2 3090 str.w r3, [r2, #144] ; 0x90 - __HAL_RCC_BACKUPRESET_RELEASE(); - 8004ccc: 4b1d ldr r3, [pc, #116] ; (8004d44 ) - 8004cce: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8004cd2: 4a1c ldr r2, [pc, #112] ; (8004d44 ) - 8004cd4: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 8004cd8: f8c2 3090 str.w r3, [r2, #144] ; 0x90 - /* Restore the Content of BDCR register */ - RCC->BDCR = tmpregister; - 8004cdc: 4a19 ldr r2, [pc, #100] ; (8004d44 ) - 8004cde: 697b ldr r3, [r7, #20] - 8004ce0: f8c2 3090 str.w r3, [r2, #144] ; 0x90 - } - - /* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */ - if (HAL_IS_BIT_SET(tmpregister, RCC_BDCR_LSEON)) - 8004ce4: 697b ldr r3, [r7, #20] - 8004ce6: f003 0301 and.w r3, r3, #1 - 8004cea: 2b00 cmp r3, #0 - 8004cec: d016 beq.n 8004d1c - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8004cee: f7fd f80b bl 8001d08 - 8004cf2: 60f8 str r0, [r7, #12] - - /* Wait till LSE is ready */ - while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) - 8004cf4: e00b b.n 8004d0e - { - if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) - 8004cf6: f7fd f807 bl 8001d08 - 8004cfa: 4602 mov r2, r0 - 8004cfc: 68fb ldr r3, [r7, #12] - 8004cfe: 1ad3 subs r3, r2, r3 - 8004d00: f241 3288 movw r2, #5000 ; 0x1388 - 8004d04: 4293 cmp r3, r2 - 8004d06: d902 bls.n 8004d0e - { - ret = HAL_TIMEOUT; - 8004d08: 2303 movs r3, #3 - 8004d0a: 74fb strb r3, [r7, #19] - break; - 8004d0c: e006 b.n 8004d1c - while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U) - 8004d0e: 4b0d ldr r3, [pc, #52] ; (8004d44 ) - 8004d10: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8004d14: f003 0302 and.w r3, r3, #2 - 8004d18: 2b00 cmp r3, #0 - 8004d1a: d0ec beq.n 8004cf6 - } - } - } - - if(ret == HAL_OK) - 8004d1c: 7cfb ldrb r3, [r7, #19] - 8004d1e: 2b00 cmp r3, #0 - 8004d20: d10c bne.n 8004d3c - { - /* Apply new RTC clock source selection */ - __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); - 8004d22: 4b08 ldr r3, [pc, #32] ; (8004d44 ) - 8004d24: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8004d28: f423 7240 bic.w r2, r3, #768 ; 0x300 - 8004d2c: 687b ldr r3, [r7, #4] - 8004d2e: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 - 8004d32: 4904 ldr r1, [pc, #16] ; (8004d44 ) - 8004d34: 4313 orrs r3, r2 - 8004d36: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - 8004d3a: e009 b.n 8004d50 - } - else - { - /* set overall return value */ - status = ret; - 8004d3c: 7cfb ldrb r3, [r7, #19] - 8004d3e: 74bb strb r3, [r7, #18] - 8004d40: e006 b.n 8004d50 - 8004d42: bf00 nop - 8004d44: 40021000 .word 0x40021000 - 8004d48: 40007000 .word 0x40007000 - } - } - else - { - /* set overall return value */ - status = ret; - 8004d4c: 7cfb ldrb r3, [r7, #19] - 8004d4e: 74bb strb r3, [r7, #18] - } - - /* Restore clock configuration if changed */ - if(pwrclkchanged == SET) - 8004d50: 7c7b ldrb r3, [r7, #17] - 8004d52: 2b01 cmp r3, #1 - 8004d54: d105 bne.n 8004d62 - { - __HAL_RCC_PWR_CLK_DISABLE(); - 8004d56: 4b9e ldr r3, [pc, #632] ; (8004fd0 ) - 8004d58: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004d5a: 4a9d ldr r2, [pc, #628] ; (8004fd0 ) - 8004d5c: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 - 8004d60: 6593 str r3, [r2, #88] ; 0x58 - } - } - - /*-------------------------- USART1 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) - 8004d62: 687b ldr r3, [r7, #4] - 8004d64: 681b ldr r3, [r3, #0] - 8004d66: f003 0301 and.w r3, r3, #1 - 8004d6a: 2b00 cmp r3, #0 - 8004d6c: d00a beq.n 8004d84 - { - /* Check the parameters */ - assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection)); - - /* Configure the USART1 clock source */ - __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection); - 8004d6e: 4b98 ldr r3, [pc, #608] ; (8004fd0 ) - 8004d70: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004d74: f023 0203 bic.w r2, r3, #3 - 8004d78: 687b ldr r3, [r7, #4] - 8004d7a: 6b9b ldr r3, [r3, #56] ; 0x38 - 8004d7c: 4994 ldr r1, [pc, #592] ; (8004fd0 ) - 8004d7e: 4313 orrs r3, r2 - 8004d80: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - } - - /*-------------------------- USART2 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) - 8004d84: 687b ldr r3, [r7, #4] - 8004d86: 681b ldr r3, [r3, #0] - 8004d88: f003 0302 and.w r3, r3, #2 - 8004d8c: 2b00 cmp r3, #0 - 8004d8e: d00a beq.n 8004da6 - { - /* Check the parameters */ - assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection)); - - /* Configure the USART2 clock source */ - __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection); - 8004d90: 4b8f ldr r3, [pc, #572] ; (8004fd0 ) - 8004d92: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004d96: f023 020c bic.w r2, r3, #12 - 8004d9a: 687b ldr r3, [r7, #4] - 8004d9c: 6bdb ldr r3, [r3, #60] ; 0x3c - 8004d9e: 498c ldr r1, [pc, #560] ; (8004fd0 ) - 8004da0: 4313 orrs r3, r2 - 8004da2: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - } - -#if defined(USART3) - - /*-------------------------- USART3 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) - 8004da6: 687b ldr r3, [r7, #4] - 8004da8: 681b ldr r3, [r3, #0] - 8004daa: f003 0304 and.w r3, r3, #4 - 8004dae: 2b00 cmp r3, #0 - 8004db0: d00a beq.n 8004dc8 - { - /* Check the parameters */ - assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection)); - - /* Configure the USART3 clock source */ - __HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection); - 8004db2: 4b87 ldr r3, [pc, #540] ; (8004fd0 ) - 8004db4: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004db8: f023 0230 bic.w r2, r3, #48 ; 0x30 - 8004dbc: 687b ldr r3, [r7, #4] - 8004dbe: 6c1b ldr r3, [r3, #64] ; 0x40 - 8004dc0: 4983 ldr r1, [pc, #524] ; (8004fd0 ) - 8004dc2: 4313 orrs r3, r2 - 8004dc4: f8c1 3088 str.w r3, [r1, #136] ; 0x88 -#endif /* USART3 */ - -#if defined(UART4) - - /*-------------------------- UART4 clock source configuration --------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) - 8004dc8: 687b ldr r3, [r7, #4] - 8004dca: 681b ldr r3, [r3, #0] - 8004dcc: f003 0308 and.w r3, r3, #8 - 8004dd0: 2b00 cmp r3, #0 - 8004dd2: d00a beq.n 8004dea - { - /* Check the parameters */ - assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection)); - - /* Configure the UART4 clock source */ - __HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection); - 8004dd4: 4b7e ldr r3, [pc, #504] ; (8004fd0 ) - 8004dd6: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004dda: f023 02c0 bic.w r2, r3, #192 ; 0xc0 - 8004dde: 687b ldr r3, [r7, #4] - 8004de0: 6c5b ldr r3, [r3, #68] ; 0x44 - 8004de2: 497b ldr r1, [pc, #492] ; (8004fd0 ) - 8004de4: 4313 orrs r3, r2 - 8004de6: f8c1 3088 str.w r3, [r1, #136] ; 0x88 -#endif /* UART4 */ - -#if defined(UART5) - - /*-------------------------- UART5 clock source configuration --------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) - 8004dea: 687b ldr r3, [r7, #4] - 8004dec: 681b ldr r3, [r3, #0] - 8004dee: f003 0310 and.w r3, r3, #16 - 8004df2: 2b00 cmp r3, #0 - 8004df4: d00a beq.n 8004e0c - { - /* Check the parameters */ - assert_param(IS_RCC_UART5CLKSOURCE(PeriphClkInit->Uart5ClockSelection)); - - /* Configure the UART5 clock source */ - __HAL_RCC_UART5_CONFIG(PeriphClkInit->Uart5ClockSelection); - 8004df6: 4b76 ldr r3, [pc, #472] ; (8004fd0 ) - 8004df8: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004dfc: f423 7240 bic.w r2, r3, #768 ; 0x300 - 8004e00: 687b ldr r3, [r7, #4] - 8004e02: 6c9b ldr r3, [r3, #72] ; 0x48 - 8004e04: 4972 ldr r1, [pc, #456] ; (8004fd0 ) - 8004e06: 4313 orrs r3, r2 - 8004e08: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - } - -#endif /* UART5 */ - - /*-------------------------- LPUART1 clock source configuration ------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1) - 8004e0c: 687b ldr r3, [r7, #4] - 8004e0e: 681b ldr r3, [r3, #0] - 8004e10: f003 0320 and.w r3, r3, #32 - 8004e14: 2b00 cmp r3, #0 - 8004e16: d00a beq.n 8004e2e - { - /* Check the parameters */ - assert_param(IS_RCC_LPUART1CLKSOURCE(PeriphClkInit->Lpuart1ClockSelection)); - - /* Configure the LPUART1 clock source */ - __HAL_RCC_LPUART1_CONFIG(PeriphClkInit->Lpuart1ClockSelection); - 8004e18: 4b6d ldr r3, [pc, #436] ; (8004fd0 ) - 8004e1a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004e1e: f423 6240 bic.w r2, r3, #3072 ; 0xc00 - 8004e22: 687b ldr r3, [r7, #4] - 8004e24: 6cdb ldr r3, [r3, #76] ; 0x4c - 8004e26: 496a ldr r1, [pc, #424] ; (8004fd0 ) - 8004e28: 4313 orrs r3, r2 - 8004e2a: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - } - - /*-------------------------- LPTIM1 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == (RCC_PERIPHCLK_LPTIM1)) - 8004e2e: 687b ldr r3, [r7, #4] - 8004e30: 681b ldr r3, [r3, #0] - 8004e32: f403 7300 and.w r3, r3, #512 ; 0x200 - 8004e36: 2b00 cmp r3, #0 - 8004e38: d00a beq.n 8004e50 - { - assert_param(IS_RCC_LPTIM1CLK(PeriphClkInit->Lptim1ClockSelection)); - __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection); - 8004e3a: 4b65 ldr r3, [pc, #404] ; (8004fd0 ) - 8004e3c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004e40: f423 2240 bic.w r2, r3, #786432 ; 0xc0000 - 8004e44: 687b ldr r3, [r7, #4] - 8004e46: 6ddb ldr r3, [r3, #92] ; 0x5c - 8004e48: 4961 ldr r1, [pc, #388] ; (8004fd0 ) - 8004e4a: 4313 orrs r3, r2 - 8004e4c: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - } - - /*-------------------------- LPTIM2 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM2) == (RCC_PERIPHCLK_LPTIM2)) - 8004e50: 687b ldr r3, [r7, #4] - 8004e52: 681b ldr r3, [r3, #0] - 8004e54: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8004e58: 2b00 cmp r3, #0 - 8004e5a: d00a beq.n 8004e72 - { - assert_param(IS_RCC_LPTIM2CLK(PeriphClkInit->Lptim2ClockSelection)); - __HAL_RCC_LPTIM2_CONFIG(PeriphClkInit->Lptim2ClockSelection); - 8004e5c: 4b5c ldr r3, [pc, #368] ; (8004fd0 ) - 8004e5e: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004e62: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 - 8004e66: 687b ldr r3, [r7, #4] - 8004e68: 6e1b ldr r3, [r3, #96] ; 0x60 - 8004e6a: 4959 ldr r1, [pc, #356] ; (8004fd0 ) - 8004e6c: 4313 orrs r3, r2 - 8004e6e: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - } - - /*-------------------------- I2C1 clock source configuration ---------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) - 8004e72: 687b ldr r3, [r7, #4] - 8004e74: 681b ldr r3, [r3, #0] - 8004e76: f003 0340 and.w r3, r3, #64 ; 0x40 - 8004e7a: 2b00 cmp r3, #0 - 8004e7c: d00a beq.n 8004e94 - { - /* Check the parameters */ - assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection)); - - /* Configure the I2C1 clock source */ - __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection); - 8004e7e: 4b54 ldr r3, [pc, #336] ; (8004fd0 ) - 8004e80: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004e84: f423 5240 bic.w r2, r3, #12288 ; 0x3000 - 8004e88: 687b ldr r3, [r7, #4] - 8004e8a: 6d1b ldr r3, [r3, #80] ; 0x50 - 8004e8c: 4950 ldr r1, [pc, #320] ; (8004fd0 ) - 8004e8e: 4313 orrs r3, r2 - 8004e90: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - } - -#if defined(I2C2) - - /*-------------------------- I2C2 clock source configuration ---------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) - 8004e94: 687b ldr r3, [r7, #4] - 8004e96: 681b ldr r3, [r3, #0] - 8004e98: f003 0380 and.w r3, r3, #128 ; 0x80 - 8004e9c: 2b00 cmp r3, #0 - 8004e9e: d00a beq.n 8004eb6 - { - /* Check the parameters */ - assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection)); - - /* Configure the I2C2 clock source */ - __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection); - 8004ea0: 4b4b ldr r3, [pc, #300] ; (8004fd0 ) - 8004ea2: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004ea6: f423 4240 bic.w r2, r3, #49152 ; 0xc000 - 8004eaa: 687b ldr r3, [r7, #4] - 8004eac: 6d5b ldr r3, [r3, #84] ; 0x54 - 8004eae: 4948 ldr r1, [pc, #288] ; (8004fd0 ) - 8004eb0: 4313 orrs r3, r2 - 8004eb2: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - } - -#endif /* I2C2 */ - - /*-------------------------- I2C3 clock source configuration ---------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) - 8004eb6: 687b ldr r3, [r7, #4] - 8004eb8: 681b ldr r3, [r3, #0] - 8004eba: f403 7380 and.w r3, r3, #256 ; 0x100 - 8004ebe: 2b00 cmp r3, #0 - 8004ec0: d00a beq.n 8004ed8 - { - /* Check the parameters */ - assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection)); - - /* Configure the I2C3 clock source */ - __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection); - 8004ec2: 4b43 ldr r3, [pc, #268] ; (8004fd0 ) - 8004ec4: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004ec8: f423 3240 bic.w r2, r3, #196608 ; 0x30000 - 8004ecc: 687b ldr r3, [r7, #4] - 8004ece: 6d9b ldr r3, [r3, #88] ; 0x58 - 8004ed0: 493f ldr r1, [pc, #252] ; (8004fd0 ) - 8004ed2: 4313 orrs r3, r2 - 8004ed4: f8c1 3088 str.w r3, [r1, #136] ; 0x88 -#endif /* I2C4 */ - -#if defined(USB_OTG_FS) || defined(USB) - - /*-------------------------- USB clock source configuration ----------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USB) == (RCC_PERIPHCLK_USB)) - 8004ed8: 687b ldr r3, [r7, #4] - 8004eda: 681b ldr r3, [r3, #0] - 8004edc: f403 5300 and.w r3, r3, #8192 ; 0x2000 - 8004ee0: 2b00 cmp r3, #0 - 8004ee2: d028 beq.n 8004f36 - { - assert_param(IS_RCC_USBCLKSOURCE(PeriphClkInit->UsbClockSelection)); - __HAL_RCC_USB_CONFIG(PeriphClkInit->UsbClockSelection); - 8004ee4: 4b3a ldr r3, [pc, #232] ; (8004fd0 ) - 8004ee6: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004eea: f023 6240 bic.w r2, r3, #201326592 ; 0xc000000 - 8004eee: 687b ldr r3, [r7, #4] - 8004ef0: 6edb ldr r3, [r3, #108] ; 0x6c - 8004ef2: 4937 ldr r1, [pc, #220] ; (8004fd0 ) - 8004ef4: 4313 orrs r3, r2 - 8004ef6: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - - if(PeriphClkInit->UsbClockSelection == RCC_USBCLKSOURCE_PLL) - 8004efa: 687b ldr r3, [r7, #4] - 8004efc: 6edb ldr r3, [r3, #108] ; 0x6c - 8004efe: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 - 8004f02: d106 bne.n 8004f12 - { - /* Enable PLL48M1CLK output clock */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); - 8004f04: 4b32 ldr r3, [pc, #200] ; (8004fd0 ) - 8004f06: 68db ldr r3, [r3, #12] - 8004f08: 4a31 ldr r2, [pc, #196] ; (8004fd0 ) - 8004f0a: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 - 8004f0e: 60d3 str r3, [r2, #12] - 8004f10: e011 b.n 8004f36 - } - else - { -#if defined(RCC_PLLSAI1_SUPPORT) - if(PeriphClkInit->UsbClockSelection == RCC_USBCLKSOURCE_PLLSAI1) - 8004f12: 687b ldr r3, [r7, #4] - 8004f14: 6edb ldr r3, [r3, #108] ; 0x6c - 8004f16: f1b3 6f80 cmp.w r3, #67108864 ; 0x4000000 - 8004f1a: d10c bne.n 8004f36 - { - /* PLLSAI1 input clock, parameters M, N & Q configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_Q_UPDATE); - 8004f1c: 687b ldr r3, [r7, #4] - 8004f1e: 3304 adds r3, #4 - 8004f20: 2101 movs r1, #1 - 8004f22: 4618 mov r0, r3 - 8004f24: f000 f8c8 bl 80050b8 - 8004f28: 4603 mov r3, r0 - 8004f2a: 74fb strb r3, [r7, #19] - - if(ret != HAL_OK) - 8004f2c: 7cfb ldrb r3, [r7, #19] - 8004f2e: 2b00 cmp r3, #0 - 8004f30: d001 beq.n 8004f36 - { - /* set overall return value */ - status = ret; - 8004f32: 7cfb ldrb r3, [r7, #19] - 8004f34: 74bb strb r3, [r7, #18] -#endif /* USB_OTG_FS || USB */ - -#if defined(SDMMC1) - - /*-------------------------- SDMMC1 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == (RCC_PERIPHCLK_SDMMC1)) - 8004f36: 687b ldr r3, [r7, #4] - 8004f38: 681b ldr r3, [r3, #0] - 8004f3a: f403 2300 and.w r3, r3, #524288 ; 0x80000 - 8004f3e: 2b00 cmp r3, #0 - 8004f40: d028 beq.n 8004f94 - { - assert_param(IS_RCC_SDMMC1CLKSOURCE(PeriphClkInit->Sdmmc1ClockSelection)); - __HAL_RCC_SDMMC1_CONFIG(PeriphClkInit->Sdmmc1ClockSelection); - 8004f42: 4b23 ldr r3, [pc, #140] ; (8004fd0 ) - 8004f44: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004f48: f023 6240 bic.w r2, r3, #201326592 ; 0xc000000 - 8004f4c: 687b ldr r3, [r7, #4] - 8004f4e: 6f1b ldr r3, [r3, #112] ; 0x70 - 8004f50: 491f ldr r1, [pc, #124] ; (8004fd0 ) - 8004f52: 4313 orrs r3, r2 - 8004f54: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - - if(PeriphClkInit->Sdmmc1ClockSelection == RCC_SDMMC1CLKSOURCE_PLL) /* PLL "Q" ? */ - 8004f58: 687b ldr r3, [r7, #4] - 8004f5a: 6f1b ldr r3, [r3, #112] ; 0x70 - 8004f5c: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 - 8004f60: d106 bne.n 8004f70 - { - /* Enable PLL48M1CLK output clock */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); - 8004f62: 4b1b ldr r3, [pc, #108] ; (8004fd0 ) - 8004f64: 68db ldr r3, [r3, #12] - 8004f66: 4a1a ldr r2, [pc, #104] ; (8004fd0 ) - 8004f68: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 - 8004f6c: 60d3 str r3, [r2, #12] - 8004f6e: e011 b.n 8004f94 - { - /* Enable PLLSAI3CLK output */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SAI3CLK); - } -#endif - else if(PeriphClkInit->Sdmmc1ClockSelection == RCC_SDMMC1CLKSOURCE_PLLSAI1) - 8004f70: 687b ldr r3, [r7, #4] - 8004f72: 6f1b ldr r3, [r3, #112] ; 0x70 - 8004f74: f1b3 6f80 cmp.w r3, #67108864 ; 0x4000000 - 8004f78: d10c bne.n 8004f94 - { - /* PLLSAI1 input clock, parameters M, N & Q configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_Q_UPDATE); - 8004f7a: 687b ldr r3, [r7, #4] - 8004f7c: 3304 adds r3, #4 - 8004f7e: 2101 movs r1, #1 - 8004f80: 4618 mov r0, r3 - 8004f82: f000 f899 bl 80050b8 - 8004f86: 4603 mov r3, r0 - 8004f88: 74fb strb r3, [r7, #19] - - if(ret != HAL_OK) - 8004f8a: 7cfb ldrb r3, [r7, #19] - 8004f8c: 2b00 cmp r3, #0 - 8004f8e: d001 beq.n 8004f94 - { - /* set overall return value */ - status = ret; - 8004f90: 7cfb ldrb r3, [r7, #19] - 8004f92: 74bb strb r3, [r7, #18] - } - -#endif /* SDMMC1 */ - - /*-------------------------- RNG clock source configuration ----------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RNG) == (RCC_PERIPHCLK_RNG)) - 8004f94: 687b ldr r3, [r7, #4] - 8004f96: 681b ldr r3, [r3, #0] - 8004f98: f403 2380 and.w r3, r3, #262144 ; 0x40000 - 8004f9c: 2b00 cmp r3, #0 - 8004f9e: d02b beq.n 8004ff8 - { - assert_param(IS_RCC_RNGCLKSOURCE(PeriphClkInit->RngClockSelection)); - __HAL_RCC_RNG_CONFIG(PeriphClkInit->RngClockSelection); - 8004fa0: 4b0b ldr r3, [pc, #44] ; (8004fd0 ) - 8004fa2: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004fa6: f023 6240 bic.w r2, r3, #201326592 ; 0xc000000 - 8004faa: 687b ldr r3, [r7, #4] - 8004fac: 6f5b ldr r3, [r3, #116] ; 0x74 - 8004fae: 4908 ldr r1, [pc, #32] ; (8004fd0 ) - 8004fb0: 4313 orrs r3, r2 - 8004fb2: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - - if(PeriphClkInit->RngClockSelection == RCC_RNGCLKSOURCE_PLL) - 8004fb6: 687b ldr r3, [r7, #4] - 8004fb8: 6f5b ldr r3, [r3, #116] ; 0x74 - 8004fba: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 - 8004fbe: d109 bne.n 8004fd4 - { - /* Enable PLL48M1CLK output clock */ - __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_48M1CLK); - 8004fc0: 4b03 ldr r3, [pc, #12] ; (8004fd0 ) - 8004fc2: 68db ldr r3, [r3, #12] - 8004fc4: 4a02 ldr r2, [pc, #8] ; (8004fd0 ) - 8004fc6: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 - 8004fca: 60d3 str r3, [r2, #12] - 8004fcc: e014 b.n 8004ff8 - 8004fce: bf00 nop - 8004fd0: 40021000 .word 0x40021000 - } -#if defined(RCC_PLLSAI1_SUPPORT) - else if(PeriphClkInit->RngClockSelection == RCC_RNGCLKSOURCE_PLLSAI1) - 8004fd4: 687b ldr r3, [r7, #4] - 8004fd6: 6f5b ldr r3, [r3, #116] ; 0x74 - 8004fd8: f1b3 6f80 cmp.w r3, #67108864 ; 0x4000000 - 8004fdc: d10c bne.n 8004ff8 - { - /* PLLSAI1 input clock, parameters M, N & Q configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_Q_UPDATE); - 8004fde: 687b ldr r3, [r7, #4] - 8004fe0: 3304 adds r3, #4 - 8004fe2: 2101 movs r1, #1 - 8004fe4: 4618 mov r0, r3 - 8004fe6: f000 f867 bl 80050b8 - 8004fea: 4603 mov r3, r0 - 8004fec: 74fb strb r3, [r7, #19] - - if(ret != HAL_OK) - 8004fee: 7cfb ldrb r3, [r7, #19] - 8004ff0: 2b00 cmp r3, #0 - 8004ff2: d001 beq.n 8004ff8 - { - /* set overall return value */ - status = ret; - 8004ff4: 7cfb ldrb r3, [r7, #19] - 8004ff6: 74bb strb r3, [r7, #18] - } - } - - /*-------------------------- ADC clock source configuration ----------------------*/ -#if !defined(STM32L412xx) && !defined(STM32L422xx) - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC) == RCC_PERIPHCLK_ADC) - 8004ff8: 687b ldr r3, [r7, #4] - 8004ffa: 681b ldr r3, [r3, #0] - 8004ffc: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 8005000: 2b00 cmp r3, #0 - 8005002: d02f beq.n 8005064 - { - /* Check the parameters */ - assert_param(IS_RCC_ADCCLKSOURCE(PeriphClkInit->AdcClockSelection)); - - /* Configure the ADC interface clock source */ - __HAL_RCC_ADC_CONFIG(PeriphClkInit->AdcClockSelection); - 8005004: 4b2b ldr r3, [pc, #172] ; (80050b4 ) - 8005006: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 800500a: f023 5240 bic.w r2, r3, #805306368 ; 0x30000000 - 800500e: 687b ldr r3, [r7, #4] - 8005010: 6f9b ldr r3, [r3, #120] ; 0x78 - 8005012: 4928 ldr r1, [pc, #160] ; (80050b4 ) - 8005014: 4313 orrs r3, r2 - 8005016: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - -#if defined(RCC_PLLSAI1_SUPPORT) - if(PeriphClkInit->AdcClockSelection == RCC_ADCCLKSOURCE_PLLSAI1) - 800501a: 687b ldr r3, [r7, #4] - 800501c: 6f9b ldr r3, [r3, #120] ; 0x78 - 800501e: f1b3 5f80 cmp.w r3, #268435456 ; 0x10000000 - 8005022: d10d bne.n 8005040 - { - /* PLLSAI1 input clock, parameters M, N & R configuration and clock output (PLLSAI1ClockOut) */ - ret = RCCEx_PLLSAI1_Config(&(PeriphClkInit->PLLSAI1), DIVIDER_R_UPDATE); - 8005024: 687b ldr r3, [r7, #4] - 8005026: 3304 adds r3, #4 - 8005028: 2102 movs r1, #2 - 800502a: 4618 mov r0, r3 - 800502c: f000 f844 bl 80050b8 - 8005030: 4603 mov r3, r0 - 8005032: 74fb strb r3, [r7, #19] - - if(ret != HAL_OK) - 8005034: 7cfb ldrb r3, [r7, #19] - 8005036: 2b00 cmp r3, #0 - 8005038: d014 beq.n 8005064 - { - /* set overall return value */ - status = ret; - 800503a: 7cfb ldrb r3, [r7, #19] - 800503c: 74bb strb r3, [r7, #18] - 800503e: e011 b.n 8005064 - } -#endif /* RCC_PLLSAI1_SUPPORT */ - -#if defined(STM32L471xx) || defined(STM32L475xx) || defined(STM32L476xx) || defined(STM32L485xx) || defined(STM32L486xx) || defined(STM32L496xx) || defined(STM32L4A6xx) - - else if(PeriphClkInit->AdcClockSelection == RCC_ADCCLKSOURCE_PLLSAI2) - 8005040: 687b ldr r3, [r7, #4] - 8005042: 6f9b ldr r3, [r3, #120] ; 0x78 - 8005044: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 - 8005048: d10c bne.n 8005064 - { - /* PLLSAI2 input clock, parameters M, N & R configuration and clock output (PLLSAI2ClockOut) */ - ret = RCCEx_PLLSAI2_Config(&(PeriphClkInit->PLLSAI2), DIVIDER_R_UPDATE); - 800504a: 687b ldr r3, [r7, #4] - 800504c: 3320 adds r3, #32 - 800504e: 2102 movs r1, #2 - 8005050: 4618 mov r0, r3 - 8005052: f000 f925 bl 80052a0 - 8005056: 4603 mov r3, r0 - 8005058: 74fb strb r3, [r7, #19] - - if(ret != HAL_OK) - 800505a: 7cfb ldrb r3, [r7, #19] - 800505c: 2b00 cmp r3, #0 - 800505e: d001 beq.n 8005064 - { - /* set overall return value */ - status = ret; - 8005060: 7cfb ldrb r3, [r7, #19] - 8005062: 74bb strb r3, [r7, #18] -#endif /* !STM32L412xx && !STM32L422xx */ - -#if defined(SWPMI1) - - /*-------------------------- SWPMI1 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SWPMI1) == RCC_PERIPHCLK_SWPMI1) - 8005064: 687b ldr r3, [r7, #4] - 8005066: 681b ldr r3, [r3, #0] - 8005068: f403 4300 and.w r3, r3, #32768 ; 0x8000 - 800506c: 2b00 cmp r3, #0 - 800506e: d00a beq.n 8005086 - { - /* Check the parameters */ - assert_param(IS_RCC_SWPMI1CLKSOURCE(PeriphClkInit->Swpmi1ClockSelection)); - - /* Configure the SWPMI1 clock source */ - __HAL_RCC_SWPMI1_CONFIG(PeriphClkInit->Swpmi1ClockSelection); - 8005070: 4b10 ldr r3, [pc, #64] ; (80050b4 ) - 8005072: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8005076: f023 4280 bic.w r2, r3, #1073741824 ; 0x40000000 - 800507a: 687b ldr r3, [r7, #4] - 800507c: 6fdb ldr r3, [r3, #124] ; 0x7c - 800507e: 490d ldr r1, [pc, #52] ; (80050b4 ) - 8005080: 4313 orrs r3, r2 - 8005082: f8c1 3088 str.w r3, [r1, #136] ; 0x88 -#endif /* SWPMI1 */ - -#if defined(DFSDM1_Filter0) - - /*-------------------------- DFSDM1 clock source configuration -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1) - 8005086: 687b ldr r3, [r7, #4] - 8005088: 681b ldr r3, [r3, #0] - 800508a: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 800508e: 2b00 cmp r3, #0 - 8005090: d00b beq.n 80050aa - { - /* Check the parameters */ - assert_param(IS_RCC_DFSDM1CLKSOURCE(PeriphClkInit->Dfsdm1ClockSelection)); - - /* Configure the DFSDM1 interface clock source */ - __HAL_RCC_DFSDM1_CONFIG(PeriphClkInit->Dfsdm1ClockSelection); - 8005092: 4b08 ldr r3, [pc, #32] ; (80050b4 ) - 8005094: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8005098: f023 4200 bic.w r2, r3, #2147483648 ; 0x80000000 - 800509c: 687b ldr r3, [r7, #4] - 800509e: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 - 80050a2: 4904 ldr r1, [pc, #16] ; (80050b4 ) - 80050a4: 4313 orrs r3, r2 - 80050a6: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - } - } - -#endif /* OCTOSPI1 || OCTOSPI2 */ - - return status; - 80050aa: 7cbb ldrb r3, [r7, #18] -} - 80050ac: 4618 mov r0, r3 - 80050ae: 3718 adds r7, #24 - 80050b0: 46bd mov sp, r7 - 80050b2: bd80 pop {r7, pc} - 80050b4: 40021000 .word 0x40021000 - -080050b8 : - * @note PLLSAI1 is temporary disable to apply new parameters - * - * @retval HAL status - */ -static HAL_StatusTypeDef RCCEx_PLLSAI1_Config(RCC_PLLSAI1InitTypeDef *PllSai1, uint32_t Divider) -{ - 80050b8: b580 push {r7, lr} - 80050ba: b084 sub sp, #16 - 80050bc: af00 add r7, sp, #0 - 80050be: 6078 str r0, [r7, #4] - 80050c0: 6039 str r1, [r7, #0] - uint32_t tickstart; - HAL_StatusTypeDef status = HAL_OK; - 80050c2: 2300 movs r3, #0 - 80050c4: 73fb strb r3, [r7, #15] - assert_param(IS_RCC_PLLSAI1M_VALUE(PllSai1->PLLSAI1M)); - assert_param(IS_RCC_PLLSAI1N_VALUE(PllSai1->PLLSAI1N)); - assert_param(IS_RCC_PLLSAI1CLOCKOUT_VALUE(PllSai1->PLLSAI1ClockOut)); - - /* Check that PLLSAI1 clock source and divider M can be applied */ - if(__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLSOURCE_NONE) - 80050c6: 4b75 ldr r3, [pc, #468] ; (800529c ) - 80050c8: 68db ldr r3, [r3, #12] - 80050ca: f003 0303 and.w r3, r3, #3 - 80050ce: 2b00 cmp r3, #0 - 80050d0: d018 beq.n 8005104 - { - /* PLL clock source and divider M already set, check that no request for change */ - if((__HAL_RCC_GET_PLL_OSCSOURCE() != PllSai1->PLLSAI1Source) - 80050d2: 4b72 ldr r3, [pc, #456] ; (800529c ) - 80050d4: 68db ldr r3, [r3, #12] - 80050d6: f003 0203 and.w r2, r3, #3 - 80050da: 687b ldr r3, [r7, #4] - 80050dc: 681b ldr r3, [r3, #0] - 80050de: 429a cmp r2, r3 - 80050e0: d10d bne.n 80050fe - || - (PllSai1->PLLSAI1Source == RCC_PLLSOURCE_NONE) - 80050e2: 687b ldr r3, [r7, #4] - 80050e4: 681b ldr r3, [r3, #0] - || - 80050e6: 2b00 cmp r3, #0 - 80050e8: d009 beq.n 80050fe -#if !defined(RCC_PLLSAI1M_DIV_1_16_SUPPORT) - || - (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U) != PllSai1->PLLSAI1M) - 80050ea: 4b6c ldr r3, [pc, #432] ; (800529c ) - 80050ec: 68db ldr r3, [r3, #12] - 80050ee: 091b lsrs r3, r3, #4 - 80050f0: f003 0307 and.w r3, r3, #7 - 80050f4: 1c5a adds r2, r3, #1 - 80050f6: 687b ldr r3, [r7, #4] - 80050f8: 685b ldr r3, [r3, #4] - || - 80050fa: 429a cmp r2, r3 - 80050fc: d047 beq.n 800518e -#endif - ) - { - status = HAL_ERROR; - 80050fe: 2301 movs r3, #1 - 8005100: 73fb strb r3, [r7, #15] - 8005102: e044 b.n 800518e - } - } - else - { - /* Check PLLSAI1 clock source availability */ - switch(PllSai1->PLLSAI1Source) - 8005104: 687b ldr r3, [r7, #4] - 8005106: 681b ldr r3, [r3, #0] - 8005108: 2b03 cmp r3, #3 - 800510a: d018 beq.n 800513e - 800510c: 2b03 cmp r3, #3 - 800510e: d825 bhi.n 800515c - 8005110: 2b01 cmp r3, #1 - 8005112: d002 beq.n 800511a - 8005114: 2b02 cmp r3, #2 - 8005116: d009 beq.n 800512c - 8005118: e020 b.n 800515c - { - case RCC_PLLSOURCE_MSI: - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_MSIRDY)) - 800511a: 4b60 ldr r3, [pc, #384] ; (800529c ) - 800511c: 681b ldr r3, [r3, #0] - 800511e: f003 0302 and.w r3, r3, #2 - 8005122: 2b00 cmp r3, #0 - 8005124: d11d bne.n 8005162 - { - status = HAL_ERROR; - 8005126: 2301 movs r3, #1 - 8005128: 73fb strb r3, [r7, #15] - } - break; - 800512a: e01a b.n 8005162 - case RCC_PLLSOURCE_HSI: - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_HSIRDY)) - 800512c: 4b5b ldr r3, [pc, #364] ; (800529c ) - 800512e: 681b ldr r3, [r3, #0] - 8005130: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8005134: 2b00 cmp r3, #0 - 8005136: d116 bne.n 8005166 - { - status = HAL_ERROR; - 8005138: 2301 movs r3, #1 - 800513a: 73fb strb r3, [r7, #15] - } - break; - 800513c: e013 b.n 8005166 - case RCC_PLLSOURCE_HSE: - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_HSERDY)) - 800513e: 4b57 ldr r3, [pc, #348] ; (800529c ) - 8005140: 681b ldr r3, [r3, #0] - 8005142: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8005146: 2b00 cmp r3, #0 - 8005148: d10f bne.n 800516a - { - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_HSEBYP)) - 800514a: 4b54 ldr r3, [pc, #336] ; (800529c ) - 800514c: 681b ldr r3, [r3, #0] - 800514e: f403 2380 and.w r3, r3, #262144 ; 0x40000 - 8005152: 2b00 cmp r3, #0 - 8005154: d109 bne.n 800516a - { - status = HAL_ERROR; - 8005156: 2301 movs r3, #1 - 8005158: 73fb strb r3, [r7, #15] - } - } - break; - 800515a: e006 b.n 800516a - default: - status = HAL_ERROR; - 800515c: 2301 movs r3, #1 - 800515e: 73fb strb r3, [r7, #15] - break; - 8005160: e004 b.n 800516c - break; - 8005162: bf00 nop - 8005164: e002 b.n 800516c - break; - 8005166: bf00 nop - 8005168: e000 b.n 800516c - break; - 800516a: bf00 nop - } - - if(status == HAL_OK) - 800516c: 7bfb ldrb r3, [r7, #15] - 800516e: 2b00 cmp r3, #0 - 8005170: d10d bne.n 800518e -#if defined(RCC_PLLSAI1M_DIV_1_16_SUPPORT) - /* Set PLLSAI1 clock source */ - MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, PllSai1->PLLSAI1Source); -#else - /* Set PLLSAI1 clock source and divider M */ - MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM, PllSai1->PLLSAI1Source | (PllSai1->PLLSAI1M - 1U) << RCC_PLLCFGR_PLLM_Pos); - 8005172: 4b4a ldr r3, [pc, #296] ; (800529c ) - 8005174: 68db ldr r3, [r3, #12] - 8005176: f023 0273 bic.w r2, r3, #115 ; 0x73 - 800517a: 687b ldr r3, [r7, #4] - 800517c: 6819 ldr r1, [r3, #0] - 800517e: 687b ldr r3, [r7, #4] - 8005180: 685b ldr r3, [r3, #4] - 8005182: 3b01 subs r3, #1 - 8005184: 011b lsls r3, r3, #4 - 8005186: 430b orrs r3, r1 - 8005188: 4944 ldr r1, [pc, #272] ; (800529c ) - 800518a: 4313 orrs r3, r2 - 800518c: 60cb str r3, [r1, #12] -#endif - } - } - - if(status == HAL_OK) - 800518e: 7bfb ldrb r3, [r7, #15] - 8005190: 2b00 cmp r3, #0 - 8005192: d17d bne.n 8005290 - { - /* Disable the PLLSAI1 */ - __HAL_RCC_PLLSAI1_DISABLE(); - 8005194: 4b41 ldr r3, [pc, #260] ; (800529c ) - 8005196: 681b ldr r3, [r3, #0] - 8005198: 4a40 ldr r2, [pc, #256] ; (800529c ) - 800519a: f023 6380 bic.w r3, r3, #67108864 ; 0x4000000 - 800519e: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 80051a0: f7fc fdb2 bl 8001d08 - 80051a4: 60b8 str r0, [r7, #8] - - /* Wait till PLLSAI1 is ready to be updated */ - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI1RDY) != 0U) - 80051a6: e009 b.n 80051bc - { - if((HAL_GetTick() - tickstart) > PLLSAI1_TIMEOUT_VALUE) - 80051a8: f7fc fdae bl 8001d08 - 80051ac: 4602 mov r2, r0 - 80051ae: 68bb ldr r3, [r7, #8] - 80051b0: 1ad3 subs r3, r2, r3 - 80051b2: 2b02 cmp r3, #2 - 80051b4: d902 bls.n 80051bc - { - status = HAL_TIMEOUT; - 80051b6: 2303 movs r3, #3 - 80051b8: 73fb strb r3, [r7, #15] - break; - 80051ba: e005 b.n 80051c8 - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI1RDY) != 0U) - 80051bc: 4b37 ldr r3, [pc, #220] ; (800529c ) - 80051be: 681b ldr r3, [r3, #0] - 80051c0: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 - 80051c4: 2b00 cmp r3, #0 - 80051c6: d1ef bne.n 80051a8 - } - } - - if(status == HAL_OK) - 80051c8: 7bfb ldrb r3, [r7, #15] - 80051ca: 2b00 cmp r3, #0 - 80051cc: d160 bne.n 8005290 - { - if(Divider == DIVIDER_P_UPDATE) - 80051ce: 683b ldr r3, [r7, #0] - 80051d0: 2b00 cmp r3, #0 - 80051d2: d111 bne.n 80051f8 - MODIFY_REG(RCC->PLLSAI1CFGR, - RCC_PLLSAI1CFGR_PLLSAI1N | RCC_PLLSAI1CFGR_PLLSAI1PDIV, - (PllSai1->PLLSAI1N << RCC_PLLSAI1CFGR_PLLSAI1N_Pos) | - (PllSai1->PLLSAI1P << RCC_PLLSAI1CFGR_PLLSAI1PDIV_Pos)); -#else - MODIFY_REG(RCC->PLLSAI1CFGR, - 80051d4: 4b31 ldr r3, [pc, #196] ; (800529c ) - 80051d6: 691b ldr r3, [r3, #16] - 80051d8: f423 331f bic.w r3, r3, #162816 ; 0x27c00 - 80051dc: f423 7340 bic.w r3, r3, #768 ; 0x300 - 80051e0: 687a ldr r2, [r7, #4] - 80051e2: 6892 ldr r2, [r2, #8] - 80051e4: 0211 lsls r1, r2, #8 - 80051e6: 687a ldr r2, [r7, #4] - 80051e8: 68d2 ldr r2, [r2, #12] - 80051ea: 0912 lsrs r2, r2, #4 - 80051ec: 0452 lsls r2, r2, #17 - 80051ee: 430a orrs r2, r1 - 80051f0: 492a ldr r1, [pc, #168] ; (800529c ) - 80051f2: 4313 orrs r3, r2 - 80051f4: 610b str r3, [r1, #16] - 80051f6: e027 b.n 8005248 - ((PllSai1->PLLSAI1P >> 4U) << RCC_PLLSAI1CFGR_PLLSAI1P_Pos)); -#endif /* RCC_PLLSAI1P_DIV_2_31_SUPPORT */ - -#endif /* RCC_PLLSAI1M_DIV_1_16_SUPPORT */ - } - else if(Divider == DIVIDER_Q_UPDATE) - 80051f8: 683b ldr r3, [r7, #0] - 80051fa: 2b01 cmp r3, #1 - 80051fc: d112 bne.n 8005224 - (PllSai1->PLLSAI1N << RCC_PLLSAI1CFGR_PLLSAI1N_Pos) | - (((PllSai1->PLLSAI1Q >> 1U) - 1U) << RCC_PLLSAI1CFGR_PLLSAI1Q_Pos) | - ((PllSai1->PLLSAI1M - 1U) << RCC_PLLSAI1CFGR_PLLSAI1M_Pos)); -#else - /* Configure the PLLSAI1 Division factor Q and Multiplication factor N*/ - MODIFY_REG(RCC->PLLSAI1CFGR, - 80051fe: 4b27 ldr r3, [pc, #156] ; (800529c ) - 8005200: 691b ldr r3, [r3, #16] - 8005202: f423 03c0 bic.w r3, r3, #6291456 ; 0x600000 - 8005206: f423 43fe bic.w r3, r3, #32512 ; 0x7f00 - 800520a: 687a ldr r2, [r7, #4] - 800520c: 6892 ldr r2, [r2, #8] - 800520e: 0211 lsls r1, r2, #8 - 8005210: 687a ldr r2, [r7, #4] - 8005212: 6912 ldr r2, [r2, #16] - 8005214: 0852 lsrs r2, r2, #1 - 8005216: 3a01 subs r2, #1 - 8005218: 0552 lsls r2, r2, #21 - 800521a: 430a orrs r2, r1 - 800521c: 491f ldr r1, [pc, #124] ; (800529c ) - 800521e: 4313 orrs r3, r2 - 8005220: 610b str r3, [r1, #16] - 8005222: e011 b.n 8005248 - (PllSai1->PLLSAI1N << RCC_PLLSAI1CFGR_PLLSAI1N_Pos) | - (((PllSai1->PLLSAI1R >> 1U) - 1U) << RCC_PLLSAI1CFGR_PLLSAI1R_Pos) | - ((PllSai1->PLLSAI1M - 1U) << RCC_PLLSAI1CFGR_PLLSAI1M_Pos)); -#else - /* Configure the PLLSAI1 Division factor R and Multiplication factor N*/ - MODIFY_REG(RCC->PLLSAI1CFGR, - 8005224: 4b1d ldr r3, [pc, #116] ; (800529c ) - 8005226: 691b ldr r3, [r3, #16] - 8005228: f023 63c0 bic.w r3, r3, #100663296 ; 0x6000000 - 800522c: f423 43fe bic.w r3, r3, #32512 ; 0x7f00 - 8005230: 687a ldr r2, [r7, #4] - 8005232: 6892 ldr r2, [r2, #8] - 8005234: 0211 lsls r1, r2, #8 - 8005236: 687a ldr r2, [r7, #4] - 8005238: 6952 ldr r2, [r2, #20] - 800523a: 0852 lsrs r2, r2, #1 - 800523c: 3a01 subs r2, #1 - 800523e: 0652 lsls r2, r2, #25 - 8005240: 430a orrs r2, r1 - 8005242: 4916 ldr r1, [pc, #88] ; (800529c ) - 8005244: 4313 orrs r3, r2 - 8005246: 610b str r3, [r1, #16] - (((PllSai1->PLLSAI1R >> 1U) - 1U) << RCC_PLLSAI1CFGR_PLLSAI1R_Pos)); -#endif /* RCC_PLLSAI1M_DIV_1_16_SUPPORT */ - } - - /* Enable the PLLSAI1 again by setting PLLSAI1ON to 1*/ - __HAL_RCC_PLLSAI1_ENABLE(); - 8005248: 4b14 ldr r3, [pc, #80] ; (800529c ) - 800524a: 681b ldr r3, [r3, #0] - 800524c: 4a13 ldr r2, [pc, #76] ; (800529c ) - 800524e: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 - 8005252: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8005254: f7fc fd58 bl 8001d08 - 8005258: 60b8 str r0, [r7, #8] - - /* Wait till PLLSAI1 is ready */ - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI1RDY) == 0U) - 800525a: e009 b.n 8005270 - { - if((HAL_GetTick() - tickstart) > PLLSAI1_TIMEOUT_VALUE) - 800525c: f7fc fd54 bl 8001d08 - 8005260: 4602 mov r2, r0 - 8005262: 68bb ldr r3, [r7, #8] - 8005264: 1ad3 subs r3, r2, r3 - 8005266: 2b02 cmp r3, #2 - 8005268: d902 bls.n 8005270 - { - status = HAL_TIMEOUT; - 800526a: 2303 movs r3, #3 - 800526c: 73fb strb r3, [r7, #15] - break; - 800526e: e005 b.n 800527c - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI1RDY) == 0U) - 8005270: 4b0a ldr r3, [pc, #40] ; (800529c ) - 8005272: 681b ldr r3, [r3, #0] - 8005274: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 - 8005278: 2b00 cmp r3, #0 - 800527a: d0ef beq.n 800525c - } - } - - if(status == HAL_OK) - 800527c: 7bfb ldrb r3, [r7, #15] - 800527e: 2b00 cmp r3, #0 - 8005280: d106 bne.n 8005290 - { - /* Configure the PLLSAI1 Clock output(s) */ - __HAL_RCC_PLLSAI1CLKOUT_ENABLE(PllSai1->PLLSAI1ClockOut); - 8005282: 4b06 ldr r3, [pc, #24] ; (800529c ) - 8005284: 691a ldr r2, [r3, #16] - 8005286: 687b ldr r3, [r7, #4] - 8005288: 699b ldr r3, [r3, #24] - 800528a: 4904 ldr r1, [pc, #16] ; (800529c ) - 800528c: 4313 orrs r3, r2 - 800528e: 610b str r3, [r1, #16] - } - } - } - - return status; - 8005290: 7bfb ldrb r3, [r7, #15] -} - 8005292: 4618 mov r0, r3 - 8005294: 3710 adds r7, #16 - 8005296: 46bd mov sp, r7 - 8005298: bd80 pop {r7, pc} - 800529a: bf00 nop - 800529c: 40021000 .word 0x40021000 - -080052a0 : - * @note PLLSAI2 is temporary disable to apply new parameters - * - * @retval HAL status - */ -static HAL_StatusTypeDef RCCEx_PLLSAI2_Config(RCC_PLLSAI2InitTypeDef *PllSai2, uint32_t Divider) -{ - 80052a0: b580 push {r7, lr} - 80052a2: b084 sub sp, #16 - 80052a4: af00 add r7, sp, #0 - 80052a6: 6078 str r0, [r7, #4] - 80052a8: 6039 str r1, [r7, #0] - uint32_t tickstart; - HAL_StatusTypeDef status = HAL_OK; - 80052aa: 2300 movs r3, #0 - 80052ac: 73fb strb r3, [r7, #15] - assert_param(IS_RCC_PLLSAI2M_VALUE(PllSai2->PLLSAI2M)); - assert_param(IS_RCC_PLLSAI2N_VALUE(PllSai2->PLLSAI2N)); - assert_param(IS_RCC_PLLSAI2CLOCKOUT_VALUE(PllSai2->PLLSAI2ClockOut)); - - /* Check that PLLSAI2 clock source and divider M can be applied */ - if(__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLSOURCE_NONE) - 80052ae: 4b6a ldr r3, [pc, #424] ; (8005458 ) - 80052b0: 68db ldr r3, [r3, #12] - 80052b2: f003 0303 and.w r3, r3, #3 - 80052b6: 2b00 cmp r3, #0 - 80052b8: d018 beq.n 80052ec - { - /* PLL clock source and divider M already set, check that no request for change */ - if((__HAL_RCC_GET_PLL_OSCSOURCE() != PllSai2->PLLSAI2Source) - 80052ba: 4b67 ldr r3, [pc, #412] ; (8005458 ) - 80052bc: 68db ldr r3, [r3, #12] - 80052be: f003 0203 and.w r2, r3, #3 - 80052c2: 687b ldr r3, [r7, #4] - 80052c4: 681b ldr r3, [r3, #0] - 80052c6: 429a cmp r2, r3 - 80052c8: d10d bne.n 80052e6 - || - (PllSai2->PLLSAI2Source == RCC_PLLSOURCE_NONE) - 80052ca: 687b ldr r3, [r7, #4] - 80052cc: 681b ldr r3, [r3, #0] - || - 80052ce: 2b00 cmp r3, #0 - 80052d0: d009 beq.n 80052e6 -#if !defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT) - || - (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U) != PllSai2->PLLSAI2M) - 80052d2: 4b61 ldr r3, [pc, #388] ; (8005458 ) - 80052d4: 68db ldr r3, [r3, #12] - 80052d6: 091b lsrs r3, r3, #4 - 80052d8: f003 0307 and.w r3, r3, #7 - 80052dc: 1c5a adds r2, r3, #1 - 80052de: 687b ldr r3, [r7, #4] - 80052e0: 685b ldr r3, [r3, #4] - || - 80052e2: 429a cmp r2, r3 - 80052e4: d047 beq.n 8005376 -#endif - ) - { - status = HAL_ERROR; - 80052e6: 2301 movs r3, #1 - 80052e8: 73fb strb r3, [r7, #15] - 80052ea: e044 b.n 8005376 - } - } - else - { - /* Check PLLSAI2 clock source availability */ - switch(PllSai2->PLLSAI2Source) - 80052ec: 687b ldr r3, [r7, #4] - 80052ee: 681b ldr r3, [r3, #0] - 80052f0: 2b03 cmp r3, #3 - 80052f2: d018 beq.n 8005326 - 80052f4: 2b03 cmp r3, #3 - 80052f6: d825 bhi.n 8005344 - 80052f8: 2b01 cmp r3, #1 - 80052fa: d002 beq.n 8005302 - 80052fc: 2b02 cmp r3, #2 - 80052fe: d009 beq.n 8005314 - 8005300: e020 b.n 8005344 - { - case RCC_PLLSOURCE_MSI: - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_MSIRDY)) - 8005302: 4b55 ldr r3, [pc, #340] ; (8005458 ) - 8005304: 681b ldr r3, [r3, #0] - 8005306: f003 0302 and.w r3, r3, #2 - 800530a: 2b00 cmp r3, #0 - 800530c: d11d bne.n 800534a - { - status = HAL_ERROR; - 800530e: 2301 movs r3, #1 - 8005310: 73fb strb r3, [r7, #15] - } - break; - 8005312: e01a b.n 800534a - case RCC_PLLSOURCE_HSI: - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_HSIRDY)) - 8005314: 4b50 ldr r3, [pc, #320] ; (8005458 ) - 8005316: 681b ldr r3, [r3, #0] - 8005318: f403 6380 and.w r3, r3, #1024 ; 0x400 - 800531c: 2b00 cmp r3, #0 - 800531e: d116 bne.n 800534e - { - status = HAL_ERROR; - 8005320: 2301 movs r3, #1 - 8005322: 73fb strb r3, [r7, #15] - } - break; - 8005324: e013 b.n 800534e - case RCC_PLLSOURCE_HSE: - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_HSERDY)) - 8005326: 4b4c ldr r3, [pc, #304] ; (8005458 ) - 8005328: 681b ldr r3, [r3, #0] - 800532a: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 800532e: 2b00 cmp r3, #0 - 8005330: d10f bne.n 8005352 - { - if(HAL_IS_BIT_CLR(RCC->CR, RCC_CR_HSEBYP)) - 8005332: 4b49 ldr r3, [pc, #292] ; (8005458 ) - 8005334: 681b ldr r3, [r3, #0] - 8005336: f403 2380 and.w r3, r3, #262144 ; 0x40000 - 800533a: 2b00 cmp r3, #0 - 800533c: d109 bne.n 8005352 - { - status = HAL_ERROR; - 800533e: 2301 movs r3, #1 - 8005340: 73fb strb r3, [r7, #15] - } - } - break; - 8005342: e006 b.n 8005352 - default: - status = HAL_ERROR; - 8005344: 2301 movs r3, #1 - 8005346: 73fb strb r3, [r7, #15] - break; - 8005348: e004 b.n 8005354 - break; - 800534a: bf00 nop - 800534c: e002 b.n 8005354 - break; - 800534e: bf00 nop - 8005350: e000 b.n 8005354 - break; - 8005352: bf00 nop - } - - if(status == HAL_OK) - 8005354: 7bfb ldrb r3, [r7, #15] - 8005356: 2b00 cmp r3, #0 - 8005358: d10d bne.n 8005376 -#if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT) - /* Set PLLSAI2 clock source */ - MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, PllSai2->PLLSAI2Source); -#else - /* Set PLLSAI2 clock source and divider M */ - MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM, PllSai2->PLLSAI2Source | (PllSai2->PLLSAI2M - 1U) << RCC_PLLCFGR_PLLM_Pos); - 800535a: 4b3f ldr r3, [pc, #252] ; (8005458 ) - 800535c: 68db ldr r3, [r3, #12] - 800535e: f023 0273 bic.w r2, r3, #115 ; 0x73 - 8005362: 687b ldr r3, [r7, #4] - 8005364: 6819 ldr r1, [r3, #0] - 8005366: 687b ldr r3, [r7, #4] - 8005368: 685b ldr r3, [r3, #4] - 800536a: 3b01 subs r3, #1 - 800536c: 011b lsls r3, r3, #4 - 800536e: 430b orrs r3, r1 - 8005370: 4939 ldr r1, [pc, #228] ; (8005458 ) - 8005372: 4313 orrs r3, r2 - 8005374: 60cb str r3, [r1, #12] -#endif - } - } - - if(status == HAL_OK) - 8005376: 7bfb ldrb r3, [r7, #15] - 8005378: 2b00 cmp r3, #0 - 800537a: d167 bne.n 800544c - { - /* Disable the PLLSAI2 */ - __HAL_RCC_PLLSAI2_DISABLE(); - 800537c: 4b36 ldr r3, [pc, #216] ; (8005458 ) - 800537e: 681b ldr r3, [r3, #0] - 8005380: 4a35 ldr r2, [pc, #212] ; (8005458 ) - 8005382: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 - 8005386: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8005388: f7fc fcbe bl 8001d08 - 800538c: 60b8 str r0, [r7, #8] - - /* Wait till PLLSAI2 is ready to be updated */ - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI2RDY) != 0U) - 800538e: e009 b.n 80053a4 - { - if((HAL_GetTick() - tickstart) > PLLSAI2_TIMEOUT_VALUE) - 8005390: f7fc fcba bl 8001d08 - 8005394: 4602 mov r2, r0 - 8005396: 68bb ldr r3, [r7, #8] - 8005398: 1ad3 subs r3, r2, r3 - 800539a: 2b02 cmp r3, #2 - 800539c: d902 bls.n 80053a4 - { - status = HAL_TIMEOUT; - 800539e: 2303 movs r3, #3 - 80053a0: 73fb strb r3, [r7, #15] - break; - 80053a2: e005 b.n 80053b0 - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI2RDY) != 0U) - 80053a4: 4b2c ldr r3, [pc, #176] ; (8005458 ) - 80053a6: 681b ldr r3, [r3, #0] - 80053a8: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 - 80053ac: 2b00 cmp r3, #0 - 80053ae: d1ef bne.n 8005390 - } - } - - if(status == HAL_OK) - 80053b0: 7bfb ldrb r3, [r7, #15] - 80053b2: 2b00 cmp r3, #0 - 80053b4: d14a bne.n 800544c - { - if(Divider == DIVIDER_P_UPDATE) - 80053b6: 683b ldr r3, [r7, #0] - 80053b8: 2b00 cmp r3, #0 - 80053ba: d111 bne.n 80053e0 - MODIFY_REG(RCC->PLLSAI2CFGR, - RCC_PLLSAI2CFGR_PLLSAI2N | RCC_PLLSAI2CFGR_PLLSAI2PDIV, - (PllSai2->PLLSAI2N << RCC_PLLSAI2CFGR_PLLSAI2N_Pos) | - (PllSai2->PLLSAI2P << RCC_PLLSAI2CFGR_PLLSAI2PDIV_Pos)); -#else - MODIFY_REG(RCC->PLLSAI2CFGR, - 80053bc: 4b26 ldr r3, [pc, #152] ; (8005458 ) - 80053be: 695b ldr r3, [r3, #20] - 80053c0: f423 331f bic.w r3, r3, #162816 ; 0x27c00 - 80053c4: f423 7340 bic.w r3, r3, #768 ; 0x300 - 80053c8: 687a ldr r2, [r7, #4] - 80053ca: 6892 ldr r2, [r2, #8] - 80053cc: 0211 lsls r1, r2, #8 - 80053ce: 687a ldr r2, [r7, #4] - 80053d0: 68d2 ldr r2, [r2, #12] - 80053d2: 0912 lsrs r2, r2, #4 - 80053d4: 0452 lsls r2, r2, #17 - 80053d6: 430a orrs r2, r1 - 80053d8: 491f ldr r1, [pc, #124] ; (8005458 ) - 80053da: 4313 orrs r3, r2 - 80053dc: 614b str r3, [r1, #20] - 80053de: e011 b.n 8005404 - (PllSai2->PLLSAI2N << RCC_PLLSAI2CFGR_PLLSAI2N_Pos) | - (((PllSai2->PLLSAI2R >> 1U) - 1U) << RCC_PLLSAI2CFGR_PLLSAI2R_Pos) | - ((PllSai2->PLLSAI2M - 1U) << RCC_PLLSAI2CFGR_PLLSAI2M_Pos)); -#else - /* Configure the PLLSAI2 Division factor R and Multiplication factor N*/ - MODIFY_REG(RCC->PLLSAI2CFGR, - 80053e0: 4b1d ldr r3, [pc, #116] ; (8005458 ) - 80053e2: 695b ldr r3, [r3, #20] - 80053e4: f023 63c0 bic.w r3, r3, #100663296 ; 0x6000000 - 80053e8: f423 43fe bic.w r3, r3, #32512 ; 0x7f00 - 80053ec: 687a ldr r2, [r7, #4] - 80053ee: 6892 ldr r2, [r2, #8] - 80053f0: 0211 lsls r1, r2, #8 - 80053f2: 687a ldr r2, [r7, #4] - 80053f4: 6912 ldr r2, [r2, #16] - 80053f6: 0852 lsrs r2, r2, #1 - 80053f8: 3a01 subs r2, #1 - 80053fa: 0652 lsls r2, r2, #25 - 80053fc: 430a orrs r2, r1 - 80053fe: 4916 ldr r1, [pc, #88] ; (8005458 ) - 8005400: 4313 orrs r3, r2 - 8005402: 614b str r3, [r1, #20] - (((PllSai2->PLLSAI2R >> 1U) - 1U) << RCC_PLLSAI2CFGR_PLLSAI2R_Pos)); -#endif /* RCC_PLLSAI2M_DIV_1_16_SUPPORT */ - } - - /* Enable the PLLSAI2 again by setting PLLSAI2ON to 1*/ - __HAL_RCC_PLLSAI2_ENABLE(); - 8005404: 4b14 ldr r3, [pc, #80] ; (8005458 ) - 8005406: 681b ldr r3, [r3, #0] - 8005408: 4a13 ldr r2, [pc, #76] ; (8005458 ) - 800540a: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 800540e: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8005410: f7fc fc7a bl 8001d08 - 8005414: 60b8 str r0, [r7, #8] - - /* Wait till PLLSAI2 is ready */ - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI2RDY) == 0U) - 8005416: e009 b.n 800542c - { - if((HAL_GetTick() - tickstart) > PLLSAI2_TIMEOUT_VALUE) - 8005418: f7fc fc76 bl 8001d08 - 800541c: 4602 mov r2, r0 - 800541e: 68bb ldr r3, [r7, #8] - 8005420: 1ad3 subs r3, r2, r3 - 8005422: 2b02 cmp r3, #2 - 8005424: d902 bls.n 800542c - { - status = HAL_TIMEOUT; - 8005426: 2303 movs r3, #3 - 8005428: 73fb strb r3, [r7, #15] - break; - 800542a: e005 b.n 8005438 - while(READ_BIT(RCC->CR, RCC_CR_PLLSAI2RDY) == 0U) - 800542c: 4b0a ldr r3, [pc, #40] ; (8005458 ) - 800542e: 681b ldr r3, [r3, #0] - 8005430: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 - 8005434: 2b00 cmp r3, #0 - 8005436: d0ef beq.n 8005418 - } - } - - if(status == HAL_OK) - 8005438: 7bfb ldrb r3, [r7, #15] - 800543a: 2b00 cmp r3, #0 - 800543c: d106 bne.n 800544c - { - /* Configure the PLLSAI2 Clock output(s) */ - __HAL_RCC_PLLSAI2CLKOUT_ENABLE(PllSai2->PLLSAI2ClockOut); - 800543e: 4b06 ldr r3, [pc, #24] ; (8005458 ) - 8005440: 695a ldr r2, [r3, #20] - 8005442: 687b ldr r3, [r7, #4] - 8005444: 695b ldr r3, [r3, #20] - 8005446: 4904 ldr r1, [pc, #16] ; (8005458 ) - 8005448: 4313 orrs r3, r2 - 800544a: 614b str r3, [r1, #20] - } - } - } - - return status; - 800544c: 7bfb ldrb r3, [r7, #15] -} - 800544e: 4618 mov r0, r3 - 8005450: 3710 adds r7, #16 - 8005452: 46bd mov sp, r7 - 8005454: bd80 pop {r7, pc} - 8005456: bf00 nop - 8005458: 40021000 .word 0x40021000 - -0800545c : - * parameters in the UART_InitTypeDef and initialize the associated handle. - * @param huart UART handle. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) -{ - 800545c: b580 push {r7, lr} - 800545e: b082 sub sp, #8 - 8005460: af00 add r7, sp, #0 - 8005462: 6078 str r0, [r7, #4] - /* Check the UART handle allocation */ - if (huart == NULL) - 8005464: 687b ldr r3, [r7, #4] - 8005466: 2b00 cmp r3, #0 - 8005468: d101 bne.n 800546e - { - return HAL_ERROR; - 800546a: 2301 movs r3, #1 - 800546c: e040 b.n 80054f0 - { - /* Check the parameters */ - assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); - } - - if (huart->gState == HAL_UART_STATE_RESET) - 800546e: 687b ldr r3, [r7, #4] - 8005470: 6fdb ldr r3, [r3, #124] ; 0x7c - 8005472: 2b00 cmp r3, #0 - 8005474: d106 bne.n 8005484 - { - /* Allocate lock resource and initialize it */ - huart->Lock = HAL_UNLOCKED; - 8005476: 687b ldr r3, [r7, #4] - 8005478: 2200 movs r2, #0 - 800547a: f883 2078 strb.w r2, [r3, #120] ; 0x78 - - /* Init the low level hardware */ - huart->MspInitCallback(huart); -#else - /* Init the low level hardware : GPIO, CLOCK */ - HAL_UART_MspInit(huart); - 800547e: 6878 ldr r0, [r7, #4] - 8005480: f7fb ff90 bl 80013a4 -#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ - } - - huart->gState = HAL_UART_STATE_BUSY; - 8005484: 687b ldr r3, [r7, #4] - 8005486: 2224 movs r2, #36 ; 0x24 - 8005488: 67da str r2, [r3, #124] ; 0x7c - - __HAL_UART_DISABLE(huart); - 800548a: 687b ldr r3, [r7, #4] - 800548c: 681b ldr r3, [r3, #0] - 800548e: 681a ldr r2, [r3, #0] - 8005490: 687b ldr r3, [r7, #4] - 8005492: 681b ldr r3, [r3, #0] - 8005494: f022 0201 bic.w r2, r2, #1 - 8005498: 601a str r2, [r3, #0] - - /* Perform advanced settings configuration */ - /* For some items, configuration requires to be done prior TE and RE bits are set */ - if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) - 800549a: 687b ldr r3, [r7, #4] - 800549c: 6a5b ldr r3, [r3, #36] ; 0x24 - 800549e: 2b00 cmp r3, #0 - 80054a0: d002 beq.n 80054a8 - { - UART_AdvFeatureConfig(huart); - 80054a2: 6878 ldr r0, [r7, #4] - 80054a4: f000 fb6a bl 8005b7c - } - - /* Set the UART Communication parameters */ - if (UART_SetConfig(huart) == HAL_ERROR) - 80054a8: 6878 ldr r0, [r7, #4] - 80054aa: f000 f8af bl 800560c - 80054ae: 4603 mov r3, r0 - 80054b0: 2b01 cmp r3, #1 - 80054b2: d101 bne.n 80054b8 - { - return HAL_ERROR; - 80054b4: 2301 movs r3, #1 - 80054b6: e01b b.n 80054f0 - } - - /* In asynchronous mode, the following bits must be kept cleared: - - LINEN and CLKEN bits in the USART_CR2 register, - - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ - CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); - 80054b8: 687b ldr r3, [r7, #4] - 80054ba: 681b ldr r3, [r3, #0] - 80054bc: 685a ldr r2, [r3, #4] - 80054be: 687b ldr r3, [r7, #4] - 80054c0: 681b ldr r3, [r3, #0] - 80054c2: f422 4290 bic.w r2, r2, #18432 ; 0x4800 - 80054c6: 605a str r2, [r3, #4] - CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); - 80054c8: 687b ldr r3, [r7, #4] - 80054ca: 681b ldr r3, [r3, #0] - 80054cc: 689a ldr r2, [r3, #8] - 80054ce: 687b ldr r3, [r7, #4] - 80054d0: 681b ldr r3, [r3, #0] - 80054d2: f022 022a bic.w r2, r2, #42 ; 0x2a - 80054d6: 609a str r2, [r3, #8] - - __HAL_UART_ENABLE(huart); - 80054d8: 687b ldr r3, [r7, #4] - 80054da: 681b ldr r3, [r3, #0] - 80054dc: 681a ldr r2, [r3, #0] - 80054de: 687b ldr r3, [r7, #4] - 80054e0: 681b ldr r3, [r3, #0] - 80054e2: f042 0201 orr.w r2, r2, #1 - 80054e6: 601a str r2, [r3, #0] - - /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ - return (UART_CheckIdleState(huart)); - 80054e8: 6878 ldr r0, [r7, #4] - 80054ea: f000 fbe9 bl 8005cc0 - 80054ee: 4603 mov r3, r0 -} - 80054f0: 4618 mov r0, r3 - 80054f2: 3708 adds r7, #8 - 80054f4: 46bd mov sp, r7 - 80054f6: bd80 pop {r7, pc} - -080054f8 : - * @param Size Amount of data elements (u8 or u16) to be sent. - * @param Timeout Timeout duration. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout) -{ - 80054f8: b580 push {r7, lr} - 80054fa: b08a sub sp, #40 ; 0x28 - 80054fc: af02 add r7, sp, #8 - 80054fe: 60f8 str r0, [r7, #12] - 8005500: 60b9 str r1, [r7, #8] - 8005502: 603b str r3, [r7, #0] - 8005504: 4613 mov r3, r2 - 8005506: 80fb strh r3, [r7, #6] - const uint8_t *pdata8bits; - const uint16_t *pdata16bits; - uint32_t tickstart; - - /* Check that a Tx process is not already ongoing */ - if (huart->gState == HAL_UART_STATE_READY) - 8005508: 68fb ldr r3, [r7, #12] - 800550a: 6fdb ldr r3, [r3, #124] ; 0x7c - 800550c: 2b20 cmp r3, #32 - 800550e: d178 bne.n 8005602 - { - if ((pData == NULL) || (Size == 0U)) - 8005510: 68bb ldr r3, [r7, #8] - 8005512: 2b00 cmp r3, #0 - 8005514: d002 beq.n 800551c - 8005516: 88fb ldrh r3, [r7, #6] - 8005518: 2b00 cmp r3, #0 - 800551a: d101 bne.n 8005520 - { - return HAL_ERROR; - 800551c: 2301 movs r3, #1 - 800551e: e071 b.n 8005604 - } - - huart->ErrorCode = HAL_UART_ERROR_NONE; - 8005520: 68fb ldr r3, [r7, #12] - 8005522: 2200 movs r2, #0 - 8005524: f8c3 2084 str.w r2, [r3, #132] ; 0x84 - huart->gState = HAL_UART_STATE_BUSY_TX; - 8005528: 68fb ldr r3, [r7, #12] - 800552a: 2221 movs r2, #33 ; 0x21 - 800552c: 67da str r2, [r3, #124] ; 0x7c - - /* Init tickstart for timeout management */ - tickstart = HAL_GetTick(); - 800552e: f7fc fbeb bl 8001d08 - 8005532: 6178 str r0, [r7, #20] - - huart->TxXferSize = Size; - 8005534: 68fb ldr r3, [r7, #12] - 8005536: 88fa ldrh r2, [r7, #6] - 8005538: f8a3 2050 strh.w r2, [r3, #80] ; 0x50 - huart->TxXferCount = Size; - 800553c: 68fb ldr r3, [r7, #12] - 800553e: 88fa ldrh r2, [r7, #6] - 8005540: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 - - /* In case of 9bits/No Parity transfer, pData needs to be handled as a uint16_t pointer */ - if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) - 8005544: 68fb ldr r3, [r7, #12] - 8005546: 689b ldr r3, [r3, #8] - 8005548: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 - 800554c: d108 bne.n 8005560 - 800554e: 68fb ldr r3, [r7, #12] - 8005550: 691b ldr r3, [r3, #16] - 8005552: 2b00 cmp r3, #0 - 8005554: d104 bne.n 8005560 - { - pdata8bits = NULL; - 8005556: 2300 movs r3, #0 - 8005558: 61fb str r3, [r7, #28] - pdata16bits = (const uint16_t *) pData; - 800555a: 68bb ldr r3, [r7, #8] - 800555c: 61bb str r3, [r7, #24] - 800555e: e003 b.n 8005568 - } - else - { - pdata8bits = pData; - 8005560: 68bb ldr r3, [r7, #8] - 8005562: 61fb str r3, [r7, #28] - pdata16bits = NULL; - 8005564: 2300 movs r3, #0 - 8005566: 61bb str r3, [r7, #24] - } - - while (huart->TxXferCount > 0U) - 8005568: e030 b.n 80055cc - { - if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) - 800556a: 683b ldr r3, [r7, #0] - 800556c: 9300 str r3, [sp, #0] - 800556e: 697b ldr r3, [r7, #20] - 8005570: 2200 movs r2, #0 - 8005572: 2180 movs r1, #128 ; 0x80 - 8005574: 68f8 ldr r0, [r7, #12] - 8005576: f000 fc4b bl 8005e10 - 800557a: 4603 mov r3, r0 - 800557c: 2b00 cmp r3, #0 - 800557e: d004 beq.n 800558a - { - - huart->gState = HAL_UART_STATE_READY; - 8005580: 68fb ldr r3, [r7, #12] - 8005582: 2220 movs r2, #32 - 8005584: 67da str r2, [r3, #124] ; 0x7c - - return HAL_TIMEOUT; - 8005586: 2303 movs r3, #3 - 8005588: e03c b.n 8005604 - } - if (pdata8bits == NULL) - 800558a: 69fb ldr r3, [r7, #28] - 800558c: 2b00 cmp r3, #0 - 800558e: d10b bne.n 80055a8 - { - huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); - 8005590: 69bb ldr r3, [r7, #24] - 8005592: 881a ldrh r2, [r3, #0] - 8005594: 68fb ldr r3, [r7, #12] - 8005596: 681b ldr r3, [r3, #0] - 8005598: f3c2 0208 ubfx r2, r2, #0, #9 - 800559c: b292 uxth r2, r2 - 800559e: 851a strh r2, [r3, #40] ; 0x28 - pdata16bits++; - 80055a0: 69bb ldr r3, [r7, #24] - 80055a2: 3302 adds r3, #2 - 80055a4: 61bb str r3, [r7, #24] - 80055a6: e008 b.n 80055ba - } - else - { - huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); - 80055a8: 69fb ldr r3, [r7, #28] - 80055aa: 781a ldrb r2, [r3, #0] - 80055ac: 68fb ldr r3, [r7, #12] - 80055ae: 681b ldr r3, [r3, #0] - 80055b0: b292 uxth r2, r2 - 80055b2: 851a strh r2, [r3, #40] ; 0x28 - pdata8bits++; - 80055b4: 69fb ldr r3, [r7, #28] - 80055b6: 3301 adds r3, #1 - 80055b8: 61fb str r3, [r7, #28] - } - huart->TxXferCount--; - 80055ba: 68fb ldr r3, [r7, #12] - 80055bc: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 - 80055c0: b29b uxth r3, r3 - 80055c2: 3b01 subs r3, #1 - 80055c4: b29a uxth r2, r3 - 80055c6: 68fb ldr r3, [r7, #12] - 80055c8: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 - while (huart->TxXferCount > 0U) - 80055cc: 68fb ldr r3, [r7, #12] - 80055ce: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 - 80055d2: b29b uxth r3, r3 - 80055d4: 2b00 cmp r3, #0 - 80055d6: d1c8 bne.n 800556a - } - - if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) - 80055d8: 683b ldr r3, [r7, #0] - 80055da: 9300 str r3, [sp, #0] - 80055dc: 697b ldr r3, [r7, #20] - 80055de: 2200 movs r2, #0 - 80055e0: 2140 movs r1, #64 ; 0x40 - 80055e2: 68f8 ldr r0, [r7, #12] - 80055e4: f000 fc14 bl 8005e10 - 80055e8: 4603 mov r3, r0 - 80055ea: 2b00 cmp r3, #0 - 80055ec: d004 beq.n 80055f8 - { - huart->gState = HAL_UART_STATE_READY; - 80055ee: 68fb ldr r3, [r7, #12] - 80055f0: 2220 movs r2, #32 - 80055f2: 67da str r2, [r3, #124] ; 0x7c - - return HAL_TIMEOUT; - 80055f4: 2303 movs r3, #3 - 80055f6: e005 b.n 8005604 - } - - /* At end of Tx process, restore huart->gState to Ready */ - huart->gState = HAL_UART_STATE_READY; - 80055f8: 68fb ldr r3, [r7, #12] - 80055fa: 2220 movs r2, #32 - 80055fc: 67da str r2, [r3, #124] ; 0x7c - - return HAL_OK; - 80055fe: 2300 movs r3, #0 - 8005600: e000 b.n 8005604 - } - else - { - return HAL_BUSY; - 8005602: 2302 movs r3, #2 - } -} - 8005604: 4618 mov r0, r3 - 8005606: 3720 adds r7, #32 - 8005608: 46bd mov sp, r7 - 800560a: bd80 pop {r7, pc} - -0800560c : - * @brief Configure the UART peripheral. - * @param huart UART handle. - * @retval HAL status - */ -HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) -{ - 800560c: e92d 4fb0 stmdb sp!, {r4, r5, r7, r8, r9, sl, fp, lr} - 8005610: b08a sub sp, #40 ; 0x28 - 8005612: af00 add r7, sp, #0 - 8005614: 60f8 str r0, [r7, #12] - uint32_t tmpreg; - uint16_t brrtemp; - UART_ClockSourceTypeDef clocksource; - uint32_t usartdiv; - HAL_StatusTypeDef ret = HAL_OK; - 8005616: 2300 movs r3, #0 - 8005618: f887 3022 strb.w r3, [r7, #34] ; 0x22 - * the UART Word Length, Parity, Mode and oversampling: - * set the M bits according to huart->Init.WordLength value - * set PCE and PS bits according to huart->Init.Parity value - * set TE and RE bits according to huart->Init.Mode value - * set OVER8 bit according to huart->Init.OverSampling value */ - tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ; - 800561c: 68fb ldr r3, [r7, #12] - 800561e: 689a ldr r2, [r3, #8] - 8005620: 68fb ldr r3, [r7, #12] - 8005622: 691b ldr r3, [r3, #16] - 8005624: 431a orrs r2, r3 - 8005626: 68fb ldr r3, [r7, #12] - 8005628: 695b ldr r3, [r3, #20] - 800562a: 431a orrs r2, r3 - 800562c: 68fb ldr r3, [r7, #12] - 800562e: 69db ldr r3, [r3, #28] - 8005630: 4313 orrs r3, r2 - 8005632: 627b str r3, [r7, #36] ; 0x24 - MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); - 8005634: 68fb ldr r3, [r7, #12] - 8005636: 681b ldr r3, [r3, #0] - 8005638: 681a ldr r2, [r3, #0] - 800563a: 4ba4 ldr r3, [pc, #656] ; (80058cc ) - 800563c: 4013 ands r3, r2 - 800563e: 68fa ldr r2, [r7, #12] - 8005640: 6812 ldr r2, [r2, #0] - 8005642: 6a79 ldr r1, [r7, #36] ; 0x24 - 8005644: 430b orrs r3, r1 - 8005646: 6013 str r3, [r2, #0] - - /*-------------------------- USART CR2 Configuration -----------------------*/ - /* Configure the UART Stop Bits: Set STOP[13:12] bits according - * to huart->Init.StopBits value */ - MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); - 8005648: 68fb ldr r3, [r7, #12] - 800564a: 681b ldr r3, [r3, #0] - 800564c: 685b ldr r3, [r3, #4] - 800564e: f423 5140 bic.w r1, r3, #12288 ; 0x3000 - 8005652: 68fb ldr r3, [r7, #12] - 8005654: 68da ldr r2, [r3, #12] - 8005656: 68fb ldr r3, [r7, #12] - 8005658: 681b ldr r3, [r3, #0] - 800565a: 430a orrs r2, r1 - 800565c: 605a str r2, [r3, #4] - /* Configure - * - UART HardWare Flow Control: set CTSE and RTSE bits according - * to huart->Init.HwFlowCtl value - * - one-bit sampling method versus three samples' majority rule according - * to huart->Init.OneBitSampling (not applicable to LPUART) */ - tmpreg = (uint32_t)huart->Init.HwFlowCtl; - 800565e: 68fb ldr r3, [r7, #12] - 8005660: 699b ldr r3, [r3, #24] - 8005662: 627b str r3, [r7, #36] ; 0x24 - - if (!(UART_INSTANCE_LOWPOWER(huart))) - 8005664: 68fb ldr r3, [r7, #12] - 8005666: 681b ldr r3, [r3, #0] - 8005668: 4a99 ldr r2, [pc, #612] ; (80058d0 ) - 800566a: 4293 cmp r3, r2 - 800566c: d004 beq.n 8005678 - { - tmpreg |= huart->Init.OneBitSampling; - 800566e: 68fb ldr r3, [r7, #12] - 8005670: 6a1b ldr r3, [r3, #32] - 8005672: 6a7a ldr r2, [r7, #36] ; 0x24 - 8005674: 4313 orrs r3, r2 - 8005676: 627b str r3, [r7, #36] ; 0x24 - } - MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); - 8005678: 68fb ldr r3, [r7, #12] - 800567a: 681b ldr r3, [r3, #0] - 800567c: 689b ldr r3, [r3, #8] - 800567e: f423 6130 bic.w r1, r3, #2816 ; 0xb00 - 8005682: 68fb ldr r3, [r7, #12] - 8005684: 681b ldr r3, [r3, #0] - 8005686: 6a7a ldr r2, [r7, #36] ; 0x24 - 8005688: 430a orrs r2, r1 - 800568a: 609a str r2, [r3, #8] - * - UART Clock Prescaler : set PRESCALER according to huart->Init.ClockPrescaler value */ - MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); -#endif /* USART_PRESC_PRESCALER */ - - /*-------------------------- USART BRR Configuration -----------------------*/ - UART_GETCLOCKSOURCE(huart, clocksource); - 800568c: 68fb ldr r3, [r7, #12] - 800568e: 681b ldr r3, [r3, #0] - 8005690: 4a90 ldr r2, [pc, #576] ; (80058d4 ) - 8005692: 4293 cmp r3, r2 - 8005694: d126 bne.n 80056e4 - 8005696: 4b90 ldr r3, [pc, #576] ; (80058d8 ) - 8005698: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 800569c: f003 0303 and.w r3, r3, #3 - 80056a0: 2b03 cmp r3, #3 - 80056a2: d81b bhi.n 80056dc - 80056a4: a201 add r2, pc, #4 ; (adr r2, 80056ac ) - 80056a6: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80056aa: bf00 nop - 80056ac: 080056bd .word 0x080056bd - 80056b0: 080056cd .word 0x080056cd - 80056b4: 080056c5 .word 0x080056c5 - 80056b8: 080056d5 .word 0x080056d5 - 80056bc: 2301 movs r3, #1 - 80056be: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80056c2: e116 b.n 80058f2 - 80056c4: 2302 movs r3, #2 - 80056c6: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80056ca: e112 b.n 80058f2 - 80056cc: 2304 movs r3, #4 - 80056ce: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80056d2: e10e b.n 80058f2 - 80056d4: 2308 movs r3, #8 - 80056d6: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80056da: e10a b.n 80058f2 - 80056dc: 2310 movs r3, #16 - 80056de: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80056e2: e106 b.n 80058f2 - 80056e4: 68fb ldr r3, [r7, #12] - 80056e6: 681b ldr r3, [r3, #0] - 80056e8: 4a7c ldr r2, [pc, #496] ; (80058dc ) - 80056ea: 4293 cmp r3, r2 - 80056ec: d138 bne.n 8005760 - 80056ee: 4b7a ldr r3, [pc, #488] ; (80058d8 ) - 80056f0: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 80056f4: f003 030c and.w r3, r3, #12 - 80056f8: 2b0c cmp r3, #12 - 80056fa: d82d bhi.n 8005758 - 80056fc: a201 add r2, pc, #4 ; (adr r2, 8005704 ) - 80056fe: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8005702: bf00 nop - 8005704: 08005739 .word 0x08005739 - 8005708: 08005759 .word 0x08005759 - 800570c: 08005759 .word 0x08005759 - 8005710: 08005759 .word 0x08005759 - 8005714: 08005749 .word 0x08005749 - 8005718: 08005759 .word 0x08005759 - 800571c: 08005759 .word 0x08005759 - 8005720: 08005759 .word 0x08005759 - 8005724: 08005741 .word 0x08005741 - 8005728: 08005759 .word 0x08005759 - 800572c: 08005759 .word 0x08005759 - 8005730: 08005759 .word 0x08005759 - 8005734: 08005751 .word 0x08005751 - 8005738: 2300 movs r3, #0 - 800573a: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 800573e: e0d8 b.n 80058f2 - 8005740: 2302 movs r3, #2 - 8005742: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 8005746: e0d4 b.n 80058f2 - 8005748: 2304 movs r3, #4 - 800574a: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 800574e: e0d0 b.n 80058f2 - 8005750: 2308 movs r3, #8 - 8005752: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 8005756: e0cc b.n 80058f2 - 8005758: 2310 movs r3, #16 - 800575a: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 800575e: e0c8 b.n 80058f2 - 8005760: 68fb ldr r3, [r7, #12] - 8005762: 681b ldr r3, [r3, #0] - 8005764: 4a5e ldr r2, [pc, #376] ; (80058e0 ) - 8005766: 4293 cmp r3, r2 - 8005768: d125 bne.n 80057b6 - 800576a: 4b5b ldr r3, [pc, #364] ; (80058d8 ) - 800576c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8005770: f003 0330 and.w r3, r3, #48 ; 0x30 - 8005774: 2b30 cmp r3, #48 ; 0x30 - 8005776: d016 beq.n 80057a6 - 8005778: 2b30 cmp r3, #48 ; 0x30 - 800577a: d818 bhi.n 80057ae - 800577c: 2b20 cmp r3, #32 - 800577e: d00a beq.n 8005796 - 8005780: 2b20 cmp r3, #32 - 8005782: d814 bhi.n 80057ae - 8005784: 2b00 cmp r3, #0 - 8005786: d002 beq.n 800578e - 8005788: 2b10 cmp r3, #16 - 800578a: d008 beq.n 800579e - 800578c: e00f b.n 80057ae - 800578e: 2300 movs r3, #0 - 8005790: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 8005794: e0ad b.n 80058f2 - 8005796: 2302 movs r3, #2 - 8005798: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 800579c: e0a9 b.n 80058f2 - 800579e: 2304 movs r3, #4 - 80057a0: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80057a4: e0a5 b.n 80058f2 - 80057a6: 2308 movs r3, #8 - 80057a8: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80057ac: e0a1 b.n 80058f2 - 80057ae: 2310 movs r3, #16 - 80057b0: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80057b4: e09d b.n 80058f2 - 80057b6: 68fb ldr r3, [r7, #12] - 80057b8: 681b ldr r3, [r3, #0] - 80057ba: 4a4a ldr r2, [pc, #296] ; (80058e4 ) - 80057bc: 4293 cmp r3, r2 - 80057be: d125 bne.n 800580c - 80057c0: 4b45 ldr r3, [pc, #276] ; (80058d8 ) - 80057c2: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 80057c6: f003 03c0 and.w r3, r3, #192 ; 0xc0 - 80057ca: 2bc0 cmp r3, #192 ; 0xc0 - 80057cc: d016 beq.n 80057fc - 80057ce: 2bc0 cmp r3, #192 ; 0xc0 - 80057d0: d818 bhi.n 8005804 - 80057d2: 2b80 cmp r3, #128 ; 0x80 - 80057d4: d00a beq.n 80057ec - 80057d6: 2b80 cmp r3, #128 ; 0x80 - 80057d8: d814 bhi.n 8005804 - 80057da: 2b00 cmp r3, #0 - 80057dc: d002 beq.n 80057e4 - 80057de: 2b40 cmp r3, #64 ; 0x40 - 80057e0: d008 beq.n 80057f4 - 80057e2: e00f b.n 8005804 - 80057e4: 2300 movs r3, #0 - 80057e6: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80057ea: e082 b.n 80058f2 - 80057ec: 2302 movs r3, #2 - 80057ee: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80057f2: e07e b.n 80058f2 - 80057f4: 2304 movs r3, #4 - 80057f6: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80057fa: e07a b.n 80058f2 - 80057fc: 2308 movs r3, #8 - 80057fe: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 8005802: e076 b.n 80058f2 - 8005804: 2310 movs r3, #16 - 8005806: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 800580a: e072 b.n 80058f2 - 800580c: 68fb ldr r3, [r7, #12] - 800580e: 681b ldr r3, [r3, #0] - 8005810: 4a35 ldr r2, [pc, #212] ; (80058e8 ) - 8005812: 4293 cmp r3, r2 - 8005814: d12a bne.n 800586c - 8005816: 4b30 ldr r3, [pc, #192] ; (80058d8 ) - 8005818: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 800581c: f403 7340 and.w r3, r3, #768 ; 0x300 - 8005820: f5b3 7f40 cmp.w r3, #768 ; 0x300 - 8005824: d01a beq.n 800585c - 8005826: f5b3 7f40 cmp.w r3, #768 ; 0x300 - 800582a: d81b bhi.n 8005864 - 800582c: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8005830: d00c beq.n 800584c - 8005832: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8005836: d815 bhi.n 8005864 - 8005838: 2b00 cmp r3, #0 - 800583a: d003 beq.n 8005844 - 800583c: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 8005840: d008 beq.n 8005854 - 8005842: e00f b.n 8005864 - 8005844: 2300 movs r3, #0 - 8005846: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 800584a: e052 b.n 80058f2 - 800584c: 2302 movs r3, #2 - 800584e: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 8005852: e04e b.n 80058f2 - 8005854: 2304 movs r3, #4 - 8005856: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 800585a: e04a b.n 80058f2 - 800585c: 2308 movs r3, #8 - 800585e: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 8005862: e046 b.n 80058f2 - 8005864: 2310 movs r3, #16 - 8005866: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 800586a: e042 b.n 80058f2 - 800586c: 68fb ldr r3, [r7, #12] - 800586e: 681b ldr r3, [r3, #0] - 8005870: 4a17 ldr r2, [pc, #92] ; (80058d0 ) - 8005872: 4293 cmp r3, r2 - 8005874: d13a bne.n 80058ec - 8005876: 4b18 ldr r3, [pc, #96] ; (80058d8 ) - 8005878: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 800587c: f403 6340 and.w r3, r3, #3072 ; 0xc00 - 8005880: f5b3 6f40 cmp.w r3, #3072 ; 0xc00 - 8005884: d01a beq.n 80058bc - 8005886: f5b3 6f40 cmp.w r3, #3072 ; 0xc00 - 800588a: d81b bhi.n 80058c4 - 800588c: f5b3 6f00 cmp.w r3, #2048 ; 0x800 - 8005890: d00c beq.n 80058ac - 8005892: f5b3 6f00 cmp.w r3, #2048 ; 0x800 - 8005896: d815 bhi.n 80058c4 - 8005898: 2b00 cmp r3, #0 - 800589a: d003 beq.n 80058a4 - 800589c: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 80058a0: d008 beq.n 80058b4 - 80058a2: e00f b.n 80058c4 - 80058a4: 2300 movs r3, #0 - 80058a6: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80058aa: e022 b.n 80058f2 - 80058ac: 2302 movs r3, #2 - 80058ae: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80058b2: e01e b.n 80058f2 - 80058b4: 2304 movs r3, #4 - 80058b6: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80058ba: e01a b.n 80058f2 - 80058bc: 2308 movs r3, #8 - 80058be: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80058c2: e016 b.n 80058f2 - 80058c4: 2310 movs r3, #16 - 80058c6: f887 3023 strb.w r3, [r7, #35] ; 0x23 - 80058ca: e012 b.n 80058f2 - 80058cc: efff69f3 .word 0xefff69f3 - 80058d0: 40008000 .word 0x40008000 - 80058d4: 40013800 .word 0x40013800 - 80058d8: 40021000 .word 0x40021000 - 80058dc: 40004400 .word 0x40004400 - 80058e0: 40004800 .word 0x40004800 - 80058e4: 40004c00 .word 0x40004c00 - 80058e8: 40005000 .word 0x40005000 - 80058ec: 2310 movs r3, #16 - 80058ee: f887 3023 strb.w r3, [r7, #35] ; 0x23 - - /* Check LPUART instance */ - if (UART_INSTANCE_LOWPOWER(huart)) - 80058f2: 68fb ldr r3, [r7, #12] - 80058f4: 681b ldr r3, [r3, #0] - 80058f6: 4a9f ldr r2, [pc, #636] ; (8005b74 ) - 80058f8: 4293 cmp r3, r2 - 80058fa: d17a bne.n 80059f2 - { - /* Retrieve frequency clock */ - switch (clocksource) - 80058fc: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8005900: 2b08 cmp r3, #8 - 8005902: d824 bhi.n 800594e - 8005904: a201 add r2, pc, #4 ; (adr r2, 800590c ) - 8005906: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800590a: bf00 nop - 800590c: 08005931 .word 0x08005931 - 8005910: 0800594f .word 0x0800594f - 8005914: 08005939 .word 0x08005939 - 8005918: 0800594f .word 0x0800594f - 800591c: 0800593f .word 0x0800593f - 8005920: 0800594f .word 0x0800594f - 8005924: 0800594f .word 0x0800594f - 8005928: 0800594f .word 0x0800594f - 800592c: 08005947 .word 0x08005947 - { - case UART_CLOCKSOURCE_PCLK1: - pclk = HAL_RCC_GetPCLK1Freq(); - 8005930: f7ff f84c bl 80049cc - 8005934: 61f8 str r0, [r7, #28] - break; - 8005936: e010 b.n 800595a - case UART_CLOCKSOURCE_HSI: - pclk = (uint32_t) HSI_VALUE; - 8005938: 4b8f ldr r3, [pc, #572] ; (8005b78 ) - 800593a: 61fb str r3, [r7, #28] - break; - 800593c: e00d b.n 800595a - case UART_CLOCKSOURCE_SYSCLK: - pclk = HAL_RCC_GetSysClockFreq(); - 800593e: f7fe ffad bl 800489c - 8005942: 61f8 str r0, [r7, #28] - break; - 8005944: e009 b.n 800595a - case UART_CLOCKSOURCE_LSE: - pclk = (uint32_t) LSE_VALUE; - 8005946: f44f 4300 mov.w r3, #32768 ; 0x8000 - 800594a: 61fb str r3, [r7, #28] - break; - 800594c: e005 b.n 800595a - default: - pclk = 0U; - 800594e: 2300 movs r3, #0 - 8005950: 61fb str r3, [r7, #28] - ret = HAL_ERROR; - 8005952: 2301 movs r3, #1 - 8005954: f887 3022 strb.w r3, [r7, #34] ; 0x22 - break; - 8005958: bf00 nop - } - - /* If proper clock source reported */ - if (pclk != 0U) - 800595a: 69fb ldr r3, [r7, #28] - 800595c: 2b00 cmp r3, #0 - 800595e: f000 80fb beq.w 8005b58 - } /* if ( (lpuart_ker_ck_pres < (3 * huart->Init.BaudRate) ) || - (lpuart_ker_ck_pres > (4096 * huart->Init.BaudRate) )) */ -#else - /* No Prescaler applicable */ - /* Ensure that Frequency clock is in the range [3 * baudrate, 4096 * baudrate] */ - if ((pclk < (3U * huart->Init.BaudRate)) || - 8005962: 68fb ldr r3, [r7, #12] - 8005964: 685a ldr r2, [r3, #4] - 8005966: 4613 mov r3, r2 - 8005968: 005b lsls r3, r3, #1 - 800596a: 4413 add r3, r2 - 800596c: 69fa ldr r2, [r7, #28] - 800596e: 429a cmp r2, r3 - 8005970: d305 bcc.n 800597e - (pclk > (4096U * huart->Init.BaudRate))) - 8005972: 68fb ldr r3, [r7, #12] - 8005974: 685b ldr r3, [r3, #4] - 8005976: 031b lsls r3, r3, #12 - if ((pclk < (3U * huart->Init.BaudRate)) || - 8005978: 69fa ldr r2, [r7, #28] - 800597a: 429a cmp r2, r3 - 800597c: d903 bls.n 8005986 - { - ret = HAL_ERROR; - 800597e: 2301 movs r3, #1 - 8005980: f887 3022 strb.w r3, [r7, #34] ; 0x22 - 8005984: e0e8 b.n 8005b58 - } - else - { - usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate)); - 8005986: 69fb ldr r3, [r7, #28] - 8005988: 2200 movs r2, #0 - 800598a: 461c mov r4, r3 - 800598c: 4615 mov r5, r2 - 800598e: f04f 0200 mov.w r2, #0 - 8005992: f04f 0300 mov.w r3, #0 - 8005996: 022b lsls r3, r5, #8 - 8005998: ea43 6314 orr.w r3, r3, r4, lsr #24 - 800599c: 0222 lsls r2, r4, #8 - 800599e: 68f9 ldr r1, [r7, #12] - 80059a0: 6849 ldr r1, [r1, #4] - 80059a2: 0849 lsrs r1, r1, #1 - 80059a4: 2000 movs r0, #0 - 80059a6: 4688 mov r8, r1 - 80059a8: 4681 mov r9, r0 - 80059aa: eb12 0a08 adds.w sl, r2, r8 - 80059ae: eb43 0b09 adc.w fp, r3, r9 - 80059b2: 68fb ldr r3, [r7, #12] - 80059b4: 685b ldr r3, [r3, #4] - 80059b6: 2200 movs r2, #0 - 80059b8: 603b str r3, [r7, #0] - 80059ba: 607a str r2, [r7, #4] - 80059bc: e9d7 2300 ldrd r2, r3, [r7] - 80059c0: 4650 mov r0, sl - 80059c2: 4659 mov r1, fp - 80059c4: f7fb f84a bl 8000a5c <__aeabi_uldivmod> - 80059c8: 4602 mov r2, r0 - 80059ca: 460b mov r3, r1 - 80059cc: 4613 mov r3, r2 - 80059ce: 61bb str r3, [r7, #24] - if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) - 80059d0: 69bb ldr r3, [r7, #24] - 80059d2: f5b3 7f40 cmp.w r3, #768 ; 0x300 - 80059d6: d308 bcc.n 80059ea - 80059d8: 69bb ldr r3, [r7, #24] - 80059da: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 - 80059de: d204 bcs.n 80059ea - { - huart->Instance->BRR = usartdiv; - 80059e0: 68fb ldr r3, [r7, #12] - 80059e2: 681b ldr r3, [r3, #0] - 80059e4: 69ba ldr r2, [r7, #24] - 80059e6: 60da str r2, [r3, #12] - 80059e8: e0b6 b.n 8005b58 - } - else - { - ret = HAL_ERROR; - 80059ea: 2301 movs r3, #1 - 80059ec: f887 3022 strb.w r3, [r7, #34] ; 0x22 - 80059f0: e0b2 b.n 8005b58 - } /* if ( (pclk < (3 * huart->Init.BaudRate) ) || (pclk > (4096 * huart->Init.BaudRate) )) */ -#endif /* USART_PRESC_PRESCALER */ - } /* if (pclk != 0) */ - } - /* Check UART Over Sampling to set Baud Rate Register */ - else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) - 80059f2: 68fb ldr r3, [r7, #12] - 80059f4: 69db ldr r3, [r3, #28] - 80059f6: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 80059fa: d15e bne.n 8005aba - { - switch (clocksource) - 80059fc: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8005a00: 2b08 cmp r3, #8 - 8005a02: d828 bhi.n 8005a56 - 8005a04: a201 add r2, pc, #4 ; (adr r2, 8005a0c ) - 8005a06: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8005a0a: bf00 nop - 8005a0c: 08005a31 .word 0x08005a31 - 8005a10: 08005a39 .word 0x08005a39 - 8005a14: 08005a41 .word 0x08005a41 - 8005a18: 08005a57 .word 0x08005a57 - 8005a1c: 08005a47 .word 0x08005a47 - 8005a20: 08005a57 .word 0x08005a57 - 8005a24: 08005a57 .word 0x08005a57 - 8005a28: 08005a57 .word 0x08005a57 - 8005a2c: 08005a4f .word 0x08005a4f - { - case UART_CLOCKSOURCE_PCLK1: - pclk = HAL_RCC_GetPCLK1Freq(); - 8005a30: f7fe ffcc bl 80049cc - 8005a34: 61f8 str r0, [r7, #28] - break; - 8005a36: e014 b.n 8005a62 - case UART_CLOCKSOURCE_PCLK2: - pclk = HAL_RCC_GetPCLK2Freq(); - 8005a38: f7fe ffde bl 80049f8 - 8005a3c: 61f8 str r0, [r7, #28] - break; - 8005a3e: e010 b.n 8005a62 - case UART_CLOCKSOURCE_HSI: - pclk = (uint32_t) HSI_VALUE; - 8005a40: 4b4d ldr r3, [pc, #308] ; (8005b78 ) - 8005a42: 61fb str r3, [r7, #28] - break; - 8005a44: e00d b.n 8005a62 - case UART_CLOCKSOURCE_SYSCLK: - pclk = HAL_RCC_GetSysClockFreq(); - 8005a46: f7fe ff29 bl 800489c - 8005a4a: 61f8 str r0, [r7, #28] - break; - 8005a4c: e009 b.n 8005a62 - case UART_CLOCKSOURCE_LSE: - pclk = (uint32_t) LSE_VALUE; - 8005a4e: f44f 4300 mov.w r3, #32768 ; 0x8000 - 8005a52: 61fb str r3, [r7, #28] - break; - 8005a54: e005 b.n 8005a62 - default: - pclk = 0U; - 8005a56: 2300 movs r3, #0 - 8005a58: 61fb str r3, [r7, #28] - ret = HAL_ERROR; - 8005a5a: 2301 movs r3, #1 - 8005a5c: f887 3022 strb.w r3, [r7, #34] ; 0x22 - break; - 8005a60: bf00 nop - } - - /* USARTDIV must be greater than or equal to 0d16 */ - if (pclk != 0U) - 8005a62: 69fb ldr r3, [r7, #28] - 8005a64: 2b00 cmp r3, #0 - 8005a66: d077 beq.n 8005b58 - { -#if defined(USART_PRESC_PRESCALER) - usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); -#else - usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate)); - 8005a68: 69fb ldr r3, [r7, #28] - 8005a6a: 005a lsls r2, r3, #1 - 8005a6c: 68fb ldr r3, [r7, #12] - 8005a6e: 685b ldr r3, [r3, #4] - 8005a70: 085b lsrs r3, r3, #1 - 8005a72: 441a add r2, r3 - 8005a74: 68fb ldr r3, [r7, #12] - 8005a76: 685b ldr r3, [r3, #4] - 8005a78: fbb2 f3f3 udiv r3, r2, r3 - 8005a7c: 61bb str r3, [r7, #24] -#endif /* USART_PRESC_PRESCALER */ - if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) - 8005a7e: 69bb ldr r3, [r7, #24] - 8005a80: 2b0f cmp r3, #15 - 8005a82: d916 bls.n 8005ab2 - 8005a84: 69bb ldr r3, [r7, #24] - 8005a86: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 8005a8a: d212 bcs.n 8005ab2 - { - brrtemp = (uint16_t)(usartdiv & 0xFFF0U); - 8005a8c: 69bb ldr r3, [r7, #24] - 8005a8e: b29b uxth r3, r3 - 8005a90: f023 030f bic.w r3, r3, #15 - 8005a94: 82fb strh r3, [r7, #22] - brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); - 8005a96: 69bb ldr r3, [r7, #24] - 8005a98: 085b lsrs r3, r3, #1 - 8005a9a: b29b uxth r3, r3 - 8005a9c: f003 0307 and.w r3, r3, #7 - 8005aa0: b29a uxth r2, r3 - 8005aa2: 8afb ldrh r3, [r7, #22] - 8005aa4: 4313 orrs r3, r2 - 8005aa6: 82fb strh r3, [r7, #22] - huart->Instance->BRR = brrtemp; - 8005aa8: 68fb ldr r3, [r7, #12] - 8005aaa: 681b ldr r3, [r3, #0] - 8005aac: 8afa ldrh r2, [r7, #22] - 8005aae: 60da str r2, [r3, #12] - 8005ab0: e052 b.n 8005b58 - } - else - { - ret = HAL_ERROR; - 8005ab2: 2301 movs r3, #1 - 8005ab4: f887 3022 strb.w r3, [r7, #34] ; 0x22 - 8005ab8: e04e b.n 8005b58 - } - } - } - else - { - switch (clocksource) - 8005aba: f897 3023 ldrb.w r3, [r7, #35] ; 0x23 - 8005abe: 2b08 cmp r3, #8 - 8005ac0: d827 bhi.n 8005b12 - 8005ac2: a201 add r2, pc, #4 ; (adr r2, 8005ac8 ) - 8005ac4: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8005ac8: 08005aed .word 0x08005aed - 8005acc: 08005af5 .word 0x08005af5 - 8005ad0: 08005afd .word 0x08005afd - 8005ad4: 08005b13 .word 0x08005b13 - 8005ad8: 08005b03 .word 0x08005b03 - 8005adc: 08005b13 .word 0x08005b13 - 8005ae0: 08005b13 .word 0x08005b13 - 8005ae4: 08005b13 .word 0x08005b13 - 8005ae8: 08005b0b .word 0x08005b0b - { - case UART_CLOCKSOURCE_PCLK1: - pclk = HAL_RCC_GetPCLK1Freq(); - 8005aec: f7fe ff6e bl 80049cc - 8005af0: 61f8 str r0, [r7, #28] - break; - 8005af2: e014 b.n 8005b1e - case UART_CLOCKSOURCE_PCLK2: - pclk = HAL_RCC_GetPCLK2Freq(); - 8005af4: f7fe ff80 bl 80049f8 - 8005af8: 61f8 str r0, [r7, #28] - break; - 8005afa: e010 b.n 8005b1e - case UART_CLOCKSOURCE_HSI: - pclk = (uint32_t) HSI_VALUE; - 8005afc: 4b1e ldr r3, [pc, #120] ; (8005b78 ) - 8005afe: 61fb str r3, [r7, #28] - break; - 8005b00: e00d b.n 8005b1e - case UART_CLOCKSOURCE_SYSCLK: - pclk = HAL_RCC_GetSysClockFreq(); - 8005b02: f7fe fecb bl 800489c - 8005b06: 61f8 str r0, [r7, #28] - break; - 8005b08: e009 b.n 8005b1e - case UART_CLOCKSOURCE_LSE: - pclk = (uint32_t) LSE_VALUE; - 8005b0a: f44f 4300 mov.w r3, #32768 ; 0x8000 - 8005b0e: 61fb str r3, [r7, #28] - break; - 8005b10: e005 b.n 8005b1e - default: - pclk = 0U; - 8005b12: 2300 movs r3, #0 - 8005b14: 61fb str r3, [r7, #28] - ret = HAL_ERROR; - 8005b16: 2301 movs r3, #1 - 8005b18: f887 3022 strb.w r3, [r7, #34] ; 0x22 - break; - 8005b1c: bf00 nop - } - - if (pclk != 0U) - 8005b1e: 69fb ldr r3, [r7, #28] - 8005b20: 2b00 cmp r3, #0 - 8005b22: d019 beq.n 8005b58 - { - /* USARTDIV must be greater than or equal to 0d16 */ -#if defined(USART_PRESC_PRESCALER) - usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); -#else - usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate)); - 8005b24: 68fb ldr r3, [r7, #12] - 8005b26: 685b ldr r3, [r3, #4] - 8005b28: 085a lsrs r2, r3, #1 - 8005b2a: 69fb ldr r3, [r7, #28] - 8005b2c: 441a add r2, r3 - 8005b2e: 68fb ldr r3, [r7, #12] - 8005b30: 685b ldr r3, [r3, #4] - 8005b32: fbb2 f3f3 udiv r3, r2, r3 - 8005b36: 61bb str r3, [r7, #24] -#endif /* USART_PRESC_PRESCALER */ - if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) - 8005b38: 69bb ldr r3, [r7, #24] - 8005b3a: 2b0f cmp r3, #15 - 8005b3c: d909 bls.n 8005b52 - 8005b3e: 69bb ldr r3, [r7, #24] - 8005b40: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 8005b44: d205 bcs.n 8005b52 - { - huart->Instance->BRR = (uint16_t)usartdiv; - 8005b46: 69bb ldr r3, [r7, #24] - 8005b48: b29a uxth r2, r3 - 8005b4a: 68fb ldr r3, [r7, #12] - 8005b4c: 681b ldr r3, [r3, #0] - 8005b4e: 60da str r2, [r3, #12] - 8005b50: e002 b.n 8005b58 - } - else - { - ret = HAL_ERROR; - 8005b52: 2301 movs r3, #1 - 8005b54: f887 3022 strb.w r3, [r7, #34] ; 0x22 - huart->NbTxDataToProcess = 1; - huart->NbRxDataToProcess = 1; -#endif /* USART_CR1_FIFOEN */ - - /* Clear ISR function pointers */ - huart->RxISR = NULL; - 8005b58: 68fb ldr r3, [r7, #12] - 8005b5a: 2200 movs r2, #0 - 8005b5c: 669a str r2, [r3, #104] ; 0x68 - huart->TxISR = NULL; - 8005b5e: 68fb ldr r3, [r7, #12] - 8005b60: 2200 movs r2, #0 - 8005b62: 66da str r2, [r3, #108] ; 0x6c - - return ret; - 8005b64: f897 3022 ldrb.w r3, [r7, #34] ; 0x22 -} - 8005b68: 4618 mov r0, r3 - 8005b6a: 3728 adds r7, #40 ; 0x28 - 8005b6c: 46bd mov sp, r7 - 8005b6e: e8bd 8fb0 ldmia.w sp!, {r4, r5, r7, r8, r9, sl, fp, pc} - 8005b72: bf00 nop - 8005b74: 40008000 .word 0x40008000 - 8005b78: 00f42400 .word 0x00f42400 - -08005b7c : - * @brief Configure the UART peripheral advanced features. - * @param huart UART handle. - * @retval None - */ -void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) -{ - 8005b7c: b480 push {r7} - 8005b7e: b083 sub sp, #12 - 8005b80: af00 add r7, sp, #0 - 8005b82: 6078 str r0, [r7, #4] - /* Check whether the set of advanced features to configure is properly set */ - assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); - - /* if required, configure RX/TX pins swap */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) - 8005b84: 687b ldr r3, [r7, #4] - 8005b86: 6a5b ldr r3, [r3, #36] ; 0x24 - 8005b88: f003 0308 and.w r3, r3, #8 - 8005b8c: 2b00 cmp r3, #0 - 8005b8e: d00a beq.n 8005ba6 - { - assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); - 8005b90: 687b ldr r3, [r7, #4] - 8005b92: 681b ldr r3, [r3, #0] - 8005b94: 685b ldr r3, [r3, #4] - 8005b96: f423 4100 bic.w r1, r3, #32768 ; 0x8000 - 8005b9a: 687b ldr r3, [r7, #4] - 8005b9c: 6b5a ldr r2, [r3, #52] ; 0x34 - 8005b9e: 687b ldr r3, [r7, #4] - 8005ba0: 681b ldr r3, [r3, #0] - 8005ba2: 430a orrs r2, r1 - 8005ba4: 605a str r2, [r3, #4] - } - - /* if required, configure TX pin active level inversion */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) - 8005ba6: 687b ldr r3, [r7, #4] - 8005ba8: 6a5b ldr r3, [r3, #36] ; 0x24 - 8005baa: f003 0301 and.w r3, r3, #1 - 8005bae: 2b00 cmp r3, #0 - 8005bb0: d00a beq.n 8005bc8 - { - assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); - 8005bb2: 687b ldr r3, [r7, #4] - 8005bb4: 681b ldr r3, [r3, #0] - 8005bb6: 685b ldr r3, [r3, #4] - 8005bb8: f423 3100 bic.w r1, r3, #131072 ; 0x20000 - 8005bbc: 687b ldr r3, [r7, #4] - 8005bbe: 6a9a ldr r2, [r3, #40] ; 0x28 - 8005bc0: 687b ldr r3, [r7, #4] - 8005bc2: 681b ldr r3, [r3, #0] - 8005bc4: 430a orrs r2, r1 - 8005bc6: 605a str r2, [r3, #4] - } - - /* if required, configure RX pin active level inversion */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) - 8005bc8: 687b ldr r3, [r7, #4] - 8005bca: 6a5b ldr r3, [r3, #36] ; 0x24 - 8005bcc: f003 0302 and.w r3, r3, #2 - 8005bd0: 2b00 cmp r3, #0 - 8005bd2: d00a beq.n 8005bea - { - assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); - 8005bd4: 687b ldr r3, [r7, #4] - 8005bd6: 681b ldr r3, [r3, #0] - 8005bd8: 685b ldr r3, [r3, #4] - 8005bda: f423 3180 bic.w r1, r3, #65536 ; 0x10000 - 8005bde: 687b ldr r3, [r7, #4] - 8005be0: 6ada ldr r2, [r3, #44] ; 0x2c - 8005be2: 687b ldr r3, [r7, #4] - 8005be4: 681b ldr r3, [r3, #0] - 8005be6: 430a orrs r2, r1 - 8005be8: 605a str r2, [r3, #4] - } - - /* if required, configure data inversion */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) - 8005bea: 687b ldr r3, [r7, #4] - 8005bec: 6a5b ldr r3, [r3, #36] ; 0x24 - 8005bee: f003 0304 and.w r3, r3, #4 - 8005bf2: 2b00 cmp r3, #0 - 8005bf4: d00a beq.n 8005c0c - { - assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); - 8005bf6: 687b ldr r3, [r7, #4] - 8005bf8: 681b ldr r3, [r3, #0] - 8005bfa: 685b ldr r3, [r3, #4] - 8005bfc: f423 2180 bic.w r1, r3, #262144 ; 0x40000 - 8005c00: 687b ldr r3, [r7, #4] - 8005c02: 6b1a ldr r2, [r3, #48] ; 0x30 - 8005c04: 687b ldr r3, [r7, #4] - 8005c06: 681b ldr r3, [r3, #0] - 8005c08: 430a orrs r2, r1 - 8005c0a: 605a str r2, [r3, #4] - } - - /* if required, configure RX overrun detection disabling */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) - 8005c0c: 687b ldr r3, [r7, #4] - 8005c0e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8005c10: f003 0310 and.w r3, r3, #16 - 8005c14: 2b00 cmp r3, #0 - 8005c16: d00a beq.n 8005c2e - { - assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); - MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); - 8005c18: 687b ldr r3, [r7, #4] - 8005c1a: 681b ldr r3, [r3, #0] - 8005c1c: 689b ldr r3, [r3, #8] - 8005c1e: f423 5180 bic.w r1, r3, #4096 ; 0x1000 - 8005c22: 687b ldr r3, [r7, #4] - 8005c24: 6b9a ldr r2, [r3, #56] ; 0x38 - 8005c26: 687b ldr r3, [r7, #4] - 8005c28: 681b ldr r3, [r3, #0] - 8005c2a: 430a orrs r2, r1 - 8005c2c: 609a str r2, [r3, #8] - } - - /* if required, configure DMA disabling on reception error */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) - 8005c2e: 687b ldr r3, [r7, #4] - 8005c30: 6a5b ldr r3, [r3, #36] ; 0x24 - 8005c32: f003 0320 and.w r3, r3, #32 - 8005c36: 2b00 cmp r3, #0 - 8005c38: d00a beq.n 8005c50 - { - assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); - MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); - 8005c3a: 687b ldr r3, [r7, #4] - 8005c3c: 681b ldr r3, [r3, #0] - 8005c3e: 689b ldr r3, [r3, #8] - 8005c40: f423 5100 bic.w r1, r3, #8192 ; 0x2000 - 8005c44: 687b ldr r3, [r7, #4] - 8005c46: 6bda ldr r2, [r3, #60] ; 0x3c - 8005c48: 687b ldr r3, [r7, #4] - 8005c4a: 681b ldr r3, [r3, #0] - 8005c4c: 430a orrs r2, r1 - 8005c4e: 609a str r2, [r3, #8] - } - - /* if required, configure auto Baud rate detection scheme */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) - 8005c50: 687b ldr r3, [r7, #4] - 8005c52: 6a5b ldr r3, [r3, #36] ; 0x24 - 8005c54: f003 0340 and.w r3, r3, #64 ; 0x40 - 8005c58: 2b00 cmp r3, #0 - 8005c5a: d01a beq.n 8005c92 - { - assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); - assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); - 8005c5c: 687b ldr r3, [r7, #4] - 8005c5e: 681b ldr r3, [r3, #0] - 8005c60: 685b ldr r3, [r3, #4] - 8005c62: f423 1180 bic.w r1, r3, #1048576 ; 0x100000 - 8005c66: 687b ldr r3, [r7, #4] - 8005c68: 6c1a ldr r2, [r3, #64] ; 0x40 - 8005c6a: 687b ldr r3, [r7, #4] - 8005c6c: 681b ldr r3, [r3, #0] - 8005c6e: 430a orrs r2, r1 - 8005c70: 605a str r2, [r3, #4] - /* set auto Baudrate detection parameters if detection is enabled */ - if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) - 8005c72: 687b ldr r3, [r7, #4] - 8005c74: 6c1b ldr r3, [r3, #64] ; 0x40 - 8005c76: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 - 8005c7a: d10a bne.n 8005c92 - { - assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); - 8005c7c: 687b ldr r3, [r7, #4] - 8005c7e: 681b ldr r3, [r3, #0] - 8005c80: 685b ldr r3, [r3, #4] - 8005c82: f423 01c0 bic.w r1, r3, #6291456 ; 0x600000 - 8005c86: 687b ldr r3, [r7, #4] - 8005c88: 6c5a ldr r2, [r3, #68] ; 0x44 - 8005c8a: 687b ldr r3, [r7, #4] - 8005c8c: 681b ldr r3, [r3, #0] - 8005c8e: 430a orrs r2, r1 - 8005c90: 605a str r2, [r3, #4] - } - } - - /* if required, configure MSB first on communication line */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) - 8005c92: 687b ldr r3, [r7, #4] - 8005c94: 6a5b ldr r3, [r3, #36] ; 0x24 - 8005c96: f003 0380 and.w r3, r3, #128 ; 0x80 - 8005c9a: 2b00 cmp r3, #0 - 8005c9c: d00a beq.n 8005cb4 - { - assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); - 8005c9e: 687b ldr r3, [r7, #4] - 8005ca0: 681b ldr r3, [r3, #0] - 8005ca2: 685b ldr r3, [r3, #4] - 8005ca4: f423 2100 bic.w r1, r3, #524288 ; 0x80000 - 8005ca8: 687b ldr r3, [r7, #4] - 8005caa: 6c9a ldr r2, [r3, #72] ; 0x48 - 8005cac: 687b ldr r3, [r7, #4] - 8005cae: 681b ldr r3, [r3, #0] - 8005cb0: 430a orrs r2, r1 - 8005cb2: 605a str r2, [r3, #4] - } -} - 8005cb4: bf00 nop - 8005cb6: 370c adds r7, #12 - 8005cb8: 46bd mov sp, r7 - 8005cba: f85d 7b04 ldr.w r7, [sp], #4 - 8005cbe: 4770 bx lr - -08005cc0 : - * @brief Check the UART Idle State. - * @param huart UART handle. - * @retval HAL status - */ -HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) -{ - 8005cc0: b580 push {r7, lr} - 8005cc2: b098 sub sp, #96 ; 0x60 - 8005cc4: af02 add r7, sp, #8 - 8005cc6: 6078 str r0, [r7, #4] - uint32_t tickstart; - - /* Initialize the UART ErrorCode */ - huart->ErrorCode = HAL_UART_ERROR_NONE; - 8005cc8: 687b ldr r3, [r7, #4] - 8005cca: 2200 movs r2, #0 - 8005ccc: f8c3 2084 str.w r2, [r3, #132] ; 0x84 - - /* Init tickstart for timeout management */ - tickstart = HAL_GetTick(); - 8005cd0: f7fc f81a bl 8001d08 - 8005cd4: 6578 str r0, [r7, #84] ; 0x54 - - /* Check if the Transmitter is enabled */ - if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) - 8005cd6: 687b ldr r3, [r7, #4] - 8005cd8: 681b ldr r3, [r3, #0] - 8005cda: 681b ldr r3, [r3, #0] - 8005cdc: f003 0308 and.w r3, r3, #8 - 8005ce0: 2b08 cmp r3, #8 - 8005ce2: d12e bne.n 8005d42 - { - /* Wait until TEACK flag is set */ - if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) - 8005ce4: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 - 8005ce8: 9300 str r3, [sp, #0] - 8005cea: 6d7b ldr r3, [r7, #84] ; 0x54 - 8005cec: 2200 movs r2, #0 - 8005cee: f44f 1100 mov.w r1, #2097152 ; 0x200000 - 8005cf2: 6878 ldr r0, [r7, #4] - 8005cf4: f000 f88c bl 8005e10 - 8005cf8: 4603 mov r3, r0 - 8005cfa: 2b00 cmp r3, #0 - 8005cfc: d021 beq.n 8005d42 - { - /* Disable TXE interrupt for the interrupt process */ -#if defined(USART_CR1_FIFOEN) - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); -#else - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE)); - 8005cfe: 687b ldr r3, [r7, #4] - 8005d00: 681b ldr r3, [r3, #0] - 8005d02: 63bb str r3, [r7, #56] ; 0x38 - */ -__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) -{ - uint32_t result; - - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 8005d04: 6bbb ldr r3, [r7, #56] ; 0x38 - 8005d06: e853 3f00 ldrex r3, [r3] - 8005d0a: 637b str r3, [r7, #52] ; 0x34 - return(result); - 8005d0c: 6b7b ldr r3, [r7, #52] ; 0x34 - 8005d0e: f023 0380 bic.w r3, r3, #128 ; 0x80 - 8005d12: 653b str r3, [r7, #80] ; 0x50 - 8005d14: 687b ldr r3, [r7, #4] - 8005d16: 681b ldr r3, [r3, #0] - 8005d18: 461a mov r2, r3 - 8005d1a: 6d3b ldr r3, [r7, #80] ; 0x50 - 8005d1c: 647b str r3, [r7, #68] ; 0x44 - 8005d1e: 643a str r2, [r7, #64] ; 0x40 - */ -__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) -{ - uint32_t result; - - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 8005d20: 6c39 ldr r1, [r7, #64] ; 0x40 - 8005d22: 6c7a ldr r2, [r7, #68] ; 0x44 - 8005d24: e841 2300 strex r3, r2, [r1] - 8005d28: 63fb str r3, [r7, #60] ; 0x3c - return(result); - 8005d2a: 6bfb ldr r3, [r7, #60] ; 0x3c - 8005d2c: 2b00 cmp r3, #0 - 8005d2e: d1e6 bne.n 8005cfe -#endif /* USART_CR1_FIFOEN */ - - huart->gState = HAL_UART_STATE_READY; - 8005d30: 687b ldr r3, [r7, #4] - 8005d32: 2220 movs r2, #32 - 8005d34: 67da str r2, [r3, #124] ; 0x7c - - __HAL_UNLOCK(huart); - 8005d36: 687b ldr r3, [r7, #4] - 8005d38: 2200 movs r2, #0 - 8005d3a: f883 2078 strb.w r2, [r3, #120] ; 0x78 - - /* Timeout occurred */ - return HAL_TIMEOUT; - 8005d3e: 2303 movs r3, #3 - 8005d40: e062 b.n 8005e08 - } - } - - /* Check if the Receiver is enabled */ - if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) - 8005d42: 687b ldr r3, [r7, #4] - 8005d44: 681b ldr r3, [r3, #0] - 8005d46: 681b ldr r3, [r3, #0] - 8005d48: f003 0304 and.w r3, r3, #4 - 8005d4c: 2b04 cmp r3, #4 - 8005d4e: d149 bne.n 8005de4 - { - /* Wait until REACK flag is set */ - if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) - 8005d50: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 - 8005d54: 9300 str r3, [sp, #0] - 8005d56: 6d7b ldr r3, [r7, #84] ; 0x54 - 8005d58: 2200 movs r2, #0 - 8005d5a: f44f 0180 mov.w r1, #4194304 ; 0x400000 - 8005d5e: 6878 ldr r0, [r7, #4] - 8005d60: f000 f856 bl 8005e10 - 8005d64: 4603 mov r3, r0 - 8005d66: 2b00 cmp r3, #0 - 8005d68: d03c beq.n 8005de4 - /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) - interrupts for the interrupt process */ -#if defined(USART_CR1_FIFOEN) - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); -#else - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); - 8005d6a: 687b ldr r3, [r7, #4] - 8005d6c: 681b ldr r3, [r3, #0] - 8005d6e: 627b str r3, [r7, #36] ; 0x24 - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 8005d70: 6a7b ldr r3, [r7, #36] ; 0x24 - 8005d72: e853 3f00 ldrex r3, [r3] - 8005d76: 623b str r3, [r7, #32] - return(result); - 8005d78: 6a3b ldr r3, [r7, #32] - 8005d7a: f423 7390 bic.w r3, r3, #288 ; 0x120 - 8005d7e: 64fb str r3, [r7, #76] ; 0x4c - 8005d80: 687b ldr r3, [r7, #4] - 8005d82: 681b ldr r3, [r3, #0] - 8005d84: 461a mov r2, r3 - 8005d86: 6cfb ldr r3, [r7, #76] ; 0x4c - 8005d88: 633b str r3, [r7, #48] ; 0x30 - 8005d8a: 62fa str r2, [r7, #44] ; 0x2c - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 8005d8c: 6af9 ldr r1, [r7, #44] ; 0x2c - 8005d8e: 6b3a ldr r2, [r7, #48] ; 0x30 - 8005d90: e841 2300 strex r3, r2, [r1] - 8005d94: 62bb str r3, [r7, #40] ; 0x28 - return(result); - 8005d96: 6abb ldr r3, [r7, #40] ; 0x28 - 8005d98: 2b00 cmp r3, #0 - 8005d9a: d1e6 bne.n 8005d6a -#endif /* USART_CR1_FIFOEN */ - ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); - 8005d9c: 687b ldr r3, [r7, #4] - 8005d9e: 681b ldr r3, [r3, #0] - 8005da0: 3308 adds r3, #8 - 8005da2: 613b str r3, [r7, #16] - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 8005da4: 693b ldr r3, [r7, #16] - 8005da6: e853 3f00 ldrex r3, [r3] - 8005daa: 60fb str r3, [r7, #12] - return(result); - 8005dac: 68fb ldr r3, [r7, #12] - 8005dae: f023 0301 bic.w r3, r3, #1 - 8005db2: 64bb str r3, [r7, #72] ; 0x48 - 8005db4: 687b ldr r3, [r7, #4] - 8005db6: 681b ldr r3, [r3, #0] - 8005db8: 3308 adds r3, #8 - 8005dba: 6cba ldr r2, [r7, #72] ; 0x48 - 8005dbc: 61fa str r2, [r7, #28] - 8005dbe: 61bb str r3, [r7, #24] - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 8005dc0: 69b9 ldr r1, [r7, #24] - 8005dc2: 69fa ldr r2, [r7, #28] - 8005dc4: e841 2300 strex r3, r2, [r1] - 8005dc8: 617b str r3, [r7, #20] - return(result); - 8005dca: 697b ldr r3, [r7, #20] - 8005dcc: 2b00 cmp r3, #0 - 8005dce: d1e5 bne.n 8005d9c - - huart->RxState = HAL_UART_STATE_READY; - 8005dd0: 687b ldr r3, [r7, #4] - 8005dd2: 2220 movs r2, #32 - 8005dd4: f8c3 2080 str.w r2, [r3, #128] ; 0x80 - - __HAL_UNLOCK(huart); - 8005dd8: 687b ldr r3, [r7, #4] - 8005dda: 2200 movs r2, #0 - 8005ddc: f883 2078 strb.w r2, [r3, #120] ; 0x78 - - /* Timeout occurred */ - return HAL_TIMEOUT; - 8005de0: 2303 movs r3, #3 - 8005de2: e011 b.n 8005e08 - } - } - - /* Initialize the UART State */ - huart->gState = HAL_UART_STATE_READY; - 8005de4: 687b ldr r3, [r7, #4] - 8005de6: 2220 movs r2, #32 - 8005de8: 67da str r2, [r3, #124] ; 0x7c - huart->RxState = HAL_UART_STATE_READY; - 8005dea: 687b ldr r3, [r7, #4] - 8005dec: 2220 movs r2, #32 - 8005dee: f8c3 2080 str.w r2, [r3, #128] ; 0x80 - huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; - 8005df2: 687b ldr r3, [r7, #4] - 8005df4: 2200 movs r2, #0 - 8005df6: 661a str r2, [r3, #96] ; 0x60 - huart->RxEventType = HAL_UART_RXEVENT_TC; - 8005df8: 687b ldr r3, [r7, #4] - 8005dfa: 2200 movs r2, #0 - 8005dfc: 665a str r2, [r3, #100] ; 0x64 - - __HAL_UNLOCK(huart); - 8005dfe: 687b ldr r3, [r7, #4] - 8005e00: 2200 movs r2, #0 - 8005e02: f883 2078 strb.w r2, [r3, #120] ; 0x78 - - return HAL_OK; - 8005e06: 2300 movs r3, #0 -} - 8005e08: 4618 mov r0, r3 - 8005e0a: 3758 adds r7, #88 ; 0x58 - 8005e0c: 46bd mov sp, r7 - 8005e0e: bd80 pop {r7, pc} - -08005e10 : - * @param Timeout Timeout duration - * @retval HAL status - */ -HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, - uint32_t Tickstart, uint32_t Timeout) -{ - 8005e10: b580 push {r7, lr} - 8005e12: b084 sub sp, #16 - 8005e14: af00 add r7, sp, #0 - 8005e16: 60f8 str r0, [r7, #12] - 8005e18: 60b9 str r1, [r7, #8] - 8005e1a: 603b str r3, [r7, #0] - 8005e1c: 4613 mov r3, r2 - 8005e1e: 71fb strb r3, [r7, #7] - /* Wait until flag is set */ - while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) - 8005e20: e049 b.n 8005eb6 - { - /* Check for the Timeout */ - if (Timeout != HAL_MAX_DELAY) - 8005e22: 69bb ldr r3, [r7, #24] - 8005e24: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 8005e28: d045 beq.n 8005eb6 - { - if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8005e2a: f7fb ff6d bl 8001d08 - 8005e2e: 4602 mov r2, r0 - 8005e30: 683b ldr r3, [r7, #0] - 8005e32: 1ad3 subs r3, r2, r3 - 8005e34: 69ba ldr r2, [r7, #24] - 8005e36: 429a cmp r2, r3 - 8005e38: d302 bcc.n 8005e40 - 8005e3a: 69bb ldr r3, [r7, #24] - 8005e3c: 2b00 cmp r3, #0 - 8005e3e: d101 bne.n 8005e44 - { - - return HAL_TIMEOUT; - 8005e40: 2303 movs r3, #3 - 8005e42: e048 b.n 8005ed6 - } - - if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) - 8005e44: 68fb ldr r3, [r7, #12] - 8005e46: 681b ldr r3, [r3, #0] - 8005e48: 681b ldr r3, [r3, #0] - 8005e4a: f003 0304 and.w r3, r3, #4 - 8005e4e: 2b00 cmp r3, #0 - 8005e50: d031 beq.n 8005eb6 - { - if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) - 8005e52: 68fb ldr r3, [r7, #12] - 8005e54: 681b ldr r3, [r3, #0] - 8005e56: 69db ldr r3, [r3, #28] - 8005e58: f003 0308 and.w r3, r3, #8 - 8005e5c: 2b08 cmp r3, #8 - 8005e5e: d110 bne.n 8005e82 - { - /* Clear Overrun Error flag*/ - __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); - 8005e60: 68fb ldr r3, [r7, #12] - 8005e62: 681b ldr r3, [r3, #0] - 8005e64: 2208 movs r2, #8 - 8005e66: 621a str r2, [r3, #32] - - /* Blocking error : transfer is aborted - Set the UART state ready to be able to start again the process, - Disable Rx Interrupts if ongoing */ - UART_EndRxTransfer(huart); - 8005e68: 68f8 ldr r0, [r7, #12] - 8005e6a: f000 f838 bl 8005ede - - huart->ErrorCode = HAL_UART_ERROR_ORE; - 8005e6e: 68fb ldr r3, [r7, #12] - 8005e70: 2208 movs r2, #8 - 8005e72: f8c3 2084 str.w r2, [r3, #132] ; 0x84 - - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 8005e76: 68fb ldr r3, [r7, #12] - 8005e78: 2200 movs r2, #0 - 8005e7a: f883 2078 strb.w r2, [r3, #120] ; 0x78 - - return HAL_ERROR; - 8005e7e: 2301 movs r3, #1 - 8005e80: e029 b.n 8005ed6 - } - if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) - 8005e82: 68fb ldr r3, [r7, #12] - 8005e84: 681b ldr r3, [r3, #0] - 8005e86: 69db ldr r3, [r3, #28] - 8005e88: f403 6300 and.w r3, r3, #2048 ; 0x800 - 8005e8c: f5b3 6f00 cmp.w r3, #2048 ; 0x800 - 8005e90: d111 bne.n 8005eb6 - { - /* Clear Receiver Timeout flag*/ - __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); - 8005e92: 68fb ldr r3, [r7, #12] - 8005e94: 681b ldr r3, [r3, #0] - 8005e96: f44f 6200 mov.w r2, #2048 ; 0x800 - 8005e9a: 621a str r2, [r3, #32] - - /* Blocking error : transfer is aborted - Set the UART state ready to be able to start again the process, - Disable Rx Interrupts if ongoing */ - UART_EndRxTransfer(huart); - 8005e9c: 68f8 ldr r0, [r7, #12] - 8005e9e: f000 f81e bl 8005ede - - huart->ErrorCode = HAL_UART_ERROR_RTO; - 8005ea2: 68fb ldr r3, [r7, #12] - 8005ea4: 2220 movs r2, #32 - 8005ea6: f8c3 2084 str.w r2, [r3, #132] ; 0x84 - - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 8005eaa: 68fb ldr r3, [r7, #12] - 8005eac: 2200 movs r2, #0 - 8005eae: f883 2078 strb.w r2, [r3, #120] ; 0x78 - - return HAL_TIMEOUT; - 8005eb2: 2303 movs r3, #3 - 8005eb4: e00f b.n 8005ed6 - while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) - 8005eb6: 68fb ldr r3, [r7, #12] - 8005eb8: 681b ldr r3, [r3, #0] - 8005eba: 69da ldr r2, [r3, #28] - 8005ebc: 68bb ldr r3, [r7, #8] - 8005ebe: 4013 ands r3, r2 - 8005ec0: 68ba ldr r2, [r7, #8] - 8005ec2: 429a cmp r2, r3 - 8005ec4: bf0c ite eq - 8005ec6: 2301 moveq r3, #1 - 8005ec8: 2300 movne r3, #0 - 8005eca: b2db uxtb r3, r3 - 8005ecc: 461a mov r2, r3 - 8005ece: 79fb ldrb r3, [r7, #7] - 8005ed0: 429a cmp r2, r3 - 8005ed2: d0a6 beq.n 8005e22 - } - } - } - } - return HAL_OK; - 8005ed4: 2300 movs r3, #0 -} - 8005ed6: 4618 mov r0, r3 - 8005ed8: 3710 adds r7, #16 - 8005eda: 46bd mov sp, r7 - 8005edc: bd80 pop {r7, pc} - -08005ede : - * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion). - * @param huart UART handle. - * @retval None - */ -static void UART_EndRxTransfer(UART_HandleTypeDef *huart) -{ - 8005ede: b480 push {r7} - 8005ee0: b095 sub sp, #84 ; 0x54 - 8005ee2: af00 add r7, sp, #0 - 8005ee4: 6078 str r0, [r7, #4] - /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ -#if defined(USART_CR1_FIFOEN) - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); - ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); -#else - ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); - 8005ee6: 687b ldr r3, [r7, #4] - 8005ee8: 681b ldr r3, [r3, #0] - 8005eea: 637b str r3, [r7, #52] ; 0x34 - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 8005eec: 6b7b ldr r3, [r7, #52] ; 0x34 - 8005eee: e853 3f00 ldrex r3, [r3] - 8005ef2: 633b str r3, [r7, #48] ; 0x30 - return(result); - 8005ef4: 6b3b ldr r3, [r7, #48] ; 0x30 - 8005ef6: f423 7390 bic.w r3, r3, #288 ; 0x120 - 8005efa: 64fb str r3, [r7, #76] ; 0x4c - 8005efc: 687b ldr r3, [r7, #4] - 8005efe: 681b ldr r3, [r3, #0] - 8005f00: 461a mov r2, r3 - 8005f02: 6cfb ldr r3, [r7, #76] ; 0x4c - 8005f04: 643b str r3, [r7, #64] ; 0x40 - 8005f06: 63fa str r2, [r7, #60] ; 0x3c - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 8005f08: 6bf9 ldr r1, [r7, #60] ; 0x3c - 8005f0a: 6c3a ldr r2, [r7, #64] ; 0x40 - 8005f0c: e841 2300 strex r3, r2, [r1] - 8005f10: 63bb str r3, [r7, #56] ; 0x38 - return(result); - 8005f12: 6bbb ldr r3, [r7, #56] ; 0x38 - 8005f14: 2b00 cmp r3, #0 - 8005f16: d1e6 bne.n 8005ee6 - ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); - 8005f18: 687b ldr r3, [r7, #4] - 8005f1a: 681b ldr r3, [r3, #0] - 8005f1c: 3308 adds r3, #8 - 8005f1e: 623b str r3, [r7, #32] - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 8005f20: 6a3b ldr r3, [r7, #32] - 8005f22: e853 3f00 ldrex r3, [r3] - 8005f26: 61fb str r3, [r7, #28] - return(result); - 8005f28: 69fb ldr r3, [r7, #28] - 8005f2a: f023 0301 bic.w r3, r3, #1 - 8005f2e: 64bb str r3, [r7, #72] ; 0x48 - 8005f30: 687b ldr r3, [r7, #4] - 8005f32: 681b ldr r3, [r3, #0] - 8005f34: 3308 adds r3, #8 - 8005f36: 6cba ldr r2, [r7, #72] ; 0x48 - 8005f38: 62fa str r2, [r7, #44] ; 0x2c - 8005f3a: 62bb str r3, [r7, #40] ; 0x28 - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 8005f3c: 6ab9 ldr r1, [r7, #40] ; 0x28 - 8005f3e: 6afa ldr r2, [r7, #44] ; 0x2c - 8005f40: e841 2300 strex r3, r2, [r1] - 8005f44: 627b str r3, [r7, #36] ; 0x24 - return(result); - 8005f46: 6a7b ldr r3, [r7, #36] ; 0x24 - 8005f48: 2b00 cmp r3, #0 - 8005f4a: d1e5 bne.n 8005f18 -#endif /* USART_CR1_FIFOEN */ - - /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ - if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) - 8005f4c: 687b ldr r3, [r7, #4] - 8005f4e: 6e1b ldr r3, [r3, #96] ; 0x60 - 8005f50: 2b01 cmp r3, #1 - 8005f52: d118 bne.n 8005f86 - { - ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); - 8005f54: 687b ldr r3, [r7, #4] - 8005f56: 681b ldr r3, [r3, #0] - 8005f58: 60fb str r3, [r7, #12] - __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); - 8005f5a: 68fb ldr r3, [r7, #12] - 8005f5c: e853 3f00 ldrex r3, [r3] - 8005f60: 60bb str r3, [r7, #8] - return(result); - 8005f62: 68bb ldr r3, [r7, #8] - 8005f64: f023 0310 bic.w r3, r3, #16 - 8005f68: 647b str r3, [r7, #68] ; 0x44 - 8005f6a: 687b ldr r3, [r7, #4] - 8005f6c: 681b ldr r3, [r3, #0] - 8005f6e: 461a mov r2, r3 - 8005f70: 6c7b ldr r3, [r7, #68] ; 0x44 - 8005f72: 61bb str r3, [r7, #24] - 8005f74: 617a str r2, [r7, #20] - __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); - 8005f76: 6979 ldr r1, [r7, #20] - 8005f78: 69ba ldr r2, [r7, #24] - 8005f7a: e841 2300 strex r3, r2, [r1] - 8005f7e: 613b str r3, [r7, #16] - return(result); - 8005f80: 693b ldr r3, [r7, #16] - 8005f82: 2b00 cmp r3, #0 - 8005f84: d1e6 bne.n 8005f54 - } - - /* At end of Rx process, restore huart->RxState to Ready */ - huart->RxState = HAL_UART_STATE_READY; - 8005f86: 687b ldr r3, [r7, #4] - 8005f88: 2220 movs r2, #32 - 8005f8a: f8c3 2080 str.w r2, [r3, #128] ; 0x80 - huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; - 8005f8e: 687b ldr r3, [r7, #4] - 8005f90: 2200 movs r2, #0 - 8005f92: 661a str r2, [r3, #96] ; 0x60 - - /* Reset RxIsr function pointer */ - huart->RxISR = NULL; - 8005f94: 687b ldr r3, [r7, #4] - 8005f96: 2200 movs r2, #0 - 8005f98: 669a str r2, [r3, #104] ; 0x68 -} - 8005f9a: bf00 nop - 8005f9c: 3754 adds r7, #84 ; 0x54 - 8005f9e: 46bd mov sp, r7 - 8005fa0: f85d 7b04 ldr.w r7, [sp], #4 - 8005fa4: 4770 bx lr - ... - -08005fa8 : - 8005fa8: 2300 movs r3, #0 - 8005faa: b510 push {r4, lr} - 8005fac: 4604 mov r4, r0 - 8005fae: e9c0 3300 strd r3, r3, [r0] - 8005fb2: e9c0 3304 strd r3, r3, [r0, #16] - 8005fb6: 6083 str r3, [r0, #8] - 8005fb8: 8181 strh r1, [r0, #12] - 8005fba: 6643 str r3, [r0, #100] ; 0x64 - 8005fbc: 81c2 strh r2, [r0, #14] - 8005fbe: 6183 str r3, [r0, #24] - 8005fc0: 4619 mov r1, r3 - 8005fc2: 2208 movs r2, #8 - 8005fc4: 305c adds r0, #92 ; 0x5c - 8005fc6: f000 f91f bl 8006208 - 8005fca: 4b0d ldr r3, [pc, #52] ; (8006000 ) - 8005fcc: 6263 str r3, [r4, #36] ; 0x24 - 8005fce: 4b0d ldr r3, [pc, #52] ; (8006004 ) - 8005fd0: 62a3 str r3, [r4, #40] ; 0x28 - 8005fd2: 4b0d ldr r3, [pc, #52] ; (8006008 ) - 8005fd4: 62e3 str r3, [r4, #44] ; 0x2c - 8005fd6: 4b0d ldr r3, [pc, #52] ; (800600c ) - 8005fd8: 6323 str r3, [r4, #48] ; 0x30 - 8005fda: 4b0d ldr r3, [pc, #52] ; (8006010 ) - 8005fdc: 6224 str r4, [r4, #32] - 8005fde: 429c cmp r4, r3 - 8005fe0: d006 beq.n 8005ff0 - 8005fe2: f103 0268 add.w r2, r3, #104 ; 0x68 - 8005fe6: 4294 cmp r4, r2 - 8005fe8: d002 beq.n 8005ff0 - 8005fea: 33d0 adds r3, #208 ; 0xd0 - 8005fec: 429c cmp r4, r3 - 8005fee: d105 bne.n 8005ffc - 8005ff0: f104 0058 add.w r0, r4, #88 ; 0x58 - 8005ff4: e8bd 4010 ldmia.w sp!, {r4, lr} - 8005ff8: f000 b938 b.w 800626c <__retarget_lock_init_recursive> - 8005ffc: bd10 pop {r4, pc} - 8005ffe: bf00 nop - 8006000: 08006acd .word 0x08006acd - 8006004: 08006aef .word 0x08006aef - 8006008: 08006b27 .word 0x08006b27 - 800600c: 08006b4b .word 0x08006b4b - 8006010: 20000204 .word 0x20000204 - -08006014 : - 8006014: 4a02 ldr r2, [pc, #8] ; (8006020 ) - 8006016: 4903 ldr r1, [pc, #12] ; (8006024 ) - 8006018: 4803 ldr r0, [pc, #12] ; (8006028 ) - 800601a: f000 b869 b.w 80060f0 <_fwalk_sglue> - 800601e: bf00 nop - 8006020: 2000000c .word 0x2000000c - 8006024: 08006a65 .word 0x08006a65 - 8006028: 20000018 .word 0x20000018 - -0800602c : - 800602c: 6841 ldr r1, [r0, #4] - 800602e: 4b0c ldr r3, [pc, #48] ; (8006060 ) - 8006030: 4299 cmp r1, r3 - 8006032: b510 push {r4, lr} - 8006034: 4604 mov r4, r0 - 8006036: d001 beq.n 800603c - 8006038: f000 fd14 bl 8006a64 <_fflush_r> - 800603c: 68a1 ldr r1, [r4, #8] - 800603e: 4b09 ldr r3, [pc, #36] ; (8006064 ) - 8006040: 4299 cmp r1, r3 - 8006042: d002 beq.n 800604a - 8006044: 4620 mov r0, r4 - 8006046: f000 fd0d bl 8006a64 <_fflush_r> - 800604a: 68e1 ldr r1, [r4, #12] - 800604c: 4b06 ldr r3, [pc, #24] ; (8006068 ) - 800604e: 4299 cmp r1, r3 - 8006050: d004 beq.n 800605c - 8006052: 4620 mov r0, r4 - 8006054: e8bd 4010 ldmia.w sp!, {r4, lr} - 8006058: f000 bd04 b.w 8006a64 <_fflush_r> - 800605c: bd10 pop {r4, pc} - 800605e: bf00 nop - 8006060: 20000204 .word 0x20000204 - 8006064: 2000026c .word 0x2000026c - 8006068: 200002d4 .word 0x200002d4 - -0800606c : - 800606c: b510 push {r4, lr} - 800606e: 4b0b ldr r3, [pc, #44] ; (800609c ) - 8006070: 4c0b ldr r4, [pc, #44] ; (80060a0 ) - 8006072: 4a0c ldr r2, [pc, #48] ; (80060a4 ) - 8006074: 601a str r2, [r3, #0] - 8006076: 4620 mov r0, r4 - 8006078: 2200 movs r2, #0 - 800607a: 2104 movs r1, #4 - 800607c: f7ff ff94 bl 8005fa8 - 8006080: f104 0068 add.w r0, r4, #104 ; 0x68 - 8006084: 2201 movs r2, #1 - 8006086: 2109 movs r1, #9 - 8006088: f7ff ff8e bl 8005fa8 - 800608c: f104 00d0 add.w r0, r4, #208 ; 0xd0 - 8006090: 2202 movs r2, #2 - 8006092: e8bd 4010 ldmia.w sp!, {r4, lr} - 8006096: 2112 movs r1, #18 - 8006098: f7ff bf86 b.w 8005fa8 - 800609c: 2000033c .word 0x2000033c - 80060a0: 20000204 .word 0x20000204 - 80060a4: 08006015 .word 0x08006015 - -080060a8 <__sfp_lock_acquire>: - 80060a8: 4801 ldr r0, [pc, #4] ; (80060b0 <__sfp_lock_acquire+0x8>) - 80060aa: f000 b8e0 b.w 800626e <__retarget_lock_acquire_recursive> - 80060ae: bf00 nop - 80060b0: 20000341 .word 0x20000341 - -080060b4 <__sfp_lock_release>: - 80060b4: 4801 ldr r0, [pc, #4] ; (80060bc <__sfp_lock_release+0x8>) - 80060b6: f000 b8db b.w 8006270 <__retarget_lock_release_recursive> - 80060ba: bf00 nop - 80060bc: 20000341 .word 0x20000341 - -080060c0 <__sinit>: - 80060c0: b510 push {r4, lr} - 80060c2: 4604 mov r4, r0 - 80060c4: f7ff fff0 bl 80060a8 <__sfp_lock_acquire> - 80060c8: 6a23 ldr r3, [r4, #32] - 80060ca: b11b cbz r3, 80060d4 <__sinit+0x14> - 80060cc: e8bd 4010 ldmia.w sp!, {r4, lr} - 80060d0: f7ff bff0 b.w 80060b4 <__sfp_lock_release> - 80060d4: 4b04 ldr r3, [pc, #16] ; (80060e8 <__sinit+0x28>) - 80060d6: 6223 str r3, [r4, #32] - 80060d8: 4b04 ldr r3, [pc, #16] ; (80060ec <__sinit+0x2c>) - 80060da: 681b ldr r3, [r3, #0] - 80060dc: 2b00 cmp r3, #0 - 80060de: d1f5 bne.n 80060cc <__sinit+0xc> - 80060e0: f7ff ffc4 bl 800606c - 80060e4: e7f2 b.n 80060cc <__sinit+0xc> - 80060e6: bf00 nop - 80060e8: 0800602d .word 0x0800602d - 80060ec: 2000033c .word 0x2000033c - -080060f0 <_fwalk_sglue>: - 80060f0: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 80060f4: 4607 mov r7, r0 - 80060f6: 4688 mov r8, r1 - 80060f8: 4614 mov r4, r2 - 80060fa: 2600 movs r6, #0 - 80060fc: e9d4 9501 ldrd r9, r5, [r4, #4] - 8006100: f1b9 0901 subs.w r9, r9, #1 - 8006104: d505 bpl.n 8006112 <_fwalk_sglue+0x22> - 8006106: 6824 ldr r4, [r4, #0] - 8006108: 2c00 cmp r4, #0 - 800610a: d1f7 bne.n 80060fc <_fwalk_sglue+0xc> - 800610c: 4630 mov r0, r6 - 800610e: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 8006112: 89ab ldrh r3, [r5, #12] - 8006114: 2b01 cmp r3, #1 - 8006116: d907 bls.n 8006128 <_fwalk_sglue+0x38> - 8006118: f9b5 300e ldrsh.w r3, [r5, #14] - 800611c: 3301 adds r3, #1 - 800611e: d003 beq.n 8006128 <_fwalk_sglue+0x38> - 8006120: 4629 mov r1, r5 - 8006122: 4638 mov r0, r7 - 8006124: 47c0 blx r8 - 8006126: 4306 orrs r6, r0 - 8006128: 3568 adds r5, #104 ; 0x68 - 800612a: e7e9 b.n 8006100 <_fwalk_sglue+0x10> - -0800612c : - 800612c: b40f push {r0, r1, r2, r3} - 800612e: b507 push {r0, r1, r2, lr} - 8006130: 4906 ldr r1, [pc, #24] ; (800614c ) - 8006132: ab04 add r3, sp, #16 - 8006134: 6808 ldr r0, [r1, #0] - 8006136: f853 2b04 ldr.w r2, [r3], #4 - 800613a: 6881 ldr r1, [r0, #8] - 800613c: 9301 str r3, [sp, #4] - 800613e: f000 f8c1 bl 80062c4 <_vfiprintf_r> - 8006142: b003 add sp, #12 - 8006144: f85d eb04 ldr.w lr, [sp], #4 - 8006148: b004 add sp, #16 - 800614a: 4770 bx lr - 800614c: 20000064 .word 0x20000064 - -08006150 <_puts_r>: - 8006150: 6a03 ldr r3, [r0, #32] - 8006152: b570 push {r4, r5, r6, lr} - 8006154: 6884 ldr r4, [r0, #8] - 8006156: 4605 mov r5, r0 - 8006158: 460e mov r6, r1 - 800615a: b90b cbnz r3, 8006160 <_puts_r+0x10> - 800615c: f7ff ffb0 bl 80060c0 <__sinit> - 8006160: 6e63 ldr r3, [r4, #100] ; 0x64 - 8006162: 07db lsls r3, r3, #31 - 8006164: d405 bmi.n 8006172 <_puts_r+0x22> - 8006166: 89a3 ldrh r3, [r4, #12] - 8006168: 0598 lsls r0, r3, #22 - 800616a: d402 bmi.n 8006172 <_puts_r+0x22> - 800616c: 6da0 ldr r0, [r4, #88] ; 0x58 - 800616e: f000 f87e bl 800626e <__retarget_lock_acquire_recursive> - 8006172: 89a3 ldrh r3, [r4, #12] - 8006174: 0719 lsls r1, r3, #28 - 8006176: d513 bpl.n 80061a0 <_puts_r+0x50> - 8006178: 6923 ldr r3, [r4, #16] - 800617a: b18b cbz r3, 80061a0 <_puts_r+0x50> - 800617c: 3e01 subs r6, #1 - 800617e: 68a3 ldr r3, [r4, #8] - 8006180: f816 1f01 ldrb.w r1, [r6, #1]! - 8006184: 3b01 subs r3, #1 - 8006186: 60a3 str r3, [r4, #8] - 8006188: b9e9 cbnz r1, 80061c6 <_puts_r+0x76> - 800618a: 2b00 cmp r3, #0 - 800618c: da2e bge.n 80061ec <_puts_r+0x9c> - 800618e: 4622 mov r2, r4 - 8006190: 210a movs r1, #10 - 8006192: 4628 mov r0, r5 - 8006194: f000 fcdd bl 8006b52 <__swbuf_r> - 8006198: 3001 adds r0, #1 - 800619a: d007 beq.n 80061ac <_puts_r+0x5c> - 800619c: 250a movs r5, #10 - 800619e: e007 b.n 80061b0 <_puts_r+0x60> - 80061a0: 4621 mov r1, r4 - 80061a2: 4628 mov r0, r5 - 80061a4: f000 fd12 bl 8006bcc <__swsetup_r> - 80061a8: 2800 cmp r0, #0 - 80061aa: d0e7 beq.n 800617c <_puts_r+0x2c> - 80061ac: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff - 80061b0: 6e63 ldr r3, [r4, #100] ; 0x64 - 80061b2: 07da lsls r2, r3, #31 - 80061b4: d405 bmi.n 80061c2 <_puts_r+0x72> - 80061b6: 89a3 ldrh r3, [r4, #12] - 80061b8: 059b lsls r3, r3, #22 - 80061ba: d402 bmi.n 80061c2 <_puts_r+0x72> - 80061bc: 6da0 ldr r0, [r4, #88] ; 0x58 - 80061be: f000 f857 bl 8006270 <__retarget_lock_release_recursive> - 80061c2: 4628 mov r0, r5 - 80061c4: bd70 pop {r4, r5, r6, pc} - 80061c6: 2b00 cmp r3, #0 - 80061c8: da04 bge.n 80061d4 <_puts_r+0x84> - 80061ca: 69a2 ldr r2, [r4, #24] - 80061cc: 429a cmp r2, r3 - 80061ce: dc06 bgt.n 80061de <_puts_r+0x8e> - 80061d0: 290a cmp r1, #10 - 80061d2: d004 beq.n 80061de <_puts_r+0x8e> - 80061d4: 6823 ldr r3, [r4, #0] - 80061d6: 1c5a adds r2, r3, #1 - 80061d8: 6022 str r2, [r4, #0] - 80061da: 7019 strb r1, [r3, #0] - 80061dc: e7cf b.n 800617e <_puts_r+0x2e> - 80061de: 4622 mov r2, r4 - 80061e0: 4628 mov r0, r5 - 80061e2: f000 fcb6 bl 8006b52 <__swbuf_r> - 80061e6: 3001 adds r0, #1 - 80061e8: d1c9 bne.n 800617e <_puts_r+0x2e> - 80061ea: e7df b.n 80061ac <_puts_r+0x5c> - 80061ec: 6823 ldr r3, [r4, #0] - 80061ee: 250a movs r5, #10 - 80061f0: 1c5a adds r2, r3, #1 - 80061f2: 6022 str r2, [r4, #0] - 80061f4: 701d strb r5, [r3, #0] - 80061f6: e7db b.n 80061b0 <_puts_r+0x60> - -080061f8 : - 80061f8: 4b02 ldr r3, [pc, #8] ; (8006204 ) - 80061fa: 4601 mov r1, r0 - 80061fc: 6818 ldr r0, [r3, #0] - 80061fe: f7ff bfa7 b.w 8006150 <_puts_r> - 8006202: bf00 nop - 8006204: 20000064 .word 0x20000064 - -08006208 : - 8006208: 4402 add r2, r0 - 800620a: 4603 mov r3, r0 - 800620c: 4293 cmp r3, r2 - 800620e: d100 bne.n 8006212 - 8006210: 4770 bx lr - 8006212: f803 1b01 strb.w r1, [r3], #1 - 8006216: e7f9 b.n 800620c - -08006218 <__errno>: - 8006218: 4b01 ldr r3, [pc, #4] ; (8006220 <__errno+0x8>) - 800621a: 6818 ldr r0, [r3, #0] - 800621c: 4770 bx lr - 800621e: bf00 nop - 8006220: 20000064 .word 0x20000064 - -08006224 <__libc_init_array>: - 8006224: b570 push {r4, r5, r6, lr} - 8006226: 4d0d ldr r5, [pc, #52] ; (800625c <__libc_init_array+0x38>) - 8006228: 4c0d ldr r4, [pc, #52] ; (8006260 <__libc_init_array+0x3c>) - 800622a: 1b64 subs r4, r4, r5 - 800622c: 10a4 asrs r4, r4, #2 - 800622e: 2600 movs r6, #0 - 8006230: 42a6 cmp r6, r4 - 8006232: d109 bne.n 8006248 <__libc_init_array+0x24> - 8006234: 4d0b ldr r5, [pc, #44] ; (8006264 <__libc_init_array+0x40>) - 8006236: 4c0c ldr r4, [pc, #48] ; (8006268 <__libc_init_array+0x44>) - 8006238: f000 fe46 bl 8006ec8 <_init> - 800623c: 1b64 subs r4, r4, r5 - 800623e: 10a4 asrs r4, r4, #2 - 8006240: 2600 movs r6, #0 - 8006242: 42a6 cmp r6, r4 - 8006244: d105 bne.n 8006252 <__libc_init_array+0x2e> - 8006246: bd70 pop {r4, r5, r6, pc} - 8006248: f855 3b04 ldr.w r3, [r5], #4 - 800624c: 4798 blx r3 - 800624e: 3601 adds r6, #1 - 8006250: e7ee b.n 8006230 <__libc_init_array+0xc> - 8006252: f855 3b04 ldr.w r3, [r5], #4 - 8006256: 4798 blx r3 - 8006258: 3601 adds r6, #1 - 800625a: e7f2 b.n 8006242 <__libc_init_array+0x1e> - 800625c: 08006ff0 .word 0x08006ff0 - 8006260: 08006ff0 .word 0x08006ff0 - 8006264: 08006ff0 .word 0x08006ff0 - 8006268: 08006ff4 .word 0x08006ff4 - -0800626c <__retarget_lock_init_recursive>: - 800626c: 4770 bx lr - -0800626e <__retarget_lock_acquire_recursive>: - 800626e: 4770 bx lr - -08006270 <__retarget_lock_release_recursive>: - 8006270: 4770 bx lr - -08006272 <__sfputc_r>: - 8006272: 6893 ldr r3, [r2, #8] - 8006274: 3b01 subs r3, #1 - 8006276: 2b00 cmp r3, #0 - 8006278: b410 push {r4} - 800627a: 6093 str r3, [r2, #8] - 800627c: da08 bge.n 8006290 <__sfputc_r+0x1e> - 800627e: 6994 ldr r4, [r2, #24] - 8006280: 42a3 cmp r3, r4 - 8006282: db01 blt.n 8006288 <__sfputc_r+0x16> - 8006284: 290a cmp r1, #10 - 8006286: d103 bne.n 8006290 <__sfputc_r+0x1e> - 8006288: f85d 4b04 ldr.w r4, [sp], #4 - 800628c: f000 bc61 b.w 8006b52 <__swbuf_r> - 8006290: 6813 ldr r3, [r2, #0] - 8006292: 1c58 adds r0, r3, #1 - 8006294: 6010 str r0, [r2, #0] - 8006296: 7019 strb r1, [r3, #0] - 8006298: 4608 mov r0, r1 - 800629a: f85d 4b04 ldr.w r4, [sp], #4 - 800629e: 4770 bx lr - -080062a0 <__sfputs_r>: - 80062a0: b5f8 push {r3, r4, r5, r6, r7, lr} - 80062a2: 4606 mov r6, r0 - 80062a4: 460f mov r7, r1 - 80062a6: 4614 mov r4, r2 - 80062a8: 18d5 adds r5, r2, r3 - 80062aa: 42ac cmp r4, r5 - 80062ac: d101 bne.n 80062b2 <__sfputs_r+0x12> - 80062ae: 2000 movs r0, #0 - 80062b0: e007 b.n 80062c2 <__sfputs_r+0x22> - 80062b2: f814 1b01 ldrb.w r1, [r4], #1 - 80062b6: 463a mov r2, r7 - 80062b8: 4630 mov r0, r6 - 80062ba: f7ff ffda bl 8006272 <__sfputc_r> - 80062be: 1c43 adds r3, r0, #1 - 80062c0: d1f3 bne.n 80062aa <__sfputs_r+0xa> - 80062c2: bdf8 pop {r3, r4, r5, r6, r7, pc} - -080062c4 <_vfiprintf_r>: - 80062c4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 80062c8: 460d mov r5, r1 - 80062ca: b09d sub sp, #116 ; 0x74 - 80062cc: 4614 mov r4, r2 - 80062ce: 4698 mov r8, r3 - 80062d0: 4606 mov r6, r0 - 80062d2: b118 cbz r0, 80062dc <_vfiprintf_r+0x18> - 80062d4: 6a03 ldr r3, [r0, #32] - 80062d6: b90b cbnz r3, 80062dc <_vfiprintf_r+0x18> - 80062d8: f7ff fef2 bl 80060c0 <__sinit> - 80062dc: 6e6b ldr r3, [r5, #100] ; 0x64 - 80062de: 07d9 lsls r1, r3, #31 - 80062e0: d405 bmi.n 80062ee <_vfiprintf_r+0x2a> - 80062e2: 89ab ldrh r3, [r5, #12] - 80062e4: 059a lsls r2, r3, #22 - 80062e6: d402 bmi.n 80062ee <_vfiprintf_r+0x2a> - 80062e8: 6da8 ldr r0, [r5, #88] ; 0x58 - 80062ea: f7ff ffc0 bl 800626e <__retarget_lock_acquire_recursive> - 80062ee: 89ab ldrh r3, [r5, #12] - 80062f0: 071b lsls r3, r3, #28 - 80062f2: d501 bpl.n 80062f8 <_vfiprintf_r+0x34> - 80062f4: 692b ldr r3, [r5, #16] - 80062f6: b99b cbnz r3, 8006320 <_vfiprintf_r+0x5c> - 80062f8: 4629 mov r1, r5 - 80062fa: 4630 mov r0, r6 - 80062fc: f000 fc66 bl 8006bcc <__swsetup_r> - 8006300: b170 cbz r0, 8006320 <_vfiprintf_r+0x5c> - 8006302: 6e6b ldr r3, [r5, #100] ; 0x64 - 8006304: 07dc lsls r4, r3, #31 - 8006306: d504 bpl.n 8006312 <_vfiprintf_r+0x4e> - 8006308: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 800630c: b01d add sp, #116 ; 0x74 - 800630e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8006312: 89ab ldrh r3, [r5, #12] - 8006314: 0598 lsls r0, r3, #22 - 8006316: d4f7 bmi.n 8006308 <_vfiprintf_r+0x44> - 8006318: 6da8 ldr r0, [r5, #88] ; 0x58 - 800631a: f7ff ffa9 bl 8006270 <__retarget_lock_release_recursive> - 800631e: e7f3 b.n 8006308 <_vfiprintf_r+0x44> - 8006320: 2300 movs r3, #0 - 8006322: 9309 str r3, [sp, #36] ; 0x24 - 8006324: 2320 movs r3, #32 - 8006326: f88d 3029 strb.w r3, [sp, #41] ; 0x29 - 800632a: f8cd 800c str.w r8, [sp, #12] - 800632e: 2330 movs r3, #48 ; 0x30 - 8006330: f8df 81b0 ldr.w r8, [pc, #432] ; 80064e4 <_vfiprintf_r+0x220> - 8006334: f88d 302a strb.w r3, [sp, #42] ; 0x2a - 8006338: f04f 0901 mov.w r9, #1 - 800633c: 4623 mov r3, r4 - 800633e: 469a mov sl, r3 - 8006340: f813 2b01 ldrb.w r2, [r3], #1 - 8006344: b10a cbz r2, 800634a <_vfiprintf_r+0x86> - 8006346: 2a25 cmp r2, #37 ; 0x25 - 8006348: d1f9 bne.n 800633e <_vfiprintf_r+0x7a> - 800634a: ebba 0b04 subs.w fp, sl, r4 - 800634e: d00b beq.n 8006368 <_vfiprintf_r+0xa4> - 8006350: 465b mov r3, fp - 8006352: 4622 mov r2, r4 - 8006354: 4629 mov r1, r5 - 8006356: 4630 mov r0, r6 - 8006358: f7ff ffa2 bl 80062a0 <__sfputs_r> - 800635c: 3001 adds r0, #1 - 800635e: f000 80a9 beq.w 80064b4 <_vfiprintf_r+0x1f0> - 8006362: 9a09 ldr r2, [sp, #36] ; 0x24 - 8006364: 445a add r2, fp - 8006366: 9209 str r2, [sp, #36] ; 0x24 - 8006368: f89a 3000 ldrb.w r3, [sl] - 800636c: 2b00 cmp r3, #0 - 800636e: f000 80a1 beq.w 80064b4 <_vfiprintf_r+0x1f0> - 8006372: 2300 movs r3, #0 - 8006374: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 8006378: e9cd 2305 strd r2, r3, [sp, #20] - 800637c: f10a 0a01 add.w sl, sl, #1 - 8006380: 9304 str r3, [sp, #16] - 8006382: 9307 str r3, [sp, #28] - 8006384: f88d 3053 strb.w r3, [sp, #83] ; 0x53 - 8006388: 931a str r3, [sp, #104] ; 0x68 - 800638a: 4654 mov r4, sl - 800638c: 2205 movs r2, #5 - 800638e: f814 1b01 ldrb.w r1, [r4], #1 - 8006392: 4854 ldr r0, [pc, #336] ; (80064e4 <_vfiprintf_r+0x220>) - 8006394: f7f9 ff1c bl 80001d0 - 8006398: 9a04 ldr r2, [sp, #16] - 800639a: b9d8 cbnz r0, 80063d4 <_vfiprintf_r+0x110> - 800639c: 06d1 lsls r1, r2, #27 - 800639e: bf44 itt mi - 80063a0: 2320 movmi r3, #32 - 80063a2: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 - 80063a6: 0713 lsls r3, r2, #28 - 80063a8: bf44 itt mi - 80063aa: 232b movmi r3, #43 ; 0x2b - 80063ac: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 - 80063b0: f89a 3000 ldrb.w r3, [sl] - 80063b4: 2b2a cmp r3, #42 ; 0x2a - 80063b6: d015 beq.n 80063e4 <_vfiprintf_r+0x120> - 80063b8: 9a07 ldr r2, [sp, #28] - 80063ba: 4654 mov r4, sl - 80063bc: 2000 movs r0, #0 - 80063be: f04f 0c0a mov.w ip, #10 - 80063c2: 4621 mov r1, r4 - 80063c4: f811 3b01 ldrb.w r3, [r1], #1 - 80063c8: 3b30 subs r3, #48 ; 0x30 - 80063ca: 2b09 cmp r3, #9 - 80063cc: d94d bls.n 800646a <_vfiprintf_r+0x1a6> - 80063ce: b1b0 cbz r0, 80063fe <_vfiprintf_r+0x13a> - 80063d0: 9207 str r2, [sp, #28] - 80063d2: e014 b.n 80063fe <_vfiprintf_r+0x13a> - 80063d4: eba0 0308 sub.w r3, r0, r8 - 80063d8: fa09 f303 lsl.w r3, r9, r3 - 80063dc: 4313 orrs r3, r2 - 80063de: 9304 str r3, [sp, #16] - 80063e0: 46a2 mov sl, r4 - 80063e2: e7d2 b.n 800638a <_vfiprintf_r+0xc6> - 80063e4: 9b03 ldr r3, [sp, #12] - 80063e6: 1d19 adds r1, r3, #4 - 80063e8: 681b ldr r3, [r3, #0] - 80063ea: 9103 str r1, [sp, #12] - 80063ec: 2b00 cmp r3, #0 - 80063ee: bfbb ittet lt - 80063f0: 425b neglt r3, r3 - 80063f2: f042 0202 orrlt.w r2, r2, #2 - 80063f6: 9307 strge r3, [sp, #28] - 80063f8: 9307 strlt r3, [sp, #28] - 80063fa: bfb8 it lt - 80063fc: 9204 strlt r2, [sp, #16] - 80063fe: 7823 ldrb r3, [r4, #0] - 8006400: 2b2e cmp r3, #46 ; 0x2e - 8006402: d10c bne.n 800641e <_vfiprintf_r+0x15a> - 8006404: 7863 ldrb r3, [r4, #1] - 8006406: 2b2a cmp r3, #42 ; 0x2a - 8006408: d134 bne.n 8006474 <_vfiprintf_r+0x1b0> - 800640a: 9b03 ldr r3, [sp, #12] - 800640c: 1d1a adds r2, r3, #4 - 800640e: 681b ldr r3, [r3, #0] - 8006410: 9203 str r2, [sp, #12] - 8006412: 2b00 cmp r3, #0 - 8006414: bfb8 it lt - 8006416: f04f 33ff movlt.w r3, #4294967295 ; 0xffffffff - 800641a: 3402 adds r4, #2 - 800641c: 9305 str r3, [sp, #20] - 800641e: f8df a0d4 ldr.w sl, [pc, #212] ; 80064f4 <_vfiprintf_r+0x230> - 8006422: 7821 ldrb r1, [r4, #0] - 8006424: 2203 movs r2, #3 - 8006426: 4650 mov r0, sl - 8006428: f7f9 fed2 bl 80001d0 - 800642c: b138 cbz r0, 800643e <_vfiprintf_r+0x17a> - 800642e: 9b04 ldr r3, [sp, #16] - 8006430: eba0 000a sub.w r0, r0, sl - 8006434: 2240 movs r2, #64 ; 0x40 - 8006436: 4082 lsls r2, r0 - 8006438: 4313 orrs r3, r2 - 800643a: 3401 adds r4, #1 - 800643c: 9304 str r3, [sp, #16] - 800643e: f814 1b01 ldrb.w r1, [r4], #1 - 8006442: 4829 ldr r0, [pc, #164] ; (80064e8 <_vfiprintf_r+0x224>) - 8006444: f88d 1028 strb.w r1, [sp, #40] ; 0x28 - 8006448: 2206 movs r2, #6 - 800644a: f7f9 fec1 bl 80001d0 - 800644e: 2800 cmp r0, #0 - 8006450: d03f beq.n 80064d2 <_vfiprintf_r+0x20e> - 8006452: 4b26 ldr r3, [pc, #152] ; (80064ec <_vfiprintf_r+0x228>) - 8006454: bb1b cbnz r3, 800649e <_vfiprintf_r+0x1da> - 8006456: 9b03 ldr r3, [sp, #12] - 8006458: 3307 adds r3, #7 - 800645a: f023 0307 bic.w r3, r3, #7 - 800645e: 3308 adds r3, #8 - 8006460: 9303 str r3, [sp, #12] - 8006462: 9b09 ldr r3, [sp, #36] ; 0x24 - 8006464: 443b add r3, r7 - 8006466: 9309 str r3, [sp, #36] ; 0x24 - 8006468: e768 b.n 800633c <_vfiprintf_r+0x78> - 800646a: fb0c 3202 mla r2, ip, r2, r3 - 800646e: 460c mov r4, r1 - 8006470: 2001 movs r0, #1 - 8006472: e7a6 b.n 80063c2 <_vfiprintf_r+0xfe> - 8006474: 2300 movs r3, #0 - 8006476: 3401 adds r4, #1 - 8006478: 9305 str r3, [sp, #20] - 800647a: 4619 mov r1, r3 - 800647c: f04f 0c0a mov.w ip, #10 - 8006480: 4620 mov r0, r4 - 8006482: f810 2b01 ldrb.w r2, [r0], #1 - 8006486: 3a30 subs r2, #48 ; 0x30 - 8006488: 2a09 cmp r2, #9 - 800648a: d903 bls.n 8006494 <_vfiprintf_r+0x1d0> - 800648c: 2b00 cmp r3, #0 - 800648e: d0c6 beq.n 800641e <_vfiprintf_r+0x15a> - 8006490: 9105 str r1, [sp, #20] - 8006492: e7c4 b.n 800641e <_vfiprintf_r+0x15a> - 8006494: fb0c 2101 mla r1, ip, r1, r2 - 8006498: 4604 mov r4, r0 - 800649a: 2301 movs r3, #1 - 800649c: e7f0 b.n 8006480 <_vfiprintf_r+0x1bc> - 800649e: ab03 add r3, sp, #12 - 80064a0: 9300 str r3, [sp, #0] - 80064a2: 462a mov r2, r5 - 80064a4: 4b12 ldr r3, [pc, #72] ; (80064f0 <_vfiprintf_r+0x22c>) - 80064a6: a904 add r1, sp, #16 - 80064a8: 4630 mov r0, r6 - 80064aa: f3af 8000 nop.w - 80064ae: 4607 mov r7, r0 - 80064b0: 1c78 adds r0, r7, #1 - 80064b2: d1d6 bne.n 8006462 <_vfiprintf_r+0x19e> - 80064b4: 6e6b ldr r3, [r5, #100] ; 0x64 - 80064b6: 07d9 lsls r1, r3, #31 - 80064b8: d405 bmi.n 80064c6 <_vfiprintf_r+0x202> - 80064ba: 89ab ldrh r3, [r5, #12] - 80064bc: 059a lsls r2, r3, #22 - 80064be: d402 bmi.n 80064c6 <_vfiprintf_r+0x202> - 80064c0: 6da8 ldr r0, [r5, #88] ; 0x58 - 80064c2: f7ff fed5 bl 8006270 <__retarget_lock_release_recursive> - 80064c6: 89ab ldrh r3, [r5, #12] - 80064c8: 065b lsls r3, r3, #25 - 80064ca: f53f af1d bmi.w 8006308 <_vfiprintf_r+0x44> - 80064ce: 9809 ldr r0, [sp, #36] ; 0x24 - 80064d0: e71c b.n 800630c <_vfiprintf_r+0x48> - 80064d2: ab03 add r3, sp, #12 - 80064d4: 9300 str r3, [sp, #0] - 80064d6: 462a mov r2, r5 - 80064d8: 4b05 ldr r3, [pc, #20] ; (80064f0 <_vfiprintf_r+0x22c>) - 80064da: a904 add r1, sp, #16 - 80064dc: 4630 mov r0, r6 - 80064de: f000 f919 bl 8006714 <_printf_i> - 80064e2: e7e4 b.n 80064ae <_vfiprintf_r+0x1ea> - 80064e4: 08006fb4 .word 0x08006fb4 - 80064e8: 08006fbe .word 0x08006fbe - 80064ec: 00000000 .word 0x00000000 - 80064f0: 080062a1 .word 0x080062a1 - 80064f4: 08006fba .word 0x08006fba - -080064f8 : - 80064f8: b570 push {r4, r5, r6, lr} - 80064fa: 4e0e ldr r6, [pc, #56] ; (8006534 ) - 80064fc: 460c mov r4, r1 - 80064fe: 6831 ldr r1, [r6, #0] - 8006500: 4605 mov r5, r0 - 8006502: b911 cbnz r1, 800650a - 8006504: f000 fc72 bl 8006dec <_sbrk_r> - 8006508: 6030 str r0, [r6, #0] - 800650a: 4621 mov r1, r4 - 800650c: 4628 mov r0, r5 - 800650e: f000 fc6d bl 8006dec <_sbrk_r> - 8006512: 1c43 adds r3, r0, #1 - 8006514: d00a beq.n 800652c - 8006516: 1cc4 adds r4, r0, #3 - 8006518: f024 0403 bic.w r4, r4, #3 - 800651c: 42a0 cmp r0, r4 - 800651e: d007 beq.n 8006530 - 8006520: 1a21 subs r1, r4, r0 - 8006522: 4628 mov r0, r5 - 8006524: f000 fc62 bl 8006dec <_sbrk_r> - 8006528: 3001 adds r0, #1 - 800652a: d101 bne.n 8006530 - 800652c: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff - 8006530: 4620 mov r0, r4 - 8006532: bd70 pop {r4, r5, r6, pc} - 8006534: 20000348 .word 0x20000348 - -08006538 <_malloc_r>: - 8006538: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 800653c: 1ccd adds r5, r1, #3 - 800653e: f025 0503 bic.w r5, r5, #3 - 8006542: 3508 adds r5, #8 - 8006544: 2d0c cmp r5, #12 - 8006546: bf38 it cc - 8006548: 250c movcc r5, #12 - 800654a: 2d00 cmp r5, #0 - 800654c: 4607 mov r7, r0 - 800654e: db01 blt.n 8006554 <_malloc_r+0x1c> - 8006550: 42a9 cmp r1, r5 - 8006552: d905 bls.n 8006560 <_malloc_r+0x28> - 8006554: 230c movs r3, #12 - 8006556: 603b str r3, [r7, #0] - 8006558: 2600 movs r6, #0 - 800655a: 4630 mov r0, r6 - 800655c: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 8006560: f8df 80d0 ldr.w r8, [pc, #208] ; 8006634 <_malloc_r+0xfc> - 8006564: f000 faa6 bl 8006ab4 <__malloc_lock> - 8006568: f8d8 3000 ldr.w r3, [r8] - 800656c: 461c mov r4, r3 - 800656e: bb5c cbnz r4, 80065c8 <_malloc_r+0x90> - 8006570: 4629 mov r1, r5 - 8006572: 4638 mov r0, r7 - 8006574: f7ff ffc0 bl 80064f8 - 8006578: 1c43 adds r3, r0, #1 - 800657a: 4604 mov r4, r0 - 800657c: d155 bne.n 800662a <_malloc_r+0xf2> - 800657e: f8d8 4000 ldr.w r4, [r8] - 8006582: 4626 mov r6, r4 - 8006584: 2e00 cmp r6, #0 - 8006586: d145 bne.n 8006614 <_malloc_r+0xdc> - 8006588: 2c00 cmp r4, #0 - 800658a: d048 beq.n 800661e <_malloc_r+0xe6> - 800658c: 6823 ldr r3, [r4, #0] - 800658e: 4631 mov r1, r6 - 8006590: 4638 mov r0, r7 - 8006592: eb04 0903 add.w r9, r4, r3 - 8006596: f000 fc29 bl 8006dec <_sbrk_r> - 800659a: 4581 cmp r9, r0 - 800659c: d13f bne.n 800661e <_malloc_r+0xe6> - 800659e: 6821 ldr r1, [r4, #0] - 80065a0: 1a6d subs r5, r5, r1 - 80065a2: 4629 mov r1, r5 - 80065a4: 4638 mov r0, r7 - 80065a6: f7ff ffa7 bl 80064f8 - 80065aa: 3001 adds r0, #1 - 80065ac: d037 beq.n 800661e <_malloc_r+0xe6> - 80065ae: 6823 ldr r3, [r4, #0] - 80065b0: 442b add r3, r5 - 80065b2: 6023 str r3, [r4, #0] - 80065b4: f8d8 3000 ldr.w r3, [r8] - 80065b8: 2b00 cmp r3, #0 - 80065ba: d038 beq.n 800662e <_malloc_r+0xf6> - 80065bc: 685a ldr r2, [r3, #4] - 80065be: 42a2 cmp r2, r4 - 80065c0: d12b bne.n 800661a <_malloc_r+0xe2> - 80065c2: 2200 movs r2, #0 - 80065c4: 605a str r2, [r3, #4] - 80065c6: e00f b.n 80065e8 <_malloc_r+0xb0> - 80065c8: 6822 ldr r2, [r4, #0] - 80065ca: 1b52 subs r2, r2, r5 - 80065cc: d41f bmi.n 800660e <_malloc_r+0xd6> - 80065ce: 2a0b cmp r2, #11 - 80065d0: d917 bls.n 8006602 <_malloc_r+0xca> - 80065d2: 1961 adds r1, r4, r5 - 80065d4: 42a3 cmp r3, r4 - 80065d6: 6025 str r5, [r4, #0] - 80065d8: bf18 it ne - 80065da: 6059 strne r1, [r3, #4] - 80065dc: 6863 ldr r3, [r4, #4] - 80065de: bf08 it eq - 80065e0: f8c8 1000 streq.w r1, [r8] - 80065e4: 5162 str r2, [r4, r5] - 80065e6: 604b str r3, [r1, #4] - 80065e8: 4638 mov r0, r7 - 80065ea: f104 060b add.w r6, r4, #11 - 80065ee: f000 fa67 bl 8006ac0 <__malloc_unlock> - 80065f2: f026 0607 bic.w r6, r6, #7 - 80065f6: 1d23 adds r3, r4, #4 - 80065f8: 1af2 subs r2, r6, r3 - 80065fa: d0ae beq.n 800655a <_malloc_r+0x22> - 80065fc: 1b9b subs r3, r3, r6 - 80065fe: 50a3 str r3, [r4, r2] - 8006600: e7ab b.n 800655a <_malloc_r+0x22> - 8006602: 42a3 cmp r3, r4 - 8006604: 6862 ldr r2, [r4, #4] - 8006606: d1dd bne.n 80065c4 <_malloc_r+0x8c> - 8006608: f8c8 2000 str.w r2, [r8] - 800660c: e7ec b.n 80065e8 <_malloc_r+0xb0> - 800660e: 4623 mov r3, r4 - 8006610: 6864 ldr r4, [r4, #4] - 8006612: e7ac b.n 800656e <_malloc_r+0x36> - 8006614: 4634 mov r4, r6 - 8006616: 6876 ldr r6, [r6, #4] - 8006618: e7b4 b.n 8006584 <_malloc_r+0x4c> - 800661a: 4613 mov r3, r2 - 800661c: e7cc b.n 80065b8 <_malloc_r+0x80> - 800661e: 230c movs r3, #12 - 8006620: 603b str r3, [r7, #0] - 8006622: 4638 mov r0, r7 - 8006624: f000 fa4c bl 8006ac0 <__malloc_unlock> - 8006628: e797 b.n 800655a <_malloc_r+0x22> - 800662a: 6025 str r5, [r4, #0] - 800662c: e7dc b.n 80065e8 <_malloc_r+0xb0> - 800662e: 605b str r3, [r3, #4] - 8006630: deff udf #255 ; 0xff - 8006632: bf00 nop - 8006634: 20000344 .word 0x20000344 - -08006638 <_printf_common>: - 8006638: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 800663c: 4616 mov r6, r2 - 800663e: 4699 mov r9, r3 - 8006640: 688a ldr r2, [r1, #8] - 8006642: 690b ldr r3, [r1, #16] - 8006644: f8dd 8020 ldr.w r8, [sp, #32] - 8006648: 4293 cmp r3, r2 - 800664a: bfb8 it lt - 800664c: 4613 movlt r3, r2 - 800664e: 6033 str r3, [r6, #0] - 8006650: f891 2043 ldrb.w r2, [r1, #67] ; 0x43 - 8006654: 4607 mov r7, r0 - 8006656: 460c mov r4, r1 - 8006658: b10a cbz r2, 800665e <_printf_common+0x26> - 800665a: 3301 adds r3, #1 - 800665c: 6033 str r3, [r6, #0] - 800665e: 6823 ldr r3, [r4, #0] - 8006660: 0699 lsls r1, r3, #26 - 8006662: bf42 ittt mi - 8006664: 6833 ldrmi r3, [r6, #0] - 8006666: 3302 addmi r3, #2 - 8006668: 6033 strmi r3, [r6, #0] - 800666a: 6825 ldr r5, [r4, #0] - 800666c: f015 0506 ands.w r5, r5, #6 - 8006670: d106 bne.n 8006680 <_printf_common+0x48> - 8006672: f104 0a19 add.w sl, r4, #25 - 8006676: 68e3 ldr r3, [r4, #12] - 8006678: 6832 ldr r2, [r6, #0] - 800667a: 1a9b subs r3, r3, r2 - 800667c: 42ab cmp r3, r5 - 800667e: dc26 bgt.n 80066ce <_printf_common+0x96> - 8006680: f894 2043 ldrb.w r2, [r4, #67] ; 0x43 - 8006684: 1e13 subs r3, r2, #0 - 8006686: 6822 ldr r2, [r4, #0] - 8006688: bf18 it ne - 800668a: 2301 movne r3, #1 - 800668c: 0692 lsls r2, r2, #26 - 800668e: d42b bmi.n 80066e8 <_printf_common+0xb0> - 8006690: f104 0243 add.w r2, r4, #67 ; 0x43 - 8006694: 4649 mov r1, r9 - 8006696: 4638 mov r0, r7 - 8006698: 47c0 blx r8 - 800669a: 3001 adds r0, #1 - 800669c: d01e beq.n 80066dc <_printf_common+0xa4> - 800669e: 6823 ldr r3, [r4, #0] - 80066a0: 6922 ldr r2, [r4, #16] - 80066a2: f003 0306 and.w r3, r3, #6 - 80066a6: 2b04 cmp r3, #4 - 80066a8: bf02 ittt eq - 80066aa: 68e5 ldreq r5, [r4, #12] - 80066ac: 6833 ldreq r3, [r6, #0] - 80066ae: 1aed subeq r5, r5, r3 - 80066b0: 68a3 ldr r3, [r4, #8] - 80066b2: bf0c ite eq - 80066b4: ea25 75e5 biceq.w r5, r5, r5, asr #31 - 80066b8: 2500 movne r5, #0 - 80066ba: 4293 cmp r3, r2 - 80066bc: bfc4 itt gt - 80066be: 1a9b subgt r3, r3, r2 - 80066c0: 18ed addgt r5, r5, r3 - 80066c2: 2600 movs r6, #0 - 80066c4: 341a adds r4, #26 - 80066c6: 42b5 cmp r5, r6 - 80066c8: d11a bne.n 8006700 <_printf_common+0xc8> - 80066ca: 2000 movs r0, #0 - 80066cc: e008 b.n 80066e0 <_printf_common+0xa8> - 80066ce: 2301 movs r3, #1 - 80066d0: 4652 mov r2, sl - 80066d2: 4649 mov r1, r9 - 80066d4: 4638 mov r0, r7 - 80066d6: 47c0 blx r8 - 80066d8: 3001 adds r0, #1 - 80066da: d103 bne.n 80066e4 <_printf_common+0xac> - 80066dc: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 80066e0: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 80066e4: 3501 adds r5, #1 - 80066e6: e7c6 b.n 8006676 <_printf_common+0x3e> - 80066e8: 18e1 adds r1, r4, r3 - 80066ea: 1c5a adds r2, r3, #1 - 80066ec: 2030 movs r0, #48 ; 0x30 - 80066ee: f881 0043 strb.w r0, [r1, #67] ; 0x43 - 80066f2: 4422 add r2, r4 - 80066f4: f894 1045 ldrb.w r1, [r4, #69] ; 0x45 - 80066f8: f882 1043 strb.w r1, [r2, #67] ; 0x43 - 80066fc: 3302 adds r3, #2 - 80066fe: e7c7 b.n 8006690 <_printf_common+0x58> - 8006700: 2301 movs r3, #1 - 8006702: 4622 mov r2, r4 - 8006704: 4649 mov r1, r9 - 8006706: 4638 mov r0, r7 - 8006708: 47c0 blx r8 - 800670a: 3001 adds r0, #1 - 800670c: d0e6 beq.n 80066dc <_printf_common+0xa4> - 800670e: 3601 adds r6, #1 - 8006710: e7d9 b.n 80066c6 <_printf_common+0x8e> - ... - -08006714 <_printf_i>: - 8006714: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} - 8006718: 7e0f ldrb r7, [r1, #24] - 800671a: 9d0c ldr r5, [sp, #48] ; 0x30 - 800671c: 2f78 cmp r7, #120 ; 0x78 - 800671e: 4691 mov r9, r2 - 8006720: 4680 mov r8, r0 - 8006722: 460c mov r4, r1 - 8006724: 469a mov sl, r3 - 8006726: f101 0243 add.w r2, r1, #67 ; 0x43 - 800672a: d807 bhi.n 800673c <_printf_i+0x28> - 800672c: 2f62 cmp r7, #98 ; 0x62 - 800672e: d80a bhi.n 8006746 <_printf_i+0x32> - 8006730: 2f00 cmp r7, #0 - 8006732: f000 80d4 beq.w 80068de <_printf_i+0x1ca> - 8006736: 2f58 cmp r7, #88 ; 0x58 - 8006738: f000 80c0 beq.w 80068bc <_printf_i+0x1a8> - 800673c: f104 0542 add.w r5, r4, #66 ; 0x42 - 8006740: f884 7042 strb.w r7, [r4, #66] ; 0x42 - 8006744: e03a b.n 80067bc <_printf_i+0xa8> - 8006746: f1a7 0363 sub.w r3, r7, #99 ; 0x63 - 800674a: 2b15 cmp r3, #21 - 800674c: d8f6 bhi.n 800673c <_printf_i+0x28> - 800674e: a101 add r1, pc, #4 ; (adr r1, 8006754 <_printf_i+0x40>) - 8006750: f851 f023 ldr.w pc, [r1, r3, lsl #2] - 8006754: 080067ad .word 0x080067ad - 8006758: 080067c1 .word 0x080067c1 - 800675c: 0800673d .word 0x0800673d - 8006760: 0800673d .word 0x0800673d - 8006764: 0800673d .word 0x0800673d - 8006768: 0800673d .word 0x0800673d - 800676c: 080067c1 .word 0x080067c1 - 8006770: 0800673d .word 0x0800673d - 8006774: 0800673d .word 0x0800673d - 8006778: 0800673d .word 0x0800673d - 800677c: 0800673d .word 0x0800673d - 8006780: 080068c5 .word 0x080068c5 - 8006784: 080067ed .word 0x080067ed - 8006788: 0800687f .word 0x0800687f - 800678c: 0800673d .word 0x0800673d - 8006790: 0800673d .word 0x0800673d - 8006794: 080068e7 .word 0x080068e7 - 8006798: 0800673d .word 0x0800673d - 800679c: 080067ed .word 0x080067ed - 80067a0: 0800673d .word 0x0800673d - 80067a4: 0800673d .word 0x0800673d - 80067a8: 08006887 .word 0x08006887 - 80067ac: 682b ldr r3, [r5, #0] - 80067ae: 1d1a adds r2, r3, #4 - 80067b0: 681b ldr r3, [r3, #0] - 80067b2: 602a str r2, [r5, #0] - 80067b4: f104 0542 add.w r5, r4, #66 ; 0x42 - 80067b8: f884 3042 strb.w r3, [r4, #66] ; 0x42 - 80067bc: 2301 movs r3, #1 - 80067be: e09f b.n 8006900 <_printf_i+0x1ec> - 80067c0: 6820 ldr r0, [r4, #0] - 80067c2: 682b ldr r3, [r5, #0] - 80067c4: 0607 lsls r7, r0, #24 - 80067c6: f103 0104 add.w r1, r3, #4 - 80067ca: 6029 str r1, [r5, #0] - 80067cc: d501 bpl.n 80067d2 <_printf_i+0xbe> - 80067ce: 681e ldr r6, [r3, #0] - 80067d0: e003 b.n 80067da <_printf_i+0xc6> - 80067d2: 0646 lsls r6, r0, #25 - 80067d4: d5fb bpl.n 80067ce <_printf_i+0xba> - 80067d6: f9b3 6000 ldrsh.w r6, [r3] - 80067da: 2e00 cmp r6, #0 - 80067dc: da03 bge.n 80067e6 <_printf_i+0xd2> - 80067de: 232d movs r3, #45 ; 0x2d - 80067e0: 4276 negs r6, r6 - 80067e2: f884 3043 strb.w r3, [r4, #67] ; 0x43 - 80067e6: 485a ldr r0, [pc, #360] ; (8006950 <_printf_i+0x23c>) - 80067e8: 230a movs r3, #10 - 80067ea: e012 b.n 8006812 <_printf_i+0xfe> - 80067ec: 682b ldr r3, [r5, #0] - 80067ee: 6820 ldr r0, [r4, #0] - 80067f0: 1d19 adds r1, r3, #4 - 80067f2: 6029 str r1, [r5, #0] - 80067f4: 0605 lsls r5, r0, #24 - 80067f6: d501 bpl.n 80067fc <_printf_i+0xe8> - 80067f8: 681e ldr r6, [r3, #0] - 80067fa: e002 b.n 8006802 <_printf_i+0xee> - 80067fc: 0641 lsls r1, r0, #25 - 80067fe: d5fb bpl.n 80067f8 <_printf_i+0xe4> - 8006800: 881e ldrh r6, [r3, #0] - 8006802: 4853 ldr r0, [pc, #332] ; (8006950 <_printf_i+0x23c>) - 8006804: 2f6f cmp r7, #111 ; 0x6f - 8006806: bf0c ite eq - 8006808: 2308 moveq r3, #8 - 800680a: 230a movne r3, #10 - 800680c: 2100 movs r1, #0 - 800680e: f884 1043 strb.w r1, [r4, #67] ; 0x43 - 8006812: 6865 ldr r5, [r4, #4] - 8006814: 60a5 str r5, [r4, #8] - 8006816: 2d00 cmp r5, #0 - 8006818: bfa2 ittt ge - 800681a: 6821 ldrge r1, [r4, #0] - 800681c: f021 0104 bicge.w r1, r1, #4 - 8006820: 6021 strge r1, [r4, #0] - 8006822: b90e cbnz r6, 8006828 <_printf_i+0x114> - 8006824: 2d00 cmp r5, #0 - 8006826: d04b beq.n 80068c0 <_printf_i+0x1ac> - 8006828: 4615 mov r5, r2 - 800682a: fbb6 f1f3 udiv r1, r6, r3 - 800682e: fb03 6711 mls r7, r3, r1, r6 - 8006832: 5dc7 ldrb r7, [r0, r7] - 8006834: f805 7d01 strb.w r7, [r5, #-1]! - 8006838: 4637 mov r7, r6 - 800683a: 42bb cmp r3, r7 - 800683c: 460e mov r6, r1 - 800683e: d9f4 bls.n 800682a <_printf_i+0x116> - 8006840: 2b08 cmp r3, #8 - 8006842: d10b bne.n 800685c <_printf_i+0x148> - 8006844: 6823 ldr r3, [r4, #0] - 8006846: 07de lsls r6, r3, #31 - 8006848: d508 bpl.n 800685c <_printf_i+0x148> - 800684a: 6923 ldr r3, [r4, #16] - 800684c: 6861 ldr r1, [r4, #4] - 800684e: 4299 cmp r1, r3 - 8006850: bfde ittt le - 8006852: 2330 movle r3, #48 ; 0x30 - 8006854: f805 3c01 strble.w r3, [r5, #-1] - 8006858: f105 35ff addle.w r5, r5, #4294967295 ; 0xffffffff - 800685c: 1b52 subs r2, r2, r5 - 800685e: 6122 str r2, [r4, #16] - 8006860: f8cd a000 str.w sl, [sp] - 8006864: 464b mov r3, r9 - 8006866: aa03 add r2, sp, #12 - 8006868: 4621 mov r1, r4 - 800686a: 4640 mov r0, r8 - 800686c: f7ff fee4 bl 8006638 <_printf_common> - 8006870: 3001 adds r0, #1 - 8006872: d14a bne.n 800690a <_printf_i+0x1f6> - 8006874: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8006878: b004 add sp, #16 - 800687a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 800687e: 6823 ldr r3, [r4, #0] - 8006880: f043 0320 orr.w r3, r3, #32 - 8006884: 6023 str r3, [r4, #0] - 8006886: 4833 ldr r0, [pc, #204] ; (8006954 <_printf_i+0x240>) - 8006888: 2778 movs r7, #120 ; 0x78 - 800688a: f884 7045 strb.w r7, [r4, #69] ; 0x45 - 800688e: 6823 ldr r3, [r4, #0] - 8006890: 6829 ldr r1, [r5, #0] - 8006892: 061f lsls r7, r3, #24 - 8006894: f851 6b04 ldr.w r6, [r1], #4 - 8006898: d402 bmi.n 80068a0 <_printf_i+0x18c> - 800689a: 065f lsls r7, r3, #25 - 800689c: bf48 it mi - 800689e: b2b6 uxthmi r6, r6 - 80068a0: 07df lsls r7, r3, #31 - 80068a2: bf48 it mi - 80068a4: f043 0320 orrmi.w r3, r3, #32 - 80068a8: 6029 str r1, [r5, #0] - 80068aa: bf48 it mi - 80068ac: 6023 strmi r3, [r4, #0] - 80068ae: b91e cbnz r6, 80068b8 <_printf_i+0x1a4> - 80068b0: 6823 ldr r3, [r4, #0] - 80068b2: f023 0320 bic.w r3, r3, #32 - 80068b6: 6023 str r3, [r4, #0] - 80068b8: 2310 movs r3, #16 - 80068ba: e7a7 b.n 800680c <_printf_i+0xf8> - 80068bc: 4824 ldr r0, [pc, #144] ; (8006950 <_printf_i+0x23c>) - 80068be: e7e4 b.n 800688a <_printf_i+0x176> - 80068c0: 4615 mov r5, r2 - 80068c2: e7bd b.n 8006840 <_printf_i+0x12c> - 80068c4: 682b ldr r3, [r5, #0] - 80068c6: 6826 ldr r6, [r4, #0] - 80068c8: 6961 ldr r1, [r4, #20] - 80068ca: 1d18 adds r0, r3, #4 - 80068cc: 6028 str r0, [r5, #0] - 80068ce: 0635 lsls r5, r6, #24 - 80068d0: 681b ldr r3, [r3, #0] - 80068d2: d501 bpl.n 80068d8 <_printf_i+0x1c4> - 80068d4: 6019 str r1, [r3, #0] - 80068d6: e002 b.n 80068de <_printf_i+0x1ca> - 80068d8: 0670 lsls r0, r6, #25 - 80068da: d5fb bpl.n 80068d4 <_printf_i+0x1c0> - 80068dc: 8019 strh r1, [r3, #0] - 80068de: 2300 movs r3, #0 - 80068e0: 6123 str r3, [r4, #16] - 80068e2: 4615 mov r5, r2 - 80068e4: e7bc b.n 8006860 <_printf_i+0x14c> - 80068e6: 682b ldr r3, [r5, #0] - 80068e8: 1d1a adds r2, r3, #4 - 80068ea: 602a str r2, [r5, #0] - 80068ec: 681d ldr r5, [r3, #0] - 80068ee: 6862 ldr r2, [r4, #4] - 80068f0: 2100 movs r1, #0 - 80068f2: 4628 mov r0, r5 - 80068f4: f7f9 fc6c bl 80001d0 - 80068f8: b108 cbz r0, 80068fe <_printf_i+0x1ea> - 80068fa: 1b40 subs r0, r0, r5 - 80068fc: 6060 str r0, [r4, #4] - 80068fe: 6863 ldr r3, [r4, #4] - 8006900: 6123 str r3, [r4, #16] - 8006902: 2300 movs r3, #0 - 8006904: f884 3043 strb.w r3, [r4, #67] ; 0x43 - 8006908: e7aa b.n 8006860 <_printf_i+0x14c> - 800690a: 6923 ldr r3, [r4, #16] - 800690c: 462a mov r2, r5 - 800690e: 4649 mov r1, r9 - 8006910: 4640 mov r0, r8 - 8006912: 47d0 blx sl - 8006914: 3001 adds r0, #1 - 8006916: d0ad beq.n 8006874 <_printf_i+0x160> - 8006918: 6823 ldr r3, [r4, #0] - 800691a: 079b lsls r3, r3, #30 - 800691c: d413 bmi.n 8006946 <_printf_i+0x232> - 800691e: 68e0 ldr r0, [r4, #12] - 8006920: 9b03 ldr r3, [sp, #12] - 8006922: 4298 cmp r0, r3 - 8006924: bfb8 it lt - 8006926: 4618 movlt r0, r3 - 8006928: e7a6 b.n 8006878 <_printf_i+0x164> - 800692a: 2301 movs r3, #1 - 800692c: 4632 mov r2, r6 - 800692e: 4649 mov r1, r9 - 8006930: 4640 mov r0, r8 - 8006932: 47d0 blx sl - 8006934: 3001 adds r0, #1 - 8006936: d09d beq.n 8006874 <_printf_i+0x160> - 8006938: 3501 adds r5, #1 - 800693a: 68e3 ldr r3, [r4, #12] - 800693c: 9903 ldr r1, [sp, #12] - 800693e: 1a5b subs r3, r3, r1 - 8006940: 42ab cmp r3, r5 - 8006942: dcf2 bgt.n 800692a <_printf_i+0x216> - 8006944: e7eb b.n 800691e <_printf_i+0x20a> - 8006946: 2500 movs r5, #0 - 8006948: f104 0619 add.w r6, r4, #25 - 800694c: e7f5 b.n 800693a <_printf_i+0x226> - 800694e: bf00 nop - 8006950: 08006fc5 .word 0x08006fc5 - 8006954: 08006fd6 .word 0x08006fd6 - -08006958 <__sflush_r>: - 8006958: 898a ldrh r2, [r1, #12] - 800695a: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 800695e: 4605 mov r5, r0 - 8006960: 0710 lsls r0, r2, #28 - 8006962: 460c mov r4, r1 - 8006964: d458 bmi.n 8006a18 <__sflush_r+0xc0> - 8006966: 684b ldr r3, [r1, #4] - 8006968: 2b00 cmp r3, #0 - 800696a: dc05 bgt.n 8006978 <__sflush_r+0x20> - 800696c: 6c0b ldr r3, [r1, #64] ; 0x40 - 800696e: 2b00 cmp r3, #0 - 8006970: dc02 bgt.n 8006978 <__sflush_r+0x20> - 8006972: 2000 movs r0, #0 - 8006974: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8006978: 6ae6 ldr r6, [r4, #44] ; 0x2c - 800697a: 2e00 cmp r6, #0 - 800697c: d0f9 beq.n 8006972 <__sflush_r+0x1a> - 800697e: 2300 movs r3, #0 - 8006980: f412 5280 ands.w r2, r2, #4096 ; 0x1000 - 8006984: 682f ldr r7, [r5, #0] - 8006986: 6a21 ldr r1, [r4, #32] - 8006988: 602b str r3, [r5, #0] - 800698a: d032 beq.n 80069f2 <__sflush_r+0x9a> - 800698c: 6d60 ldr r0, [r4, #84] ; 0x54 - 800698e: 89a3 ldrh r3, [r4, #12] - 8006990: 075a lsls r2, r3, #29 - 8006992: d505 bpl.n 80069a0 <__sflush_r+0x48> - 8006994: 6863 ldr r3, [r4, #4] - 8006996: 1ac0 subs r0, r0, r3 - 8006998: 6b63 ldr r3, [r4, #52] ; 0x34 - 800699a: b10b cbz r3, 80069a0 <__sflush_r+0x48> - 800699c: 6c23 ldr r3, [r4, #64] ; 0x40 - 800699e: 1ac0 subs r0, r0, r3 - 80069a0: 2300 movs r3, #0 - 80069a2: 4602 mov r2, r0 - 80069a4: 6ae6 ldr r6, [r4, #44] ; 0x2c - 80069a6: 6a21 ldr r1, [r4, #32] - 80069a8: 4628 mov r0, r5 - 80069aa: 47b0 blx r6 - 80069ac: 1c43 adds r3, r0, #1 - 80069ae: 89a3 ldrh r3, [r4, #12] - 80069b0: d106 bne.n 80069c0 <__sflush_r+0x68> - 80069b2: 6829 ldr r1, [r5, #0] - 80069b4: 291d cmp r1, #29 - 80069b6: d82b bhi.n 8006a10 <__sflush_r+0xb8> - 80069b8: 4a29 ldr r2, [pc, #164] ; (8006a60 <__sflush_r+0x108>) - 80069ba: 410a asrs r2, r1 - 80069bc: 07d6 lsls r6, r2, #31 - 80069be: d427 bmi.n 8006a10 <__sflush_r+0xb8> - 80069c0: 2200 movs r2, #0 - 80069c2: 6062 str r2, [r4, #4] - 80069c4: 04d9 lsls r1, r3, #19 - 80069c6: 6922 ldr r2, [r4, #16] - 80069c8: 6022 str r2, [r4, #0] - 80069ca: d504 bpl.n 80069d6 <__sflush_r+0x7e> - 80069cc: 1c42 adds r2, r0, #1 - 80069ce: d101 bne.n 80069d4 <__sflush_r+0x7c> - 80069d0: 682b ldr r3, [r5, #0] - 80069d2: b903 cbnz r3, 80069d6 <__sflush_r+0x7e> - 80069d4: 6560 str r0, [r4, #84] ; 0x54 - 80069d6: 6b61 ldr r1, [r4, #52] ; 0x34 - 80069d8: 602f str r7, [r5, #0] - 80069da: 2900 cmp r1, #0 - 80069dc: d0c9 beq.n 8006972 <__sflush_r+0x1a> - 80069de: f104 0344 add.w r3, r4, #68 ; 0x44 - 80069e2: 4299 cmp r1, r3 - 80069e4: d002 beq.n 80069ec <__sflush_r+0x94> - 80069e6: 4628 mov r0, r5 - 80069e8: f000 fa22 bl 8006e30 <_free_r> - 80069ec: 2000 movs r0, #0 - 80069ee: 6360 str r0, [r4, #52] ; 0x34 - 80069f0: e7c0 b.n 8006974 <__sflush_r+0x1c> - 80069f2: 2301 movs r3, #1 - 80069f4: 4628 mov r0, r5 - 80069f6: 47b0 blx r6 - 80069f8: 1c41 adds r1, r0, #1 - 80069fa: d1c8 bne.n 800698e <__sflush_r+0x36> - 80069fc: 682b ldr r3, [r5, #0] - 80069fe: 2b00 cmp r3, #0 - 8006a00: d0c5 beq.n 800698e <__sflush_r+0x36> - 8006a02: 2b1d cmp r3, #29 - 8006a04: d001 beq.n 8006a0a <__sflush_r+0xb2> - 8006a06: 2b16 cmp r3, #22 - 8006a08: d101 bne.n 8006a0e <__sflush_r+0xb6> - 8006a0a: 602f str r7, [r5, #0] - 8006a0c: e7b1 b.n 8006972 <__sflush_r+0x1a> - 8006a0e: 89a3 ldrh r3, [r4, #12] - 8006a10: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8006a14: 81a3 strh r3, [r4, #12] - 8006a16: e7ad b.n 8006974 <__sflush_r+0x1c> - 8006a18: 690f ldr r7, [r1, #16] - 8006a1a: 2f00 cmp r7, #0 - 8006a1c: d0a9 beq.n 8006972 <__sflush_r+0x1a> - 8006a1e: 0793 lsls r3, r2, #30 - 8006a20: 680e ldr r6, [r1, #0] - 8006a22: bf08 it eq - 8006a24: 694b ldreq r3, [r1, #20] - 8006a26: 600f str r7, [r1, #0] - 8006a28: bf18 it ne - 8006a2a: 2300 movne r3, #0 - 8006a2c: eba6 0807 sub.w r8, r6, r7 - 8006a30: 608b str r3, [r1, #8] - 8006a32: f1b8 0f00 cmp.w r8, #0 - 8006a36: dd9c ble.n 8006972 <__sflush_r+0x1a> - 8006a38: 6a21 ldr r1, [r4, #32] - 8006a3a: 6aa6 ldr r6, [r4, #40] ; 0x28 - 8006a3c: 4643 mov r3, r8 - 8006a3e: 463a mov r2, r7 - 8006a40: 4628 mov r0, r5 - 8006a42: 47b0 blx r6 - 8006a44: 2800 cmp r0, #0 - 8006a46: dc06 bgt.n 8006a56 <__sflush_r+0xfe> - 8006a48: 89a3 ldrh r3, [r4, #12] - 8006a4a: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8006a4e: 81a3 strh r3, [r4, #12] - 8006a50: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8006a54: e78e b.n 8006974 <__sflush_r+0x1c> - 8006a56: 4407 add r7, r0 - 8006a58: eba8 0800 sub.w r8, r8, r0 - 8006a5c: e7e9 b.n 8006a32 <__sflush_r+0xda> - 8006a5e: bf00 nop - 8006a60: dfbffffe .word 0xdfbffffe - -08006a64 <_fflush_r>: - 8006a64: b538 push {r3, r4, r5, lr} - 8006a66: 690b ldr r3, [r1, #16] - 8006a68: 4605 mov r5, r0 - 8006a6a: 460c mov r4, r1 - 8006a6c: b913 cbnz r3, 8006a74 <_fflush_r+0x10> - 8006a6e: 2500 movs r5, #0 - 8006a70: 4628 mov r0, r5 - 8006a72: bd38 pop {r3, r4, r5, pc} - 8006a74: b118 cbz r0, 8006a7e <_fflush_r+0x1a> - 8006a76: 6a03 ldr r3, [r0, #32] - 8006a78: b90b cbnz r3, 8006a7e <_fflush_r+0x1a> - 8006a7a: f7ff fb21 bl 80060c0 <__sinit> - 8006a7e: f9b4 300c ldrsh.w r3, [r4, #12] - 8006a82: 2b00 cmp r3, #0 - 8006a84: d0f3 beq.n 8006a6e <_fflush_r+0xa> - 8006a86: 6e62 ldr r2, [r4, #100] ; 0x64 - 8006a88: 07d0 lsls r0, r2, #31 - 8006a8a: d404 bmi.n 8006a96 <_fflush_r+0x32> - 8006a8c: 0599 lsls r1, r3, #22 - 8006a8e: d402 bmi.n 8006a96 <_fflush_r+0x32> - 8006a90: 6da0 ldr r0, [r4, #88] ; 0x58 - 8006a92: f7ff fbec bl 800626e <__retarget_lock_acquire_recursive> - 8006a96: 4628 mov r0, r5 - 8006a98: 4621 mov r1, r4 - 8006a9a: f7ff ff5d bl 8006958 <__sflush_r> - 8006a9e: 6e63 ldr r3, [r4, #100] ; 0x64 - 8006aa0: 07da lsls r2, r3, #31 - 8006aa2: 4605 mov r5, r0 - 8006aa4: d4e4 bmi.n 8006a70 <_fflush_r+0xc> - 8006aa6: 89a3 ldrh r3, [r4, #12] - 8006aa8: 059b lsls r3, r3, #22 - 8006aaa: d4e1 bmi.n 8006a70 <_fflush_r+0xc> - 8006aac: 6da0 ldr r0, [r4, #88] ; 0x58 - 8006aae: f7ff fbdf bl 8006270 <__retarget_lock_release_recursive> - 8006ab2: e7dd b.n 8006a70 <_fflush_r+0xc> - -08006ab4 <__malloc_lock>: - 8006ab4: 4801 ldr r0, [pc, #4] ; (8006abc <__malloc_lock+0x8>) - 8006ab6: f7ff bbda b.w 800626e <__retarget_lock_acquire_recursive> - 8006aba: bf00 nop - 8006abc: 20000340 .word 0x20000340 - -08006ac0 <__malloc_unlock>: - 8006ac0: 4801 ldr r0, [pc, #4] ; (8006ac8 <__malloc_unlock+0x8>) - 8006ac2: f7ff bbd5 b.w 8006270 <__retarget_lock_release_recursive> - 8006ac6: bf00 nop - 8006ac8: 20000340 .word 0x20000340 - -08006acc <__sread>: - 8006acc: b510 push {r4, lr} - 8006ace: 460c mov r4, r1 - 8006ad0: f9b1 100e ldrsh.w r1, [r1, #14] - 8006ad4: f000 f978 bl 8006dc8 <_read_r> - 8006ad8: 2800 cmp r0, #0 - 8006ada: bfab itete ge - 8006adc: 6d63 ldrge r3, [r4, #84] ; 0x54 - 8006ade: 89a3 ldrhlt r3, [r4, #12] - 8006ae0: 181b addge r3, r3, r0 - 8006ae2: f423 5380 biclt.w r3, r3, #4096 ; 0x1000 - 8006ae6: bfac ite ge - 8006ae8: 6563 strge r3, [r4, #84] ; 0x54 - 8006aea: 81a3 strhlt r3, [r4, #12] - 8006aec: bd10 pop {r4, pc} - -08006aee <__swrite>: - 8006aee: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8006af2: 461f mov r7, r3 - 8006af4: 898b ldrh r3, [r1, #12] - 8006af6: 05db lsls r3, r3, #23 - 8006af8: 4605 mov r5, r0 - 8006afa: 460c mov r4, r1 - 8006afc: 4616 mov r6, r2 - 8006afe: d505 bpl.n 8006b0c <__swrite+0x1e> - 8006b00: f9b1 100e ldrsh.w r1, [r1, #14] - 8006b04: 2302 movs r3, #2 - 8006b06: 2200 movs r2, #0 - 8006b08: f000 f94c bl 8006da4 <_lseek_r> - 8006b0c: 89a3 ldrh r3, [r4, #12] - 8006b0e: f9b4 100e ldrsh.w r1, [r4, #14] - 8006b12: f423 5380 bic.w r3, r3, #4096 ; 0x1000 - 8006b16: 81a3 strh r3, [r4, #12] - 8006b18: 4632 mov r2, r6 - 8006b1a: 463b mov r3, r7 - 8006b1c: 4628 mov r0, r5 - 8006b1e: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 8006b22: f000 b973 b.w 8006e0c <_write_r> - -08006b26 <__sseek>: - 8006b26: b510 push {r4, lr} - 8006b28: 460c mov r4, r1 - 8006b2a: f9b1 100e ldrsh.w r1, [r1, #14] - 8006b2e: f000 f939 bl 8006da4 <_lseek_r> - 8006b32: 1c43 adds r3, r0, #1 - 8006b34: 89a3 ldrh r3, [r4, #12] - 8006b36: bf15 itete ne - 8006b38: 6560 strne r0, [r4, #84] ; 0x54 - 8006b3a: f423 5380 biceq.w r3, r3, #4096 ; 0x1000 - 8006b3e: f443 5380 orrne.w r3, r3, #4096 ; 0x1000 - 8006b42: 81a3 strheq r3, [r4, #12] - 8006b44: bf18 it ne - 8006b46: 81a3 strhne r3, [r4, #12] - 8006b48: bd10 pop {r4, pc} - -08006b4a <__sclose>: - 8006b4a: f9b1 100e ldrsh.w r1, [r1, #14] - 8006b4e: f000 b8f7 b.w 8006d40 <_close_r> - -08006b52 <__swbuf_r>: - 8006b52: b5f8 push {r3, r4, r5, r6, r7, lr} - 8006b54: 460e mov r6, r1 - 8006b56: 4614 mov r4, r2 - 8006b58: 4605 mov r5, r0 - 8006b5a: b118 cbz r0, 8006b64 <__swbuf_r+0x12> - 8006b5c: 6a03 ldr r3, [r0, #32] - 8006b5e: b90b cbnz r3, 8006b64 <__swbuf_r+0x12> - 8006b60: f7ff faae bl 80060c0 <__sinit> - 8006b64: 69a3 ldr r3, [r4, #24] - 8006b66: 60a3 str r3, [r4, #8] - 8006b68: 89a3 ldrh r3, [r4, #12] - 8006b6a: 071a lsls r2, r3, #28 - 8006b6c: d525 bpl.n 8006bba <__swbuf_r+0x68> - 8006b6e: 6923 ldr r3, [r4, #16] - 8006b70: b31b cbz r3, 8006bba <__swbuf_r+0x68> - 8006b72: 6823 ldr r3, [r4, #0] - 8006b74: 6922 ldr r2, [r4, #16] - 8006b76: 1a98 subs r0, r3, r2 - 8006b78: 6963 ldr r3, [r4, #20] - 8006b7a: b2f6 uxtb r6, r6 - 8006b7c: 4283 cmp r3, r0 - 8006b7e: 4637 mov r7, r6 - 8006b80: dc04 bgt.n 8006b8c <__swbuf_r+0x3a> - 8006b82: 4621 mov r1, r4 - 8006b84: 4628 mov r0, r5 - 8006b86: f7ff ff6d bl 8006a64 <_fflush_r> - 8006b8a: b9e0 cbnz r0, 8006bc6 <__swbuf_r+0x74> - 8006b8c: 68a3 ldr r3, [r4, #8] - 8006b8e: 3b01 subs r3, #1 - 8006b90: 60a3 str r3, [r4, #8] - 8006b92: 6823 ldr r3, [r4, #0] - 8006b94: 1c5a adds r2, r3, #1 - 8006b96: 6022 str r2, [r4, #0] - 8006b98: 701e strb r6, [r3, #0] - 8006b9a: 6962 ldr r2, [r4, #20] - 8006b9c: 1c43 adds r3, r0, #1 - 8006b9e: 429a cmp r2, r3 - 8006ba0: d004 beq.n 8006bac <__swbuf_r+0x5a> - 8006ba2: 89a3 ldrh r3, [r4, #12] - 8006ba4: 07db lsls r3, r3, #31 - 8006ba6: d506 bpl.n 8006bb6 <__swbuf_r+0x64> - 8006ba8: 2e0a cmp r6, #10 - 8006baa: d104 bne.n 8006bb6 <__swbuf_r+0x64> - 8006bac: 4621 mov r1, r4 - 8006bae: 4628 mov r0, r5 - 8006bb0: f7ff ff58 bl 8006a64 <_fflush_r> - 8006bb4: b938 cbnz r0, 8006bc6 <__swbuf_r+0x74> - 8006bb6: 4638 mov r0, r7 - 8006bb8: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8006bba: 4621 mov r1, r4 - 8006bbc: 4628 mov r0, r5 - 8006bbe: f000 f805 bl 8006bcc <__swsetup_r> - 8006bc2: 2800 cmp r0, #0 - 8006bc4: d0d5 beq.n 8006b72 <__swbuf_r+0x20> - 8006bc6: f04f 37ff mov.w r7, #4294967295 ; 0xffffffff - 8006bca: e7f4 b.n 8006bb6 <__swbuf_r+0x64> - -08006bcc <__swsetup_r>: - 8006bcc: b538 push {r3, r4, r5, lr} - 8006bce: 4b2a ldr r3, [pc, #168] ; (8006c78 <__swsetup_r+0xac>) - 8006bd0: 4605 mov r5, r0 - 8006bd2: 6818 ldr r0, [r3, #0] - 8006bd4: 460c mov r4, r1 - 8006bd6: b118 cbz r0, 8006be0 <__swsetup_r+0x14> - 8006bd8: 6a03 ldr r3, [r0, #32] - 8006bda: b90b cbnz r3, 8006be0 <__swsetup_r+0x14> - 8006bdc: f7ff fa70 bl 80060c0 <__sinit> - 8006be0: 89a3 ldrh r3, [r4, #12] - 8006be2: f9b4 200c ldrsh.w r2, [r4, #12] - 8006be6: 0718 lsls r0, r3, #28 - 8006be8: d422 bmi.n 8006c30 <__swsetup_r+0x64> - 8006bea: 06d9 lsls r1, r3, #27 - 8006bec: d407 bmi.n 8006bfe <__swsetup_r+0x32> - 8006bee: 2309 movs r3, #9 - 8006bf0: 602b str r3, [r5, #0] - 8006bf2: f042 0340 orr.w r3, r2, #64 ; 0x40 - 8006bf6: 81a3 strh r3, [r4, #12] - 8006bf8: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8006bfc: e034 b.n 8006c68 <__swsetup_r+0x9c> - 8006bfe: 0758 lsls r0, r3, #29 - 8006c00: d512 bpl.n 8006c28 <__swsetup_r+0x5c> - 8006c02: 6b61 ldr r1, [r4, #52] ; 0x34 - 8006c04: b141 cbz r1, 8006c18 <__swsetup_r+0x4c> - 8006c06: f104 0344 add.w r3, r4, #68 ; 0x44 - 8006c0a: 4299 cmp r1, r3 - 8006c0c: d002 beq.n 8006c14 <__swsetup_r+0x48> - 8006c0e: 4628 mov r0, r5 - 8006c10: f000 f90e bl 8006e30 <_free_r> - 8006c14: 2300 movs r3, #0 - 8006c16: 6363 str r3, [r4, #52] ; 0x34 - 8006c18: 89a3 ldrh r3, [r4, #12] - 8006c1a: f023 0324 bic.w r3, r3, #36 ; 0x24 - 8006c1e: 81a3 strh r3, [r4, #12] - 8006c20: 2300 movs r3, #0 - 8006c22: 6063 str r3, [r4, #4] - 8006c24: 6923 ldr r3, [r4, #16] - 8006c26: 6023 str r3, [r4, #0] - 8006c28: 89a3 ldrh r3, [r4, #12] - 8006c2a: f043 0308 orr.w r3, r3, #8 - 8006c2e: 81a3 strh r3, [r4, #12] - 8006c30: 6923 ldr r3, [r4, #16] - 8006c32: b94b cbnz r3, 8006c48 <__swsetup_r+0x7c> - 8006c34: 89a3 ldrh r3, [r4, #12] - 8006c36: f403 7320 and.w r3, r3, #640 ; 0x280 - 8006c3a: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8006c3e: d003 beq.n 8006c48 <__swsetup_r+0x7c> - 8006c40: 4621 mov r1, r4 - 8006c42: 4628 mov r0, r5 - 8006c44: f000 f840 bl 8006cc8 <__smakebuf_r> - 8006c48: 89a0 ldrh r0, [r4, #12] - 8006c4a: f9b4 200c ldrsh.w r2, [r4, #12] - 8006c4e: f010 0301 ands.w r3, r0, #1 - 8006c52: d00a beq.n 8006c6a <__swsetup_r+0x9e> - 8006c54: 2300 movs r3, #0 - 8006c56: 60a3 str r3, [r4, #8] - 8006c58: 6963 ldr r3, [r4, #20] - 8006c5a: 425b negs r3, r3 - 8006c5c: 61a3 str r3, [r4, #24] - 8006c5e: 6923 ldr r3, [r4, #16] - 8006c60: b943 cbnz r3, 8006c74 <__swsetup_r+0xa8> - 8006c62: f010 0080 ands.w r0, r0, #128 ; 0x80 - 8006c66: d1c4 bne.n 8006bf2 <__swsetup_r+0x26> - 8006c68: bd38 pop {r3, r4, r5, pc} - 8006c6a: 0781 lsls r1, r0, #30 - 8006c6c: bf58 it pl - 8006c6e: 6963 ldrpl r3, [r4, #20] - 8006c70: 60a3 str r3, [r4, #8] - 8006c72: e7f4 b.n 8006c5e <__swsetup_r+0x92> - 8006c74: 2000 movs r0, #0 - 8006c76: e7f7 b.n 8006c68 <__swsetup_r+0x9c> - 8006c78: 20000064 .word 0x20000064 - -08006c7c <__swhatbuf_r>: - 8006c7c: b570 push {r4, r5, r6, lr} - 8006c7e: 460c mov r4, r1 - 8006c80: f9b1 100e ldrsh.w r1, [r1, #14] - 8006c84: 2900 cmp r1, #0 - 8006c86: b096 sub sp, #88 ; 0x58 - 8006c88: 4615 mov r5, r2 - 8006c8a: 461e mov r6, r3 - 8006c8c: da0d bge.n 8006caa <__swhatbuf_r+0x2e> - 8006c8e: 89a3 ldrh r3, [r4, #12] - 8006c90: f013 0f80 tst.w r3, #128 ; 0x80 - 8006c94: f04f 0100 mov.w r1, #0 - 8006c98: bf0c ite eq - 8006c9a: f44f 6380 moveq.w r3, #1024 ; 0x400 - 8006c9e: 2340 movne r3, #64 ; 0x40 - 8006ca0: 2000 movs r0, #0 - 8006ca2: 6031 str r1, [r6, #0] - 8006ca4: 602b str r3, [r5, #0] - 8006ca6: b016 add sp, #88 ; 0x58 - 8006ca8: bd70 pop {r4, r5, r6, pc} - 8006caa: 466a mov r2, sp - 8006cac: f000 f858 bl 8006d60 <_fstat_r> - 8006cb0: 2800 cmp r0, #0 - 8006cb2: dbec blt.n 8006c8e <__swhatbuf_r+0x12> - 8006cb4: 9901 ldr r1, [sp, #4] - 8006cb6: f401 4170 and.w r1, r1, #61440 ; 0xf000 - 8006cba: f5a1 5300 sub.w r3, r1, #8192 ; 0x2000 - 8006cbe: 4259 negs r1, r3 - 8006cc0: 4159 adcs r1, r3 - 8006cc2: f44f 6380 mov.w r3, #1024 ; 0x400 - 8006cc6: e7eb b.n 8006ca0 <__swhatbuf_r+0x24> - -08006cc8 <__smakebuf_r>: - 8006cc8: 898b ldrh r3, [r1, #12] - 8006cca: b573 push {r0, r1, r4, r5, r6, lr} - 8006ccc: 079d lsls r5, r3, #30 - 8006cce: 4606 mov r6, r0 - 8006cd0: 460c mov r4, r1 - 8006cd2: d507 bpl.n 8006ce4 <__smakebuf_r+0x1c> - 8006cd4: f104 0347 add.w r3, r4, #71 ; 0x47 - 8006cd8: 6023 str r3, [r4, #0] - 8006cda: 6123 str r3, [r4, #16] - 8006cdc: 2301 movs r3, #1 - 8006cde: 6163 str r3, [r4, #20] - 8006ce0: b002 add sp, #8 - 8006ce2: bd70 pop {r4, r5, r6, pc} - 8006ce4: ab01 add r3, sp, #4 - 8006ce6: 466a mov r2, sp - 8006ce8: f7ff ffc8 bl 8006c7c <__swhatbuf_r> - 8006cec: 9900 ldr r1, [sp, #0] - 8006cee: 4605 mov r5, r0 - 8006cf0: 4630 mov r0, r6 - 8006cf2: f7ff fc21 bl 8006538 <_malloc_r> - 8006cf6: b948 cbnz r0, 8006d0c <__smakebuf_r+0x44> - 8006cf8: f9b4 300c ldrsh.w r3, [r4, #12] - 8006cfc: 059a lsls r2, r3, #22 - 8006cfe: d4ef bmi.n 8006ce0 <__smakebuf_r+0x18> - 8006d00: f023 0303 bic.w r3, r3, #3 - 8006d04: f043 0302 orr.w r3, r3, #2 - 8006d08: 81a3 strh r3, [r4, #12] - 8006d0a: e7e3 b.n 8006cd4 <__smakebuf_r+0xc> - 8006d0c: 89a3 ldrh r3, [r4, #12] - 8006d0e: 6020 str r0, [r4, #0] - 8006d10: f043 0380 orr.w r3, r3, #128 ; 0x80 - 8006d14: 81a3 strh r3, [r4, #12] - 8006d16: 9b00 ldr r3, [sp, #0] - 8006d18: 6163 str r3, [r4, #20] - 8006d1a: 9b01 ldr r3, [sp, #4] - 8006d1c: 6120 str r0, [r4, #16] - 8006d1e: b15b cbz r3, 8006d38 <__smakebuf_r+0x70> - 8006d20: f9b4 100e ldrsh.w r1, [r4, #14] - 8006d24: 4630 mov r0, r6 - 8006d26: f000 f82d bl 8006d84 <_isatty_r> - 8006d2a: b128 cbz r0, 8006d38 <__smakebuf_r+0x70> - 8006d2c: 89a3 ldrh r3, [r4, #12] - 8006d2e: f023 0303 bic.w r3, r3, #3 - 8006d32: f043 0301 orr.w r3, r3, #1 - 8006d36: 81a3 strh r3, [r4, #12] - 8006d38: 89a3 ldrh r3, [r4, #12] - 8006d3a: 431d orrs r5, r3 - 8006d3c: 81a5 strh r5, [r4, #12] - 8006d3e: e7cf b.n 8006ce0 <__smakebuf_r+0x18> - -08006d40 <_close_r>: - 8006d40: b538 push {r3, r4, r5, lr} - 8006d42: 4d06 ldr r5, [pc, #24] ; (8006d5c <_close_r+0x1c>) - 8006d44: 2300 movs r3, #0 - 8006d46: 4604 mov r4, r0 - 8006d48: 4608 mov r0, r1 - 8006d4a: 602b str r3, [r5, #0] - 8006d4c: f7fa fc19 bl 8001582 <_close> - 8006d50: 1c43 adds r3, r0, #1 - 8006d52: d102 bne.n 8006d5a <_close_r+0x1a> - 8006d54: 682b ldr r3, [r5, #0] - 8006d56: b103 cbz r3, 8006d5a <_close_r+0x1a> - 8006d58: 6023 str r3, [r4, #0] - 8006d5a: bd38 pop {r3, r4, r5, pc} - 8006d5c: 2000034c .word 0x2000034c - -08006d60 <_fstat_r>: - 8006d60: b538 push {r3, r4, r5, lr} - 8006d62: 4d07 ldr r5, [pc, #28] ; (8006d80 <_fstat_r+0x20>) - 8006d64: 2300 movs r3, #0 - 8006d66: 4604 mov r4, r0 - 8006d68: 4608 mov r0, r1 - 8006d6a: 4611 mov r1, r2 - 8006d6c: 602b str r3, [r5, #0] - 8006d6e: f7fa fc14 bl 800159a <_fstat> - 8006d72: 1c43 adds r3, r0, #1 - 8006d74: d102 bne.n 8006d7c <_fstat_r+0x1c> - 8006d76: 682b ldr r3, [r5, #0] - 8006d78: b103 cbz r3, 8006d7c <_fstat_r+0x1c> - 8006d7a: 6023 str r3, [r4, #0] - 8006d7c: bd38 pop {r3, r4, r5, pc} - 8006d7e: bf00 nop - 8006d80: 2000034c .word 0x2000034c - -08006d84 <_isatty_r>: - 8006d84: b538 push {r3, r4, r5, lr} - 8006d86: 4d06 ldr r5, [pc, #24] ; (8006da0 <_isatty_r+0x1c>) - 8006d88: 2300 movs r3, #0 - 8006d8a: 4604 mov r4, r0 - 8006d8c: 4608 mov r0, r1 - 8006d8e: 602b str r3, [r5, #0] - 8006d90: f7fa fc13 bl 80015ba <_isatty> - 8006d94: 1c43 adds r3, r0, #1 - 8006d96: d102 bne.n 8006d9e <_isatty_r+0x1a> - 8006d98: 682b ldr r3, [r5, #0] - 8006d9a: b103 cbz r3, 8006d9e <_isatty_r+0x1a> - 8006d9c: 6023 str r3, [r4, #0] - 8006d9e: bd38 pop {r3, r4, r5, pc} - 8006da0: 2000034c .word 0x2000034c - -08006da4 <_lseek_r>: - 8006da4: b538 push {r3, r4, r5, lr} - 8006da6: 4d07 ldr r5, [pc, #28] ; (8006dc4 <_lseek_r+0x20>) - 8006da8: 4604 mov r4, r0 - 8006daa: 4608 mov r0, r1 - 8006dac: 4611 mov r1, r2 - 8006dae: 2200 movs r2, #0 - 8006db0: 602a str r2, [r5, #0] - 8006db2: 461a mov r2, r3 - 8006db4: f7fa fc0c bl 80015d0 <_lseek> - 8006db8: 1c43 adds r3, r0, #1 - 8006dba: d102 bne.n 8006dc2 <_lseek_r+0x1e> - 8006dbc: 682b ldr r3, [r5, #0] - 8006dbe: b103 cbz r3, 8006dc2 <_lseek_r+0x1e> - 8006dc0: 6023 str r3, [r4, #0] - 8006dc2: bd38 pop {r3, r4, r5, pc} - 8006dc4: 2000034c .word 0x2000034c - -08006dc8 <_read_r>: - 8006dc8: b538 push {r3, r4, r5, lr} - 8006dca: 4d07 ldr r5, [pc, #28] ; (8006de8 <_read_r+0x20>) - 8006dcc: 4604 mov r4, r0 - 8006dce: 4608 mov r0, r1 - 8006dd0: 4611 mov r1, r2 - 8006dd2: 2200 movs r2, #0 - 8006dd4: 602a str r2, [r5, #0] - 8006dd6: 461a mov r2, r3 - 8006dd8: f7fa fb9a bl 8001510 <_read> - 8006ddc: 1c43 adds r3, r0, #1 - 8006dde: d102 bne.n 8006de6 <_read_r+0x1e> - 8006de0: 682b ldr r3, [r5, #0] - 8006de2: b103 cbz r3, 8006de6 <_read_r+0x1e> - 8006de4: 6023 str r3, [r4, #0] - 8006de6: bd38 pop {r3, r4, r5, pc} - 8006de8: 2000034c .word 0x2000034c - -08006dec <_sbrk_r>: - 8006dec: b538 push {r3, r4, r5, lr} - 8006dee: 4d06 ldr r5, [pc, #24] ; (8006e08 <_sbrk_r+0x1c>) - 8006df0: 2300 movs r3, #0 - 8006df2: 4604 mov r4, r0 - 8006df4: 4608 mov r0, r1 - 8006df6: 602b str r3, [r5, #0] - 8006df8: f7fa fbf8 bl 80015ec <_sbrk> - 8006dfc: 1c43 adds r3, r0, #1 - 8006dfe: d102 bne.n 8006e06 <_sbrk_r+0x1a> - 8006e00: 682b ldr r3, [r5, #0] - 8006e02: b103 cbz r3, 8006e06 <_sbrk_r+0x1a> - 8006e04: 6023 str r3, [r4, #0] - 8006e06: bd38 pop {r3, r4, r5, pc} - 8006e08: 2000034c .word 0x2000034c - -08006e0c <_write_r>: - 8006e0c: b538 push {r3, r4, r5, lr} - 8006e0e: 4d07 ldr r5, [pc, #28] ; (8006e2c <_write_r+0x20>) - 8006e10: 4604 mov r4, r0 - 8006e12: 4608 mov r0, r1 - 8006e14: 4611 mov r1, r2 - 8006e16: 2200 movs r2, #0 - 8006e18: 602a str r2, [r5, #0] - 8006e1a: 461a mov r2, r3 - 8006e1c: f7fa fb95 bl 800154a <_write> - 8006e20: 1c43 adds r3, r0, #1 - 8006e22: d102 bne.n 8006e2a <_write_r+0x1e> - 8006e24: 682b ldr r3, [r5, #0] - 8006e26: b103 cbz r3, 8006e2a <_write_r+0x1e> - 8006e28: 6023 str r3, [r4, #0] - 8006e2a: bd38 pop {r3, r4, r5, pc} - 8006e2c: 2000034c .word 0x2000034c - -08006e30 <_free_r>: - 8006e30: b537 push {r0, r1, r2, r4, r5, lr} - 8006e32: 2900 cmp r1, #0 - 8006e34: d044 beq.n 8006ec0 <_free_r+0x90> - 8006e36: f851 3c04 ldr.w r3, [r1, #-4] - 8006e3a: 9001 str r0, [sp, #4] - 8006e3c: 2b00 cmp r3, #0 - 8006e3e: f1a1 0404 sub.w r4, r1, #4 - 8006e42: bfb8 it lt - 8006e44: 18e4 addlt r4, r4, r3 - 8006e46: f7ff fe35 bl 8006ab4 <__malloc_lock> - 8006e4a: 4a1e ldr r2, [pc, #120] ; (8006ec4 <_free_r+0x94>) - 8006e4c: 9801 ldr r0, [sp, #4] - 8006e4e: 6813 ldr r3, [r2, #0] - 8006e50: b933 cbnz r3, 8006e60 <_free_r+0x30> - 8006e52: 6063 str r3, [r4, #4] - 8006e54: 6014 str r4, [r2, #0] - 8006e56: b003 add sp, #12 - 8006e58: e8bd 4030 ldmia.w sp!, {r4, r5, lr} - 8006e5c: f7ff be30 b.w 8006ac0 <__malloc_unlock> - 8006e60: 42a3 cmp r3, r4 - 8006e62: d908 bls.n 8006e76 <_free_r+0x46> - 8006e64: 6825 ldr r5, [r4, #0] - 8006e66: 1961 adds r1, r4, r5 - 8006e68: 428b cmp r3, r1 - 8006e6a: bf01 itttt eq - 8006e6c: 6819 ldreq r1, [r3, #0] - 8006e6e: 685b ldreq r3, [r3, #4] - 8006e70: 1949 addeq r1, r1, r5 - 8006e72: 6021 streq r1, [r4, #0] - 8006e74: e7ed b.n 8006e52 <_free_r+0x22> - 8006e76: 461a mov r2, r3 - 8006e78: 685b ldr r3, [r3, #4] - 8006e7a: b10b cbz r3, 8006e80 <_free_r+0x50> - 8006e7c: 42a3 cmp r3, r4 - 8006e7e: d9fa bls.n 8006e76 <_free_r+0x46> - 8006e80: 6811 ldr r1, [r2, #0] - 8006e82: 1855 adds r5, r2, r1 - 8006e84: 42a5 cmp r5, r4 - 8006e86: d10b bne.n 8006ea0 <_free_r+0x70> - 8006e88: 6824 ldr r4, [r4, #0] - 8006e8a: 4421 add r1, r4 - 8006e8c: 1854 adds r4, r2, r1 - 8006e8e: 42a3 cmp r3, r4 - 8006e90: 6011 str r1, [r2, #0] - 8006e92: d1e0 bne.n 8006e56 <_free_r+0x26> - 8006e94: 681c ldr r4, [r3, #0] - 8006e96: 685b ldr r3, [r3, #4] - 8006e98: 6053 str r3, [r2, #4] - 8006e9a: 440c add r4, r1 - 8006e9c: 6014 str r4, [r2, #0] - 8006e9e: e7da b.n 8006e56 <_free_r+0x26> - 8006ea0: d902 bls.n 8006ea8 <_free_r+0x78> - 8006ea2: 230c movs r3, #12 - 8006ea4: 6003 str r3, [r0, #0] - 8006ea6: e7d6 b.n 8006e56 <_free_r+0x26> - 8006ea8: 6825 ldr r5, [r4, #0] - 8006eaa: 1961 adds r1, r4, r5 - 8006eac: 428b cmp r3, r1 - 8006eae: bf04 itt eq - 8006eb0: 6819 ldreq r1, [r3, #0] - 8006eb2: 685b ldreq r3, [r3, #4] - 8006eb4: 6063 str r3, [r4, #4] - 8006eb6: bf04 itt eq - 8006eb8: 1949 addeq r1, r1, r5 - 8006eba: 6021 streq r1, [r4, #0] - 8006ebc: 6054 str r4, [r2, #4] - 8006ebe: e7ca b.n 8006e56 <_free_r+0x26> - 8006ec0: b003 add sp, #12 - 8006ec2: bd30 pop {r4, r5, pc} - 8006ec4: 20000344 .word 0x20000344 - -08006ec8 <_init>: - 8006ec8: b5f8 push {r3, r4, r5, r6, r7, lr} - 8006eca: bf00 nop - 8006ecc: bcf8 pop {r3, r4, r5, r6, r7} - 8006ece: bc08 pop {r3} - 8006ed0: 469e mov lr, r3 - 8006ed2: 4770 bx lr - -08006ed4 <_fini>: - 8006ed4: b5f8 push {r3, r4, r5, r6, r7, lr} - 8006ed6: bf00 nop - 8006ed8: bcf8 pop {r3, r4, r5, r6, r7} - 8006eda: bc08 pop {r3} - 8006edc: 469e mov lr, r3 - 8006ede: 4770 bx lr diff --git a/Debug/task4.map b/Debug/task4.map deleted file mode 100644 index 013e1df..0000000 --- a/Debug/task4.map +++ /dev/null @@ -1,4518 +0,0 @@ -Archive member included to satisfy reference by file (symbol) - -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-exit.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o (exit) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-exit.o) (__stdio_exit_handler) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fwalk.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) (_fwalk_sglue) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-printf.o) - ./Core/Src/main.o (printf) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-puts.o) - ./Core/Src/main.o (puts) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memset.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o (memset) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-impure.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-printf.o) (_impure_ptr) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-errno.o) - ./Core/Src/syscalls.o (__errno) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-init.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o (__libc_init_array) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) (__retarget_lock_init_recursive) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-printf.o) (_vfprintf_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) (_malloc_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf_i.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) (_printf_i) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fflush.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) (_fflush_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mlock.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) (__malloc_lock) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) (__sread) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fvwrite.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) (__sfvwrite_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wbuf.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-puts.o) (__swbuf_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wsetup.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-puts.o) (__swsetup_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-makebuf.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wsetup.o) (__smakebuf_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memmove.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fvwrite.o) (memmove) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-closer.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) (_close_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reent.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-closer.o) (errno) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fstatr.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-makebuf.o) (_fstat_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-isattyr.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-makebuf.o) (_isatty_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lseekr.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) (_lseek_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-readr.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) (_read_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-sbrkr.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) (_sbrk_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-writer.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) (_write_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memchr.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) (memchr) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memcpy-stub.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fvwrite.o) (memcpy) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-freer.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fflush.o) (_free_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reallocr.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fvwrite.o) (_realloc_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-msizer.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reallocr.o) (_malloc_usable_size_r) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldf3.o) - ./Core/Src/tsl2591x.o (__aeabi_dmul) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_addsubdf3.o) - ./Core/Src/tsl2591x.o (__aeabi_i2d) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldivdf3.o) - ./Core/Src/tsl2591x.o (__aeabi_ddiv) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_fixdfsi.o) - ./Core/Src/tsl2591x.o (__aeabi_d2iz) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_aeabi_uldivmod.o) - ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o (__aeabi_uldivmod) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_udivmoddi4.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_aeabi_uldivmod.o) (__udivmoddi4) -/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_dvmd_tls.o) - /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_aeabi_uldivmod.o) (__aeabi_ldiv0) - -Discarded input sections - - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o - .data 0x0000000000000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - .rodata 0x0000000000000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - .text 0x0000000000000000 0x7c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .ARM.extab 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .ARM.exidx 0x0000000000000000 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .debug_line 0x0000000000000000 0x76 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .debug_line_str - 0x0000000000000000 0xdd /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .debug_info 0x0000000000000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .debug_abbrev 0x0000000000000000 0x14 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .debug_aranges - 0x0000000000000000 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .debug_str 0x0000000000000000 0xe2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .ARM.attributes - 0x0000000000000000 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/dev_config.o - .text 0x0000000000000000 0x0 ./Core/Src/dev_config.o - .data 0x0000000000000000 0x0 ./Core/Src/dev_config.o - .bss 0x0000000000000000 0x0 ./Core/Src/dev_config.o - .bss.DEV_SPI_Device - 0x0000000000000000 0x1 ./Core/Src/dev_config.o - .text.DEV_GPIO_Mode - 0x0000000000000000 0x64 ./Core/Src/dev_config.o - .text.DEV_SPI_Init - 0x0000000000000000 0xe ./Core/Src/dev_config.o - .text.DEV_SPI_WriteByte - 0x0000000000000000 0x16 ./Core/Src/dev_config.o - .text.DEV_SPI_Write_nByte - 0x0000000000000000 0x16 ./Core/Src/dev_config.o - .text.DEV_ModuleExit - 0x0000000000000000 0xe ./Core/Src/dev_config.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/main.o - .text 0x0000000000000000 0x0 ./Core/Src/main.o - .data 0x0000000000000000 0x0 ./Core/Src/main.o - .bss 0x0000000000000000 0x0 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0xaa8 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x1a7 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x2e ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x28 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x8e ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x51 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x103 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x6a ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x1df ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x1c ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0xfb ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x1011 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x11f ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x1a17a ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x6d ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x38e6 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x174 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x5c ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x159e ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x5a5 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x1b9 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x18b ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x26b ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x23d ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x241 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x37c ./Core/Src/main.o - .debug_macro 0x0000000000000000 0xd6 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x22c ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x61 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0xa5 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x122 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x3ef ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x5cf ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x44 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x330 ./Core/Src/main.o - .debug_macro 0x0000000000000000 0x10 ./Core/Src/main.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_hal_msp.o - .text 0x0000000000000000 0x0 ./Core/Src/stm32l4xx_hal_msp.o - .data 0x0000000000000000 0x0 ./Core/Src/stm32l4xx_hal_msp.o - .bss 0x0000000000000000 0x0 ./Core/Src/stm32l4xx_hal_msp.o - .text.HAL_I2C_MspDeInit - 0x0000000000000000 0x68 ./Core/Src/stm32l4xx_hal_msp.o - .text.HAL_UART_MspDeInit - 0x0000000000000000 0x38 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0xaa8 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x1a7 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x2e ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x28 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x8e ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x51 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x103 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x6a ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x1df ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x1c ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0xfb ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x1011 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x11f ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x1a17a ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x6d ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x38e6 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x174 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x5c ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x159e ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x5a5 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x1b9 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x18b ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x26b ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x23d ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x241 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x37c ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0xd6 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x22c ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x61 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0xa5 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x122 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x3ef ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x5cf ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x44 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x330 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000000000 0x10 ./Core/Src/stm32l4xx_hal_msp.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/stm32l4xx_it.o - .text 0x0000000000000000 0x0 ./Core/Src/stm32l4xx_it.o - .data 0x0000000000000000 0x0 ./Core/Src/stm32l4xx_it.o - .bss 0x0000000000000000 0x0 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0xaa8 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x1a7 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x2e ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x28 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x8e ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x51 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x103 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x6a ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x1df ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x1c ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0xfb ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x1011 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x11f ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x1a17a ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x6d ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x38e6 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x174 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x5c ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x159e ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x5a5 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x1b9 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x18b ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x26b ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x23d ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x241 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x37c ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0xd6 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x22c ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x61 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0xa5 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x122 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x3ef ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x5cf ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x44 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x330 ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000000000 0x10 ./Core/Src/stm32l4xx_it.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/syscalls.o - .text 0x0000000000000000 0x0 ./Core/Src/syscalls.o - .data 0x0000000000000000 0x0 ./Core/Src/syscalls.o - .bss 0x0000000000000000 0x0 ./Core/Src/syscalls.o - .bss.__env 0x0000000000000000 0x4 ./Core/Src/syscalls.o - .data.environ 0x0000000000000000 0x4 ./Core/Src/syscalls.o - .text.initialise_monitor_handles - 0x0000000000000000 0xe ./Core/Src/syscalls.o - .text._getpid 0x0000000000000000 0x10 ./Core/Src/syscalls.o - .text._kill 0x0000000000000000 0x20 ./Core/Src/syscalls.o - .text._exit 0x0000000000000000 0x14 ./Core/Src/syscalls.o - .text._open 0x0000000000000000 0x1c ./Core/Src/syscalls.o - .text._wait 0x0000000000000000 0x1e ./Core/Src/syscalls.o - .text._unlink 0x0000000000000000 0x1e ./Core/Src/syscalls.o - .text._times 0x0000000000000000 0x18 ./Core/Src/syscalls.o - .text._stat 0x0000000000000000 0x20 ./Core/Src/syscalls.o - .text._link 0x0000000000000000 0x20 ./Core/Src/syscalls.o - .text._fork 0x0000000000000000 0x16 ./Core/Src/syscalls.o - .text._execve 0x0000000000000000 0x22 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0xaa8 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x2a ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x43 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x34 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x174 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x369 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x16 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x43 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x34 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x58 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x8e ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x1c ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x177 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x35 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x6a ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x10 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x16 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x147 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x103 ./Core/Src/syscalls.o - .debug_macro 0x0000000000000000 0x1df ./Core/Src/syscalls.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/sysmem.o - .text 0x0000000000000000 0x0 ./Core/Src/sysmem.o - .data 0x0000000000000000 0x0 ./Core/Src/sysmem.o - .bss 0x0000000000000000 0x0 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0xaa8 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x10 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x5b ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x2a ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x94 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x43 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x34 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x174 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x16 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x43 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x57 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x34 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x10 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x58 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x8e ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x1c ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x177 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x103 ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x6a ./Core/Src/sysmem.o - .debug_macro 0x0000000000000000 0x1df ./Core/Src/sysmem.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/system_stm32l4xx.o - .text 0x0000000000000000 0x0 ./Core/Src/system_stm32l4xx.o - .data 0x0000000000000000 0x0 ./Core/Src/system_stm32l4xx.o - .bss 0x0000000000000000 0x0 ./Core/Src/system_stm32l4xx.o - .text.SystemCoreClockUpdate - 0x0000000000000000 0x15c ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0xaa8 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x2e ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x28 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x8e ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x51 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x103 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x6a ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x1df ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x1c ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0xfb ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x1011 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x11f ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x1a17a ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x6d ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x1a7 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x38e6 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x174 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x5c ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x159e ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x5a5 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x1b9 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x18b ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x26b ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x23d ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x241 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x37c ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0xd6 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x22c ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x61 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0xa5 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x122 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x3ef ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x5cf ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x44 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000000000 0x330 ./Core/Src/system_stm32l4xx.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .group 0x0000000000000000 0xc ./Core/Src/tsl2591x.o - .text 0x0000000000000000 0x0 ./Core/Src/tsl2591x.o - .data 0x0000000000000000 0x0 ./Core/Src/tsl2591x.o - .bss 0x0000000000000000 0x0 ./Core/Src/tsl2591x.o - .text.TSL2591_Get_IntegralTime - 0x0000000000000000 0x34 ./Core/Src/tsl2591x.o - .text.TSL2591_SET_InterruptThreshold - 0x0000000000000000 0x78 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0xaa8 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x1a7 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x2e ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x28 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x8e ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x51 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x103 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x6a ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x1df ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x1c ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x22 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0xfb ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x1011 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x11f ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x1a17a ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x6d ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x38e6 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x174 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x5c ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x159e ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x5a5 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x1b9 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x18b ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x26b ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x23d ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x241 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x37c ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0xd6 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x22c ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x61 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0xa5 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x122 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x3ef ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x5cf ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x44 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x330 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x10 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x61 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x2a ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x43 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x34 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x16 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x35 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x369 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x10 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x16 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x43 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x34 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x10 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x58 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x8e ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x1c ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x177 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x16 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x16 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x147 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x16 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000000000 0x20 ./Core/Src/tsl2591x.o - .text 0x0000000000000000 0x14 ./Core/Startup/startup_stm32l476rgtx.o - .data 0x0000000000000000 0x0 ./Core/Startup/startup_stm32l476rgtx.o - .bss 0x0000000000000000 0x0 ./Core/Startup/startup_stm32l476rgtx.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_DeInit - 0x0000000000000000 0x68 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_MspInit - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_MspDeInit - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_GetTickPrio - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SetTickFreq - 0x0000000000000000 0x50 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_GetTickFreq - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SuspendTick - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_ResumeTick - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_GetHalVersion - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_GetREVID - 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_GetDEVID - 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_GetUIDw0 - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_GetUIDw1 - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_GetUIDw2 - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_DBGMCU_EnableDBGSleepMode - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_DBGMCU_DisableDBGSleepMode - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_DBGMCU_EnableDBGStopMode - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_DBGMCU_DisableDBGStopMode - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_DBGMCU_EnableDBGStandbyMode - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_DBGMCU_DisableDBGStandbyMode - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SYSCFG_SRAM2Erase - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SYSCFG_EnableMemorySwappingBank - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SYSCFG_DisableMemorySwappingBank - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SYSCFG_VREFBUF_VoltageScalingConfig - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SYSCFG_VREFBUF_HighImpedanceConfig - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SYSCFG_VREFBUF_TrimmingConfig - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SYSCFG_EnableVREFBUF - 0x0000000000000000 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SYSCFG_DisableVREFBUF - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SYSCFG_EnableIOAnalogSwitchBooster - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .text.HAL_SYSCFG_DisableIOAnalogSwitchBooster - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.__NVIC_DisableIRQ - 0x0000000000000000 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.__NVIC_GetPendingIRQ - 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.__NVIC_SetPendingIRQ - 0x0000000000000000 0x3c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.__NVIC_ClearPendingIRQ - 0x0000000000000000 0x3c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.__NVIC_GetActive - 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.__NVIC_GetPriority - 0x0000000000000000 0x50 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.NVIC_DecodePriority - 0x0000000000000000 0x6e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.__NVIC_SystemReset - 0x0000000000000000 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_NVIC_DisableIRQ - 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_NVIC_SystemReset - 0x0000000000000000 0x8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_NVIC_GetPriorityGrouping - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_NVIC_GetPriority - 0x0000000000000000 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_NVIC_SetPendingIRQ - 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_NVIC_GetPendingIRQ - 0x0000000000000000 0x1e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_NVIC_ClearPendingIRQ - 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_NVIC_GetActive - 0x0000000000000000 0x1e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_SYSTICK_CLKSourceConfig - 0x0000000000000000 0x38 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_SYSTICK_IRQHandler - 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_SYSTICK_Callback - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_MPU_Enable - 0x0000000000000000 0x30 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_MPU_Disable - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_MPU_ConfigRegion - 0x0000000000000000 0x88 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .text.HAL_DMA_DeInit - 0x0000000000000000 0x124 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .text.HAL_DMA_Start - 0x0000000000000000 0x86 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .text.HAL_DMA_Start_IT - 0x0000000000000000 0xc0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .text.HAL_DMA_Abort - 0x0000000000000000 0x7c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .text.HAL_DMA_PollForTransfer - 0x0000000000000000 0x14e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .text.HAL_DMA_RegisterCallback - 0x0000000000000000 0x90 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .text.HAL_DMA_UnRegisterCallback - 0x0000000000000000 0xb0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .text.HAL_DMA_GetError - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .text.DMA_SetConfig - 0x0000000000000000 0x60 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_info 0x0000000000000000 0x70 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_abbrev 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_aranges - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_line 0x0000000000000000 0x6dd ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .debug_str 0x0000000000000000 0xe2944 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .comment 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .ARM.attributes - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .text.HAL_EXTI_SetConfigLine - 0x0000000000000000 0x1a0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .text.HAL_EXTI_GetConfigLine - 0x0000000000000000 0x144 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .text.HAL_EXTI_ClearConfigLine - 0x0000000000000000 0x110 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .text.HAL_EXTI_RegisterCallback - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .text.HAL_EXTI_GetHandle - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .text.HAL_EXTI_IRQHandler - 0x0000000000000000 0x60 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .text.HAL_EXTI_GetPending - 0x0000000000000000 0x58 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .text.HAL_EXTI_ClearPending - 0x0000000000000000 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .text.HAL_EXTI_GenerateSWI - 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_info 0x0000000000000000 0x649 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_abbrev 0x0000000000000000 0x1a8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_aranges - 0x0000000000000000 0x60 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_rnglists - 0x0000000000000000 0x46 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x1d1 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_line 0x0000000000000000 0xa54 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_str 0x0000000000000000 0xe2c23 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .comment 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .debug_frame 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .ARM.attributes - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .data.pFlash 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_Program - 0x0000000000000000 0xd8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_Program_IT - 0x0000000000000000 0xb0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_IRQHandler - 0x0000000000000000 0x1b0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_EndOfOperationCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_OperationErrorCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_Unlock - 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_Lock - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_OB_Unlock - 0x0000000000000000 0x38 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_OB_Lock - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_OB_Launch - 0x0000000000000000 0x24 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.HAL_FLASH_GetError - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.FLASH_WaitForLastOperation - 0x0000000000000000 0xac ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.FLASH_Program_DoubleWord - 0x0000000000000000 0x4c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .text.FLASH_Program_Fast - 0x0000000000000000 0x6c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_info 0x0000000000000000 0x6ad ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_abbrev 0x0000000000000000 0x324 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_aranges - 0x0000000000000000 0x88 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_rnglists - 0x0000000000000000 0x65 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x1cb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_line 0x0000000000000000 0xa89 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_str 0x0000000000000000 0xe2e16 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .comment 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .debug_frame 0x0000000000000000 0x204 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .ARM.attributes - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.HAL_FLASHEx_Erase - 0x0000000000000000 0x138 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.HAL_FLASHEx_Erase_IT - 0x0000000000000000 0xe4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.HAL_FLASHEx_OBProgram - 0x0000000000000000 0xdc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.HAL_FLASHEx_OBGetConfig - 0x0000000000000000 0x9c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_MassErase - 0x0000000000000000 0x50 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_PageErase - 0x0000000000000000 0x6c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_FlushCaches - 0x0000000000000000 0x94 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_OB_WRPConfig - 0x0000000000000000 0xc8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_OB_RDPConfig - 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_OB_UserConfig - 0x0000000000000000 0x1f0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_OB_PCROPConfig - 0x0000000000000000 0x158 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_OB_GetWRP - 0x0000000000000000 0x94 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_OB_GetRDP - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_OB_GetUser - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .text.FLASH_OB_GetPCROP - 0x0000000000000000 0x110 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_info 0x0000000000000000 0x825 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_abbrev 0x0000000000000000 0x244 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_aranges - 0x0000000000000000 0x90 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_rnglists - 0x0000000000000000 0x71 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_line 0x0000000000000000 0xd2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_str 0x0000000000000000 0xe2e74 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .comment 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .debug_frame 0x0000000000000000 0x248 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .ARM.attributes - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .RamFunc 0x0000000000000000 0x68 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_info 0x0000000000000000 0x1ee ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_abbrev 0x0000000000000000 0xd1 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_aranges - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_rnglists - 0x0000000000000000 0x19 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_line 0x0000000000000000 0x709 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_str 0x0000000000000000 0xe2a56 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .comment 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .debug_frame 0x0000000000000000 0x50 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .ARM.attributes - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .text.HAL_GPIO_DeInit - 0x0000000000000000 0x1e8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .text.HAL_GPIO_TogglePin - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .text.HAL_GPIO_LockPin - 0x0000000000000000 0x50 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .text.HAL_GPIO_EXTI_Callback - 0x0000000000000000 0x16 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_DeInit - 0x0000000000000000 0x5e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_MspInit - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_MspDeInit - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Transmit - 0x0000000000000000 0x230 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Receive - 0x0000000000000000 0x1ec ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Slave_Transmit - 0x0000000000000000 0x268 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Slave_Receive - 0x0000000000000000 0x220 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Transmit_IT - 0x0000000000000000 0x130 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Receive_IT - 0x0000000000000000 0xe0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Slave_Transmit_IT - 0x0000000000000000 0xdc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Slave_Receive_IT - 0x0000000000000000 0xa0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Transmit_DMA - 0x0000000000000000 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Receive_DMA - 0x0000000000000000 0x1e0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Slave_Transmit_DMA - 0x0000000000000000 0x1d8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Slave_Receive_DMA - 0x0000000000000000 0x16c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Mem_Write_IT - 0x0000000000000000 0x114 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Mem_Read_IT - 0x0000000000000000 0x10c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Mem_Write_DMA - 0x0000000000000000 0x1cc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Mem_Read_DMA - 0x0000000000000000 0x1cc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_IsDeviceReady - 0x0000000000000000 0x212 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Seq_Transmit_IT - 0x0000000000000000 0x17c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Seq_Transmit_DMA - 0x0000000000000000 0x2a0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Seq_Receive_IT - 0x0000000000000000 0x108 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Seq_Receive_DMA - 0x0000000000000000 0x208 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Slave_Seq_Transmit_IT - 0x0000000000000000 0x164 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Slave_Seq_Transmit_DMA - 0x0000000000000000 0x28c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Slave_Seq_Receive_IT - 0x0000000000000000 0x164 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Slave_Seq_Receive_DMA - 0x0000000000000000 0x28c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_EnableListen_IT - 0x0000000000000000 0x40 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_DisableListen_IT - 0x0000000000000000 0x62 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_Master_Abort_IT - 0x0000000000000000 0xa0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_MasterTxCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_MasterRxCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_MemTxCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_MemRxCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_GetState - 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_GetMode - 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2C_GetError - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_Master_ISR_IT - 0x0000000000000000 0x24e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_Mem_ISR_IT - 0x0000000000000000 0x24c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_Master_ISR_DMA - 0x0000000000000000 0x1d6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_Mem_ISR_DMA - 0x0000000000000000 0x24c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_Slave_ISR_DMA - 0x0000000000000000 0x1ac ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_ITMasterSeqCplt - 0x0000000000000000 0x7a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_ITMasterCplt - 0x0000000000000000 0x190 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_DMAMasterTransmitCplt - 0x0000000000000000 0x96 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_DMASlaveTransmitCplt - 0x0000000000000000 0x40 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_DMAMasterReceiveCplt - 0x0000000000000000 0x96 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_DMASlaveReceiveCplt - 0x0000000000000000 0x46 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_DMAError - 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_WaitOnRXNEFlagUntilTimeout - 0x0000000000000000 0x104 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_Enable_IRQ - 0x0000000000000000 0x108 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_ConvertOtherXferOptions - 0x0000000000000000 0x36 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .text.HAL_I2CEx_EnableWakeUp - 0x0000000000000000 0x84 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .text.HAL_I2CEx_DisableWakeUp - 0x0000000000000000 0x84 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .text.HAL_I2CEx_EnableFastModePlus - 0x0000000000000000 0x40 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .text.HAL_I2CEx_DisableFastModePlus - 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_DeInit - 0x0000000000000000 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_EnableBkUpAccess - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_DisableBkUpAccess - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_ConfigPVD - 0x0000000000000000 0xc0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_EnablePVD - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_DisablePVD - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_EnableWakeUpPin - 0x0000000000000000 0x40 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_DisableWakeUpPin - 0x0000000000000000 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_EnterSLEEPMode - 0x0000000000000000 0x68 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_EnterSTOPMode - 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_EnterSTANDBYMode - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_EnableSleepOnExit - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_DisableSleepOnExit - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_EnableSEVOnPend - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_DisableSEVOnPend - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .text.HAL_PWR_PVDCallback - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_info 0x0000000000000000 0x91e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_abbrev 0x0000000000000000 0x1d4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_aranges - 0x0000000000000000 0x98 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_rnglists - 0x0000000000000000 0x6e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x1dd ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_line 0x0000000000000000 0x8b1 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_str 0x0000000000000000 0xe2ed5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .comment 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .debug_frame 0x0000000000000000 0x230 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .ARM.attributes - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnableBatteryCharging - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisableBatteryCharging - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnableVddUSB - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisableVddUSB - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnableVddIO2 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisableVddIO2 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnableInternalWakeUpLine - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisableInternalWakeUpLine - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnableGPIOPullUp - 0x0000000000000000 0x148 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisableGPIOPullUp - 0x0000000000000000 0xdc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnableGPIOPullDown - 0x0000000000000000 0x148 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisableGPIOPullDown - 0x0000000000000000 0xe0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnablePullUpPullDownConfig - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisablePullUpPullDownConfig - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnableSRAM2ContentRetention - 0x0000000000000000 0x10 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisableSRAM2ContentRetention - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_SetSRAM2ContentRetention - 0x0000000000000000 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnableExtSMPS_0V95 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisableExtSMPS_0V95 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnablePVM1 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisablePVM1 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnablePVM2 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisablePVM2 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnablePVM3 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisablePVM3 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnablePVM4 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisablePVM4 - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_ConfigPVM - 0x0000000000000000 0x2a4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnableLowPowerRunMode - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_DisableLowPowerRunMode - 0x0000000000000000 0x70 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnterSTOP0Mode - 0x0000000000000000 0x54 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnterSTOP1Mode - 0x0000000000000000 0x58 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnterSTOP2Mode - 0x0000000000000000 0x58 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_EnterSHUTDOWNMode - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_PVD_PVM_IRQHandler - 0x0000000000000000 0x7c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_PVM1Callback - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_PVM2Callback - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_PVM3Callback - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .text.HAL_PWREx_PVM4Callback - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text.HAL_RCC_DeInit - 0x0000000000000000 0x144 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text.HAL_RCC_MCOConfig - 0x0000000000000000 0x68 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text.HAL_RCC_GetOscConfig - 0x0000000000000000 0x18c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text.HAL_RCC_GetClockConfig - 0x0000000000000000 0x64 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text.HAL_RCC_EnableCSS - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text.HAL_RCC_NMI_IRQHandler - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text.HAL_RCC_CSSCallback - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text.HAL_RCC_GetResetSource - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_GetPeriphCLKConfig - 0x0000000000000000 0x1e0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_GetPeriphCLKFreq - 0x0000000000000000 0xadc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_EnablePLLSAI1 - 0x0000000000000000 0xd0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_DisablePLLSAI1 - 0x0000000000000000 0x74 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_EnablePLLSAI2 - 0x0000000000000000 0xc4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_DisablePLLSAI2 - 0x0000000000000000 0x74 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_WakeUpStopCLKConfig - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_StandbyMSIRangeConfig - 0x0000000000000000 0x30 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_EnableLSECSS - 0x0000000000000000 0x24 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_DisableLSECSS - 0x0000000000000000 0x30 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_EnableLSECSS_IT - 0x0000000000000000 0x4c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_LSECSS_IRQHandler - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_LSECSS_Callback - 0x0000000000000000 0xe ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_EnableLSCO - 0x0000000000000000 0xd4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_DisableLSCO - 0x0000000000000000 0x88 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_EnableMSIPLLMode - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_RCCEx_DisableMSIPLLMode - 0x0000000000000000 0x20 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.RCCEx_GetSAIxPeriphCLKFreq - 0x0000000000000000 0x1e0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_info 0x0000000000000000 0x70 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_abbrev 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_aranges - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x1c6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_line 0x0000000000000000 0x6da ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .debug_str 0x0000000000000000 0xe2941 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .comment 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .ARM.attributes - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_info 0x0000000000000000 0x70 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_abbrev 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_aranges - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_line 0x0000000000000000 0x6dd ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .debug_str 0x0000000000000000 0xe2944 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .comment 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .ARM.attributes - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_HalfDuplex_Init - 0x0000000000000000 0xac ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_LIN_Init - 0x0000000000000000 0xdc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_MultiProcessor_Init - 0x0000000000000000 0xd4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_DeInit - 0x0000000000000000 0x7a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_MspInit - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_MspDeInit - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_Receive - 0x0000000000000000 0x192 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_Transmit_IT - 0x0000000000000000 0xbc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_Receive_IT - 0x0000000000000000 0x98 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_Transmit_DMA - 0x0000000000000000 0xf8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_Receive_DMA - 0x0000000000000000 0x98 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_DMAPause - 0x0000000000000000 0x11a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_DMAResume - 0x0000000000000000 0x106 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_DMAStop - 0x0000000000000000 0x124 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_Abort - 0x0000000000000000 0x1f6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_AbortTransmit - 0x0000000000000000 0xd0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_AbortReceive - 0x0000000000000000 0x162 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_Abort_IT - 0x0000000000000000 0x250 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_AbortTransmit_IT - 0x0000000000000000 0xf0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_AbortReceive_IT - 0x0000000000000000 0x194 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_IRQHandler - 0x0000000000000000 0x5d4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_TxCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_TxHalfCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_RxCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_RxHalfCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_ErrorCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_AbortCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_AbortTransmitCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_AbortReceiveCpltCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UARTEx_RxEventCallback - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_ReceiverTimeout_Config - 0x0000000000000000 0x38 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_EnableReceiverTimeout - 0x0000000000000000 0x70 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_DisableReceiverTimeout - 0x0000000000000000 0x70 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_MultiProcessor_EnableMuteMode - 0x0000000000000000 0x6c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_MultiProcessor_DisableMuteMode - 0x0000000000000000 0x6c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_MultiProcessor_EnterMuteMode - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_HalfDuplex_EnableTransmitter - 0x0000000000000000 0xa4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_HalfDuplex_EnableReceiver - 0x0000000000000000 0xa4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_LIN_SendBreak - 0x0000000000000000 0x54 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_GetState - 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.HAL_UART_GetError - 0x0000000000000000 0x1a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_Start_Receive_IT - 0x0000000000000000 0x18c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_Start_Receive_DMA - 0x0000000000000000 0x140 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_EndTxTransfer - 0x0000000000000000 0x4c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_DMATransmitCplt - 0x0000000000000000 0x9a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_DMATxHalfCplt - 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_DMAReceiveCplt - 0x0000000000000000 0x12c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_DMARxHalfCplt - 0x0000000000000000 0x3e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_DMAError - 0x0000000000000000 0x7e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_DMAAbortOnError - 0x0000000000000000 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_DMATxAbortCallback - 0x0000000000000000 0x6c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_DMARxAbortCallback - 0x0000000000000000 0x80 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_DMATxOnlyAbortCallback - 0x0000000000000000 0x2a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_DMARxOnlyAbortCallback - 0x0000000000000000 0x4e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_TxISR_8BIT - 0x0000000000000000 0xb8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_TxISR_16BIT - 0x0000000000000000 0xc0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_EndTransmit_IT - 0x0000000000000000 0x54 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_RxISR_8BIT - 0x0000000000000000 0x1bc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .text.UART_RxISR_16BIT - 0x0000000000000000 0x1bc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .group 0x0000000000000000 0xc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .data 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .bss 0x0000000000000000 0x0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_RS485Ex_Init - 0x0000000000000000 0xce ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_UARTEx_WakeupCallback - 0x0000000000000000 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_UARTEx_EnableClockStopMode - 0x0000000000000000 0x68 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_UARTEx_DisableClockStopMode - 0x0000000000000000 0x68 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_MultiProcessorEx_AddressLength_Set - 0x0000000000000000 0x5e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_UARTEx_StopModeWakeUpSourceConfig - 0x0000000000000000 0xb2 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_UARTEx_EnableStopMode - 0x0000000000000000 0x66 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_UARTEx_DisableStopMode - 0x0000000000000000 0x66 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_UARTEx_ReceiveToIdle - 0x0000000000000000 0x206 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_UARTEx_ReceiveToIdle_IT - 0x0000000000000000 0xa0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_UARTEx_ReceiveToIdle_DMA - 0x0000000000000000 0xa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.HAL_UARTEx_GetRxEventType - 0x0000000000000000 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text.UARTEx_Wakeup_AddressConfig - 0x0000000000000000 0x46 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_info 0x0000000000000000 0xdff ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_abbrev 0x0000000000000000 0x2be ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_aranges - 0x0000000000000000 0x80 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_rnglists - 0x0000000000000000 0x60 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0xaa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x1a7 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x2e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x51 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x103 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x6a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x1df ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x22 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0xfb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x1011 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x11f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x1a17a ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x38e6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x174 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x5c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x159e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x5a5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x1b9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x18b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x26b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x23d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x241 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x37c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0xd6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x22c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x61 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0xa5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x122 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x3ef ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x5cf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_macro 0x0000000000000000 0x330 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_line 0x0000000000000000 0xbdd ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_str 0x0000000000000000 0xe30ee ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .comment 0x0000000000000000 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .debug_frame 0x0000000000000000 0x204 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .ARM.attributes - 0x0000000000000000 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-exit.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-exit.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-exit.o) - .text.exit 0x0000000000000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-exit.o) - .debug_frame 0x0000000000000000 0x28 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-exit.o) - .ARM.attributes - 0x0000000000000000 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-exit.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .text.__fp_lock - 0x0000000000000000 0x18 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .text.__fp_unlock - 0x0000000000000000 0x18 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .text.__sfp 0x0000000000000000 0xa8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .text.__fp_lock_all - 0x0000000000000000 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .text.__fp_unlock_all - 0x0000000000000000 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fwalk.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fwalk.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fwalk.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-printf.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-printf.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-printf.o) - .text._printf_r - 0x0000000000000000 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-printf.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-puts.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-puts.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-puts.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memset.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memset.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memset.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-impure.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-impure.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-impure.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-errno.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-errno.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-errno.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-init.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-init.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-init.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .text.__retarget_lock_init - 0x0000000000000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .text.__retarget_lock_close - 0x0000000000000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .text.__retarget_lock_close_recursive - 0x0000000000000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .text.__retarget_lock_acquire - 0x0000000000000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .text.__retarget_lock_try_acquire - 0x0000000000000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .text.__retarget_lock_try_acquire_recursive - 0x0000000000000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .text.__retarget_lock_release - 0x0000000000000000 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .bss.__lock___arc4random_mutex - 0x0000000000000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .bss.__lock___at_quick_exit_mutex - 0x0000000000000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .bss.__lock___atexit_recursive_mutex - 0x0000000000000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .bss.__lock___dd_hash_mutex - 0x0000000000000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .bss.__lock___env_recursive_mutex - 0x0000000000000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .bss.__lock___tz_mutex - 0x0000000000000000 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - .text.__sprint_r - 0x0000000000000000 0x1a /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - .text.vfprintf - 0x0000000000000000 0x14 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf_i.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf_i.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf_i.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fflush.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fflush.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fflush.o) - .text.fflush 0x0000000000000000 0x28 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fflush.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mlock.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mlock.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mlock.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - .text.__seofread - 0x0000000000000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fvwrite.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fvwrite.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fvwrite.o) - .text.__sfvwrite_r - 0x0000000000000000 0x294 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fvwrite.o) - .debug_frame 0x0000000000000000 0x3c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fvwrite.o) - .ARM.attributes - 0x0000000000000000 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fvwrite.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wbuf.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wbuf.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wbuf.o) - .text.__swbuf 0x0000000000000000 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wbuf.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wsetup.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wsetup.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wsetup.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-makebuf.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-makebuf.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-makebuf.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memmove.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memmove.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memmove.o) - .text.memmove 0x0000000000000000 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memmove.o) - .debug_frame 0x0000000000000000 0x28 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memmove.o) - .ARM.attributes - 0x0000000000000000 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memmove.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-closer.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-closer.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-closer.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reent.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reent.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reent.o) - .text._reclaim_reent - 0x0000000000000000 0xac /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reent.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fstatr.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fstatr.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fstatr.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-isattyr.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-isattyr.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-isattyr.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lseekr.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lseekr.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lseekr.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-readr.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-readr.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-readr.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-sbrkr.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-sbrkr.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-sbrkr.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-writer.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-writer.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-writer.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memchr.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memchr.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memcpy-stub.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memcpy-stub.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memcpy-stub.o) - .text.memcpy 0x0000000000000000 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memcpy-stub.o) - .debug_frame 0x0000000000000000 0x28 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memcpy-stub.o) - .ARM.attributes - 0x0000000000000000 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memcpy-stub.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-freer.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-freer.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-freer.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reallocr.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reallocr.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reallocr.o) - .text._realloc_r - 0x0000000000000000 0x5e /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reallocr.o) - .debug_frame 0x0000000000000000 0x3c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reallocr.o) - .ARM.attributes - 0x0000000000000000 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reallocr.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-msizer.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-msizer.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-msizer.o) - .text._malloc_usable_size_r - 0x0000000000000000 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-msizer.o) - .debug_frame 0x0000000000000000 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-msizer.o) - .ARM.attributes - 0x0000000000000000 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-msizer.o) - .text 0x0000000000000000 0x254 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldf3.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldf3.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldf3.o) - .debug_frame 0x0000000000000000 0x30 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldf3.o) - .ARM.attributes - 0x0000000000000000 0x1e /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldf3.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_addsubdf3.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_addsubdf3.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldivdf3.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldivdf3.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_fixdfsi.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_fixdfsi.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_aeabi_uldivmod.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_aeabi_uldivmod.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_udivmoddi4.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_udivmoddi4.o) - .ARM.extab 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_udivmoddi4.o) - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_dvmd_tls.o) - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_dvmd_tls.o) - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtend.o - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtend.o - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtend.o - .rodata 0x0000000000000000 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtend.o - .eh_frame 0x0000000000000000 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtend.o - .comment 0x0000000000000000 0x44 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtend.o - .ARM.attributes - 0x0000000000000000 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtend.o - .text 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o - .data 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o - .bss 0x0000000000000000 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o - -Memory Configuration - -Name Origin Length Attributes -RAM 0x0000000020000000 0x0000000000018000 xrw -RAM2 0x0000000010000000 0x0000000000008000 xrw -FLASH 0x0000000008000000 0x0000000000100000 xr -*default* 0x0000000000000000 0xffffffffffffffff - -Linker script and memory map - -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/crt0.o -LOAD ./Core/Src/dev_config.o -LOAD ./Core/Src/main.o -LOAD ./Core/Src/stm32l4xx_hal_msp.o -LOAD ./Core/Src/stm32l4xx_it.o -LOAD ./Core/Src/syscalls.o -LOAD ./Core/Src/sysmem.o -LOAD ./Core/Src/system_stm32l4xx.o -LOAD ./Core/Src/tsl2591x.o -LOAD ./Core/Startup/startup_stm32l476rgtx.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o -LOAD ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o -START GROUP -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libstdc++_nano.a -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libsupc++_nano.a -END GROUP -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libstdc++_nano.a -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libm.a -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a -START GROUP -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a -END GROUP -START GROUP -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libnosys.a -END GROUP -START GROUP -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libnosys.a -END GROUP -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtend.o -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o - 0x0000000020018000 _estack = (ORIGIN (RAM) + LENGTH (RAM)) - 0x0000000000000200 _Min_Heap_Size = 0x200 - 0x0000000000000400 _Min_Stack_Size = 0x400 - -.isr_vector 0x0000000008000000 0x188 - 0x0000000008000000 . = ALIGN (0x4) - *(.isr_vector) - .isr_vector 0x0000000008000000 0x188 ./Core/Startup/startup_stm32l476rgtx.o - 0x0000000008000000 g_pfnVectors - 0x0000000008000188 . = ALIGN (0x4) - -.text 0x0000000008000190 0x6d50 - 0x0000000008000190 . = ALIGN (0x4) - *(.text) - .text 0x0000000008000190 0x40 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - .text 0x00000000080001d0 0xa0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memchr.o) - 0x00000000080001d0 memchr - .text 0x0000000008000270 0x378 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_addsubdf3.o) - 0x0000000008000270 __aeabi_drsub - 0x0000000008000278 __subdf3 - 0x0000000008000278 __aeabi_dsub - 0x000000000800027c __aeabi_dadd - 0x000000000800027c __adddf3 - 0x00000000080004f4 __aeabi_ui2d - 0x00000000080004f4 __floatunsidf - 0x0000000008000514 __floatsidf - 0x0000000008000514 __aeabi_i2d - 0x0000000008000538 __extendsfdf2 - 0x0000000008000538 __aeabi_f2d - 0x000000000800057c __aeabi_ul2d - 0x000000000800057c __floatundidf - 0x000000000800058c __aeabi_l2d - 0x000000000800058c __floatdidf - .text 0x00000000080005e8 0x424 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldivdf3.o) - 0x00000000080005e8 __aeabi_dmul - 0x00000000080005e8 __muldf3 - 0x000000000800083c __aeabi_ddiv - 0x000000000800083c __divdf3 - .text 0x0000000008000a0c 0x50 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_fixdfsi.o) - 0x0000000008000a0c __fixdfsi - 0x0000000008000a0c __aeabi_d2iz - .text 0x0000000008000a5c 0x30 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_aeabi_uldivmod.o) - 0x0000000008000a5c __aeabi_uldivmod - .text 0x0000000008000a8c 0x2c8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_udivmoddi4.o) - 0x0000000008000a8c __udivmoddi4 - .text 0x0000000008000d54 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_dvmd_tls.o) - 0x0000000008000d54 __aeabi_ldiv0 - 0x0000000008000d54 __aeabi_idiv0 - *(.text*) - .text.DEV_Delay_ms - 0x0000000008000d58 0x16 ./Core/Src/dev_config.o - 0x0000000008000d58 DEV_Delay_ms - .text.GPIO_Config - 0x0000000008000d6e 0xe ./Core/Src/dev_config.o - 0x0000000008000d6e GPIO_Config - .text.DEV_I2C_Init - 0x0000000008000d7c 0x2c ./Core/Src/dev_config.o - 0x0000000008000d7c DEV_I2C_Init - .text.I2C_Write_Byte - 0x0000000008000da8 0x4c ./Core/Src/dev_config.o - 0x0000000008000da8 I2C_Write_Byte - .text.I2C_Read_Byte - 0x0000000008000df4 0x48 ./Core/Src/dev_config.o - 0x0000000008000df4 I2C_Read_Byte - .text.I2C_Read_Word - 0x0000000008000e3c 0x4c ./Core/Src/dev_config.o - 0x0000000008000e3c I2C_Read_Word - .text.DEV_ModuleInit - 0x0000000008000e88 0x28 ./Core/Src/dev_config.o - 0x0000000008000e88 DEV_ModuleInit - .text.HAL_GPIO_EXTI_Callback - 0x0000000008000eb0 0x4c ./Core/Src/main.o - 0x0000000008000eb0 HAL_GPIO_EXTI_Callback - .text.main 0x0000000008000efc 0x70 ./Core/Src/main.o - 0x0000000008000efc main - .text.SystemClock_Config - 0x0000000008000f6c 0x8c ./Core/Src/main.o - 0x0000000008000f6c SystemClock_Config - .text.MX_I2C1_Init - 0x0000000008000ff8 0x7c ./Core/Src/main.o - .text.MX_USART2_UART_Init - 0x0000000008001074 0x60 ./Core/Src/main.o - .text.MX_DMA_Init - 0x00000000080010d4 0x4c ./Core/Src/main.o - .text.MX_GPIO_Init - 0x0000000008001120 0x9c ./Core/Src/main.o - .text.Error_Handler - 0x00000000080011bc 0xa ./Core/Src/main.o - 0x00000000080011bc Error_Handler - *fill* 0x00000000080011c6 0x2 - .text.HAL_MspInit - 0x00000000080011c8 0x48 ./Core/Src/stm32l4xx_hal_msp.o - 0x00000000080011c8 HAL_MspInit - .text.HAL_I2C_MspInit - 0x0000000008001210 0x194 ./Core/Src/stm32l4xx_hal_msp.o - 0x0000000008001210 HAL_I2C_MspInit - .text.HAL_UART_MspInit - 0x00000000080013a4 0xb8 ./Core/Src/stm32l4xx_hal_msp.o - 0x00000000080013a4 HAL_UART_MspInit - .text.NMI_Handler - 0x000000000800145c 0x6 ./Core/Src/stm32l4xx_it.o - 0x000000000800145c NMI_Handler - .text.HardFault_Handler - 0x0000000008001462 0x6 ./Core/Src/stm32l4xx_it.o - 0x0000000008001462 HardFault_Handler - .text.MemManage_Handler - 0x0000000008001468 0x6 ./Core/Src/stm32l4xx_it.o - 0x0000000008001468 MemManage_Handler - .text.BusFault_Handler - 0x000000000800146e 0x6 ./Core/Src/stm32l4xx_it.o - 0x000000000800146e BusFault_Handler - .text.UsageFault_Handler - 0x0000000008001474 0x6 ./Core/Src/stm32l4xx_it.o - 0x0000000008001474 UsageFault_Handler - .text.SVC_Handler - 0x000000000800147a 0xe ./Core/Src/stm32l4xx_it.o - 0x000000000800147a SVC_Handler - .text.DebugMon_Handler - 0x0000000008001488 0xe ./Core/Src/stm32l4xx_it.o - 0x0000000008001488 DebugMon_Handler - .text.PendSV_Handler - 0x0000000008001496 0xe ./Core/Src/stm32l4xx_it.o - 0x0000000008001496 PendSV_Handler - .text.SysTick_Handler - 0x00000000080014a4 0xc ./Core/Src/stm32l4xx_it.o - 0x00000000080014a4 SysTick_Handler - .text.DMA1_Channel6_IRQHandler - 0x00000000080014b0 0x14 ./Core/Src/stm32l4xx_it.o - 0x00000000080014b0 DMA1_Channel6_IRQHandler - .text.DMA1_Channel7_IRQHandler - 0x00000000080014c4 0x14 ./Core/Src/stm32l4xx_it.o - 0x00000000080014c4 DMA1_Channel7_IRQHandler - .text.I2C1_EV_IRQHandler - 0x00000000080014d8 0x14 ./Core/Src/stm32l4xx_it.o - 0x00000000080014d8 I2C1_EV_IRQHandler - .text.I2C1_ER_IRQHandler - 0x00000000080014ec 0x14 ./Core/Src/stm32l4xx_it.o - 0x00000000080014ec I2C1_ER_IRQHandler - .text.EXTI15_10_IRQHandler - 0x0000000008001500 0x10 ./Core/Src/stm32l4xx_it.o - 0x0000000008001500 EXTI15_10_IRQHandler - .text._read 0x0000000008001510 0x3a ./Core/Src/syscalls.o - 0x0000000008001510 _read - .text._write 0x000000000800154a 0x38 ./Core/Src/syscalls.o - 0x000000000800154a _write - .text._close 0x0000000008001582 0x18 ./Core/Src/syscalls.o - 0x0000000008001582 _close - .text._fstat 0x000000000800159a 0x20 ./Core/Src/syscalls.o - 0x000000000800159a _fstat - .text._isatty 0x00000000080015ba 0x16 ./Core/Src/syscalls.o - 0x00000000080015ba _isatty - .text._lseek 0x00000000080015d0 0x1a ./Core/Src/syscalls.o - 0x00000000080015d0 _lseek - *fill* 0x00000000080015ea 0x2 - .text._sbrk 0x00000000080015ec 0x6c ./Core/Src/sysmem.o - 0x00000000080015ec _sbrk - .text.SystemInit - 0x0000000008001658 0x24 ./Core/Src/system_stm32l4xx.o - 0x0000000008001658 SystemInit - .text.TSL2591_Read_Byte - 0x000000000800167c 0x26 ./Core/Src/tsl2591x.o - .text.TSL2591_Read_Word - 0x00000000080016a2 0x26 ./Core/Src/tsl2591x.o - .text.TSL2591_Write_Byte - 0x00000000080016c8 0x2c ./Core/Src/tsl2591x.o - .text.TSL2591_Enable - 0x00000000080016f4 0x10 ./Core/Src/tsl2591x.o - 0x00000000080016f4 TSL2591_Enable - .text.TSL2591_Disable - 0x0000000008001704 0x10 ./Core/Src/tsl2591x.o - 0x0000000008001704 TSL2591_Disable - .text.TSL2591_Get_Gain - 0x0000000008001714 0x30 ./Core/Src/tsl2591x.o - 0x0000000008001714 TSL2591_Get_Gain - .text.TSL2591_Set_Gain - 0x0000000008001744 0x6c ./Core/Src/tsl2591x.o - 0x0000000008001744 TSL2591_Set_Gain - .text.TSL2591_Set_IntegralTime - 0x00000000080017b0 0x58 ./Core/Src/tsl2591x.o - 0x00000000080017b0 TSL2591_Set_IntegralTime - .text.TSL2591_Read_Channel0 - 0x0000000008001808 0x10 ./Core/Src/tsl2591x.o - 0x0000000008001808 TSL2591_Read_Channel0 - .text.TSL2591_Read_Channel1 - 0x0000000008001818 0x10 ./Core/Src/tsl2591x.o - 0x0000000008001818 TSL2591_Read_Channel1 - .text.TSL2591_Init - 0x0000000008001828 0x40 ./Core/Src/tsl2591x.o - 0x0000000008001828 TSL2591_Init - .text.TSL2591_Read_Lux - 0x0000000008001868 0x1f0 ./Core/Src/tsl2591x.o - 0x0000000008001868 TSL2591_Read_Lux - .text.TSL2591_SET_LuxInterrupt - 0x0000000008001a58 0x18c ./Core/Src/tsl2591x.o - 0x0000000008001a58 TSL2591_SET_LuxInterrupt - .text.Reset_Handler - 0x0000000008001be4 0x50 ./Core/Startup/startup_stm32l476rgtx.o - 0x0000000008001be4 Reset_Handler - .text.Default_Handler - 0x0000000008001c34 0x2 ./Core/Startup/startup_stm32l476rgtx.o - 0x0000000008001c34 TIM1_BRK_TIM15_IRQHandler - 0x0000000008001c34 EXTI2_IRQHandler - 0x0000000008001c34 TIM8_TRG_COM_IRQHandler - 0x0000000008001c34 TIM8_CC_IRQHandler - 0x0000000008001c34 TIM1_CC_IRQHandler - 0x0000000008001c34 TSC_IRQHandler - 0x0000000008001c34 TAMP_STAMP_IRQHandler - 0x0000000008001c34 EXTI3_IRQHandler - 0x0000000008001c34 LPTIM2_IRQHandler - 0x0000000008001c34 DFSDM1_FLT1_IRQHandler - 0x0000000008001c34 I2C3_ER_IRQHandler - 0x0000000008001c34 DFSDM1_FLT2_IRQHandler - 0x0000000008001c34 EXTI0_IRQHandler - 0x0000000008001c34 I2C2_EV_IRQHandler - 0x0000000008001c34 CAN1_RX0_IRQHandler - 0x0000000008001c34 FPU_IRQHandler - 0x0000000008001c34 TIM1_UP_TIM16_IRQHandler - 0x0000000008001c34 ADC1_2_IRQHandler - 0x0000000008001c34 SPI1_IRQHandler - 0x0000000008001c34 TIM6_DAC_IRQHandler - 0x0000000008001c34 TIM8_UP_IRQHandler - 0x0000000008001c34 DMA2_Channel2_IRQHandler - 0x0000000008001c34 DMA1_Channel4_IRQHandler - 0x0000000008001c34 SAI2_IRQHandler - 0x0000000008001c34 DFSDM1_FLT3_IRQHandler - 0x0000000008001c34 USART3_IRQHandler - 0x0000000008001c34 CAN1_RX1_IRQHandler - 0x0000000008001c34 LCD_IRQHandler - 0x0000000008001c34 UART5_IRQHandler - 0x0000000008001c34 ADC3_IRQHandler - 0x0000000008001c34 TIM4_IRQHandler - 0x0000000008001c34 DMA2_Channel1_IRQHandler - 0x0000000008001c34 QUADSPI_IRQHandler - 0x0000000008001c34 UART4_IRQHandler - 0x0000000008001c34 DMA2_Channel4_IRQHandler - 0x0000000008001c34 TIM3_IRQHandler - 0x0000000008001c34 RCC_IRQHandler - 0x0000000008001c34 DMA1_Channel1_IRQHandler - 0x0000000008001c34 Default_Handler - 0x0000000008001c34 DMA2_Channel7_IRQHandler - 0x0000000008001c34 TIM7_IRQHandler - 0x0000000008001c34 SDMMC1_IRQHandler - 0x0000000008001c34 TIM5_IRQHandler - 0x0000000008001c34 I2C3_EV_IRQHandler - 0x0000000008001c34 EXTI9_5_IRQHandler - 0x0000000008001c34 RTC_WKUP_IRQHandler - 0x0000000008001c34 PVD_PVM_IRQHandler - 0x0000000008001c34 SPI2_IRQHandler - 0x0000000008001c34 CAN1_TX_IRQHandler - 0x0000000008001c34 DMA2_Channel5_IRQHandler - 0x0000000008001c34 DMA1_Channel5_IRQHandler - 0x0000000008001c34 EXTI4_IRQHandler - 0x0000000008001c34 RNG_IRQHandler - 0x0000000008001c34 TIM1_TRG_COM_TIM17_IRQHandler - 0x0000000008001c34 DMA1_Channel3_IRQHandler - 0x0000000008001c34 COMP_IRQHandler - 0x0000000008001c34 WWDG_IRQHandler - 0x0000000008001c34 LPUART1_IRQHandler - 0x0000000008001c34 DMA2_Channel6_IRQHandler - 0x0000000008001c34 TIM2_IRQHandler - 0x0000000008001c34 EXTI1_IRQHandler - 0x0000000008001c34 USART2_IRQHandler - 0x0000000008001c34 DFSDM1_FLT0_IRQHandler - 0x0000000008001c34 I2C2_ER_IRQHandler - 0x0000000008001c34 DMA1_Channel2_IRQHandler - 0x0000000008001c34 TIM8_BRK_IRQHandler - 0x0000000008001c34 CAN1_SCE_IRQHandler - 0x0000000008001c34 FLASH_IRQHandler - 0x0000000008001c34 USART1_IRQHandler - 0x0000000008001c34 OTG_FS_IRQHandler - 0x0000000008001c34 SPI3_IRQHandler - 0x0000000008001c34 FMC_IRQHandler - 0x0000000008001c34 SWPMI1_IRQHandler - 0x0000000008001c34 LPTIM1_IRQHandler - 0x0000000008001c34 SAI1_IRQHandler - 0x0000000008001c34 DMA2_Channel3_IRQHandler - 0x0000000008001c34 RTC_Alarm_IRQHandler - .text.HAL_Init - 0x0000000008001c36 0x30 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0000000008001c36 HAL_Init - *fill* 0x0000000008001c66 0x2 - .text.HAL_InitTick - 0x0000000008001c68 0x78 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0000000008001c68 HAL_InitTick - .text.HAL_IncTick - 0x0000000008001ce0 0x28 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0000000008001ce0 HAL_IncTick - .text.HAL_GetTick - 0x0000000008001d08 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0000000008001d08 HAL_GetTick - .text.HAL_Delay - 0x0000000008001d20 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0000000008001d20 HAL_Delay - .text.__NVIC_SetPriorityGrouping - 0x0000000008001d68 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.__NVIC_GetPriorityGrouping - 0x0000000008001db0 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.__NVIC_EnableIRQ - 0x0000000008001dcc 0x3c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.__NVIC_SetPriority - 0x0000000008001e08 0x54 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.NVIC_EncodePriority - 0x0000000008001e5c 0x66 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - *fill* 0x0000000008001ec2 0x2 - .text.SysTick_Config - 0x0000000008001ec4 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .text.HAL_NVIC_SetPriorityGrouping - 0x0000000008001f08 0x16 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - 0x0000000008001f08 HAL_NVIC_SetPriorityGrouping - .text.HAL_NVIC_SetPriority - 0x0000000008001f1e 0x38 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - 0x0000000008001f1e HAL_NVIC_SetPriority - .text.HAL_NVIC_EnableIRQ - 0x0000000008001f56 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - 0x0000000008001f56 HAL_NVIC_EnableIRQ - .text.HAL_SYSTICK_Config - 0x0000000008001f72 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - 0x0000000008001f72 HAL_SYSTICK_Config - *fill* 0x0000000008001f8a 0x2 - .text.HAL_DMA_Init - 0x0000000008001f8c 0x170 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - 0x0000000008001f8c HAL_DMA_Init - .text.HAL_DMA_Abort_IT - 0x00000000080020fc 0x82 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - 0x00000000080020fc HAL_DMA_Abort_IT - .text.HAL_DMA_IRQHandler - 0x000000000800217e 0x15e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - 0x000000000800217e HAL_DMA_IRQHandler - .text.HAL_DMA_GetState - 0x00000000080022dc 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - 0x00000000080022dc HAL_DMA_GetState - .text.HAL_GPIO_Init - 0x00000000080022f8 0x354 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - 0x00000000080022f8 HAL_GPIO_Init - .text.HAL_GPIO_ReadPin - 0x000000000800264c 0x30 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - 0x000000000800264c HAL_GPIO_ReadPin - .text.HAL_GPIO_WritePin - 0x000000000800267c 0x30 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - 0x000000000800267c HAL_GPIO_WritePin - .text.HAL_GPIO_EXTI_IRQHandler - 0x00000000080026ac 0x30 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - 0x00000000080026ac HAL_GPIO_EXTI_IRQHandler - .text.HAL_I2C_Init - 0x00000000080026dc 0x136 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x00000000080026dc HAL_I2C_Init - *fill* 0x0000000008002812 0x2 - .text.HAL_I2C_Mem_Write - 0x0000000008002814 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0000000008002814 HAL_I2C_Mem_Write - .text.HAL_I2C_Mem_Read - 0x0000000008002a3c 0x234 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0000000008002a3c HAL_I2C_Mem_Read - .text.HAL_I2C_EV_IRQHandler - 0x0000000008002c70 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0000000008002c70 HAL_I2C_EV_IRQHandler - .text.HAL_I2C_ER_IRQHandler - 0x0000000008002ca4 0xb6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0000000008002ca4 HAL_I2C_ER_IRQHandler - .text.HAL_I2C_SlaveTxCpltCallback - 0x0000000008002d5a 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0000000008002d5a HAL_I2C_SlaveTxCpltCallback - .text.HAL_I2C_SlaveRxCpltCallback - 0x0000000008002d6e 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0000000008002d6e HAL_I2C_SlaveRxCpltCallback - .text.HAL_I2C_AddrCallback - 0x0000000008002d82 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0000000008002d82 HAL_I2C_AddrCallback - .text.HAL_I2C_ListenCpltCallback - 0x0000000008002d9e 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0000000008002d9e HAL_I2C_ListenCpltCallback - .text.HAL_I2C_ErrorCallback - 0x0000000008002db2 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0000000008002db2 HAL_I2C_ErrorCallback - .text.HAL_I2C_AbortCpltCallback - 0x0000000008002dc6 0x14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0x0000000008002dc6 HAL_I2C_AbortCpltCallback - .text.I2C_Slave_ISR_IT - 0x0000000008002dda 0x1f0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - *fill* 0x0000000008002fca 0x2 - .text.I2C_RequestMemoryWrite - 0x0000000008002fcc 0xa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_RequestMemoryRead - 0x0000000008003074 0xa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_ITAddrCplt - 0x000000000800311c 0x108 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_ITSlaveSeqCplt - 0x0000000008003224 0xb8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_ITSlaveCplt - 0x00000000080032dc 0x224 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_ITListenCplt - 0x0000000008003500 0xa8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_ITError - 0x00000000080035a8 0x1e0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_TreatErrorCallback - 0x0000000008003788 0x4e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_Flush_TXDR - 0x00000000080037d6 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_DMAAbort - 0x000000000800381e 0x3c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_WaitOnFlagUntilTimeout - 0x000000000800385a 0x9e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_WaitOnTXISFlagUntilTimeout - 0x00000000080038f8 0x8e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_WaitOnSTOPFlagUntilTimeout - 0x0000000008003986 0x86 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_IsErrorOccurred - 0x0000000008003a0c 0x1c0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_TransferConfig - 0x0000000008003bcc 0x64 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.I2C_Disable_IRQ - 0x0000000008003c30 0xbc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .text.HAL_I2CEx_ConfigAnalogFilter - 0x0000000008003cec 0x96 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - 0x0000000008003cec HAL_I2CEx_ConfigAnalogFilter - .text.HAL_I2CEx_ConfigDigitalFilter - 0x0000000008003d82 0x98 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - 0x0000000008003d82 HAL_I2CEx_ConfigDigitalFilter - *fill* 0x0000000008003e1a 0x2 - .text.HAL_PWREx_GetVoltageRange - 0x0000000008003e1c 0x1c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - 0x0000000008003e1c HAL_PWREx_GetVoltageRange - .text.HAL_PWREx_ControlVoltageScaling - 0x0000000008003e38 0xac ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - 0x0000000008003e38 HAL_PWREx_ControlVoltageScaling - .text.HAL_RCC_OscConfig - 0x0000000008003ee4 0x7b8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x0000000008003ee4 HAL_RCC_OscConfig - .text.HAL_RCC_ClockConfig - 0x000000000800469c 0x200 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x000000000800469c HAL_RCC_ClockConfig - .text.HAL_RCC_GetSysClockFreq - 0x000000000800489c 0x118 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x000000000800489c HAL_RCC_GetSysClockFreq - .text.HAL_RCC_GetHCLKFreq - 0x00000000080049b4 0x18 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x00000000080049b4 HAL_RCC_GetHCLKFreq - .text.HAL_RCC_GetPCLK1Freq - 0x00000000080049cc 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x00000000080049cc HAL_RCC_GetPCLK1Freq - .text.HAL_RCC_GetPCLK2Freq - 0x00000000080049f8 0x2c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0x00000000080049f8 HAL_RCC_GetPCLK2Freq - .text.RCC_SetFlashLatencyFromMSIRange - 0x0000000008004a24 0xc0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .text.HAL_RCCEx_PeriphCLKConfig - 0x0000000008004ae4 0x5d4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - 0x0000000008004ae4 HAL_RCCEx_PeriphCLKConfig - .text.RCCEx_PLLSAI1_Config - 0x00000000080050b8 0x1e8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.RCCEx_PLLSAI2_Config - 0x00000000080052a0 0x1bc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .text.HAL_UART_Init - 0x000000000800545c 0x9c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x000000000800545c HAL_UART_Init - .text.HAL_UART_Transmit - 0x00000000080054f8 0x114 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x00000000080054f8 HAL_UART_Transmit - .text.UART_SetConfig - 0x000000000800560c 0x570 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x000000000800560c UART_SetConfig - .text.UART_AdvFeatureConfig - 0x0000000008005b7c 0x144 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x0000000008005b7c UART_AdvFeatureConfig - .text.UART_CheckIdleState - 0x0000000008005cc0 0x150 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x0000000008005cc0 UART_CheckIdleState - .text.UART_WaitOnFlagUntilTimeout - 0x0000000008005e10 0xce ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0x0000000008005e10 UART_WaitOnFlagUntilTimeout - .text.UART_EndRxTransfer - 0x0000000008005ede 0xc8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - *fill* 0x0000000008005fa6 0x2 - .text.std 0x0000000008005fa8 0x6c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .text.stdio_exit_handler - 0x0000000008006014 0x18 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .text.cleanup_stdio - 0x000000000800602c 0x40 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .text.global_stdio_init.part.0 - 0x000000000800606c 0x3c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .text.__sfp_lock_acquire - 0x00000000080060a8 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - 0x00000000080060a8 __sfp_lock_acquire - .text.__sfp_lock_release - 0x00000000080060b4 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - 0x00000000080060b4 __sfp_lock_release - .text.__sinit 0x00000000080060c0 0x30 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - 0x00000000080060c0 __sinit - .text._fwalk_sglue - 0x00000000080060f0 0x3c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fwalk.o) - 0x00000000080060f0 _fwalk_sglue - .text.printf 0x000000000800612c 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-printf.o) - 0x000000000800612c printf - 0x000000000800612c iprintf - .text._puts_r 0x0000000008006150 0xa8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-puts.o) - 0x0000000008006150 _puts_r - .text.puts 0x00000000080061f8 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-puts.o) - 0x00000000080061f8 puts - .text.memset 0x0000000008006208 0x10 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memset.o) - 0x0000000008006208 memset - .text.__errno 0x0000000008006218 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-errno.o) - 0x0000000008006218 __errno - .text.__libc_init_array - 0x0000000008006224 0x48 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-init.o) - 0x0000000008006224 __libc_init_array - .text.__retarget_lock_init_recursive - 0x000000000800626c 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - 0x000000000800626c __retarget_lock_init_recursive - .text.__retarget_lock_acquire_recursive - 0x000000000800626e 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - 0x000000000800626e __retarget_lock_acquire_recursive - .text.__retarget_lock_release_recursive - 0x0000000008006270 0x2 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - 0x0000000008006270 __retarget_lock_release_recursive - .text.__sfputc_r - 0x0000000008006272 0x2e /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - .text.__sfputs_r - 0x00000000080062a0 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - 0x00000000080062a0 __sfputs_r - .text._vfprintf_r - 0x00000000080062c4 0x234 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - 0x00000000080062c4 _vfiprintf_r - 0x00000000080062c4 _vfprintf_r - .text.sbrk_aligned - 0x00000000080064f8 0x40 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) - .text._malloc_r - 0x0000000008006538 0x100 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) - 0x0000000008006538 _malloc_r - .text._printf_common - 0x0000000008006638 0xda /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf_i.o) - 0x0000000008006638 _printf_common - *fill* 0x0000000008006712 0x2 - .text._printf_i - 0x0000000008006714 0x244 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf_i.o) - 0x0000000008006714 _printf_i - .text.__sflush_r - 0x0000000008006958 0x10c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fflush.o) - 0x0000000008006958 __sflush_r - .text._fflush_r - 0x0000000008006a64 0x50 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fflush.o) - 0x0000000008006a64 _fflush_r - .text.__malloc_lock - 0x0000000008006ab4 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mlock.o) - 0x0000000008006ab4 __malloc_lock - .text.__malloc_unlock - 0x0000000008006ac0 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mlock.o) - 0x0000000008006ac0 __malloc_unlock - .text.__sread 0x0000000008006acc 0x22 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - 0x0000000008006acc __sread - .text.__swrite - 0x0000000008006aee 0x38 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - 0x0000000008006aee __swrite - .text.__sseek 0x0000000008006b26 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - 0x0000000008006b26 __sseek - .text.__sclose - 0x0000000008006b4a 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - 0x0000000008006b4a __sclose - .text.__swbuf_r - 0x0000000008006b52 0x7a /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wbuf.o) - 0x0000000008006b52 __swbuf_r - .text.__swsetup_r - 0x0000000008006bcc 0xb0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wsetup.o) - 0x0000000008006bcc __swsetup_r - .text.__swhatbuf_r - 0x0000000008006c7c 0x4c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-makebuf.o) - 0x0000000008006c7c __swhatbuf_r - .text.__smakebuf_r - 0x0000000008006cc8 0x78 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-makebuf.o) - 0x0000000008006cc8 __smakebuf_r - .text._close_r - 0x0000000008006d40 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-closer.o) - 0x0000000008006d40 _close_r - .text._fstat_r - 0x0000000008006d60 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fstatr.o) - 0x0000000008006d60 _fstat_r - .text._isatty_r - 0x0000000008006d84 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-isattyr.o) - 0x0000000008006d84 _isatty_r - .text._lseek_r - 0x0000000008006da4 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lseekr.o) - 0x0000000008006da4 _lseek_r - .text._read_r 0x0000000008006dc8 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-readr.o) - 0x0000000008006dc8 _read_r - .text._sbrk_r 0x0000000008006dec 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-sbrkr.o) - 0x0000000008006dec _sbrk_r - .text._write_r - 0x0000000008006e0c 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-writer.o) - 0x0000000008006e0c _write_r - .text._free_r 0x0000000008006e30 0x98 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-freer.o) - 0x0000000008006e30 _free_r - *(.glue_7) - .glue_7 0x0000000008006ec8 0x0 linker stubs - *(.glue_7t) - .glue_7t 0x0000000008006ec8 0x0 linker stubs - *(.eh_frame) - .eh_frame 0x0000000008006ec8 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - *(.init) - .init 0x0000000008006ec8 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o - 0x0000000008006ec8 _init - .init 0x0000000008006ecc 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o - *(.fini) - .fini 0x0000000008006ed4 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o - 0x0000000008006ed4 _fini - .fini 0x0000000008006ed8 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o - 0x0000000008006ee0 . = ALIGN (0x4) - 0x0000000008006ee0 _etext = . - -.vfp11_veneer 0x0000000008006ee0 0x0 - .vfp11_veneer 0x0000000008006ee0 0x0 linker stubs - -.v4_bx 0x0000000008006ee0 0x0 - .v4_bx 0x0000000008006ee0 0x0 linker stubs - -.iplt 0x0000000008006ee0 0x0 - .iplt 0x0000000008006ee0 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - -.rodata 0x0000000008006ee0 0x108 - 0x0000000008006ee0 . = ALIGN (0x4) - *(.rodata) - .rodata 0x0000000008006ee0 0x1a ./Core/Src/main.o - *fill* 0x0000000008006efa 0x2 - .rodata 0x0000000008006efc 0x70 ./Core/Src/tsl2591x.o - *(.rodata*) - .rodata.AHBPrescTable - 0x0000000008006f6c 0x10 ./Core/Src/system_stm32l4xx.o - 0x0000000008006f6c AHBPrescTable - .rodata.APBPrescTable - 0x0000000008006f7c 0x8 ./Core/Src/system_stm32l4xx.o - 0x0000000008006f7c APBPrescTable - .rodata.MSIRangeTable - 0x0000000008006f84 0x30 ./Core/Src/system_stm32l4xx.o - 0x0000000008006f84 MSIRangeTable - .rodata._vfprintf_r.str1.1 - 0x0000000008006fb4 0x11 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - .rodata._printf_i.str1.1 - 0x0000000008006fc5 0x22 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf_i.o) - 0x0000000008006fe8 . = ALIGN (0x4) - *fill* 0x0000000008006fe7 0x1 - -.ARM.extab 0x0000000008006fe8 0x0 - 0x0000000008006fe8 . = ALIGN (0x4) - *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x0000000008006fe8 . = ALIGN (0x4) - -.ARM 0x0000000008006fe8 0x8 - 0x0000000008006fe8 . = ALIGN (0x4) - 0x0000000008006fe8 __exidx_start = . - *(.ARM.exidx*) - .ARM.exidx 0x0000000008006fe8 0x8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_udivmoddi4.o) - 0x0000000008006ff0 __exidx_end = . - 0x0000000008006ff0 . = ALIGN (0x4) - -.rel.dyn 0x0000000008006ff0 0x0 - .rel.iplt 0x0000000008006ff0 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - -.preinit_array 0x0000000008006ff0 0x0 - 0x0000000008006ff0 . = ALIGN (0x4) - 0x0000000008006ff0 PROVIDE (__preinit_array_start = .) - *(.preinit_array*) - 0x0000000008006ff0 PROVIDE (__preinit_array_end = .) - 0x0000000008006ff0 . = ALIGN (0x4) - -.init_array 0x0000000008006ff0 0x4 - 0x0000000008006ff0 . = ALIGN (0x4) - 0x0000000008006ff0 PROVIDE (__init_array_start = .) - *(SORT_BY_NAME(.init_array.*)) - *(.init_array*) - .init_array 0x0000000008006ff0 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - 0x0000000008006ff4 PROVIDE (__init_array_end = .) - 0x0000000008006ff4 . = ALIGN (0x4) - -.fini_array 0x0000000008006ff4 0x4 - 0x0000000008006ff4 . = ALIGN (0x4) - [!provide] PROVIDE (__fini_array_start = .) - *(SORT_BY_NAME(.fini_array.*)) - *(.fini_array*) - .fini_array 0x0000000008006ff4 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - [!provide] PROVIDE (__fini_array_end = .) - 0x0000000008006ff8 . = ALIGN (0x4) - 0x0000000008006ff8 _sidata = LOADADDR (.data) - -.data 0x0000000020000000 0x68 load address 0x0000000008006ff8 - 0x0000000020000000 . = ALIGN (0x4) - 0x0000000020000000 _sdata = . - *(.data) - *(.data*) - .data.SystemCoreClock - 0x0000000020000000 0x4 ./Core/Src/system_stm32l4xx.o - 0x0000000020000000 SystemCoreClock - .data.uwTickPrio - 0x0000000020000004 0x4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0000000020000004 uwTickPrio - .data.uwTickFreq - 0x0000000020000008 0x1 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0000000020000008 uwTickFreq - *fill* 0x0000000020000009 0x3 - .data.__sglue 0x000000002000000c 0xc /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - 0x000000002000000c __sglue - .data._impure_data - 0x0000000020000018 0x4c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-impure.o) - 0x0000000020000018 _impure_data - .data._impure_ptr - 0x0000000020000064 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-impure.o) - 0x0000000020000064 _impure_ptr - *(.RamFunc) - *(.RamFunc*) - 0x0000000020000068 . = ALIGN (0x4) - 0x0000000020000068 _edata = . - -.igot.plt 0x0000000020000068 0x0 load address 0x0000000008007060 - .igot.plt 0x0000000020000068 0x0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - 0x0000000020000068 . = ALIGN (0x4) - -.bss 0x0000000020000068 0x2e8 load address 0x0000000008007060 - 0x0000000020000068 _sbss = . - 0x0000000020000068 __bss_start__ = _sbss - *(.bss) - .bss 0x0000000020000068 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - *(.bss*) - .bss.h2c1 0x0000000020000084 0x4 ./Core/Src/dev_config.o - 0x0000000020000084 h2c1 - .bss.DEV_I2C_Device - 0x0000000020000088 0x1 ./Core/Src/dev_config.o - 0x0000000020000088 DEV_I2C_Device - .bss.I2C_ADDR 0x0000000020000089 0x1 ./Core/Src/dev_config.o - 0x0000000020000089 I2C_ADDR - *fill* 0x000000002000008a 0x2 - .bss.hi2c1 0x000000002000008c 0x54 ./Core/Src/main.o - 0x000000002000008c hi2c1 - .bss.hdma_i2c1_rx - 0x00000000200000e0 0x48 ./Core/Src/main.o - 0x00000000200000e0 hdma_i2c1_rx - .bss.hdma_i2c1_tx - 0x0000000020000128 0x48 ./Core/Src/main.o - 0x0000000020000128 hdma_i2c1_tx - .bss.huart2 0x0000000020000170 0x88 ./Core/Src/main.o - 0x0000000020000170 huart2 - .bss.__sbrk_heap_end - 0x00000000200001f8 0x4 ./Core/Src/sysmem.o - .bss.TSL2591_Gain - 0x00000000200001fc 0x1 ./Core/Src/tsl2591x.o - 0x00000000200001fc TSL2591_Gain - .bss.TSL2591_Time - 0x00000000200001fd 0x1 ./Core/Src/tsl2591x.o - 0x00000000200001fd TSL2591_Time - *fill* 0x00000000200001fe 0x2 - .bss.uwTick 0x0000000020000200 0x4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0x0000000020000200 uwTick - .bss.__sf 0x0000000020000204 0x138 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - 0x0000000020000204 __sf - .bss.__stdio_exit_handler - 0x000000002000033c 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - 0x000000002000033c __stdio_exit_handler - .bss.__lock___malloc_recursive_mutex - 0x0000000020000340 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - 0x0000000020000340 __lock___malloc_recursive_mutex - .bss.__lock___sfp_recursive_mutex - 0x0000000020000341 0x1 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - 0x0000000020000341 __lock___sfp_recursive_mutex - *fill* 0x0000000020000342 0x2 - .bss.__malloc_free_list - 0x0000000020000344 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) - 0x0000000020000344 __malloc_free_list - .bss.__malloc_sbrk_start - 0x0000000020000348 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) - 0x0000000020000348 __malloc_sbrk_start - .bss.errno 0x000000002000034c 0x4 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reent.o) - 0x000000002000034c errno - *(COMMON) - 0x0000000020000350 . = ALIGN (0x4) - 0x0000000020000350 _ebss = . - 0x0000000020000350 __bss_end__ = _ebss - -._user_heap_stack - 0x0000000020000350 0x600 load address 0x0000000008007060 - 0x0000000020000350 . = ALIGN (0x8) - [!provide] PROVIDE (end = .) - 0x0000000020000350 PROVIDE (_end = .) - 0x0000000020000550 . = (. + _Min_Heap_Size) - *fill* 0x0000000020000350 0x200 - 0x0000000020000950 . = (. + _Min_Stack_Size) - *fill* 0x0000000020000550 0x400 - 0x0000000020000950 . = ALIGN (0x8) - -/DISCARD/ - libc.a(*) - libm.a(*) - libgcc.a(*) - -.ARM.attributes - 0x0000000000000000 0x30 - *(.ARM.attributes) - .ARM.attributes - 0x0000000000000000 0x1e /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o - .ARM.attributes - 0x000000000000001e 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - .ARM.attributes - 0x0000000000000052 0x34 ./Core/Src/dev_config.o - .ARM.attributes - 0x0000000000000086 0x34 ./Core/Src/main.o - .ARM.attributes - 0x00000000000000ba 0x34 ./Core/Src/stm32l4xx_hal_msp.o - .ARM.attributes - 0x00000000000000ee 0x34 ./Core/Src/stm32l4xx_it.o - .ARM.attributes - 0x0000000000000122 0x34 ./Core/Src/syscalls.o - .ARM.attributes - 0x0000000000000156 0x34 ./Core/Src/sysmem.o - .ARM.attributes - 0x000000000000018a 0x34 ./Core/Src/system_stm32l4xx.o - .ARM.attributes - 0x00000000000001be 0x34 ./Core/Src/tsl2591x.o - .ARM.attributes - 0x00000000000001f2 0x21 ./Core/Startup/startup_stm32l476rgtx.o - .ARM.attributes - 0x0000000000000213 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .ARM.attributes - 0x0000000000000247 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .ARM.attributes - 0x000000000000027b 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .ARM.attributes - 0x00000000000002af 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .ARM.attributes - 0x00000000000002e3 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .ARM.attributes - 0x0000000000000317 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .ARM.attributes - 0x000000000000034b 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .ARM.attributes - 0x000000000000037f 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .ARM.attributes - 0x00000000000003b3 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .ARM.attributes - 0x00000000000003e7 0x34 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .ARM.attributes - 0x000000000000041b 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .ARM.attributes - 0x000000000000044f 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fwalk.o) - .ARM.attributes - 0x0000000000000483 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-printf.o) - .ARM.attributes - 0x00000000000004b7 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-puts.o) - .ARM.attributes - 0x00000000000004eb 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memset.o) - .ARM.attributes - 0x000000000000051f 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-impure.o) - .ARM.attributes - 0x0000000000000553 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-errno.o) - .ARM.attributes - 0x0000000000000587 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-init.o) - .ARM.attributes - 0x00000000000005bb 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .ARM.attributes - 0x00000000000005ef 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - .ARM.attributes - 0x0000000000000623 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) - .ARM.attributes - 0x0000000000000657 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf_i.o) - .ARM.attributes - 0x000000000000068b 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fflush.o) - .ARM.attributes - 0x00000000000006bf 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mlock.o) - .ARM.attributes - 0x00000000000006f3 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - .ARM.attributes - 0x0000000000000727 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wbuf.o) - .ARM.attributes - 0x000000000000075b 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wsetup.o) - .ARM.attributes - 0x000000000000078f 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-makebuf.o) - .ARM.attributes - 0x00000000000007c3 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-closer.o) - .ARM.attributes - 0x00000000000007f7 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reent.o) - .ARM.attributes - 0x000000000000082b 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fstatr.o) - .ARM.attributes - 0x000000000000085f 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-isattyr.o) - .ARM.attributes - 0x0000000000000893 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lseekr.o) - .ARM.attributes - 0x00000000000008c7 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-readr.o) - .ARM.attributes - 0x00000000000008fb 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-sbrkr.o) - .ARM.attributes - 0x000000000000092f 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-writer.o) - .ARM.attributes - 0x0000000000000963 0x1c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memchr.o) - .ARM.attributes - 0x000000000000097f 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-freer.o) - .ARM.attributes - 0x00000000000009b3 0x1e /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_addsubdf3.o) - .ARM.attributes - 0x00000000000009d1 0x1e /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldivdf3.o) - .ARM.attributes - 0x00000000000009ef 0x1e /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_fixdfsi.o) - .ARM.attributes - 0x0000000000000a0d 0x1e /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_aeabi_uldivmod.o) - .ARM.attributes - 0x0000000000000a2b 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_udivmoddi4.o) - .ARM.attributes - 0x0000000000000a5f 0x1e /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_dvmd_tls.o) - .ARM.attributes - 0x0000000000000a7d 0x1e /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o -OUTPUT(task4.elf elf32-littlearm) -LOAD linker stubs -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc.a -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libm.a -LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a - -.comment 0x0000000000000000 0x43 - .comment 0x0000000000000000 0x43 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o - 0x44 (size before relaxing) - .comment 0x0000000000000043 0x44 ./Core/Src/dev_config.o - .comment 0x0000000000000043 0x44 ./Core/Src/main.o - .comment 0x0000000000000043 0x44 ./Core/Src/stm32l4xx_hal_msp.o - .comment 0x0000000000000043 0x44 ./Core/Src/stm32l4xx_it.o - .comment 0x0000000000000043 0x44 ./Core/Src/syscalls.o - .comment 0x0000000000000043 0x44 ./Core/Src/sysmem.o - .comment 0x0000000000000043 0x44 ./Core/Src/system_stm32l4xx.o - .comment 0x0000000000000043 0x44 ./Core/Src/tsl2591x.o - .comment 0x0000000000000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .comment 0x0000000000000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .comment 0x0000000000000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .comment 0x0000000000000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .comment 0x0000000000000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .comment 0x0000000000000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .comment 0x0000000000000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .comment 0x0000000000000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .comment 0x0000000000000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .comment 0x0000000000000043 0x44 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - -.debug_info 0x0000000000000000 0xfbc5 - .debug_info 0x0000000000000000 0x9dd ./Core/Src/dev_config.o - .debug_info 0x00000000000009dd 0x145f ./Core/Src/main.o - .debug_info 0x0000000000001e3c 0x135c ./Core/Src/stm32l4xx_hal_msp.o - .debug_info 0x0000000000003198 0x740 ./Core/Src/stm32l4xx_it.o - .debug_info 0x00000000000038d8 0x6a3 ./Core/Src/syscalls.o - .debug_info 0x0000000000003f7b 0x168 ./Core/Src/sysmem.o - .debug_info 0x00000000000040e3 0x5b1 ./Core/Src/system_stm32l4xx.o - .debug_info 0x0000000000004694 0x54c ./Core/Src/tsl2591x.o - .debug_info 0x0000000000004be0 0x23 ./Core/Startup/startup_stm32l476rgtx.o - .debug_info 0x0000000000004c03 0xaeb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_info 0x00000000000056ee 0xd4c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_info 0x000000000000643a 0x6f4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_info 0x0000000000006b2e 0x757 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_info 0x0000000000007285 0x2093 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_info 0x0000000000009318 0x981 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_info 0x0000000000009c99 0x99e ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_info 0x000000000000a637 0xc14 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_info 0x000000000000b24b 0xe11 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_info 0x000000000000c05c 0x3b69 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - -.debug_abbrev 0x0000000000000000 0x269c - .debug_abbrev 0x0000000000000000 0x258 ./Core/Src/dev_config.o - .debug_abbrev 0x0000000000000258 0x2dd ./Core/Src/main.o - .debug_abbrev 0x0000000000000535 0x225 ./Core/Src/stm32l4xx_hal_msp.o - .debug_abbrev 0x000000000000075a 0x195 ./Core/Src/stm32l4xx_it.o - .debug_abbrev 0x00000000000008ef 0x1b6 ./Core/Src/syscalls.o - .debug_abbrev 0x0000000000000aa5 0xbc ./Core/Src/sysmem.o - .debug_abbrev 0x0000000000000b61 0x11a ./Core/Src/system_stm32l4xx.o - .debug_abbrev 0x0000000000000c7b 0x299 ./Core/Src/tsl2591x.o - .debug_abbrev 0x0000000000000f14 0x12 ./Core/Startup/startup_stm32l476rgtx.o - .debug_abbrev 0x0000000000000f26 0x242 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_abbrev 0x0000000000001168 0x327 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_abbrev 0x000000000000148f 0x1e4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_abbrev 0x0000000000001673 0x1cb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_abbrev 0x000000000000183e 0x261 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_abbrev 0x0000000000001a9f 0x1c3 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_abbrev 0x0000000000001c62 0x1f9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_abbrev 0x0000000000001e5b 0x2cb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_abbrev 0x0000000000002126 0x2a6 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_abbrev 0x00000000000023cc 0x2d0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - -.debug_aranges 0x0000000000000000 0xe20 - .debug_aranges - 0x0000000000000000 0x78 ./Core/Src/dev_config.o - .debug_aranges - 0x0000000000000078 0x58 ./Core/Src/main.o - .debug_aranges - 0x00000000000000d0 0x40 ./Core/Src/stm32l4xx_hal_msp.o - .debug_aranges - 0x0000000000000110 0x88 ./Core/Src/stm32l4xx_it.o - .debug_aranges - 0x0000000000000198 0xa8 ./Core/Src/syscalls.o - .debug_aranges - 0x0000000000000240 0x20 ./Core/Src/sysmem.o - .debug_aranges - 0x0000000000000260 0x28 ./Core/Src/system_stm32l4xx.o - .debug_aranges - 0x0000000000000288 0x90 ./Core/Src/tsl2591x.o - .debug_aranges - 0x0000000000000318 0x28 ./Core/Startup/startup_stm32l476rgtx.o - .debug_aranges - 0x0000000000000340 0x130 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_aranges - 0x0000000000000470 0x118 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_aranges - 0x0000000000000588 0x80 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_aranges - 0x0000000000000608 0x58 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_aranges - 0x0000000000000660 0x2a0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_aranges - 0x0000000000000900 0x48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_aranges - 0x0000000000000948 0x160 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_aranges - 0x0000000000000aa8 0x90 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_aranges - 0x0000000000000b38 0xc0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_aranges - 0x0000000000000bf8 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - -.debug_rnglists - 0x0000000000000000 0xadd - .debug_rnglists - 0x0000000000000000 0x55 ./Core/Src/dev_config.o - .debug_rnglists - 0x0000000000000055 0x3f ./Core/Src/main.o - .debug_rnglists - 0x0000000000000094 0x2d ./Core/Src/stm32l4xx_hal_msp.o - .debug_rnglists - 0x00000000000000c1 0x61 ./Core/Src/stm32l4xx_it.o - .debug_rnglists - 0x0000000000000122 0x79 ./Core/Src/syscalls.o - .debug_rnglists - 0x000000000000019b 0x13 ./Core/Src/sysmem.o - .debug_rnglists - 0x00000000000001ae 0x1a ./Core/Src/system_stm32l4xx.o - .debug_rnglists - 0x00000000000001c8 0x69 ./Core/Src/tsl2591x.o - .debug_rnglists - 0x0000000000000231 0x19 ./Core/Startup/startup_stm32l476rgtx.o - .debug_rnglists - 0x000000000000024a 0xdf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_rnglists - 0x0000000000000329 0xce ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_rnglists - 0x00000000000003f7 0x64 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_rnglists - 0x000000000000045b 0x3f ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_rnglists - 0x000000000000049a 0x228 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_rnglists - 0x00000000000006c2 0x35 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_rnglists - 0x00000000000006f7 0x109 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_rnglists - 0x0000000000000800 0x6d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_rnglists - 0x000000000000086d 0x95 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_rnglists - 0x0000000000000902 0x1db ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - -.debug_macro 0x0000000000000000 0x276ea - .debug_macro 0x0000000000000000 0x2eb ./Core/Src/dev_config.o - .debug_macro 0x00000000000002eb 0xaa8 ./Core/Src/dev_config.o - .debug_macro 0x0000000000000d93 0x1a7 ./Core/Src/dev_config.o - .debug_macro 0x0000000000000f3a 0x2e ./Core/Src/dev_config.o - .debug_macro 0x0000000000000f68 0x28 ./Core/Src/dev_config.o - .debug_macro 0x0000000000000f90 0x22 ./Core/Src/dev_config.o - .debug_macro 0x0000000000000fb2 0x8e ./Core/Src/dev_config.o - .debug_macro 0x0000000000001040 0x51 ./Core/Src/dev_config.o - .debug_macro 0x0000000000001091 0x103 ./Core/Src/dev_config.o - .debug_macro 0x0000000000001194 0x6a ./Core/Src/dev_config.o - .debug_macro 0x00000000000011fe 0x1df ./Core/Src/dev_config.o - .debug_macro 0x00000000000013dd 0x1c ./Core/Src/dev_config.o - .debug_macro 0x00000000000013f9 0x22 ./Core/Src/dev_config.o - .debug_macro 0x000000000000141b 0xfb ./Core/Src/dev_config.o - .debug_macro 0x0000000000001516 0x1011 ./Core/Src/dev_config.o - .debug_macro 0x0000000000002527 0x11f ./Core/Src/dev_config.o - .debug_macro 0x0000000000002646 0x1a17a ./Core/Src/dev_config.o - .debug_macro 0x000000000001c7c0 0x6d ./Core/Src/dev_config.o - .debug_macro 0x000000000001c82d 0x38e6 ./Core/Src/dev_config.o - .debug_macro 0x0000000000020113 0x174 ./Core/Src/dev_config.o - .debug_macro 0x0000000000020287 0x5c ./Core/Src/dev_config.o - .debug_macro 0x00000000000202e3 0x159e ./Core/Src/dev_config.o - .debug_macro 0x0000000000021881 0x5a5 ./Core/Src/dev_config.o - .debug_macro 0x0000000000021e26 0x1b9 ./Core/Src/dev_config.o - .debug_macro 0x0000000000021fdf 0x18b ./Core/Src/dev_config.o - .debug_macro 0x000000000002216a 0x26b ./Core/Src/dev_config.o - .debug_macro 0x00000000000223d5 0x23d ./Core/Src/dev_config.o - .debug_macro 0x0000000000022612 0x241 ./Core/Src/dev_config.o - .debug_macro 0x0000000000022853 0x37c ./Core/Src/dev_config.o - .debug_macro 0x0000000000022bcf 0xd6 ./Core/Src/dev_config.o - .debug_macro 0x0000000000022ca5 0x22c ./Core/Src/dev_config.o - .debug_macro 0x0000000000022ed1 0x61 ./Core/Src/dev_config.o - .debug_macro 0x0000000000022f32 0xa5 ./Core/Src/dev_config.o - .debug_macro 0x0000000000022fd7 0x122 ./Core/Src/dev_config.o - .debug_macro 0x00000000000230f9 0x3ef ./Core/Src/dev_config.o - .debug_macro 0x00000000000234e8 0x5cf ./Core/Src/dev_config.o - .debug_macro 0x0000000000023ab7 0x44 ./Core/Src/dev_config.o - .debug_macro 0x0000000000023afb 0x330 ./Core/Src/dev_config.o - .debug_macro 0x0000000000023e2b 0x10 ./Core/Src/dev_config.o - .debug_macro 0x0000000000023e3b 0x61 ./Core/Src/dev_config.o - .debug_macro 0x0000000000023e9c 0x2a ./Core/Src/dev_config.o - .debug_macro 0x0000000000023ec6 0x43 ./Core/Src/dev_config.o - .debug_macro 0x0000000000023f09 0x34 ./Core/Src/dev_config.o - .debug_macro 0x0000000000023f3d 0x16 ./Core/Src/dev_config.o - .debug_macro 0x0000000000023f53 0x35 ./Core/Src/dev_config.o - .debug_macro 0x0000000000023f88 0x369 ./Core/Src/dev_config.o - .debug_macro 0x00000000000242f1 0x10 ./Core/Src/dev_config.o - .debug_macro 0x0000000000024301 0x16 ./Core/Src/dev_config.o - .debug_macro 0x0000000000024317 0x43 ./Core/Src/dev_config.o - .debug_macro 0x000000000002435a 0x34 ./Core/Src/dev_config.o - .debug_macro 0x000000000002438e 0x10 ./Core/Src/dev_config.o - .debug_macro 0x000000000002439e 0x58 ./Core/Src/dev_config.o - .debug_macro 0x00000000000243f6 0x8e ./Core/Src/dev_config.o - .debug_macro 0x0000000000024484 0x1c ./Core/Src/dev_config.o - .debug_macro 0x00000000000244a0 0x177 ./Core/Src/dev_config.o - .debug_macro 0x0000000000024617 0x16 ./Core/Src/dev_config.o - .debug_macro 0x000000000002462d 0x16 ./Core/Src/dev_config.o - .debug_macro 0x0000000000024643 0x147 ./Core/Src/dev_config.o - .debug_macro 0x000000000002478a 0x16 ./Core/Src/dev_config.o - .debug_macro 0x00000000000247a0 0x20 ./Core/Src/dev_config.o - .debug_macro 0x00000000000247c0 0x34 ./Core/Src/dev_config.o - .debug_macro 0x00000000000247f4 0x1d4 ./Core/Src/main.o - .debug_macro 0x00000000000249c8 0x1d4 ./Core/Src/stm32l4xx_hal_msp.o - .debug_macro 0x0000000000024b9c 0x1de ./Core/Src/stm32l4xx_it.o - .debug_macro 0x0000000000024d7a 0x274 ./Core/Src/syscalls.o - .debug_macro 0x0000000000024fee 0x5b ./Core/Src/syscalls.o - .debug_macro 0x0000000000025049 0x94 ./Core/Src/syscalls.o - .debug_macro 0x00000000000250dd 0x57 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025134 0x10 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025144 0x10 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025154 0x10 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025164 0x10 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025174 0x1c ./Core/Src/syscalls.o - .debug_macro 0x0000000000025190 0x52 ./Core/Src/syscalls.o - .debug_macro 0x00000000000251e2 0x22 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025204 0x10 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025214 0x52 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025266 0xcf ./Core/Src/syscalls.o - .debug_macro 0x0000000000025335 0x1c ./Core/Src/syscalls.o - .debug_macro 0x0000000000025351 0x3d ./Core/Src/syscalls.o - .debug_macro 0x000000000002538e 0x35 ./Core/Src/syscalls.o - .debug_macro 0x00000000000253c3 0x12c ./Core/Src/syscalls.o - .debug_macro 0x00000000000254ef 0x16 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025505 0x16 ./Core/Src/syscalls.o - .debug_macro 0x000000000002551b 0x29 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025544 0x10 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025554 0x242 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025796 0x1c ./Core/Src/syscalls.o - .debug_macro 0x00000000000257b2 0x10 ./Core/Src/syscalls.o - .debug_macro 0x00000000000257c2 0x18a ./Core/Src/syscalls.o - .debug_macro 0x000000000002594c 0x16 ./Core/Src/syscalls.o - .debug_macro 0x0000000000025962 0xce ./Core/Src/syscalls.o - .debug_macro 0x0000000000025a30 0xff ./Core/Src/sysmem.o - .debug_macro 0x0000000000025b2f 0x23c ./Core/Src/sysmem.o - .debug_macro 0x0000000000025d6b 0x1c5 ./Core/Src/system_stm32l4xx.o - .debug_macro 0x0000000000025f30 0x2fe ./Core/Src/tsl2591x.o - .debug_macro 0x000000000002622e 0x34 ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000026262 0xee ./Core/Src/tsl2591x.o - .debug_macro 0x0000000000026350 0x213 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_macro 0x0000000000026563 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_macro 0x0000000000026728 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_macro 0x00000000000268ed 0x1cc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_macro 0x0000000000026ab9 0x291 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_macro 0x0000000000026d4a 0x1c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_macro 0x0000000000026f0f 0x1e9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_macro 0x00000000000270f8 0x207 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_macro 0x00000000000272ff 0x1fb ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_macro 0x00000000000274fa 0x1f0 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - -.debug_line 0x0000000000000000 0x11687 - .debug_line 0x0000000000000000 0x9af ./Core/Src/dev_config.o - .debug_line 0x00000000000009af 0x87e ./Core/Src/main.o - .debug_line 0x000000000000122d 0x7f8 ./Core/Src/stm32l4xx_hal_msp.o - .debug_line 0x0000000000001a25 0x81f ./Core/Src/stm32l4xx_it.o - .debug_line 0x0000000000002244 0x84b ./Core/Src/syscalls.o - .debug_line 0x0000000000002a8f 0x51c ./Core/Src/sysmem.o - .debug_line 0x0000000000002fab 0x77c ./Core/Src/system_stm32l4xx.o - .debug_line 0x0000000000003727 0xb45 ./Core/Src/tsl2591x.o - .debug_line 0x000000000000426c 0x7a ./Core/Startup/startup_stm32l476rgtx.o - .debug_line 0x00000000000042e6 0xad4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_line 0x0000000000004dba 0xc7b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_line 0x0000000000005a35 0xcc5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_line 0x00000000000066fa 0xb48 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_line 0x0000000000007242 0x38b3 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_line 0x000000000000aaf5 0x902 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_line 0x000000000000b3f7 0xccc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_line 0x000000000000c0c3 0xf4b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_line 0x000000000000d00e 0x14c5 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_line 0x000000000000e4d3 0x31b4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - -.debug_str 0x0000000000000000 0xecb39 - .debug_str 0x0000000000000000 0xe653e ./Core/Src/dev_config.o - 0xe68b1 (size before relaxing) - .debug_str 0x00000000000e653e 0xac6 ./Core/Src/main.o - 0xe3a8b (size before relaxing) - .debug_str 0x00000000000e7004 0x331 ./Core/Src/stm32l4xx_hal_msp.o - 0xe3ac8 (size before relaxing) - .debug_str 0x00000000000e7335 0x18e ./Core/Src/stm32l4xx_it.o - 0xe2fea (size before relaxing) - .debug_str 0x00000000000e74c3 0x20d8 ./Core/Src/syscalls.o - 0x98b0 (size before relaxing) - .debug_str 0x00000000000e959b 0x6b ./Core/Src/sysmem.o - 0x6067 (size before relaxing) - .debug_str 0x00000000000e9606 0xf2 ./Core/Src/system_stm32l4xx.o - 0xe2b6a (size before relaxing) - .debug_str 0x00000000000e96f8 0x4ba ./Core/Src/tsl2591x.o - 0xe67d8 (size before relaxing) - .debug_str 0x00000000000e9bb2 0x34 ./Core/Startup/startup_stm32l476rgtx.o - 0x79 (size before relaxing) - .debug_str 0x00000000000e9be6 0x63b ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - 0xe36fd (size before relaxing) - .debug_str 0x00000000000ea221 0x31d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - 0xe33b1 (size before relaxing) - .debug_str 0x00000000000ea53e 0x229 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - 0xe2dd4 (size before relaxing) - .debug_str 0x00000000000ea767 0xd9 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - 0xe2ce3 (size before relaxing) - .debug_str 0x00000000000ea840 0xd62 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - 0xe3d79 (size before relaxing) - .debug_str 0x00000000000eb5a2 0xb8 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - 0xe30a1 (size before relaxing) - .debug_str 0x00000000000eb65a 0x4e3 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - 0xe30c5 (size before relaxing) - .debug_str 0x00000000000ebb3d 0x3a1 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - 0xe31b0 (size before relaxing) - .debug_str 0x00000000000ebede 0x3bf ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - 0xe3329 (size before relaxing) - .debug_str 0x00000000000ec29d 0x89c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - 0xe38c2 (size before relaxing) - -.debug_frame 0x0000000000000000 0x4244 - .debug_frame 0x0000000000000000 0x1c0 ./Core/Src/dev_config.o - .debug_frame 0x00000000000001c0 0x110 ./Core/Src/main.o - .debug_frame 0x00000000000002d0 0xd0 ./Core/Src/stm32l4xx_hal_msp.o - .debug_frame 0x00000000000003a0 0x190 ./Core/Src/stm32l4xx_it.o - .debug_frame 0x0000000000000530 0x2ac ./Core/Src/syscalls.o - .debug_frame 0x00000000000007dc 0x34 ./Core/Src/sysmem.o - .debug_frame 0x0000000000000810 0x58 ./Core/Src/system_stm32l4xx.o - .debug_frame 0x0000000000000868 0x204 ./Core/Src/tsl2591x.o - .debug_frame 0x0000000000000a6c 0x498 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o - .debug_frame 0x0000000000000f04 0x498 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o - .debug_frame 0x000000000000139c 0x204 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o - .debug_frame 0x00000000000015a0 0x14c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o - .debug_frame 0x00000000000016ec 0xc38 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o - .debug_frame 0x0000000000002324 0x100 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o - .debug_frame 0x0000000000002424 0x584 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o - .debug_frame 0x00000000000029a8 0x21c ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o - .debug_frame 0x0000000000002bc4 0x2fc ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o - .debug_frame 0x0000000000002ec0 0x9f4 ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o - .debug_frame 0x00000000000038b4 0x144 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-findfp.o) - .debug_frame 0x00000000000039f8 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fwalk.o) - .debug_frame 0x0000000000003a2c 0x6c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-printf.o) - .debug_frame 0x0000000000003a98 0x3c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-puts.o) - .debug_frame 0x0000000000003ad4 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-memset.o) - .debug_frame 0x0000000000003af4 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-errno.o) - .debug_frame 0x0000000000003b14 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-init.o) - .debug_frame 0x0000000000003b40 0xb0 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lock.o) - .debug_frame 0x0000000000003bf0 0xa8 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf.o) - .debug_frame 0x0000000000003c98 0x50 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mallocr.o) - .debug_frame 0x0000000000003ce8 0x60 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-nano-vfprintf_i.o) - .debug_frame 0x0000000000003d48 0x5c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fflush.o) - .debug_frame 0x0000000000003da4 0x30 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-mlock.o) - .debug_frame 0x0000000000003dd4 0x88 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-stdio.o) - .debug_frame 0x0000000000003e5c 0x40 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wbuf.o) - .debug_frame 0x0000000000003e9c 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-wsetup.o) - .debug_frame 0x0000000000003ec8 0x58 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-makebuf.o) - .debug_frame 0x0000000000003f20 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-closer.o) - .debug_frame 0x0000000000003f4c 0x38 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-reent.o) - .debug_frame 0x0000000000003f84 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-fstatr.o) - .debug_frame 0x0000000000003fb0 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-isattyr.o) - .debug_frame 0x0000000000003fdc 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-lseekr.o) - .debug_frame 0x0000000000004008 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-readr.o) - .debug_frame 0x0000000000004034 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-sbrkr.o) - .debug_frame 0x0000000000004060 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-writer.o) - .debug_frame 0x000000000000408c 0x38 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(libc_a-freer.o) - .debug_frame 0x00000000000040c4 0xac /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_addsubdf3.o) - .debug_frame 0x0000000000004170 0x50 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_muldivdf3.o) - .debug_frame 0x00000000000041c0 0x24 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_arm_fixdfsi.o) - .debug_frame 0x00000000000041e4 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_aeabi_uldivmod.o) - .debug_frame 0x0000000000004210 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macos64_1.1.100.202310310803/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/libgcc.a(_udivmoddi4.o) - -.debug_line_str - 0x0000000000000000 0x6d - .debug_line_str - 0x0000000000000000 0x6d ./Core/Startup/startup_stm32l476rgtx.o - 0x85 (size before relaxing) diff --git a/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h b/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h new file mode 100644 index 0000000..301ca3b --- /dev/null +++ b/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_tim.h @@ -0,0 +1,5084 @@ +/** + ****************************************************************************** + * @file stm32l4xx_ll_tim.h + * @author MCD Application Team + * @brief Header file of TIM LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L4xx_LL_TIM_H +#define __STM32L4xx_LL_TIM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l4xx.h" + +/** @addtogroup STM32L4xx_LL_Driver + * @{ + */ + +#if defined (TIM1) || defined (TIM8) || defined (TIM2) || defined (TIM3) || defined (TIM4) || defined (TIM5) || defined (TIM15) || defined (TIM16) || defined (TIM17) || defined (TIM6) || defined (TIM7) + +/** @defgroup TIM_LL TIM + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/** @defgroup TIM_LL_Private_Variables TIM Private Variables + * @{ + */ +static const uint8_t OFFSET_TAB_CCMRx[] = +{ + 0x00U, /* 0: TIMx_CH1 */ + 0x00U, /* 1: TIMx_CH1N */ + 0x00U, /* 2: TIMx_CH2 */ + 0x00U, /* 3: TIMx_CH2N */ + 0x04U, /* 4: TIMx_CH3 */ + 0x04U, /* 5: TIMx_CH3N */ + 0x04U, /* 6: TIMx_CH4 */ + 0x3CU, /* 7: TIMx_CH5 */ + 0x3CU /* 8: TIMx_CH6 */ +}; + +static const uint8_t SHIFT_TAB_OCxx[] = +{ + 0U, /* 0: OC1M, OC1FE, OC1PE */ + 0U, /* 1: - NA */ + 8U, /* 2: OC2M, OC2FE, OC2PE */ + 0U, /* 3: - NA */ + 0U, /* 4: OC3M, OC3FE, OC3PE */ + 0U, /* 5: - NA */ + 8U, /* 6: OC4M, OC4FE, OC4PE */ + 0U, /* 7: OC5M, OC5FE, OC5PE */ + 8U /* 8: OC6M, OC6FE, OC6PE */ +}; + +static const uint8_t SHIFT_TAB_ICxx[] = +{ + 0U, /* 0: CC1S, IC1PSC, IC1F */ + 0U, /* 1: - NA */ + 8U, /* 2: CC2S, IC2PSC, IC2F */ + 0U, /* 3: - NA */ + 0U, /* 4: CC3S, IC3PSC, IC3F */ + 0U, /* 5: - NA */ + 8U, /* 6: CC4S, IC4PSC, IC4F */ + 0U, /* 7: - NA */ + 0U /* 8: - NA */ +}; + +static const uint8_t SHIFT_TAB_CCxP[] = +{ + 0U, /* 0: CC1P */ + 2U, /* 1: CC1NP */ + 4U, /* 2: CC2P */ + 6U, /* 3: CC2NP */ + 8U, /* 4: CC3P */ + 10U, /* 5: CC3NP */ + 12U, /* 6: CC4P */ + 16U, /* 7: CC5P */ + 20U /* 8: CC6P */ +}; + +static const uint8_t SHIFT_TAB_OISx[] = +{ + 0U, /* 0: OIS1 */ + 1U, /* 1: OIS1N */ + 2U, /* 2: OIS2 */ + 3U, /* 3: OIS2N */ + 4U, /* 4: OIS3 */ + 5U, /* 5: OIS3N */ + 6U, /* 6: OIS4 */ + 8U, /* 7: OIS5 */ + 10U /* 8: OIS6 */ +}; +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup TIM_LL_Private_Constants TIM Private Constants + * @{ + */ + +/* Defines used for the bit position in the register and perform offsets */ +#define TIM_POSITION_BRK_SOURCE (POSITION_VAL(Source) & 0x1FUL) + +/* Generic bit definitions for TIMx_OR2 register */ +#define TIMx_OR2_BKINP TIM1_OR2_BKINP /*!< BRK BKIN input polarity */ +#define TIMx_OR2_ETRSEL TIM1_OR2_ETRSEL /*!< TIMx ETR source selection */ + +/* Remap mask definitions */ +#define TIMx_OR1_RMP_SHIFT 16U +#define TIMx_OR1_RMP_MASK 0x0000FFFFU +#if defined(ADC3) +#define TIM1_OR1_RMP_MASK ((TIM1_OR1_ETR_ADC1_RMP | TIM1_OR1_ETR_ADC3_RMP | TIM1_OR1_TI1_RMP) << TIMx_OR1_RMP_SHIFT) +#else +#define TIM1_OR1_RMP_MASK ((TIM1_OR1_ETR_ADC1_RMP | TIM1_OR1_TI1_RMP) << TIMx_OR1_RMP_SHIFT) +#endif /* ADC3 */ +#define TIM2_OR1_RMP_MASK ((TIM2_OR1_TI4_RMP | TIM2_OR1_ETR1_RMP | TIM2_OR1_ITR1_RMP) << TIMx_OR1_RMP_SHIFT) +#define TIM3_OR1_RMP_MASK (TIM3_OR1_TI1_RMP << TIMx_OR1_RMP_SHIFT) +#if defined(ADC2) && defined(ADC3) +#define TIM8_OR1_RMP_MASK ((TIM8_OR1_ETR_ADC2_RMP | TIM8_OR1_ETR_ADC3_RMP | TIM8_OR1_TI1_RMP) << TIMx_OR1_RMP_SHIFT) +#else +#define TIM8_OR1_RMP_MASK (TIM8_OR1_TI1_RMP << TIMx_OR1_RMP_SHIFT) +#endif /* ADC2 & ADC3 */ +#define TIM15_OR1_RMP_MASK (TIM15_OR1_TI1_RMP << TIMx_OR1_RMP_SHIFT) +#define TIM16_OR1_RMP_MASK (TIM16_OR1_TI1_RMP << TIMx_OR1_RMP_SHIFT) +#define TIM17_OR1_RMP_MASK (TIM17_OR1_TI1_RMP << TIMx_OR1_RMP_SHIFT) + +/* Mask used to set the TDG[x:0] of the DTG bits of the TIMx_BDTR register */ +#define DT_DELAY_1 ((uint8_t)0x7F) +#define DT_DELAY_2 ((uint8_t)0x3F) +#define DT_DELAY_3 ((uint8_t)0x1F) +#define DT_DELAY_4 ((uint8_t)0x1F) + +/* Mask used to set the DTG[7:5] bits of the DTG bits of the TIMx_BDTR register */ +#define DT_RANGE_1 ((uint8_t)0x00) +#define DT_RANGE_2 ((uint8_t)0x80) +#define DT_RANGE_3 ((uint8_t)0xC0) +#define DT_RANGE_4 ((uint8_t)0xE0) + +/** Legacy definitions for compatibility purpose +@cond 0 + */ +#if defined(DFSDM1_Channel0) +#define TIMx_OR2_BKDFBK0E TIMx_OR2_BKDF1BK0E +#define TIMx_OR3_BK2DFBK1E TIMx_OR3_BK2DF1BK1E +#endif /* DFSDM1_Channel0 */ +/** +@endcond + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup TIM_LL_Private_Macros TIM Private Macros + * @{ + */ +/** @brief Convert channel id into channel index. + * @param __CHANNEL__ This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval none + */ +#define TIM_GET_CHANNEL_INDEX( __CHANNEL__) \ + (((__CHANNEL__) == LL_TIM_CHANNEL_CH1) ? 0U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH1N) ? 1U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH2) ? 2U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH2N) ? 3U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH3) ? 4U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH3N) ? 5U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH4) ? 6U :\ + ((__CHANNEL__) == LL_TIM_CHANNEL_CH5) ? 7U : 8U) + +/** @brief Calculate the deadtime sampling period(in ps). + * @param __TIMCLK__ timer input clock frequency (in Hz). + * @param __CKD__ This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + * @retval none + */ +#define TIM_CALC_DTS(__TIMCLK__, __CKD__) \ + (((__CKD__) == LL_TIM_CLOCKDIVISION_DIV1) ? ((uint64_t)1000000000000U/(__TIMCLK__)) : \ + ((__CKD__) == LL_TIM_CLOCKDIVISION_DIV2) ? ((uint64_t)1000000000000U/((__TIMCLK__) >> 1U)) : \ + ((uint64_t)1000000000000U/((__TIMCLK__) >> 2U))) +/** + * @} + */ + + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup TIM_LL_ES_INIT TIM Exported Init structure + * @{ + */ + +/** + * @brief TIM Time Base configuration structure definition. + */ +typedef struct +{ + uint16_t Prescaler; /*!< Specifies the prescaler value used to divide the TIM clock. + This parameter can be a number between Min_Data=0x0000 and Max_Data=0xFFFF. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetPrescaler().*/ + + uint32_t CounterMode; /*!< Specifies the counter mode. + This parameter can be a value of @ref TIM_LL_EC_COUNTERMODE. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetCounterMode().*/ + + uint32_t Autoreload; /*!< Specifies the auto reload value to be loaded into the active + Auto-Reload Register at the next update event. + This parameter must be a number between Min_Data=0x0000 and Max_Data=0xFFFF. + Some timer instances may support 32 bits counters. In that case this parameter must + be a number between 0x0000 and 0xFFFFFFFF. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetAutoReload().*/ + + uint32_t ClockDivision; /*!< Specifies the clock division. + This parameter can be a value of @ref TIM_LL_EC_CLOCKDIVISION. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetClockDivision().*/ + + uint32_t RepetitionCounter; /*!< Specifies the repetition counter value. Each time the RCR downcounter + reaches zero, an update event is generated and counting restarts + from the RCR value (N). + This means in PWM mode that (N+1) corresponds to: + - the number of PWM periods in edge-aligned mode + - the number of half PWM period in center-aligned mode + GP timers: this parameter must be a number between Min_Data = 0x00 and + Max_Data = 0xFF. + Advanced timers: this parameter must be a number between Min_Data = 0x0000 and + Max_Data = 0xFFFF. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetRepetitionCounter().*/ +} LL_TIM_InitTypeDef; + +/** + * @brief TIM Output Compare configuration structure definition. + */ +typedef struct +{ + uint32_t OCMode; /*!< Specifies the output mode. + This parameter can be a value of @ref TIM_LL_EC_OCMODE. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetMode().*/ + + uint32_t OCState; /*!< Specifies the TIM Output Compare state. + This parameter can be a value of @ref TIM_LL_EC_OCSTATE. + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_CC_EnableChannel() or @ref LL_TIM_CC_DisableChannel().*/ + + uint32_t OCNState; /*!< Specifies the TIM complementary Output Compare state. + This parameter can be a value of @ref TIM_LL_EC_OCSTATE. + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_CC_EnableChannel() or @ref LL_TIM_CC_DisableChannel().*/ + + uint32_t CompareValue; /*!< Specifies the Compare value to be loaded into the Capture Compare Register. + This parameter can be a number between Min_Data=0x0000 and Max_Data=0xFFFF. + + This feature can be modified afterwards using unitary function + LL_TIM_OC_SetCompareCHx (x=1..6).*/ + + uint32_t OCPolarity; /*!< Specifies the output polarity. + This parameter can be a value of @ref TIM_LL_EC_OCPOLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetPolarity().*/ + + uint32_t OCNPolarity; /*!< Specifies the complementary output polarity. + This parameter can be a value of @ref TIM_LL_EC_OCPOLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetPolarity().*/ + + + uint32_t OCIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state. + This parameter can be a value of @ref TIM_LL_EC_OCIDLESTATE. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetIdleState().*/ + + uint32_t OCNIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state. + This parameter can be a value of @ref TIM_LL_EC_OCIDLESTATE. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetIdleState().*/ +} LL_TIM_OC_InitTypeDef; + +/** + * @brief TIM Input Capture configuration structure definition. + */ + +typedef struct +{ + + uint32_t ICPolarity; /*!< Specifies the active edge of the input signal. + This parameter can be a value of @ref TIM_LL_EC_IC_POLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPolarity().*/ + + uint32_t ICActiveInput; /*!< Specifies the input. + This parameter can be a value of @ref TIM_LL_EC_ACTIVEINPUT. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetActiveInput().*/ + + uint32_t ICPrescaler; /*!< Specifies the Input Capture Prescaler. + This parameter can be a value of @ref TIM_LL_EC_ICPSC. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPrescaler().*/ + + uint32_t ICFilter; /*!< Specifies the input capture filter. + This parameter can be a value of @ref TIM_LL_EC_IC_FILTER. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetFilter().*/ +} LL_TIM_IC_InitTypeDef; + + +/** + * @brief TIM Encoder interface configuration structure definition. + */ +typedef struct +{ + uint32_t EncoderMode; /*!< Specifies the encoder resolution (x2 or x4). + This parameter can be a value of @ref TIM_LL_EC_ENCODERMODE. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetEncoderMode().*/ + + uint32_t IC1Polarity; /*!< Specifies the active edge of TI1 input. + This parameter can be a value of @ref TIM_LL_EC_IC_POLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPolarity().*/ + + uint32_t IC1ActiveInput; /*!< Specifies the TI1 input source + This parameter can be a value of @ref TIM_LL_EC_ACTIVEINPUT. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetActiveInput().*/ + + uint32_t IC1Prescaler; /*!< Specifies the TI1 input prescaler value. + This parameter can be a value of @ref TIM_LL_EC_ICPSC. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPrescaler().*/ + + uint32_t IC1Filter; /*!< Specifies the TI1 input filter. + This parameter can be a value of @ref TIM_LL_EC_IC_FILTER. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetFilter().*/ + + uint32_t IC2Polarity; /*!< Specifies the active edge of TI2 input. + This parameter can be a value of @ref TIM_LL_EC_IC_POLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPolarity().*/ + + uint32_t IC2ActiveInput; /*!< Specifies the TI2 input source + This parameter can be a value of @ref TIM_LL_EC_ACTIVEINPUT. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetActiveInput().*/ + + uint32_t IC2Prescaler; /*!< Specifies the TI2 input prescaler value. + This parameter can be a value of @ref TIM_LL_EC_ICPSC. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPrescaler().*/ + + uint32_t IC2Filter; /*!< Specifies the TI2 input filter. + This parameter can be a value of @ref TIM_LL_EC_IC_FILTER. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetFilter().*/ + +} LL_TIM_ENCODER_InitTypeDef; + +/** + * @brief TIM Hall sensor interface configuration structure definition. + */ +typedef struct +{ + + uint32_t IC1Polarity; /*!< Specifies the active edge of TI1 input. + This parameter can be a value of @ref TIM_LL_EC_IC_POLARITY. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPolarity().*/ + + uint32_t IC1Prescaler; /*!< Specifies the TI1 input prescaler value. + Prescaler must be set to get a maximum counter period longer than the + time interval between 2 consecutive changes on the Hall inputs. + This parameter can be a value of @ref TIM_LL_EC_ICPSC. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetPrescaler().*/ + + uint32_t IC1Filter; /*!< Specifies the TI1 input filter. + This parameter can be a value of + @ref TIM_LL_EC_IC_FILTER. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_IC_SetFilter().*/ + + uint32_t CommutationDelay; /*!< Specifies the compare value to be loaded into the Capture Compare Register. + A positive pulse (TRGO event) is generated with a programmable delay every time + a change occurs on the Hall inputs. + This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetCompareCH2().*/ +} LL_TIM_HALLSENSOR_InitTypeDef; + +/** + * @brief BDTR (Break and Dead Time) structure definition + */ +typedef struct +{ + uint32_t OSSRState; /*!< Specifies the Off-State selection used in Run mode. + This parameter can be a value of @ref TIM_LL_EC_OSSR + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetOffStates() + + @note This bit-field cannot be modified as long as LOCK level 2 has been + programmed. */ + + uint32_t OSSIState; /*!< Specifies the Off-State used in Idle state. + This parameter can be a value of @ref TIM_LL_EC_OSSI + + This feature can be modified afterwards using unitary function + @ref LL_TIM_SetOffStates() + + @note This bit-field cannot be modified as long as LOCK level 2 has been + programmed. */ + + uint32_t LockLevel; /*!< Specifies the LOCK level parameters. + This parameter can be a value of @ref TIM_LL_EC_LOCKLEVEL + + @note The LOCK bits can be written only once after the reset. Once the TIMx_BDTR + register has been written, their content is frozen until the next reset.*/ + + uint8_t DeadTime; /*!< Specifies the delay time between the switching-off and the + switching-on of the outputs. + This parameter can be a number between Min_Data = 0x00 and Max_Data = 0xFF. + + This feature can be modified afterwards using unitary function + @ref LL_TIM_OC_SetDeadTime() + + @note This bit-field can not be modified as long as LOCK level 1, 2 or 3 has been + programmed. */ + + uint16_t BreakState; /*!< Specifies whether the TIM Break input is enabled or not. + This parameter can be a value of @ref TIM_LL_EC_BREAK_ENABLE + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_EnableBRK() or @ref LL_TIM_DisableBRK() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t BreakPolarity; /*!< Specifies the TIM Break Input pin polarity. + This parameter can be a value of @ref TIM_LL_EC_BREAK_POLARITY + + This feature can be modified afterwards using unitary function + @ref LL_TIM_ConfigBRK() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t BreakFilter; /*!< Specifies the TIM Break Filter. + This parameter can be a value of @ref TIM_LL_EC_BREAK_FILTER + + This feature can be modified afterwards using unitary function + @ref LL_TIM_ConfigBRK() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t Break2State; /*!< Specifies whether the TIM Break2 input is enabled or not. + This parameter can be a value of @ref TIM_LL_EC_BREAK2_ENABLE + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_EnableBRK2() or @ref LL_TIM_DisableBRK2() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t Break2Polarity; /*!< Specifies the TIM Break2 Input pin polarity. + This parameter can be a value of @ref TIM_LL_EC_BREAK2_POLARITY + + This feature can be modified afterwards using unitary function + @ref LL_TIM_ConfigBRK2() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t Break2Filter; /*!< Specifies the TIM Break2 Filter. + This parameter can be a value of @ref TIM_LL_EC_BREAK2_FILTER + + This feature can be modified afterwards using unitary function + @ref LL_TIM_ConfigBRK2() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ + + uint32_t AutomaticOutput; /*!< Specifies whether the TIM Automatic Output feature is enabled or not. + This parameter can be a value of @ref TIM_LL_EC_AUTOMATICOUTPUT_ENABLE + + This feature can be modified afterwards using unitary functions + @ref LL_TIM_EnableAutomaticOutput() or @ref LL_TIM_DisableAutomaticOutput() + + @note This bit-field can not be modified as long as LOCK level 1 has been + programmed. */ +} LL_TIM_BDTR_InitTypeDef; + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup TIM_LL_Exported_Constants TIM Exported Constants + * @{ + */ + +/** @defgroup TIM_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_TIM_ReadReg function. + * @{ + */ +#define LL_TIM_SR_UIF TIM_SR_UIF /*!< Update interrupt flag */ +#define LL_TIM_SR_CC1IF TIM_SR_CC1IF /*!< Capture/compare 1 interrupt flag */ +#define LL_TIM_SR_CC2IF TIM_SR_CC2IF /*!< Capture/compare 2 interrupt flag */ +#define LL_TIM_SR_CC3IF TIM_SR_CC3IF /*!< Capture/compare 3 interrupt flag */ +#define LL_TIM_SR_CC4IF TIM_SR_CC4IF /*!< Capture/compare 4 interrupt flag */ +#define LL_TIM_SR_CC5IF TIM_SR_CC5IF /*!< Capture/compare 5 interrupt flag */ +#define LL_TIM_SR_CC6IF TIM_SR_CC6IF /*!< Capture/compare 6 interrupt flag */ +#define LL_TIM_SR_COMIF TIM_SR_COMIF /*!< COM interrupt flag */ +#define LL_TIM_SR_TIF TIM_SR_TIF /*!< Trigger interrupt flag */ +#define LL_TIM_SR_BIF TIM_SR_BIF /*!< Break interrupt flag */ +#define LL_TIM_SR_B2IF TIM_SR_B2IF /*!< Second break interrupt flag */ +#define LL_TIM_SR_CC1OF TIM_SR_CC1OF /*!< Capture/Compare 1 overcapture flag */ +#define LL_TIM_SR_CC2OF TIM_SR_CC2OF /*!< Capture/Compare 2 overcapture flag */ +#define LL_TIM_SR_CC3OF TIM_SR_CC3OF /*!< Capture/Compare 3 overcapture flag */ +#define LL_TIM_SR_CC4OF TIM_SR_CC4OF /*!< Capture/Compare 4 overcapture flag */ +#define LL_TIM_SR_SBIF TIM_SR_SBIF /*!< System Break interrupt flag */ +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup TIM_LL_EC_BREAK_ENABLE Break Enable + * @{ + */ +#define LL_TIM_BREAK_DISABLE 0x00000000U /*!< Break function disabled */ +#define LL_TIM_BREAK_ENABLE TIM_BDTR_BKE /*!< Break function enabled */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_BREAK2_ENABLE Break2 Enable + * @{ + */ +#define LL_TIM_BREAK2_DISABLE 0x00000000U /*!< Break2 function disabled */ +#define LL_TIM_BREAK2_ENABLE TIM_BDTR_BK2E /*!< Break2 function enabled */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_AUTOMATICOUTPUT_ENABLE Automatic output enable + * @{ + */ +#define LL_TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U /*!< MOE can be set only by software */ +#define LL_TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE /*!< MOE can be set by software or automatically at the next update event */ +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** @defgroup TIM_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_TIM_ReadReg and LL_TIM_WriteReg functions. + * @{ + */ +#define LL_TIM_DIER_UIE TIM_DIER_UIE /*!< Update interrupt enable */ +#define LL_TIM_DIER_CC1IE TIM_DIER_CC1IE /*!< Capture/compare 1 interrupt enable */ +#define LL_TIM_DIER_CC2IE TIM_DIER_CC2IE /*!< Capture/compare 2 interrupt enable */ +#define LL_TIM_DIER_CC3IE TIM_DIER_CC3IE /*!< Capture/compare 3 interrupt enable */ +#define LL_TIM_DIER_CC4IE TIM_DIER_CC4IE /*!< Capture/compare 4 interrupt enable */ +#define LL_TIM_DIER_COMIE TIM_DIER_COMIE /*!< COM interrupt enable */ +#define LL_TIM_DIER_TIE TIM_DIER_TIE /*!< Trigger interrupt enable */ +#define LL_TIM_DIER_BIE TIM_DIER_BIE /*!< Break interrupt enable */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_UPDATESOURCE Update Source + * @{ + */ +#define LL_TIM_UPDATESOURCE_REGULAR 0x00000000U /*!< Counter overflow/underflow, Setting the UG bit or Update generation through the slave mode controller generates an update request */ +#define LL_TIM_UPDATESOURCE_COUNTER TIM_CR1_URS /*!< Only counter overflow/underflow generates an update request */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_ONEPULSEMODE One Pulse Mode + * @{ + */ +#define LL_TIM_ONEPULSEMODE_SINGLE TIM_CR1_OPM /*!< Counter stops counting at the next update event */ +#define LL_TIM_ONEPULSEMODE_REPETITIVE 0x00000000U /*!< Counter is not stopped at update event */ +/** + * @} + */ + +/** @defgroup TIM_LL_EC_COUNTERMODE Counter Mode + * @{ + */ +#define LL_TIM_COUNTERMODE_UP 0x00000000U /*!TIMx_CCRy else active.*/ +#define LL_TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0) /*!TIMx_CCRy else inactive*/ +#define LL_TIM_OCMODE_RETRIG_OPM1 TIM_CCMR1_OC1M_3 /*!__REG__, (__VALUE__)) + +/** + * @brief Read a value in TIM register. + * @param __INSTANCE__ TIM Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_TIM_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__) +/** + * @} + */ + +/** + * @brief HELPER macro retrieving the UIFCPY flag from the counter value. + * @note ex: @ref __LL_TIM_GETFLAG_UIFCPY (@ref LL_TIM_GetCounter ()); + * @note Relevant only if UIF flag remapping has been enabled (UIF status bit is copied + * to TIMx_CNT register bit 31) + * @param __CNT__ Counter value + * @retval UIF status bit + */ +#define __LL_TIM_GETFLAG_UIFCPY(__CNT__) \ + (READ_BIT((__CNT__), TIM_CNT_UIFCPY) >> TIM_CNT_UIFCPY_Pos) + +/** + * @brief HELPER macro calculating DTG[0:7] in the TIMx_BDTR register to achieve the requested dead time duration. + * @note ex: @ref __LL_TIM_CALC_DEADTIME (80000000, @ref LL_TIM_GetClockDivision (), 120); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __CKD__ This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + * @param __DT__ deadtime duration (in ns) + * @retval DTG[0:7] + */ +#define __LL_TIM_CALC_DEADTIME(__TIMCLK__, __CKD__, __DT__) \ + ( (((uint64_t)((__DT__)*1000U)) < ((DT_DELAY_1+1U) * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(((uint64_t)((__DT__)*1000U) / TIM_CALC_DTS((__TIMCLK__), (__CKD__))) & DT_DELAY_1) : \ + (((uint64_t)((__DT__)*1000U)) < ((64U + (DT_DELAY_2+1U)) * 2U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(DT_RANGE_2 | ((uint8_t)((uint8_t)((((uint64_t)((__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \ + (__CKD__))) >> 1U) - (uint8_t) 64) & DT_DELAY_2)) :\ + (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_3+1U)) * 8U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(DT_RANGE_3 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \ + (__CKD__))) >> 3U) - (uint8_t) 32) & DT_DELAY_3)) :\ + (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_4+1U)) * 16U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \ + (uint8_t)(DT_RANGE_4 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \ + (__CKD__))) >> 4U) - (uint8_t) 32) & DT_DELAY_4)) :\ + 0U) + +/** + * @brief HELPER macro calculating the prescaler value to achieve the required counter clock frequency. + * @note ex: @ref __LL_TIM_CALC_PSC (80000000, 1000000); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __CNTCLK__ counter clock frequency (in Hz) + * @retval Prescaler value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__) \ + (((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)((((__TIMCLK__) + (__CNTCLK__)/2U)/(__CNTCLK__)) - 1U) : 0U) + +/** + * @brief HELPER macro calculating the auto-reload value to achieve the required output signal frequency. + * @note ex: @ref __LL_TIM_CALC_ARR (1000000, @ref LL_TIM_GetPrescaler (), 10000); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __FREQ__ output signal frequency (in Hz) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_ARR(__TIMCLK__, __PSC__, __FREQ__) \ + ((((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? (((__TIMCLK__)/((__FREQ__) * ((__PSC__) + 1U))) - 1U) : 0U) + +/** + * @brief HELPER macro calculating the compare value required to achieve the required timer output compare + * active/inactive delay. + * @note ex: @ref __LL_TIM_CALC_DELAY (1000000, @ref LL_TIM_GetPrescaler (), 10); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @retval Compare value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_DELAY(__TIMCLK__, __PSC__, __DELAY__) \ + ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__)) \ + / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U)))) + +/** + * @brief HELPER macro calculating the auto-reload value to achieve the required pulse duration + * (when the timer operates in one pulse mode). + * @note ex: @ref __LL_TIM_CALC_PULSE (1000000, @ref LL_TIM_GetPrescaler (), 10, 20); + * @param __TIMCLK__ timer input clock frequency (in Hz) + * @param __PSC__ prescaler + * @param __DELAY__ timer output compare active/inactive delay (in us) + * @param __PULSE__ pulse duration (in us) + * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535) + */ +#define __LL_TIM_CALC_PULSE(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \ + ((uint32_t)(__LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__PULSE__)) \ + + __LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__DELAY__)))) + +/** + * @brief HELPER macro retrieving the ratio of the input capture prescaler + * @note ex: @ref __LL_TIM_GET_ICPSC_RATIO (@ref LL_TIM_IC_GetPrescaler ()); + * @param __ICPSC__ This parameter can be one of the following values: + * @arg @ref LL_TIM_ICPSC_DIV1 + * @arg @ref LL_TIM_ICPSC_DIV2 + * @arg @ref LL_TIM_ICPSC_DIV4 + * @arg @ref LL_TIM_ICPSC_DIV8 + * @retval Input capture prescaler ratio (1, 2, 4 or 8) + */ +#define __LL_TIM_GET_ICPSC_RATIO(__ICPSC__) \ + ((uint32_t)(0x01U << (((__ICPSC__) >> 16U) >> TIM_CCMR1_IC1PSC_Pos))) + + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup TIM_LL_Exported_Functions TIM Exported Functions + * @{ + */ + +/** @defgroup TIM_LL_EF_Time_Base Time Base configuration + * @{ + */ +/** + * @brief Enable timer counter. + * @rmtoll CR1 CEN LL_TIM_EnableCounter + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableCounter(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_CEN); +} + +/** + * @brief Disable timer counter. + * @rmtoll CR1 CEN LL_TIM_DisableCounter + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableCounter(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_CEN); +} + +/** + * @brief Indicates whether the timer counter is enabled. + * @rmtoll CR1 CEN LL_TIM_IsEnabledCounter + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledCounter(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR1, TIM_CR1_CEN) == (TIM_CR1_CEN)) ? 1UL : 0UL); +} + +/** + * @brief Enable update event generation. + * @rmtoll CR1 UDIS LL_TIM_EnableUpdateEvent + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableUpdateEvent(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_UDIS); +} + +/** + * @brief Disable update event generation. + * @rmtoll CR1 UDIS LL_TIM_DisableUpdateEvent + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableUpdateEvent(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_UDIS); +} + +/** + * @brief Indicates whether update event generation is enabled. + * @rmtoll CR1 UDIS LL_TIM_IsEnabledUpdateEvent + * @param TIMx Timer instance + * @retval Inverted state of bit (0 or 1). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledUpdateEvent(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR1, TIM_CR1_UDIS) == (uint32_t)RESET) ? 1UL : 0UL); +} + +/** + * @brief Set update event source + * @note Update event source set to LL_TIM_UPDATESOURCE_REGULAR: any of the following events + * generate an update interrupt or DMA request if enabled: + * - Counter overflow/underflow + * - Setting the UG bit + * - Update generation through the slave mode controller + * @note Update event source set to LL_TIM_UPDATESOURCE_COUNTER: only counter + * overflow/underflow generates an update interrupt or DMA request if enabled. + * @rmtoll CR1 URS LL_TIM_SetUpdateSource + * @param TIMx Timer instance + * @param UpdateSource This parameter can be one of the following values: + * @arg @ref LL_TIM_UPDATESOURCE_REGULAR + * @arg @ref LL_TIM_UPDATESOURCE_COUNTER + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetUpdateSource(TIM_TypeDef *TIMx, uint32_t UpdateSource) +{ + MODIFY_REG(TIMx->CR1, TIM_CR1_URS, UpdateSource); +} + +/** + * @brief Get actual event update source + * @rmtoll CR1 URS LL_TIM_GetUpdateSource + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_UPDATESOURCE_REGULAR + * @arg @ref LL_TIM_UPDATESOURCE_COUNTER + */ +__STATIC_INLINE uint32_t LL_TIM_GetUpdateSource(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_URS)); +} + +/** + * @brief Set one pulse mode (one shot v.s. repetitive). + * @rmtoll CR1 OPM LL_TIM_SetOnePulseMode + * @param TIMx Timer instance + * @param OnePulseMode This parameter can be one of the following values: + * @arg @ref LL_TIM_ONEPULSEMODE_SINGLE + * @arg @ref LL_TIM_ONEPULSEMODE_REPETITIVE + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetOnePulseMode(TIM_TypeDef *TIMx, uint32_t OnePulseMode) +{ + MODIFY_REG(TIMx->CR1, TIM_CR1_OPM, OnePulseMode); +} + +/** + * @brief Get actual one pulse mode. + * @rmtoll CR1 OPM LL_TIM_GetOnePulseMode + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_ONEPULSEMODE_SINGLE + * @arg @ref LL_TIM_ONEPULSEMODE_REPETITIVE + */ +__STATIC_INLINE uint32_t LL_TIM_GetOnePulseMode(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_OPM)); +} + +/** + * @brief Set the timer counter counting mode. + * @note Macro IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx) can be used to + * check whether or not the counter mode selection feature is supported + * by a timer instance. + * @note Switching from Center Aligned counter mode to Edge counter mode (or reverse) + * requires a timer reset to avoid unexpected direction + * due to DIR bit readonly in center aligned mode. + * @rmtoll CR1 DIR LL_TIM_SetCounterMode\n + * CR1 CMS LL_TIM_SetCounterMode + * @param TIMx Timer instance + * @param CounterMode This parameter can be one of the following values: + * @arg @ref LL_TIM_COUNTERMODE_UP + * @arg @ref LL_TIM_COUNTERMODE_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP + * @arg @ref LL_TIM_COUNTERMODE_CENTER_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP_DOWN + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetCounterMode(TIM_TypeDef *TIMx, uint32_t CounterMode) +{ + MODIFY_REG(TIMx->CR1, (TIM_CR1_DIR | TIM_CR1_CMS), CounterMode); +} + +/** + * @brief Get actual counter mode. + * @note Macro IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx) can be used to + * check whether or not the counter mode selection feature is supported + * by a timer instance. + * @rmtoll CR1 DIR LL_TIM_GetCounterMode\n + * CR1 CMS LL_TIM_GetCounterMode + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_COUNTERMODE_UP + * @arg @ref LL_TIM_COUNTERMODE_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP + * @arg @ref LL_TIM_COUNTERMODE_CENTER_DOWN + * @arg @ref LL_TIM_COUNTERMODE_CENTER_UP_DOWN + */ +__STATIC_INLINE uint32_t LL_TIM_GetCounterMode(const TIM_TypeDef *TIMx) +{ + uint32_t counter_mode; + + counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CMS)); + + if (counter_mode == 0U) + { + counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR)); + } + + return counter_mode; +} + +/** + * @brief Enable auto-reload (ARR) preload. + * @rmtoll CR1 ARPE LL_TIM_EnableARRPreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableARRPreload(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_ARPE); +} + +/** + * @brief Disable auto-reload (ARR) preload. + * @rmtoll CR1 ARPE LL_TIM_DisableARRPreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableARRPreload(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_ARPE); +} + +/** + * @brief Indicates whether auto-reload (ARR) preload is enabled. + * @rmtoll CR1 ARPE LL_TIM_IsEnabledARRPreload + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledARRPreload(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR1, TIM_CR1_ARPE) == (TIM_CR1_ARPE)) ? 1UL : 0UL); +} + +/** + * @brief Set the division ratio between the timer clock and the sampling clock used by the dead-time generators + * (when supported) and the digital filters. + * @note Macro IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx) can be used to check + * whether or not the clock division feature is supported by the timer + * instance. + * @rmtoll CR1 CKD LL_TIM_SetClockDivision + * @param TIMx Timer instance + * @param ClockDivision This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetClockDivision(TIM_TypeDef *TIMx, uint32_t ClockDivision) +{ + MODIFY_REG(TIMx->CR1, TIM_CR1_CKD, ClockDivision); +} + +/** + * @brief Get the actual division ratio between the timer clock and the sampling clock used by the dead-time + * generators (when supported) and the digital filters. + * @note Macro IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx) can be used to check + * whether or not the clock division feature is supported by the timer + * instance. + * @rmtoll CR1 CKD LL_TIM_GetClockDivision + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_CLOCKDIVISION_DIV1 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV2 + * @arg @ref LL_TIM_CLOCKDIVISION_DIV4 + */ +__STATIC_INLINE uint32_t LL_TIM_GetClockDivision(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CKD)); +} + +/** + * @brief Set the counter value. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @rmtoll CNT CNT LL_TIM_SetCounter + * @param TIMx Timer instance + * @param Counter Counter value (between Min_Data=0 and Max_Data=0xFFFF or 0xFFFFFFFF) + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetCounter(TIM_TypeDef *TIMx, uint32_t Counter) +{ + WRITE_REG(TIMx->CNT, Counter); +} + +/** + * @brief Get the counter value. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @rmtoll CNT CNT LL_TIM_GetCounter + * @param TIMx Timer instance + * @retval Counter value (between Min_Data=0 and Max_Data=0xFFFF or 0xFFFFFFFF) + */ +__STATIC_INLINE uint32_t LL_TIM_GetCounter(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CNT)); +} + +/** + * @brief Get the current direction of the counter + * @rmtoll CR1 DIR LL_TIM_GetDirection + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_COUNTERDIRECTION_UP + * @arg @ref LL_TIM_COUNTERDIRECTION_DOWN + */ +__STATIC_INLINE uint32_t LL_TIM_GetDirection(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR)); +} + +/** + * @brief Set the prescaler value. + * @note The counter clock frequency CK_CNT is equal to fCK_PSC / (PSC[15:0] + 1). + * @note The prescaler can be changed on the fly as this control register is buffered. The new + * prescaler ratio is taken into account at the next update event. + * @note Helper macro @ref __LL_TIM_CALC_PSC can be used to calculate the Prescaler parameter + * @rmtoll PSC PSC LL_TIM_SetPrescaler + * @param TIMx Timer instance + * @param Prescaler between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Prescaler) +{ + WRITE_REG(TIMx->PSC, Prescaler); +} + +/** + * @brief Get the prescaler value. + * @rmtoll PSC PSC LL_TIM_GetPrescaler + * @param TIMx Timer instance + * @retval Prescaler value between Min_Data=0 and Max_Data=65535 + */ +__STATIC_INLINE uint32_t LL_TIM_GetPrescaler(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->PSC)); +} + +/** + * @brief Set the auto-reload value. + * @note The counter is blocked while the auto-reload value is null. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Helper macro @ref __LL_TIM_CALC_ARR can be used to calculate the AutoReload parameter + * @rmtoll ARR ARR LL_TIM_SetAutoReload + * @param TIMx Timer instance + * @param AutoReload between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetAutoReload(TIM_TypeDef *TIMx, uint32_t AutoReload) +{ + WRITE_REG(TIMx->ARR, AutoReload); +} + +/** + * @brief Get the auto-reload value. + * @rmtoll ARR ARR LL_TIM_GetAutoReload + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @param TIMx Timer instance + * @retval Auto-reload value + */ +__STATIC_INLINE uint32_t LL_TIM_GetAutoReload(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->ARR)); +} + +/** + * @brief Set the repetition counter value. + * @note For advanced timer instances RepetitionCounter can be up to 65535. + * @note Macro IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a repetition counter. + * @rmtoll RCR REP LL_TIM_SetRepetitionCounter + * @param TIMx Timer instance + * @param RepetitionCounter between Min_Data=0 and Max_Data=255 or 65535 for advanced timer. + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetRepetitionCounter(TIM_TypeDef *TIMx, uint32_t RepetitionCounter) +{ + WRITE_REG(TIMx->RCR, RepetitionCounter); +} + +/** + * @brief Get the repetition counter value. + * @note Macro IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a repetition counter. + * @rmtoll RCR REP LL_TIM_GetRepetitionCounter + * @param TIMx Timer instance + * @retval Repetition counter value + */ +__STATIC_INLINE uint32_t LL_TIM_GetRepetitionCounter(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->RCR)); +} + +/** + * @brief Force a continuous copy of the update interrupt flag (UIF) into the timer counter register (bit 31). + * @note This allows both the counter value and a potential roll-over condition signalled by the UIFCPY flag to be read + * in an atomic way. + * @rmtoll CR1 UIFREMAP LL_TIM_EnableUIFRemap + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableUIFRemap(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR1, TIM_CR1_UIFREMAP); +} + +/** + * @brief Disable update interrupt flag (UIF) remapping. + * @rmtoll CR1 UIFREMAP LL_TIM_DisableUIFRemap + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableUIFRemap(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR1, TIM_CR1_UIFREMAP); +} + +/** + * @brief Indicate whether update interrupt flag (UIF) copy is set. + * @param Counter Counter value + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveUIFCPY(const uint32_t Counter) +{ + return (((Counter & TIM_CNT_UIFCPY) == (TIM_CNT_UIFCPY)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Capture_Compare Capture Compare configuration + * @{ + */ +/** + * @brief Enable the capture/compare control bits (CCxE, CCxNE and OCxM) preload. + * @note CCxE, CCxNE and OCxM bits are preloaded, after having been written, + * they are updated only when a commutation event (COM) occurs. + * @note Only on channels that have a complementary output. + * @note Macro IS_TIM_COMMUTATION_EVENT_INSTANCE(TIMx) can be used to check + * whether or not a timer instance is able to generate a commutation event. + * @rmtoll CR2 CCPC LL_TIM_CC_EnablePreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_EnablePreload(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR2, TIM_CR2_CCPC); +} + +/** + * @brief Disable the capture/compare control bits (CCxE, CCxNE and OCxM) preload. + * @note Macro IS_TIM_COMMUTATION_EVENT_INSTANCE(TIMx) can be used to check + * whether or not a timer instance is able to generate a commutation event. + * @rmtoll CR2 CCPC LL_TIM_CC_DisablePreload + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_DisablePreload(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR2, TIM_CR2_CCPC); +} + +/** + * @brief Set the updated source of the capture/compare control bits (CCxE, CCxNE and OCxM). + * @note Macro IS_TIM_COMMUTATION_EVENT_INSTANCE(TIMx) can be used to check + * whether or not a timer instance is able to generate a commutation event. + * @rmtoll CR2 CCUS LL_TIM_CC_SetUpdate + * @param TIMx Timer instance + * @param CCUpdateSource This parameter can be one of the following values: + * @arg @ref LL_TIM_CCUPDATESOURCE_COMG_ONLY + * @arg @ref LL_TIM_CCUPDATESOURCE_COMG_AND_TRGI + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_SetUpdate(TIM_TypeDef *TIMx, uint32_t CCUpdateSource) +{ + MODIFY_REG(TIMx->CR2, TIM_CR2_CCUS, CCUpdateSource); +} + +/** + * @brief Set the trigger of the capture/compare DMA request. + * @rmtoll CR2 CCDS LL_TIM_CC_SetDMAReqTrigger + * @param TIMx Timer instance + * @param DMAReqTrigger This parameter can be one of the following values: + * @arg @ref LL_TIM_CCDMAREQUEST_CC + * @arg @ref LL_TIM_CCDMAREQUEST_UPDATE + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_SetDMAReqTrigger(TIM_TypeDef *TIMx, uint32_t DMAReqTrigger) +{ + MODIFY_REG(TIMx->CR2, TIM_CR2_CCDS, DMAReqTrigger); +} + +/** + * @brief Get actual trigger of the capture/compare DMA request. + * @rmtoll CR2 CCDS LL_TIM_CC_GetDMAReqTrigger + * @param TIMx Timer instance + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_CCDMAREQUEST_CC + * @arg @ref LL_TIM_CCDMAREQUEST_UPDATE + */ +__STATIC_INLINE uint32_t LL_TIM_CC_GetDMAReqTrigger(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CR2, TIM_CR2_CCDS)); +} + +/** + * @brief Set the lock level to freeze the + * configuration of several capture/compare parameters. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * the lock mechanism is supported by a timer instance. + * @rmtoll BDTR LOCK LL_TIM_CC_SetLockLevel + * @param TIMx Timer instance + * @param LockLevel This parameter can be one of the following values: + * @arg @ref LL_TIM_LOCKLEVEL_OFF + * @arg @ref LL_TIM_LOCKLEVEL_1 + * @arg @ref LL_TIM_LOCKLEVEL_2 + * @arg @ref LL_TIM_LOCKLEVEL_3 + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_SetLockLevel(TIM_TypeDef *TIMx, uint32_t LockLevel) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_LOCK, LockLevel); +} + +/** + * @brief Enable capture/compare channels. + * @rmtoll CCER CC1E LL_TIM_CC_EnableChannel\n + * CCER CC1NE LL_TIM_CC_EnableChannel\n + * CCER CC2E LL_TIM_CC_EnableChannel\n + * CCER CC2NE LL_TIM_CC_EnableChannel\n + * CCER CC3E LL_TIM_CC_EnableChannel\n + * CCER CC3NE LL_TIM_CC_EnableChannel\n + * CCER CC4E LL_TIM_CC_EnableChannel\n + * CCER CC5E LL_TIM_CC_EnableChannel\n + * CCER CC6E LL_TIM_CC_EnableChannel + * @param TIMx Timer instance + * @param Channels This parameter can be a combination of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_EnableChannel(TIM_TypeDef *TIMx, uint32_t Channels) +{ + SET_BIT(TIMx->CCER, Channels); +} + +/** + * @brief Disable capture/compare channels. + * @rmtoll CCER CC1E LL_TIM_CC_DisableChannel\n + * CCER CC1NE LL_TIM_CC_DisableChannel\n + * CCER CC2E LL_TIM_CC_DisableChannel\n + * CCER CC2NE LL_TIM_CC_DisableChannel\n + * CCER CC3E LL_TIM_CC_DisableChannel\n + * CCER CC3NE LL_TIM_CC_DisableChannel\n + * CCER CC4E LL_TIM_CC_DisableChannel\n + * CCER CC5E LL_TIM_CC_DisableChannel\n + * CCER CC6E LL_TIM_CC_DisableChannel + * @param TIMx Timer instance + * @param Channels This parameter can be a combination of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_CC_DisableChannel(TIM_TypeDef *TIMx, uint32_t Channels) +{ + CLEAR_BIT(TIMx->CCER, Channels); +} + +/** + * @brief Indicate whether channel(s) is(are) enabled. + * @rmtoll CCER CC1E LL_TIM_CC_IsEnabledChannel\n + * CCER CC1NE LL_TIM_CC_IsEnabledChannel\n + * CCER CC2E LL_TIM_CC_IsEnabledChannel\n + * CCER CC2NE LL_TIM_CC_IsEnabledChannel\n + * CCER CC3E LL_TIM_CC_IsEnabledChannel\n + * CCER CC3NE LL_TIM_CC_IsEnabledChannel\n + * CCER CC4E LL_TIM_CC_IsEnabledChannel\n + * CCER CC5E LL_TIM_CC_IsEnabledChannel\n + * CCER CC6E LL_TIM_CC_IsEnabledChannel + * @param TIMx Timer instance + * @param Channels This parameter can be a combination of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_CC_IsEnabledChannel(const TIM_TypeDef *TIMx, uint32_t Channels) +{ + return ((READ_BIT(TIMx->CCER, Channels) == (Channels)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Output_Channel Output channel configuration + * @{ + */ +/** + * @brief Configure an output channel. + * @rmtoll CCMR1 CC1S LL_TIM_OC_ConfigOutput\n + * CCMR1 CC2S LL_TIM_OC_ConfigOutput\n + * CCMR2 CC3S LL_TIM_OC_ConfigOutput\n + * CCMR2 CC4S LL_TIM_OC_ConfigOutput\n + * CCMR3 CC5S LL_TIM_OC_ConfigOutput\n + * CCMR3 CC6S LL_TIM_OC_ConfigOutput\n + * CCER CC1P LL_TIM_OC_ConfigOutput\n + * CCER CC2P LL_TIM_OC_ConfigOutput\n + * CCER CC3P LL_TIM_OC_ConfigOutput\n + * CCER CC4P LL_TIM_OC_ConfigOutput\n + * CCER CC5P LL_TIM_OC_ConfigOutput\n + * CCER CC6P LL_TIM_OC_ConfigOutput\n + * CR2 OIS1 LL_TIM_OC_ConfigOutput\n + * CR2 OIS2 LL_TIM_OC_ConfigOutput\n + * CR2 OIS3 LL_TIM_OC_ConfigOutput\n + * CR2 OIS4 LL_TIM_OC_ConfigOutput\n + * CR2 OIS5 LL_TIM_OC_ConfigOutput\n + * CR2 OIS6 LL_TIM_OC_ConfigOutput + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @param Configuration This parameter must be a combination of all the following values: + * @arg @ref LL_TIM_OCPOLARITY_HIGH or @ref LL_TIM_OCPOLARITY_LOW + * @arg @ref LL_TIM_OCIDLESTATE_LOW or @ref LL_TIM_OCIDLESTATE_HIGH + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_ConfigOutput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + CLEAR_BIT(*pReg, (TIM_CCMR1_CC1S << SHIFT_TAB_OCxx[iChannel])); + MODIFY_REG(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel]), + (Configuration & TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]); + MODIFY_REG(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel]), + (Configuration & TIM_CR2_OIS1) << SHIFT_TAB_OISx[iChannel]); +} + +/** + * @brief Define the behavior of the output reference signal OCxREF from which + * OCx and OCxN (when relevant) are derived. + * @rmtoll CCMR1 OC1M LL_TIM_OC_SetMode\n + * CCMR1 OC2M LL_TIM_OC_SetMode\n + * CCMR2 OC3M LL_TIM_OC_SetMode\n + * CCMR2 OC4M LL_TIM_OC_SetMode\n + * CCMR3 OC5M LL_TIM_OC_SetMode\n + * CCMR3 OC6M LL_TIM_OC_SetMode + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @param Mode This parameter can be one of the following values: + * @arg @ref LL_TIM_OCMODE_FROZEN + * @arg @ref LL_TIM_OCMODE_ACTIVE + * @arg @ref LL_TIM_OCMODE_INACTIVE + * @arg @ref LL_TIM_OCMODE_TOGGLE + * @arg @ref LL_TIM_OCMODE_FORCED_INACTIVE + * @arg @ref LL_TIM_OCMODE_FORCED_ACTIVE + * @arg @ref LL_TIM_OCMODE_PWM1 + * @arg @ref LL_TIM_OCMODE_PWM2 + * @arg @ref LL_TIM_OCMODE_RETRIG_OPM1 + * @arg @ref LL_TIM_OCMODE_RETRIG_OPM2 + * @arg @ref LL_TIM_OCMODE_COMBINED_PWM1 + * @arg @ref LL_TIM_OCMODE_COMBINED_PWM2 + * @arg @ref LL_TIM_OCMODE_ASSYMETRIC_PWM1 + * @arg @ref LL_TIM_OCMODE_ASSYMETRIC_PWM2 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetMode(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Mode) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_OC1M | TIM_CCMR1_CC1S) << SHIFT_TAB_OCxx[iChannel]), Mode << SHIFT_TAB_OCxx[iChannel]); +} + +/** + * @brief Get the output compare mode of an output channel. + * @rmtoll CCMR1 OC1M LL_TIM_OC_GetMode\n + * CCMR1 OC2M LL_TIM_OC_GetMode\n + * CCMR2 OC3M LL_TIM_OC_GetMode\n + * CCMR2 OC4M LL_TIM_OC_GetMode\n + * CCMR3 OC5M LL_TIM_OC_GetMode\n + * CCMR3 OC6M LL_TIM_OC_GetMode + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_OCMODE_FROZEN + * @arg @ref LL_TIM_OCMODE_ACTIVE + * @arg @ref LL_TIM_OCMODE_INACTIVE + * @arg @ref LL_TIM_OCMODE_TOGGLE + * @arg @ref LL_TIM_OCMODE_FORCED_INACTIVE + * @arg @ref LL_TIM_OCMODE_FORCED_ACTIVE + * @arg @ref LL_TIM_OCMODE_PWM1 + * @arg @ref LL_TIM_OCMODE_PWM2 + * @arg @ref LL_TIM_OCMODE_RETRIG_OPM1 + * @arg @ref LL_TIM_OCMODE_RETRIG_OPM2 + * @arg @ref LL_TIM_OCMODE_COMBINED_PWM1 + * @arg @ref LL_TIM_OCMODE_COMBINED_PWM2 + * @arg @ref LL_TIM_OCMODE_ASSYMETRIC_PWM1 + * @arg @ref LL_TIM_OCMODE_ASSYMETRIC_PWM2 + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetMode(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return (READ_BIT(*pReg, ((TIM_CCMR1_OC1M | TIM_CCMR1_CC1S) << SHIFT_TAB_OCxx[iChannel])) >> SHIFT_TAB_OCxx[iChannel]); +} + +/** + * @brief Set the polarity of an output channel. + * @rmtoll CCER CC1P LL_TIM_OC_SetPolarity\n + * CCER CC1NP LL_TIM_OC_SetPolarity\n + * CCER CC2P LL_TIM_OC_SetPolarity\n + * CCER CC2NP LL_TIM_OC_SetPolarity\n + * CCER CC3P LL_TIM_OC_SetPolarity\n + * CCER CC3NP LL_TIM_OC_SetPolarity\n + * CCER CC4P LL_TIM_OC_SetPolarity\n + * CCER CC5P LL_TIM_OC_SetPolarity\n + * CCER CC6P LL_TIM_OC_SetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @param Polarity This parameter can be one of the following values: + * @arg @ref LL_TIM_OCPOLARITY_HIGH + * @arg @ref LL_TIM_OCPOLARITY_LOW + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Polarity) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + MODIFY_REG(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel]), Polarity << SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Get the polarity of an output channel. + * @rmtoll CCER CC1P LL_TIM_OC_GetPolarity\n + * CCER CC1NP LL_TIM_OC_GetPolarity\n + * CCER CC2P LL_TIM_OC_GetPolarity\n + * CCER CC2NP LL_TIM_OC_GetPolarity\n + * CCER CC3P LL_TIM_OC_GetPolarity\n + * CCER CC3NP LL_TIM_OC_GetPolarity\n + * CCER CC4P LL_TIM_OC_GetPolarity\n + * CCER CC5P LL_TIM_OC_GetPolarity\n + * CCER CC6P LL_TIM_OC_GetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_OCPOLARITY_HIGH + * @arg @ref LL_TIM_OCPOLARITY_LOW + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetPolarity(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + return (READ_BIT(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel])) >> SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Set the IDLE state of an output channel + * @note This function is significant only for the timer instances + * supporting the break feature. Macro IS_TIM_BREAK_INSTANCE(TIMx) + * can be used to check whether or not a timer instance provides + * a break input. + * @rmtoll CR2 OIS1 LL_TIM_OC_SetIdleState\n + * CR2 OIS2N LL_TIM_OC_SetIdleState\n + * CR2 OIS2 LL_TIM_OC_SetIdleState\n + * CR2 OIS2N LL_TIM_OC_SetIdleState\n + * CR2 OIS3 LL_TIM_OC_SetIdleState\n + * CR2 OIS3N LL_TIM_OC_SetIdleState\n + * CR2 OIS4 LL_TIM_OC_SetIdleState\n + * CR2 OIS5 LL_TIM_OC_SetIdleState\n + * CR2 OIS6 LL_TIM_OC_SetIdleState + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @param IdleState This parameter can be one of the following values: + * @arg @ref LL_TIM_OCIDLESTATE_LOW + * @arg @ref LL_TIM_OCIDLESTATE_HIGH + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetIdleState(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t IdleState) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + MODIFY_REG(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel]), IdleState << SHIFT_TAB_OISx[iChannel]); +} + +/** + * @brief Get the IDLE state of an output channel + * @rmtoll CR2 OIS1 LL_TIM_OC_GetIdleState\n + * CR2 OIS2N LL_TIM_OC_GetIdleState\n + * CR2 OIS2 LL_TIM_OC_GetIdleState\n + * CR2 OIS2N LL_TIM_OC_GetIdleState\n + * CR2 OIS3 LL_TIM_OC_GetIdleState\n + * CR2 OIS3N LL_TIM_OC_GetIdleState\n + * CR2 OIS4 LL_TIM_OC_GetIdleState\n + * CR2 OIS5 LL_TIM_OC_GetIdleState\n + * CR2 OIS6 LL_TIM_OC_GetIdleState + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH1N + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH2N + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH3N + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_OCIDLESTATE_LOW + * @arg @ref LL_TIM_OCIDLESTATE_HIGH + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetIdleState(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + return (READ_BIT(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel])) >> SHIFT_TAB_OISx[iChannel]); +} + +/** + * @brief Enable fast mode for the output channel. + * @note Acts only if the channel is configured in PWM1 or PWM2 mode. + * @rmtoll CCMR1 OC1FE LL_TIM_OC_EnableFast\n + * CCMR1 OC2FE LL_TIM_OC_EnableFast\n + * CCMR2 OC3FE LL_TIM_OC_EnableFast\n + * CCMR2 OC4FE LL_TIM_OC_EnableFast\n + * CCMR3 OC5FE LL_TIM_OC_EnableFast\n + * CCMR3 OC6FE LL_TIM_OC_EnableFast + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_EnableFast(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + SET_BIT(*pReg, (TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel])); + +} + +/** + * @brief Disable fast mode for the output channel. + * @rmtoll CCMR1 OC1FE LL_TIM_OC_DisableFast\n + * CCMR1 OC2FE LL_TIM_OC_DisableFast\n + * CCMR2 OC3FE LL_TIM_OC_DisableFast\n + * CCMR2 OC4FE LL_TIM_OC_DisableFast\n + * CCMR3 OC5FE LL_TIM_OC_DisableFast\n + * CCMR3 OC6FE LL_TIM_OC_DisableFast + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_DisableFast(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + CLEAR_BIT(*pReg, (TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel])); + +} + +/** + * @brief Indicates whether fast mode is enabled for the output channel. + * @rmtoll CCMR1 OC1FE LL_TIM_OC_IsEnabledFast\n + * CCMR1 OC2FE LL_TIM_OC_IsEnabledFast\n + * CCMR2 OC3FE LL_TIM_OC_IsEnabledFast\n + * CCMR2 OC4FE LL_TIM_OC_IsEnabledFast\n + * CCMR3 OC5FE LL_TIM_OC_IsEnabledFast\n + * CCMR3 OC6FE LL_TIM_OC_IsEnabledFast + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledFast(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + uint32_t bitfield = TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel]; + return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL); +} + +/** + * @brief Enable compare register (TIMx_CCRx) preload for the output channel. + * @rmtoll CCMR1 OC1PE LL_TIM_OC_EnablePreload\n + * CCMR1 OC2PE LL_TIM_OC_EnablePreload\n + * CCMR2 OC3PE LL_TIM_OC_EnablePreload\n + * CCMR2 OC4PE LL_TIM_OC_EnablePreload\n + * CCMR3 OC5PE LL_TIM_OC_EnablePreload\n + * CCMR3 OC6PE LL_TIM_OC_EnablePreload + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_EnablePreload(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + SET_BIT(*pReg, (TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel])); +} + +/** + * @brief Disable compare register (TIMx_CCRx) preload for the output channel. + * @rmtoll CCMR1 OC1PE LL_TIM_OC_DisablePreload\n + * CCMR1 OC2PE LL_TIM_OC_DisablePreload\n + * CCMR2 OC3PE LL_TIM_OC_DisablePreload\n + * CCMR2 OC4PE LL_TIM_OC_DisablePreload\n + * CCMR3 OC5PE LL_TIM_OC_DisablePreload\n + * CCMR3 OC6PE LL_TIM_OC_DisablePreload + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_DisablePreload(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + CLEAR_BIT(*pReg, (TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel])); +} + +/** + * @brief Indicates whether compare register (TIMx_CCRx) preload is enabled for the output channel. + * @rmtoll CCMR1 OC1PE LL_TIM_OC_IsEnabledPreload\n + * CCMR1 OC2PE LL_TIM_OC_IsEnabledPreload\n + * CCMR2 OC3PE LL_TIM_OC_IsEnabledPreload\n + * CCMR2 OC4PE LL_TIM_OC_IsEnabledPreload\n + * CCMR3 OC5PE LL_TIM_OC_IsEnabledPreload\n + * CCMR3 OC6PE LL_TIM_OC_IsEnabledPreload + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledPreload(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + uint32_t bitfield = TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel]; + return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL); +} + +/** + * @brief Enable clearing the output channel on an external event. + * @note This function can only be used in Output compare and PWM modes. It does not work in Forced mode. + * @note Macro IS_TIM_OCXREF_CLEAR_INSTANCE(TIMx) can be used to check whether + * or not a timer instance can clear the OCxREF signal on an external event. + * @rmtoll CCMR1 OC1CE LL_TIM_OC_EnableClear\n + * CCMR1 OC2CE LL_TIM_OC_EnableClear\n + * CCMR2 OC3CE LL_TIM_OC_EnableClear\n + * CCMR2 OC4CE LL_TIM_OC_EnableClear\n + * CCMR3 OC5CE LL_TIM_OC_EnableClear\n + * CCMR3 OC6CE LL_TIM_OC_EnableClear + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_EnableClear(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + SET_BIT(*pReg, (TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel])); +} + +/** + * @brief Disable clearing the output channel on an external event. + * @note Macro IS_TIM_OCXREF_CLEAR_INSTANCE(TIMx) can be used to check whether + * or not a timer instance can clear the OCxREF signal on an external event. + * @rmtoll CCMR1 OC1CE LL_TIM_OC_DisableClear\n + * CCMR1 OC2CE LL_TIM_OC_DisableClear\n + * CCMR2 OC3CE LL_TIM_OC_DisableClear\n + * CCMR2 OC4CE LL_TIM_OC_DisableClear\n + * CCMR3 OC5CE LL_TIM_OC_DisableClear\n + * CCMR3 OC6CE LL_TIM_OC_DisableClear + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_DisableClear(TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + CLEAR_BIT(*pReg, (TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel])); +} + +/** + * @brief Indicates clearing the output channel on an external event is enabled for the output channel. + * @note This function enables clearing the output channel on an external event. + * @note This function can only be used in Output compare and PWM modes. It does not work in Forced mode. + * @note Macro IS_TIM_OCXREF_CLEAR_INSTANCE(TIMx) can be used to check whether + * or not a timer instance can clear the OCxREF signal on an external event. + * @rmtoll CCMR1 OC1CE LL_TIM_OC_IsEnabledClear\n + * CCMR1 OC2CE LL_TIM_OC_IsEnabledClear\n + * CCMR2 OC3CE LL_TIM_OC_IsEnabledClear\n + * CCMR2 OC4CE LL_TIM_OC_IsEnabledClear\n + * CCMR3 OC5CE LL_TIM_OC_IsEnabledClear\n + * CCMR3 OC6CE LL_TIM_OC_IsEnabledClear + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @arg @ref LL_TIM_CHANNEL_CH5 + * @arg @ref LL_TIM_CHANNEL_CH6 + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledClear(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + uint32_t bitfield = TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel]; + return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL); +} + +/** + * @brief Set the dead-time delay (delay inserted between the rising edge of the OCxREF signal and the rising edge of + * the Ocx and OCxN signals). + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * dead-time insertion feature is supported by a timer instance. + * @note Helper macro @ref __LL_TIM_CALC_DEADTIME can be used to calculate the DeadTime parameter + * @rmtoll BDTR DTG LL_TIM_OC_SetDeadTime + * @param TIMx Timer instance + * @param DeadTime between Min_Data=0 and Max_Data=255 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetDeadTime(TIM_TypeDef *TIMx, uint32_t DeadTime) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_DTG, DeadTime); +} + +/** + * @brief Set compare value for output channel 1 (TIMx_CCR1). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC1_INSTANCE(TIMx) can be used to check whether or not + * output channel 1 is supported by a timer instance. + * @rmtoll CCR1 CCR1 LL_TIM_OC_SetCompareCH1 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH1(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR1, CompareValue); +} + +/** + * @brief Set compare value for output channel 2 (TIMx_CCR2). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC2_INSTANCE(TIMx) can be used to check whether or not + * output channel 2 is supported by a timer instance. + * @rmtoll CCR2 CCR2 LL_TIM_OC_SetCompareCH2 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH2(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR2, CompareValue); +} + +/** + * @brief Set compare value for output channel 3 (TIMx_CCR3). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC3_INSTANCE(TIMx) can be used to check whether or not + * output channel is supported by a timer instance. + * @rmtoll CCR3 CCR3 LL_TIM_OC_SetCompareCH3 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH3(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR3, CompareValue); +} + +/** + * @brief Set compare value for output channel 4 (TIMx_CCR4). + * @note In 32-bit timer implementations compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC4_INSTANCE(TIMx) can be used to check whether or not + * output channel 4 is supported by a timer instance. + * @rmtoll CCR4 CCR4 LL_TIM_OC_SetCompareCH4 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH4(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR4, CompareValue); +} + +/** + * @brief Set compare value for output channel 5 (TIMx_CCR5). + * @note Macro IS_TIM_CC5_INSTANCE(TIMx) can be used to check whether or not + * output channel 5 is supported by a timer instance. + * @rmtoll CCR5 CCR5 LL_TIM_OC_SetCompareCH5 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH5(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + MODIFY_REG(TIMx->CCR5, TIM_CCR5_CCR5, CompareValue); +} + +/** + * @brief Set compare value for output channel 6 (TIMx_CCR6). + * @note Macro IS_TIM_CC6_INSTANCE(TIMx) can be used to check whether or not + * output channel 6 is supported by a timer instance. + * @rmtoll CCR6 CCR6 LL_TIM_OC_SetCompareCH6 + * @param TIMx Timer instance + * @param CompareValue between Min_Data=0 and Max_Data=65535 + * @retval None + */ +__STATIC_INLINE void LL_TIM_OC_SetCompareCH6(TIM_TypeDef *TIMx, uint32_t CompareValue) +{ + WRITE_REG(TIMx->CCR6, CompareValue); +} + +/** + * @brief Get compare value (TIMx_CCR1) set for output channel 1. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC1_INSTANCE(TIMx) can be used to check whether or not + * output channel 1 is supported by a timer instance. + * @rmtoll CCR1 CCR1 LL_TIM_OC_GetCompareCH1 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH1(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR1)); +} + +/** + * @brief Get compare value (TIMx_CCR2) set for output channel 2. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC2_INSTANCE(TIMx) can be used to check whether or not + * output channel 2 is supported by a timer instance. + * @rmtoll CCR2 CCR2 LL_TIM_OC_GetCompareCH2 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH2(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR2)); +} + +/** + * @brief Get compare value (TIMx_CCR3) set for output channel 3. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC3_INSTANCE(TIMx) can be used to check whether or not + * output channel 3 is supported by a timer instance. + * @rmtoll CCR3 CCR3 LL_TIM_OC_GetCompareCH3 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH3(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR3)); +} + +/** + * @brief Get compare value (TIMx_CCR4) set for output channel 4. + * @note In 32-bit timer implementations returned compare value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC4_INSTANCE(TIMx) can be used to check whether or not + * output channel 4 is supported by a timer instance. + * @rmtoll CCR4 CCR4 LL_TIM_OC_GetCompareCH4 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH4(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR4)); +} + +/** + * @brief Get compare value (TIMx_CCR5) set for output channel 5. + * @note Macro IS_TIM_CC5_INSTANCE(TIMx) can be used to check whether or not + * output channel 5 is supported by a timer instance. + * @rmtoll CCR5 CCR5 LL_TIM_OC_GetCompareCH5 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH5(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_BIT(TIMx->CCR5, TIM_CCR5_CCR5)); +} + +/** + * @brief Get compare value (TIMx_CCR6) set for output channel 6. + * @note Macro IS_TIM_CC6_INSTANCE(TIMx) can be used to check whether or not + * output channel 6 is supported by a timer instance. + * @rmtoll CCR6 CCR6 LL_TIM_OC_GetCompareCH6 + * @param TIMx Timer instance + * @retval CompareValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH6(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR6)); +} + +/** + * @brief Select on which reference signal the OC5REF is combined to. + * @note Macro IS_TIM_COMBINED3PHASEPWM_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports the combined 3-phase PWM mode. + * @rmtoll CCR5 GC5C3 LL_TIM_SetCH5CombinedChannels\n + * CCR5 GC5C2 LL_TIM_SetCH5CombinedChannels\n + * CCR5 GC5C1 LL_TIM_SetCH5CombinedChannels + * @param TIMx Timer instance + * @param GroupCH5 This parameter can be a combination of the following values: + * @arg @ref LL_TIM_GROUPCH5_NONE + * @arg @ref LL_TIM_GROUPCH5_OC1REFC + * @arg @ref LL_TIM_GROUPCH5_OC2REFC + * @arg @ref LL_TIM_GROUPCH5_OC3REFC + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetCH5CombinedChannels(TIM_TypeDef *TIMx, uint32_t GroupCH5) +{ + MODIFY_REG(TIMx->CCR5, (TIM_CCR5_GC5C3 | TIM_CCR5_GC5C2 | TIM_CCR5_GC5C1), GroupCH5); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Input_Channel Input channel configuration + * @{ + */ +/** + * @brief Configure input channel. + * @rmtoll CCMR1 CC1S LL_TIM_IC_Config\n + * CCMR1 IC1PSC LL_TIM_IC_Config\n + * CCMR1 IC1F LL_TIM_IC_Config\n + * CCMR1 CC2S LL_TIM_IC_Config\n + * CCMR1 IC2PSC LL_TIM_IC_Config\n + * CCMR1 IC2F LL_TIM_IC_Config\n + * CCMR2 CC3S LL_TIM_IC_Config\n + * CCMR2 IC3PSC LL_TIM_IC_Config\n + * CCMR2 IC3F LL_TIM_IC_Config\n + * CCMR2 CC4S LL_TIM_IC_Config\n + * CCMR2 IC4PSC LL_TIM_IC_Config\n + * CCMR2 IC4F LL_TIM_IC_Config\n + * CCER CC1P LL_TIM_IC_Config\n + * CCER CC1NP LL_TIM_IC_Config\n + * CCER CC2P LL_TIM_IC_Config\n + * CCER CC2NP LL_TIM_IC_Config\n + * CCER CC3P LL_TIM_IC_Config\n + * CCER CC3NP LL_TIM_IC_Config\n + * CCER CC4P LL_TIM_IC_Config\n + * CCER CC4NP LL_TIM_IC_Config + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param Configuration This parameter must be a combination of all the following values: + * @arg @ref LL_TIM_ACTIVEINPUT_DIRECTTI or @ref LL_TIM_ACTIVEINPUT_INDIRECTTI or @ref LL_TIM_ACTIVEINPUT_TRC + * @arg @ref LL_TIM_ICPSC_DIV1 or ... or @ref LL_TIM_ICPSC_DIV8 + * @arg @ref LL_TIM_IC_FILTER_FDIV1 or ... or @ref LL_TIM_IC_FILTER_FDIV32_N8 + * @arg @ref LL_TIM_IC_POLARITY_RISING or @ref LL_TIM_IC_POLARITY_FALLING or @ref LL_TIM_IC_POLARITY_BOTHEDGE + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_Config(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC | TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]), + ((Configuration >> 16U) & (TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC | TIM_CCMR1_CC1S)) \ + << SHIFT_TAB_ICxx[iChannel]); + MODIFY_REG(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]), + (Configuration & (TIM_CCER_CC1NP | TIM_CCER_CC1P)) << SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Set the active input. + * @rmtoll CCMR1 CC1S LL_TIM_IC_SetActiveInput\n + * CCMR1 CC2S LL_TIM_IC_SetActiveInput\n + * CCMR2 CC3S LL_TIM_IC_SetActiveInput\n + * CCMR2 CC4S LL_TIM_IC_SetActiveInput + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICActiveInput This parameter can be one of the following values: + * @arg @ref LL_TIM_ACTIVEINPUT_DIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_INDIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_TRC + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetActiveInput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICActiveInput) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]), (ICActiveInput >> 16U) << SHIFT_TAB_ICxx[iChannel]); +} + +/** + * @brief Get the current active input. + * @rmtoll CCMR1 CC1S LL_TIM_IC_GetActiveInput\n + * CCMR1 CC2S LL_TIM_IC_GetActiveInput\n + * CCMR2 CC3S LL_TIM_IC_GetActiveInput\n + * CCMR2 CC4S LL_TIM_IC_GetActiveInput + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_ACTIVEINPUT_DIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_INDIRECTTI + * @arg @ref LL_TIM_ACTIVEINPUT_TRC + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetActiveInput(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return ((READ_BIT(*pReg, ((TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U); +} + +/** + * @brief Set the prescaler of input channel. + * @rmtoll CCMR1 IC1PSC LL_TIM_IC_SetPrescaler\n + * CCMR1 IC2PSC LL_TIM_IC_SetPrescaler\n + * CCMR2 IC3PSC LL_TIM_IC_SetPrescaler\n + * CCMR2 IC4PSC LL_TIM_IC_SetPrescaler + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICPrescaler This parameter can be one of the following values: + * @arg @ref LL_TIM_ICPSC_DIV1 + * @arg @ref LL_TIM_ICPSC_DIV2 + * @arg @ref LL_TIM_ICPSC_DIV4 + * @arg @ref LL_TIM_ICPSC_DIV8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPrescaler) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_IC1PSC) << SHIFT_TAB_ICxx[iChannel]), (ICPrescaler >> 16U) << SHIFT_TAB_ICxx[iChannel]); +} + +/** + * @brief Get the current prescaler value acting on an input channel. + * @rmtoll CCMR1 IC1PSC LL_TIM_IC_GetPrescaler\n + * CCMR1 IC2PSC LL_TIM_IC_GetPrescaler\n + * CCMR2 IC3PSC LL_TIM_IC_GetPrescaler\n + * CCMR2 IC4PSC LL_TIM_IC_GetPrescaler + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_ICPSC_DIV1 + * @arg @ref LL_TIM_ICPSC_DIV2 + * @arg @ref LL_TIM_ICPSC_DIV4 + * @arg @ref LL_TIM_ICPSC_DIV8 + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetPrescaler(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return ((READ_BIT(*pReg, ((TIM_CCMR1_IC1PSC) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U); +} + +/** + * @brief Set the input filter duration. + * @rmtoll CCMR1 IC1F LL_TIM_IC_SetFilter\n + * CCMR1 IC2F LL_TIM_IC_SetFilter\n + * CCMR2 IC3F LL_TIM_IC_SetFilter\n + * CCMR2 IC4F LL_TIM_IC_SetFilter + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICFilter This parameter can be one of the following values: + * @arg @ref LL_TIM_IC_FILTER_FDIV1 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetFilter(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICFilter) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + MODIFY_REG(*pReg, ((TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel]), (ICFilter >> 16U) << SHIFT_TAB_ICxx[iChannel]); +} + +/** + * @brief Get the input filter duration. + * @rmtoll CCMR1 IC1F LL_TIM_IC_GetFilter\n + * CCMR1 IC2F LL_TIM_IC_GetFilter\n + * CCMR2 IC3F LL_TIM_IC_GetFilter\n + * CCMR2 IC4F LL_TIM_IC_GetFilter + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_IC_FILTER_FDIV1 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_IC_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_IC_FILTER_FDIV32_N8 + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetFilter(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel])); + return ((READ_BIT(*pReg, ((TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U); +} + +/** + * @brief Set the input channel polarity. + * @rmtoll CCER CC1P LL_TIM_IC_SetPolarity\n + * CCER CC1NP LL_TIM_IC_SetPolarity\n + * CCER CC2P LL_TIM_IC_SetPolarity\n + * CCER CC2NP LL_TIM_IC_SetPolarity\n + * CCER CC3P LL_TIM_IC_SetPolarity\n + * CCER CC3NP LL_TIM_IC_SetPolarity\n + * CCER CC4P LL_TIM_IC_SetPolarity\n + * CCER CC4NP LL_TIM_IC_SetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @param ICPolarity This parameter can be one of the following values: + * @arg @ref LL_TIM_IC_POLARITY_RISING + * @arg @ref LL_TIM_IC_POLARITY_FALLING + * @arg @ref LL_TIM_IC_POLARITY_BOTHEDGE + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPolarity) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + MODIFY_REG(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]), + ICPolarity << SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Get the current input channel polarity. + * @rmtoll CCER CC1P LL_TIM_IC_GetPolarity\n + * CCER CC1NP LL_TIM_IC_GetPolarity\n + * CCER CC2P LL_TIM_IC_GetPolarity\n + * CCER CC2NP LL_TIM_IC_GetPolarity\n + * CCER CC3P LL_TIM_IC_GetPolarity\n + * CCER CC3NP LL_TIM_IC_GetPolarity\n + * CCER CC4P LL_TIM_IC_GetPolarity\n + * CCER CC4NP LL_TIM_IC_GetPolarity + * @param TIMx Timer instance + * @param Channel This parameter can be one of the following values: + * @arg @ref LL_TIM_CHANNEL_CH1 + * @arg @ref LL_TIM_CHANNEL_CH2 + * @arg @ref LL_TIM_CHANNEL_CH3 + * @arg @ref LL_TIM_CHANNEL_CH4 + * @retval Returned value can be one of the following values: + * @arg @ref LL_TIM_IC_POLARITY_RISING + * @arg @ref LL_TIM_IC_POLARITY_FALLING + * @arg @ref LL_TIM_IC_POLARITY_BOTHEDGE + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetPolarity(const TIM_TypeDef *TIMx, uint32_t Channel) +{ + uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel); + return (READ_BIT(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel])) >> + SHIFT_TAB_CCxP[iChannel]); +} + +/** + * @brief Connect the TIMx_CH1, CH2 and CH3 pins to the TI1 input (XOR combination). + * @note Macro IS_TIM_XOR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an XOR input. + * @rmtoll CR2 TI1S LL_TIM_IC_EnableXORCombination + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_EnableXORCombination(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->CR2, TIM_CR2_TI1S); +} + +/** + * @brief Disconnect the TIMx_CH1, CH2 and CH3 pins from the TI1 input. + * @note Macro IS_TIM_XOR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an XOR input. + * @rmtoll CR2 TI1S LL_TIM_IC_DisableXORCombination + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_IC_DisableXORCombination(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->CR2, TIM_CR2_TI1S); +} + +/** + * @brief Indicates whether the TIMx_CH1, CH2 and CH3 pins are connectected to the TI1 input. + * @note Macro IS_TIM_XOR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an XOR input. + * @rmtoll CR2 TI1S LL_TIM_IC_IsEnabledXORCombination + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IC_IsEnabledXORCombination(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->CR2, TIM_CR2_TI1S) == (TIM_CR2_TI1S)) ? 1UL : 0UL); +} + +/** + * @brief Get captured value for input channel 1. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC1_INSTANCE(TIMx) can be used to check whether or not + * input channel 1 is supported by a timer instance. + * @rmtoll CCR1 CCR1 LL_TIM_IC_GetCaptureCH1 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH1(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR1)); +} + +/** + * @brief Get captured value for input channel 2. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC2_INSTANCE(TIMx) can be used to check whether or not + * input channel 2 is supported by a timer instance. + * @rmtoll CCR2 CCR2 LL_TIM_IC_GetCaptureCH2 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH2(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR2)); +} + +/** + * @brief Get captured value for input channel 3. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC3_INSTANCE(TIMx) can be used to check whether or not + * input channel 3 is supported by a timer instance. + * @rmtoll CCR3 CCR3 LL_TIM_IC_GetCaptureCH3 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH3(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR3)); +} + +/** + * @brief Get captured value for input channel 4. + * @note In 32-bit timer implementations returned captured value can be between 0x00000000 and 0xFFFFFFFF. + * @note Macro IS_TIM_32B_COUNTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports a 32 bits counter. + * @note Macro IS_TIM_CC4_INSTANCE(TIMx) can be used to check whether or not + * input channel 4 is supported by a timer instance. + * @rmtoll CCR4 CCR4 LL_TIM_IC_GetCaptureCH4 + * @param TIMx Timer instance + * @retval CapturedValue (between Min_Data=0 and Max_Data=65535) + */ +__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH4(const TIM_TypeDef *TIMx) +{ + return (uint32_t)(READ_REG(TIMx->CCR4)); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Clock_Selection Counter clock selection + * @{ + */ +/** + * @brief Enable external clock mode 2. + * @note When external clock mode 2 is enabled the counter is clocked by any active edge on the ETRF signal. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR ECE LL_TIM_EnableExternalClock + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableExternalClock(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->SMCR, TIM_SMCR_ECE); +} + +/** + * @brief Disable external clock mode 2. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR ECE LL_TIM_DisableExternalClock + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableExternalClock(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->SMCR, TIM_SMCR_ECE); +} + +/** + * @brief Indicate whether external clock mode 2 is enabled. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR ECE LL_TIM_IsEnabledExternalClock + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledExternalClock(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SMCR, TIM_SMCR_ECE) == (TIM_SMCR_ECE)) ? 1UL : 0UL); +} + +/** + * @brief Set the clock source of the counter clock. + * @note when selected clock source is external clock mode 1, the timer input + * the external clock is applied is selected by calling the @ref LL_TIM_SetTriggerInput() + * function. This timer input must be configured by calling + * the @ref LL_TIM_IC_Config() function. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode1. + * @note Macro IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports external clock mode2. + * @rmtoll SMCR SMS LL_TIM_SetClockSource\n + * SMCR ECE LL_TIM_SetClockSource + * @param TIMx Timer instance + * @param ClockSource This parameter can be one of the following values: + * @arg @ref LL_TIM_CLOCKSOURCE_INTERNAL + * @arg @ref LL_TIM_CLOCKSOURCE_EXT_MODE1 + * @arg @ref LL_TIM_CLOCKSOURCE_EXT_MODE2 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetClockSource(TIM_TypeDef *TIMx, uint32_t ClockSource) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS | TIM_SMCR_ECE, ClockSource); +} + +/** + * @brief Set the encoder interface mode. + * @note Macro IS_TIM_ENCODER_INTERFACE_INSTANCE(TIMx) can be used to check + * whether or not a timer instance supports the encoder mode. + * @rmtoll SMCR SMS LL_TIM_SetEncoderMode + * @param TIMx Timer instance + * @param EncoderMode This parameter can be one of the following values: + * @arg @ref LL_TIM_ENCODERMODE_X2_TI1 + * @arg @ref LL_TIM_ENCODERMODE_X2_TI2 + * @arg @ref LL_TIM_ENCODERMODE_X4_TI12 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetEncoderMode(TIM_TypeDef *TIMx, uint32_t EncoderMode) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, EncoderMode); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Timer_Synchronization Timer synchronisation configuration + * @{ + */ +/** + * @brief Set the trigger output (TRGO) used for timer synchronization . + * @note Macro IS_TIM_MASTER_INSTANCE(TIMx) can be used to check + * whether or not a timer instance can operate as a master timer. + * @rmtoll CR2 MMS LL_TIM_SetTriggerOutput + * @param TIMx Timer instance + * @param TimerSynchronization This parameter can be one of the following values: + * @arg @ref LL_TIM_TRGO_RESET + * @arg @ref LL_TIM_TRGO_ENABLE + * @arg @ref LL_TIM_TRGO_UPDATE + * @arg @ref LL_TIM_TRGO_CC1IF + * @arg @ref LL_TIM_TRGO_OC1REF + * @arg @ref LL_TIM_TRGO_OC2REF + * @arg @ref LL_TIM_TRGO_OC3REF + * @arg @ref LL_TIM_TRGO_OC4REF + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetTriggerOutput(TIM_TypeDef *TIMx, uint32_t TimerSynchronization) +{ + MODIFY_REG(TIMx->CR2, TIM_CR2_MMS, TimerSynchronization); +} + +/** + * @brief Set the trigger output 2 (TRGO2) used for ADC synchronization . + * @note Macro IS_TIM_TRGO2_INSTANCE(TIMx) can be used to check + * whether or not a timer instance can be used for ADC synchronization. + * @rmtoll CR2 MMS2 LL_TIM_SetTriggerOutput2 + * @param TIMx Timer Instance + * @param ADCSynchronization This parameter can be one of the following values: + * @arg @ref LL_TIM_TRGO2_RESET + * @arg @ref LL_TIM_TRGO2_ENABLE + * @arg @ref LL_TIM_TRGO2_UPDATE + * @arg @ref LL_TIM_TRGO2_CC1F + * @arg @ref LL_TIM_TRGO2_OC1 + * @arg @ref LL_TIM_TRGO2_OC2 + * @arg @ref LL_TIM_TRGO2_OC3 + * @arg @ref LL_TIM_TRGO2_OC4 + * @arg @ref LL_TIM_TRGO2_OC5 + * @arg @ref LL_TIM_TRGO2_OC6 + * @arg @ref LL_TIM_TRGO2_OC4_RISINGFALLING + * @arg @ref LL_TIM_TRGO2_OC6_RISINGFALLING + * @arg @ref LL_TIM_TRGO2_OC4_RISING_OC6_RISING + * @arg @ref LL_TIM_TRGO2_OC4_RISING_OC6_FALLING + * @arg @ref LL_TIM_TRGO2_OC5_RISING_OC6_RISING + * @arg @ref LL_TIM_TRGO2_OC5_RISING_OC6_FALLING + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetTriggerOutput2(TIM_TypeDef *TIMx, uint32_t ADCSynchronization) +{ + MODIFY_REG(TIMx->CR2, TIM_CR2_MMS2, ADCSynchronization); +} + +/** + * @brief Set the synchronization mode of a slave timer. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR SMS LL_TIM_SetSlaveMode + * @param TIMx Timer instance + * @param SlaveMode This parameter can be one of the following values: + * @arg @ref LL_TIM_SLAVEMODE_DISABLED + * @arg @ref LL_TIM_SLAVEMODE_RESET + * @arg @ref LL_TIM_SLAVEMODE_GATED + * @arg @ref LL_TIM_SLAVEMODE_TRIGGER + * @arg @ref LL_TIM_SLAVEMODE_COMBINED_RESETTRIGGER + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetSlaveMode(TIM_TypeDef *TIMx, uint32_t SlaveMode) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, SlaveMode); +} + +/** + * @brief Set the selects the trigger input to be used to synchronize the counter. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR TS LL_TIM_SetTriggerInput + * @param TIMx Timer instance + * @param TriggerInput This parameter can be one of the following values: + * @arg @ref LL_TIM_TS_ITR0 + * @arg @ref LL_TIM_TS_ITR1 + * @arg @ref LL_TIM_TS_ITR2 + * @arg @ref LL_TIM_TS_ITR3 + * @arg @ref LL_TIM_TS_TI1F_ED + * @arg @ref LL_TIM_TS_TI1FP1 + * @arg @ref LL_TIM_TS_TI2FP2 + * @arg @ref LL_TIM_TS_ETRF + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetTriggerInput(TIM_TypeDef *TIMx, uint32_t TriggerInput) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_TS, TriggerInput); +} + +/** + * @brief Enable the Master/Slave mode. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR MSM LL_TIM_EnableMasterSlaveMode + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableMasterSlaveMode(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->SMCR, TIM_SMCR_MSM); +} + +/** + * @brief Disable the Master/Slave mode. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR MSM LL_TIM_DisableMasterSlaveMode + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableMasterSlaveMode(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->SMCR, TIM_SMCR_MSM); +} + +/** + * @brief Indicates whether the Master/Slave mode is enabled. + * @note Macro IS_TIM_SLAVE_INSTANCE(TIMx) can be used to check whether or not + * a timer instance can operate as a slave timer. + * @rmtoll SMCR MSM LL_TIM_IsEnabledMasterSlaveMode + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledMasterSlaveMode(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SMCR, TIM_SMCR_MSM) == (TIM_SMCR_MSM)) ? 1UL : 0UL); +} + +/** + * @brief Configure the external trigger (ETR) input. + * @note Macro IS_TIM_ETR_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides an external trigger input. + * @rmtoll SMCR ETP LL_TIM_ConfigETR\n + * SMCR ETPS LL_TIM_ConfigETR\n + * SMCR ETF LL_TIM_ConfigETR + * @param TIMx Timer instance + * @param ETRPolarity This parameter can be one of the following values: + * @arg @ref LL_TIM_ETR_POLARITY_NONINVERTED + * @arg @ref LL_TIM_ETR_POLARITY_INVERTED + * @param ETRPrescaler This parameter can be one of the following values: + * @arg @ref LL_TIM_ETR_PRESCALER_DIV1 + * @arg @ref LL_TIM_ETR_PRESCALER_DIV2 + * @arg @ref LL_TIM_ETR_PRESCALER_DIV4 + * @arg @ref LL_TIM_ETR_PRESCALER_DIV8 + * @param ETRFilter This parameter can be one of the following values: + * @arg @ref LL_TIM_ETR_FILTER_FDIV1 + * @arg @ref LL_TIM_ETR_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_ETR_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_ETR_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_ETR_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_ETR_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_ETR_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_ETR_FILTER_FDIV32_N8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigETR(TIM_TypeDef *TIMx, uint32_t ETRPolarity, uint32_t ETRPrescaler, + uint32_t ETRFilter) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_ETP | TIM_SMCR_ETPS | TIM_SMCR_ETF, ETRPolarity | ETRPrescaler | ETRFilter); +} + +/** + * @brief Select the external trigger (ETR) input source. + * @note Macro IS_TIM_ETRSEL_INSTANCE(TIMx) can be used to check whether or + * not a timer instance supports ETR source selection. + * @rmtoll OR2 ETRSEL LL_TIM_SetETRSource + * @param TIMx Timer instance + * @param ETRSource This parameter can be one of the following values: + * @arg @ref LL_TIM_ETRSOURCE_LEGACY + * @arg @ref LL_TIM_ETRSOURCE_COMP1 + * @arg @ref LL_TIM_ETRSOURCE_COMP2 + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetETRSource(TIM_TypeDef *TIMx, uint32_t ETRSource) +{ + MODIFY_REG(TIMx->OR2, TIMx_OR2_ETRSEL, ETRSource); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Break_Function Break function configuration + * @{ + */ +/** + * @brief Enable the break function. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR BKE LL_TIM_EnableBRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableBRK(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->BDTR, TIM_BDTR_BKE); +} + +/** + * @brief Disable the break function. + * @rmtoll BDTR BKE LL_TIM_DisableBRK + * @param TIMx Timer instance + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableBRK(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->BDTR, TIM_BDTR_BKE); +} + +/** + * @brief Configure the break input. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR BKP LL_TIM_ConfigBRK\n + * BDTR BKF LL_TIM_ConfigBRK + * @param TIMx Timer instance + * @param BreakPolarity This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_POLARITY_LOW + * @arg @ref LL_TIM_BREAK_POLARITY_HIGH + * @param BreakFilter This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_BREAK_FILTER_FDIV32_N8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigBRK(TIM_TypeDef *TIMx, uint32_t BreakPolarity, + uint32_t BreakFilter) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_BKP | TIM_BDTR_BKF, BreakPolarity | BreakFilter); +} + +/** + * @brief Enable the break 2 function. + * @note Macro IS_TIM_BKIN2_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a second break input. + * @rmtoll BDTR BK2E LL_TIM_EnableBRK2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableBRK2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->BDTR, TIM_BDTR_BK2E); +} + +/** + * @brief Disable the break 2 function. + * @note Macro IS_TIM_BKIN2_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a second break input. + * @rmtoll BDTR BK2E LL_TIM_DisableBRK2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableBRK2(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->BDTR, TIM_BDTR_BK2E); +} + +/** + * @brief Configure the break 2 input. + * @note Macro IS_TIM_BKIN2_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a second break input. + * @rmtoll BDTR BK2P LL_TIM_ConfigBRK2\n + * BDTR BK2F LL_TIM_ConfigBRK2 + * @param TIMx Timer instance + * @param Break2Polarity This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK2_POLARITY_LOW + * @arg @ref LL_TIM_BREAK2_POLARITY_HIGH + * @param Break2Filter This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1_N2 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1_N4 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV1_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV2_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV2_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV4_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV4_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV8_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV8_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV16_N5 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV16_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV16_N8 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV32_N5 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV32_N6 + * @arg @ref LL_TIM_BREAK2_FILTER_FDIV32_N8 + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigBRK2(TIM_TypeDef *TIMx, uint32_t Break2Polarity, uint32_t Break2Filter) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_BK2P | TIM_BDTR_BK2F, Break2Polarity | Break2Filter); +} + +/** + * @brief Select the outputs off state (enabled v.s. disabled) in Idle and Run modes. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR OSSI LL_TIM_SetOffStates\n + * BDTR OSSR LL_TIM_SetOffStates + * @param TIMx Timer instance + * @param OffStateIdle This parameter can be one of the following values: + * @arg @ref LL_TIM_OSSI_DISABLE + * @arg @ref LL_TIM_OSSI_ENABLE + * @param OffStateRun This parameter can be one of the following values: + * @arg @ref LL_TIM_OSSR_DISABLE + * @arg @ref LL_TIM_OSSR_ENABLE + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetOffStates(TIM_TypeDef *TIMx, uint32_t OffStateIdle, uint32_t OffStateRun) +{ + MODIFY_REG(TIMx->BDTR, TIM_BDTR_OSSI | TIM_BDTR_OSSR, OffStateIdle | OffStateRun); +} + +/** + * @brief Enable automatic output (MOE can be set by software or automatically when a break input is active). + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR AOE LL_TIM_EnableAutomaticOutput + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableAutomaticOutput(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->BDTR, TIM_BDTR_AOE); +} + +/** + * @brief Disable automatic output (MOE can be set only by software). + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR AOE LL_TIM_DisableAutomaticOutput + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableAutomaticOutput(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->BDTR, TIM_BDTR_AOE); +} + +/** + * @brief Indicate whether automatic output is enabled. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR AOE LL_TIM_IsEnabledAutomaticOutput + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledAutomaticOutput(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->BDTR, TIM_BDTR_AOE) == (TIM_BDTR_AOE)) ? 1UL : 0UL); +} + +/** + * @brief Enable the outputs (set the MOE bit in TIMx_BDTR register). + * @note The MOE bit in TIMx_BDTR register allows to enable /disable the outputs by + * software and is reset in case of break or break2 event + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR MOE LL_TIM_EnableAllOutputs + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableAllOutputs(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->BDTR, TIM_BDTR_MOE); +} + +/** + * @brief Disable the outputs (reset the MOE bit in TIMx_BDTR register). + * @note The MOE bit in TIMx_BDTR register allows to enable /disable the outputs by + * software and is reset in case of break or break2 event. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR MOE LL_TIM_DisableAllOutputs + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableAllOutputs(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->BDTR, TIM_BDTR_MOE); +} + +/** + * @brief Indicates whether outputs are enabled. + * @note Macro IS_TIM_BREAK_INSTANCE(TIMx) can be used to check whether or not + * a timer instance provides a break input. + * @rmtoll BDTR MOE LL_TIM_IsEnabledAllOutputs + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledAllOutputs(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->BDTR, TIM_BDTR_MOE) == (TIM_BDTR_MOE)) ? 1UL : 0UL); +} + +/** + * @brief Enable the signals connected to the designated timer break input. + * @note Macro IS_TIM_BREAKSOURCE_INSTANCE(TIMx) can be used to check whether + * or not a timer instance allows for break input selection. + * @rmtoll OR2 BKINE LL_TIM_EnableBreakInputSource\n + * OR2 BKCMP1E LL_TIM_EnableBreakInputSource\n + * OR2 BKCMP2E LL_TIM_EnableBreakInputSource\n + * OR2 BKDF1BK0E LL_TIM_EnableBreakInputSource\n + * OR3 BK2INE LL_TIM_EnableBreakInputSource\n + * OR3 BK2CMP1E LL_TIM_EnableBreakInputSource\n + * OR3 BK2CMP2E LL_TIM_EnableBreakInputSource\n + * OR3 BK2DF1BK1E LL_TIM_EnableBreakInputSource + * @param TIMx Timer instance + * @param BreakInput This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_INPUT_BKIN + * @arg @ref LL_TIM_BREAK_INPUT_BKIN2 + * @param Source This parameter can be one of the following values: + * @arg @ref LL_TIM_BKIN_SOURCE_BKIN + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP1 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP2 + * @arg @ref LL_TIM_BKIN_SOURCE_DF1BK + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableBreakInputSource(TIM_TypeDef *TIMx, uint32_t BreakInput, uint32_t Source) +{ + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->OR2) + BreakInput)); + SET_BIT(*pReg, Source); +} + +/** + * @brief Disable the signals connected to the designated timer break input. + * @note Macro IS_TIM_BREAKSOURCE_INSTANCE(TIMx) can be used to check whether + * or not a timer instance allows for break input selection. + * @rmtoll OR2 BKINE LL_TIM_DisableBreakInputSource\n + * OR2 BKCMP1E LL_TIM_DisableBreakInputSource\n + * OR2 BKCMP2E LL_TIM_DisableBreakInputSource\n + * OR2 BKDF1BK0E LL_TIM_DisableBreakInputSource\n + * OR3 BK2INE LL_TIM_DisableBreakInputSource\n + * OR3 BK2CMP1E LL_TIM_DisableBreakInputSource\n + * OR3 BK2CMP2E LL_TIM_DisableBreakInputSource\n + * OR3 BK2DF1BK1E LL_TIM_DisableBreakInputSource + * @param TIMx Timer instance + * @param BreakInput This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_INPUT_BKIN + * @arg @ref LL_TIM_BREAK_INPUT_BKIN2 + * @param Source This parameter can be one of the following values: + * @arg @ref LL_TIM_BKIN_SOURCE_BKIN + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP1 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP2 + * @arg @ref LL_TIM_BKIN_SOURCE_DF1BK + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableBreakInputSource(TIM_TypeDef *TIMx, uint32_t BreakInput, uint32_t Source) +{ + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->OR2) + BreakInput)); + CLEAR_BIT(*pReg, Source); +} + +/** + * @brief Set the polarity of the break signal for the timer break input. + * @note Macro IS_TIM_BREAKSOURCE_INSTANCE(TIMx) can be used to check whether + * or not a timer instance allows for break input selection. + * @rmtoll OR2 BKINP LL_TIM_SetBreakInputSourcePolarity\n + * OR2 BKCMP1P LL_TIM_SetBreakInputSourcePolarity\n + * OR2 BKCMP2P LL_TIM_SetBreakInputSourcePolarity\n + * OR3 BK2INP LL_TIM_SetBreakInputSourcePolarity\n + * OR3 BK2CMP1P LL_TIM_SetBreakInputSourcePolarity\n + * OR3 BK2CMP2P LL_TIM_SetBreakInputSourcePolarity + * @param TIMx Timer instance + * @param BreakInput This parameter can be one of the following values: + * @arg @ref LL_TIM_BREAK_INPUT_BKIN + * @arg @ref LL_TIM_BREAK_INPUT_BKIN2 + * @param Source This parameter can be one of the following values: + * @arg @ref LL_TIM_BKIN_SOURCE_BKIN + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP1 + * @arg @ref LL_TIM_BKIN_SOURCE_BKCOMP2 + * @param Polarity This parameter can be one of the following values: + * @arg @ref LL_TIM_BKIN_POLARITY_LOW + * @arg @ref LL_TIM_BKIN_POLARITY_HIGH + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetBreakInputSourcePolarity(TIM_TypeDef *TIMx, uint32_t BreakInput, uint32_t Source, + uint32_t Polarity) +{ + __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->OR2) + BreakInput)); + MODIFY_REG(*pReg, (TIMx_OR2_BKINP << TIM_POSITION_BRK_SOURCE), (Polarity << TIM_POSITION_BRK_SOURCE)); +} +/** + * @} + */ + +/** @defgroup TIM_LL_EF_DMA_Burst_Mode DMA burst mode configuration + * @{ + */ +/** + * @brief Configures the timer DMA burst feature. + * @note Macro IS_TIM_DMABURST_INSTANCE(TIMx) can be used to check whether or + * not a timer instance supports the DMA burst mode. + * @rmtoll DCR DBL LL_TIM_ConfigDMABurst\n + * DCR DBA LL_TIM_ConfigDMABurst + * @param TIMx Timer instance + * @param DMABurstBaseAddress This parameter can be one of the following values: + * @arg @ref LL_TIM_DMABURST_BASEADDR_CR1 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CR2 + * @arg @ref LL_TIM_DMABURST_BASEADDR_SMCR + * @arg @ref LL_TIM_DMABURST_BASEADDR_DIER + * @arg @ref LL_TIM_DMABURST_BASEADDR_SR + * @arg @ref LL_TIM_DMABURST_BASEADDR_EGR + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCMR1 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCMR2 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCER + * @arg @ref LL_TIM_DMABURST_BASEADDR_CNT + * @arg @ref LL_TIM_DMABURST_BASEADDR_PSC + * @arg @ref LL_TIM_DMABURST_BASEADDR_ARR + * @arg @ref LL_TIM_DMABURST_BASEADDR_RCR + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR1 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR2 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR3 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR4 + * @arg @ref LL_TIM_DMABURST_BASEADDR_BDTR + * @arg @ref LL_TIM_DMABURST_BASEADDR_OR1 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCMR3 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR5 + * @arg @ref LL_TIM_DMABURST_BASEADDR_CCR6 + * @arg @ref LL_TIM_DMABURST_BASEADDR_OR2 + * @arg @ref LL_TIM_DMABURST_BASEADDR_OR3 + * @param DMABurstLength This parameter can be one of the following values: + * @arg @ref LL_TIM_DMABURST_LENGTH_1TRANSFER + * @arg @ref LL_TIM_DMABURST_LENGTH_2TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_3TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_4TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_5TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_6TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_7TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_8TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_9TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_10TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_11TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_12TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_13TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_14TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_15TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_16TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_17TRANSFERS + * @arg @ref LL_TIM_DMABURST_LENGTH_18TRANSFERS + * @retval None + */ +__STATIC_INLINE void LL_TIM_ConfigDMABurst(TIM_TypeDef *TIMx, uint32_t DMABurstBaseAddress, uint32_t DMABurstLength) +{ + MODIFY_REG(TIMx->DCR, (TIM_DCR_DBL | TIM_DCR_DBA), (DMABurstBaseAddress | DMABurstLength)); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_Timer_Inputs_Remapping Timer input remapping + * @{ + */ +/** + * @brief Remap TIM inputs (input channel, internal/external triggers). + * @note Macro IS_TIM_REMAP_INSTANCE(TIMx) can be used to check whether or not + * a some timer inputs can be remapped. + @if STM32L486xx + * @rmtoll TIM1_OR1 ETR_ADC1_RMP LL_TIM_SetRemap\n + * TIM1_OR1 ETR_ADC3_RMP LL_TIM_SetRemap\n + * TIM1_OR1 TI1_RMP LL_TIM_SetRemap\n + * TIM8_OR1 ETR_ADC2_RMP LL_TIM_SetRemap\n + * TIM8_OR1 ETR_ADC3_RMP LL_TIM_SetRemap\n + * TIM8_OR1 TI1_RMP LL_TIM_SetRemap\n + * TIM2_OR1 ITR1_RMP LL_TIM_SetRemap\n + * TIM2_OR1 TI4_RMP LL_TIM_SetRemap\n + * TIM2_OR1 TI1_RMP LL_TIM_SetRemap\n + * TIM3_OR1 TI1_RMP LL_TIM_SetRemap\n + * TIM15_OR1 TI1_RMP LL_TIM_SetRemap\n + * TIM15_OR1 ENCODER_MODE LL_TIM_SetRemap\n + * TIM16_OR1 TI1_RMP LL_TIM_SetRemap\n + * TIM17_OR1 TI1_RMP LL_TIM_SetRemap + @endif + @if STM32L443xx + * @rmtoll TIM1_OR1 ETR_ADC1_RMP LL_TIM_SetRemap\n + * TIM1_OR1 ETR_ADC3_RMP LL_TIM_SetRemap\n + * TIM1_OR1 TI1_RMP LL_TIM_SetRemap\n + * TIM2_OR1 ITR1_RMP LL_TIM_SetRemap\n + * TIM2_OR1 TI4_RMP LL_TIM_SetRemap\n + * TIM2_OR1 TI1_RMP LL_TIM_SetRemap\n + * TIM15_OR1 TI1_RMP LL_TIM_SetRemap\n + * TIM15_OR1 ENCODER_MODE LL_TIM_SetRemap\n + * TIM16_OR1 TI1_RMP LL_TIM_SetRemap\n + @endif + * @param TIMx Timer instance + * @param Remap Remap param depends on the TIMx. Description available only + * in CHM version of the User Manual (not in .pdf). + * Otherwise see Reference Manual description of OR registers. + * + * Below description summarizes "Timer Instance" and "Remap" param combinations: + * + @if STM32L486xx + * TIM1: any combination of TI1_RMP, ADC3_RMP, ADC1_RMP where + * + * . . ADC1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_NC + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_AWD1 + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_AWD2 + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_AWD3 + * + * . . ADC3_RMP can be one of the following values + * @arg @ref LL_TIM_TIM1_ETR_ADC3_RMP_NC + * @arg @ref LL_TIM_TIM1_ETR_ADC3_RMP_AWD1 + * @arg @ref LL_TIM_TIM1_ETR_ADC3_RMP_AWD2 + * @arg @ref LL_TIM_TIM1_ETR_ADC3_RMP_AWD3 + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM1_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM1_TI1_RMP_COMP1 + * + * TIM2: any combination of ITR1_RMP, ETR1_RMP, TI4_RMP where + * + * ITR1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM2_ITR1_RMP_TIM8_TRGO + * @arg @ref LL_TIM_TIM2_ITR1_RMP_OTG_FS_SOF + * + * . . ETR1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM2_ETR_RMP_GPIO + * @arg @ref LL_TIM_TIM2_ETR_RMP_LSE + * + * . . TI4_RMP can be one of the following values + * @arg @ref LL_TIM_TIM2_TI4_RMP_GPIO + * @arg @ref LL_TIM_TIM2_TI4_RMP_COMP1 + * @arg @ref LL_TIM_TIM2_TI4_RMP_COMP2 + * @arg @ref LL_TIM_TIM2_TI4_RMP_COMP1_COMP2 + * + * TIM3: one of the following values + * + * @arg @ref LL_TIM_TIM3_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM3_TI1_RMP_COMP1 + * @arg @ref LL_TIM_TIM3_TI1_RMP_COMP2 + * @arg @ref LL_TIM_TIM3_TI1_RMP_COMP1_COMP2 + * + * TIM8: any combination of TI1_RMP, ADC3_RMP, ADC1_RMP where + * + * . . ADC1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM8_ETR_ADC2_RMP_NC + * @arg @ref LL_TIM_TIM8_ETR_ADC2_RMP_AWD1 + * @arg @ref LL_TIM_TIM8_ETR_ADC2_RMP_AWD2 + * @arg @ref LL_TIM_TIM8_ETR_ADC2_RMP_AWD3 + * + * . . ADC3_RMP can be one of the following values + * @arg @ref LL_TIM_TIM8_ETR_ADC3_RMP_NC + * @arg @ref LL_TIM_TIM8_ETR_ADC3_RMP_AWD1 + * @arg @ref LL_TIM_TIM8_ETR_ADC3_RMP_AWD2 + * @arg @ref LL_TIM_TIM8_ETR_ADC3_RMP_AWD3 + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM8_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM8_TI1_RMP_COMP2 + * + * TIM15: any combination of TI1_RMP, ENCODER_MODE where + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM15_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM15_TI1_RMP_LSE + * + * . . ENCODER_MODE can be one of the following values + * @arg @ref LL_TIM_TIM15_ENCODERMODE_NOREDIRECTION + * @arg @ref LL_TIM_TIM15_ENCODERMODE_TIM2 + * @arg @ref LL_TIM_TIM15_ENCODERMODE_TIM3 + * @arg @ref LL_TIM_TIM15_ENCODERMODE_TIM4 + * + * TIM16: one of the following values + * + * @arg @ref LL_TIM_TIM16_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM16_TI1_RMP_LSI + * @arg @ref LL_TIM_TIM16_TI1_RMP_LSE + * @arg @ref LL_TIM_TIM16_TI1_RMP_RTC + * @arg @ref LL_TIM_TIM16_TI1_RMP_MSI + * @arg @ref LL_TIM_TIM16_TI1_RMP_HSE_32 + * @arg @ref LL_TIM_TIM16_TI1_RMP_MCO + * + * TIM17: one of the following values + * + * @arg @ref LL_TIM_TIM17_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM17_TI1_RMP_MSI + * @arg @ref LL_TIM_TIM17_TI1_RMP_HSE_32 + * @arg @ref LL_TIM_TIM17_TI1_RMP_MCO + @endif + @if STM32L443xx + * TIM1: any combination of TI1_RMP, ADC3_RMP, ADC1_RMP where + * + * . . ADC1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_NC + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_AWD1 + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_AWD2 + * @arg @ref LL_TIM_TIM1_ETR_ADC1_RMP_AWD3 + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM1_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM1_TI1_RMP_COMP1 + * + * TIM2: any combination of ITR1_RMP, ETR1_RMP, TI4_RMP where + * + * ITR1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM2_ITR1_RMP_NONE + * @arg @ref LL_TIM_TIM2_ITR1_RMP_USB_SOF + * + * . . ETR1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM2_ETR_RMP_GPIO + * @arg @ref LL_TIM_TIM2_ETR_RMP_LSE + * + * . . TI4_RMP can be one of the following values + * @arg @ref LL_TIM_TIM2_TI4_RMP_GPIO + * @arg @ref LL_TIM_TIM2_TI4_RMP_COMP1 + * @arg @ref LL_TIM_TIM2_TI4_RMP_COMP2 + * @arg @ref LL_TIM_TIM2_TI4_RMP_COMP1_COMP2 + * + * TIM15: any combination of TI1_RMP, ENCODER_MODE where + * + * . . TI1_RMP can be one of the following values + * @arg @ref LL_TIM_TIM15_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM15_TI1_RMP_LSE + * + * . . ENCODER_MODE can be one of the following values + * @arg @ref LL_TIM_TIM15_ENCODERMODE_NOREDIRECTION + * @arg @ref LL_TIM_TIM15_ENCODERMODE_TIM2 + * @arg @ref LL_TIM_TIM15_ENCODERMODE_TIM3 + * @arg @ref LL_TIM_TIM15_ENCODERMODE_TIM4 + * + * TIM16: one of the following values + * + * @arg @ref LL_TIM_TIM16_TI1_RMP_GPIO + * @arg @ref LL_TIM_TIM16_TI1_RMP_LSI + * @arg @ref LL_TIM_TIM16_TI1_RMP_LSE + * @arg @ref LL_TIM_TIM16_TI1_RMP_RTC + * @arg @ref LL_TIM_TIM16_TI1_RMP_MSI + * @arg @ref LL_TIM_TIM16_TI1_RMP_HSE_32 + * @arg @ref LL_TIM_TIM16_TI1_RMP_MCO + @endif + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetRemap(TIM_TypeDef *TIMx, uint32_t Remap) +{ + MODIFY_REG(TIMx->OR1, (Remap >> TIMx_OR1_RMP_SHIFT), (Remap & TIMx_OR1_RMP_MASK)); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_OCREF_Clear OCREF_Clear_Management + * @{ + */ +/** + * @brief Set the OCREF clear input source + * @note The OCxREF signal of a given channel can be cleared when a high level is applied on the OCREF_CLR_INPUT + * @note This function can only be used in Output compare and PWM modes. + * @rmtoll SMCR OCCS LL_TIM_SetOCRefClearInputSource + * @param TIMx Timer instance + * @param OCRefClearInputSource This parameter can be one of the following values: + * @arg @ref LL_TIM_OCREF_CLR_INT_NC + * @arg @ref LL_TIM_OCREF_CLR_INT_ETR + * @retval None + */ +__STATIC_INLINE void LL_TIM_SetOCRefClearInputSource(TIM_TypeDef *TIMx, uint32_t OCRefClearInputSource) +{ + MODIFY_REG(TIMx->SMCR, TIM_SMCR_OCCS, OCRefClearInputSource); +} +/** + * @} + */ + +/** @defgroup TIM_LL_EF_FLAG_Management FLAG-Management + * @{ + */ +/** + * @brief Clear the update interrupt flag (UIF). + * @rmtoll SR UIF LL_TIM_ClearFlag_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_UPDATE(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_UIF)); +} + +/** + * @brief Indicate whether update interrupt flag (UIF) is set (update interrupt is pending). + * @rmtoll SR UIF LL_TIM_IsActiveFlag_UPDATE + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_UPDATE(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_UIF) == (TIM_SR_UIF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 1 interrupt flag (CC1F). + * @rmtoll SR CC1IF LL_TIM_ClearFlag_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC1(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC1IF)); +} + +/** + * @brief Indicate whether Capture/Compare 1 interrupt flag (CC1F) is set (Capture/Compare 1 interrupt is pending). + * @rmtoll SR CC1IF LL_TIM_IsActiveFlag_CC1 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC1(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC1IF) == (TIM_SR_CC1IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 2 interrupt flag (CC2F). + * @rmtoll SR CC2IF LL_TIM_ClearFlag_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC2(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC2IF)); +} + +/** + * @brief Indicate whether Capture/Compare 2 interrupt flag (CC2F) is set (Capture/Compare 2 interrupt is pending). + * @rmtoll SR CC2IF LL_TIM_IsActiveFlag_CC2 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC2(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC2IF) == (TIM_SR_CC2IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 3 interrupt flag (CC3F). + * @rmtoll SR CC3IF LL_TIM_ClearFlag_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC3(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC3IF)); +} + +/** + * @brief Indicate whether Capture/Compare 3 interrupt flag (CC3F) is set (Capture/Compare 3 interrupt is pending). + * @rmtoll SR CC3IF LL_TIM_IsActiveFlag_CC3 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC3(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC3IF) == (TIM_SR_CC3IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 4 interrupt flag (CC4F). + * @rmtoll SR CC4IF LL_TIM_ClearFlag_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC4(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC4IF)); +} + +/** + * @brief Indicate whether Capture/Compare 4 interrupt flag (CC4F) is set (Capture/Compare 4 interrupt is pending). + * @rmtoll SR CC4IF LL_TIM_IsActiveFlag_CC4 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC4(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC4IF) == (TIM_SR_CC4IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 5 interrupt flag (CC5F). + * @rmtoll SR CC5IF LL_TIM_ClearFlag_CC5 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC5(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC5IF)); +} + +/** + * @brief Indicate whether Capture/Compare 5 interrupt flag (CC5F) is set (Capture/Compare 5 interrupt is pending). + * @rmtoll SR CC5IF LL_TIM_IsActiveFlag_CC5 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC5(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC5IF) == (TIM_SR_CC5IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 6 interrupt flag (CC6F). + * @rmtoll SR CC6IF LL_TIM_ClearFlag_CC6 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC6(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC6IF)); +} + +/** + * @brief Indicate whether Capture/Compare 6 interrupt flag (CC6F) is set (Capture/Compare 6 interrupt is pending). + * @rmtoll SR CC6IF LL_TIM_IsActiveFlag_CC6 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC6(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC6IF) == (TIM_SR_CC6IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the commutation interrupt flag (COMIF). + * @rmtoll SR COMIF LL_TIM_ClearFlag_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_COM(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_COMIF)); +} + +/** + * @brief Indicate whether commutation interrupt flag (COMIF) is set (commutation interrupt is pending). + * @rmtoll SR COMIF LL_TIM_IsActiveFlag_COM + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_COM(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_COMIF) == (TIM_SR_COMIF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the trigger interrupt flag (TIF). + * @rmtoll SR TIF LL_TIM_ClearFlag_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_TRIG(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_TIF)); +} + +/** + * @brief Indicate whether trigger interrupt flag (TIF) is set (trigger interrupt is pending). + * @rmtoll SR TIF LL_TIM_IsActiveFlag_TRIG + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_TRIG(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_TIF) == (TIM_SR_TIF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the break interrupt flag (BIF). + * @rmtoll SR BIF LL_TIM_ClearFlag_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_BRK(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_BIF)); +} + +/** + * @brief Indicate whether break interrupt flag (BIF) is set (break interrupt is pending). + * @rmtoll SR BIF LL_TIM_IsActiveFlag_BRK + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_BRK(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_BIF) == (TIM_SR_BIF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the break 2 interrupt flag (B2IF). + * @rmtoll SR B2IF LL_TIM_ClearFlag_BRK2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_BRK2(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_B2IF)); +} + +/** + * @brief Indicate whether break 2 interrupt flag (B2IF) is set (break 2 interrupt is pending). + * @rmtoll SR B2IF LL_TIM_IsActiveFlag_BRK2 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_BRK2(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_B2IF) == (TIM_SR_B2IF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 1 over-capture interrupt flag (CC1OF). + * @rmtoll SR CC1OF LL_TIM_ClearFlag_CC1OVR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC1OVR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC1OF)); +} + +/** + * @brief Indicate whether Capture/Compare 1 over-capture interrupt flag (CC1OF) is set + * (Capture/Compare 1 interrupt is pending). + * @rmtoll SR CC1OF LL_TIM_IsActiveFlag_CC1OVR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC1OVR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC1OF) == (TIM_SR_CC1OF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 2 over-capture interrupt flag (CC2OF). + * @rmtoll SR CC2OF LL_TIM_ClearFlag_CC2OVR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC2OVR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC2OF)); +} + +/** + * @brief Indicate whether Capture/Compare 2 over-capture interrupt flag (CC2OF) is set + * (Capture/Compare 2 over-capture interrupt is pending). + * @rmtoll SR CC2OF LL_TIM_IsActiveFlag_CC2OVR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC2OVR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC2OF) == (TIM_SR_CC2OF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 3 over-capture interrupt flag (CC3OF). + * @rmtoll SR CC3OF LL_TIM_ClearFlag_CC3OVR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC3OVR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC3OF)); +} + +/** + * @brief Indicate whether Capture/Compare 3 over-capture interrupt flag (CC3OF) is set + * (Capture/Compare 3 over-capture interrupt is pending). + * @rmtoll SR CC3OF LL_TIM_IsActiveFlag_CC3OVR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC3OVR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC3OF) == (TIM_SR_CC3OF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the Capture/Compare 4 over-capture interrupt flag (CC4OF). + * @rmtoll SR CC4OF LL_TIM_ClearFlag_CC4OVR + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_CC4OVR(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_CC4OF)); +} + +/** + * @brief Indicate whether Capture/Compare 4 over-capture interrupt flag (CC4OF) is set + * (Capture/Compare 4 over-capture interrupt is pending). + * @rmtoll SR CC4OF LL_TIM_IsActiveFlag_CC4OVR + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC4OVR(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_CC4OF) == (TIM_SR_CC4OF)) ? 1UL : 0UL); +} + +/** + * @brief Clear the system break interrupt flag (SBIF). + * @rmtoll SR SBIF LL_TIM_ClearFlag_SYSBRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_ClearFlag_SYSBRK(TIM_TypeDef *TIMx) +{ + WRITE_REG(TIMx->SR, ~(TIM_SR_SBIF)); +} + +/** + * @brief Indicate whether system break interrupt flag (SBIF) is set (system break interrupt is pending). + * @rmtoll SR SBIF LL_TIM_IsActiveFlag_SYSBRK + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_SYSBRK(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->SR, TIM_SR_SBIF) == (TIM_SR_SBIF)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_IT_Management IT-Management + * @{ + */ +/** + * @brief Enable update interrupt (UIE). + * @rmtoll DIER UIE LL_TIM_EnableIT_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_UPDATE(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_UIE); +} + +/** + * @brief Disable update interrupt (UIE). + * @rmtoll DIER UIE LL_TIM_DisableIT_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_UPDATE(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_UIE); +} + +/** + * @brief Indicates whether the update interrupt (UIE) is enabled. + * @rmtoll DIER UIE LL_TIM_IsEnabledIT_UPDATE + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_UPDATE(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_UIE) == (TIM_DIER_UIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 1 interrupt (CC1IE). + * @rmtoll DIER CC1IE LL_TIM_EnableIT_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC1(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC1IE); +} + +/** + * @brief Disable capture/compare 1 interrupt (CC1IE). + * @rmtoll DIER CC1IE LL_TIM_DisableIT_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC1(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1IE); +} + +/** + * @brief Indicates whether the capture/compare 1 interrupt (CC1IE) is enabled. + * @rmtoll DIER CC1IE LL_TIM_IsEnabledIT_CC1 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC1(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1IE) == (TIM_DIER_CC1IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 2 interrupt (CC2IE). + * @rmtoll DIER CC2IE LL_TIM_EnableIT_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC2IE); +} + +/** + * @brief Disable capture/compare 2 interrupt (CC2IE). + * @rmtoll DIER CC2IE LL_TIM_DisableIT_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC2(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2IE); +} + +/** + * @brief Indicates whether the capture/compare 2 interrupt (CC2IE) is enabled. + * @rmtoll DIER CC2IE LL_TIM_IsEnabledIT_CC2 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC2(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2IE) == (TIM_DIER_CC2IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 3 interrupt (CC3IE). + * @rmtoll DIER CC3IE LL_TIM_EnableIT_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC3(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC3IE); +} + +/** + * @brief Disable capture/compare 3 interrupt (CC3IE). + * @rmtoll DIER CC3IE LL_TIM_DisableIT_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC3(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3IE); +} + +/** + * @brief Indicates whether the capture/compare 3 interrupt (CC3IE) is enabled. + * @rmtoll DIER CC3IE LL_TIM_IsEnabledIT_CC3 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC3(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3IE) == (TIM_DIER_CC3IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 4 interrupt (CC4IE). + * @rmtoll DIER CC4IE LL_TIM_EnableIT_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_CC4(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC4IE); +} + +/** + * @brief Disable capture/compare 4 interrupt (CC4IE). + * @rmtoll DIER CC4IE LL_TIM_DisableIT_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_CC4(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4IE); +} + +/** + * @brief Indicates whether the capture/compare 4 interrupt (CC4IE) is enabled. + * @rmtoll DIER CC4IE LL_TIM_IsEnabledIT_CC4 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC4(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4IE) == (TIM_DIER_CC4IE)) ? 1UL : 0UL); +} + +/** + * @brief Enable commutation interrupt (COMIE). + * @rmtoll DIER COMIE LL_TIM_EnableIT_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_COM(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_COMIE); +} + +/** + * @brief Disable commutation interrupt (COMIE). + * @rmtoll DIER COMIE LL_TIM_DisableIT_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_COM(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_COMIE); +} + +/** + * @brief Indicates whether the commutation interrupt (COMIE) is enabled. + * @rmtoll DIER COMIE LL_TIM_IsEnabledIT_COM + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_COM(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_COMIE) == (TIM_DIER_COMIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable trigger interrupt (TIE). + * @rmtoll DIER TIE LL_TIM_EnableIT_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_TRIG(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_TIE); +} + +/** + * @brief Disable trigger interrupt (TIE). + * @rmtoll DIER TIE LL_TIM_DisableIT_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_TRIG(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_TIE); +} + +/** + * @brief Indicates whether the trigger interrupt (TIE) is enabled. + * @rmtoll DIER TIE LL_TIM_IsEnabledIT_TRIG + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_TRIG(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_TIE) == (TIM_DIER_TIE)) ? 1UL : 0UL); +} + +/** + * @brief Enable break interrupt (BIE). + * @rmtoll DIER BIE LL_TIM_EnableIT_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableIT_BRK(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_BIE); +} + +/** + * @brief Disable break interrupt (BIE). + * @rmtoll DIER BIE LL_TIM_DisableIT_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableIT_BRK(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_BIE); +} + +/** + * @brief Indicates whether the break interrupt (BIE) is enabled. + * @rmtoll DIER BIE LL_TIM_IsEnabledIT_BRK + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_BRK(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_BIE) == (TIM_DIER_BIE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_DMA_Management DMA Management + * @{ + */ +/** + * @brief Enable update DMA request (UDE). + * @rmtoll DIER UDE LL_TIM_EnableDMAReq_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_UPDATE(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_UDE); +} + +/** + * @brief Disable update DMA request (UDE). + * @rmtoll DIER UDE LL_TIM_DisableDMAReq_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_UPDATE(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_UDE); +} + +/** + * @brief Indicates whether the update DMA request (UDE) is enabled. + * @rmtoll DIER UDE LL_TIM_IsEnabledDMAReq_UPDATE + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_UPDATE(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_UDE) == (TIM_DIER_UDE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 1 DMA request (CC1DE). + * @rmtoll DIER CC1DE LL_TIM_EnableDMAReq_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC1(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC1DE); +} + +/** + * @brief Disable capture/compare 1 DMA request (CC1DE). + * @rmtoll DIER CC1DE LL_TIM_DisableDMAReq_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC1(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1DE); +} + +/** + * @brief Indicates whether the capture/compare 1 DMA request (CC1DE) is enabled. + * @rmtoll DIER CC1DE LL_TIM_IsEnabledDMAReq_CC1 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC1(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1DE) == (TIM_DIER_CC1DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 2 DMA request (CC2DE). + * @rmtoll DIER CC2DE LL_TIM_EnableDMAReq_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC2DE); +} + +/** + * @brief Disable capture/compare 2 DMA request (CC2DE). + * @rmtoll DIER CC2DE LL_TIM_DisableDMAReq_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC2(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2DE); +} + +/** + * @brief Indicates whether the capture/compare 2 DMA request (CC2DE) is enabled. + * @rmtoll DIER CC2DE LL_TIM_IsEnabledDMAReq_CC2 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC2(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2DE) == (TIM_DIER_CC2DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 3 DMA request (CC3DE). + * @rmtoll DIER CC3DE LL_TIM_EnableDMAReq_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC3(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC3DE); +} + +/** + * @brief Disable capture/compare 3 DMA request (CC3DE). + * @rmtoll DIER CC3DE LL_TIM_DisableDMAReq_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC3(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3DE); +} + +/** + * @brief Indicates whether the capture/compare 3 DMA request (CC3DE) is enabled. + * @rmtoll DIER CC3DE LL_TIM_IsEnabledDMAReq_CC3 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC3(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3DE) == (TIM_DIER_CC3DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable capture/compare 4 DMA request (CC4DE). + * @rmtoll DIER CC4DE LL_TIM_EnableDMAReq_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_CC4(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_CC4DE); +} + +/** + * @brief Disable capture/compare 4 DMA request (CC4DE). + * @rmtoll DIER CC4DE LL_TIM_DisableDMAReq_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_CC4(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4DE); +} + +/** + * @brief Indicates whether the capture/compare 4 DMA request (CC4DE) is enabled. + * @rmtoll DIER CC4DE LL_TIM_IsEnabledDMAReq_CC4 + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC4(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4DE) == (TIM_DIER_CC4DE)) ? 1UL : 0UL); +} + +/** + * @brief Enable commutation DMA request (COMDE). + * @rmtoll DIER COMDE LL_TIM_EnableDMAReq_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_COM(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_COMDE); +} + +/** + * @brief Disable commutation DMA request (COMDE). + * @rmtoll DIER COMDE LL_TIM_DisableDMAReq_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_COM(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_COMDE); +} + +/** + * @brief Indicates whether the commutation DMA request (COMDE) is enabled. + * @rmtoll DIER COMDE LL_TIM_IsEnabledDMAReq_COM + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_COM(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_COMDE) == (TIM_DIER_COMDE)) ? 1UL : 0UL); +} + +/** + * @brief Enable trigger interrupt (TDE). + * @rmtoll DIER TDE LL_TIM_EnableDMAReq_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_EnableDMAReq_TRIG(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->DIER, TIM_DIER_TDE); +} + +/** + * @brief Disable trigger interrupt (TDE). + * @rmtoll DIER TDE LL_TIM_DisableDMAReq_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_DisableDMAReq_TRIG(TIM_TypeDef *TIMx) +{ + CLEAR_BIT(TIMx->DIER, TIM_DIER_TDE); +} + +/** + * @brief Indicates whether the trigger interrupt (TDE) is enabled. + * @rmtoll DIER TDE LL_TIM_IsEnabledDMAReq_TRIG + * @param TIMx Timer instance + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_TRIG(const TIM_TypeDef *TIMx) +{ + return ((READ_BIT(TIMx->DIER, TIM_DIER_TDE) == (TIM_DIER_TDE)) ? 1UL : 0UL); +} + +/** + * @} + */ + +/** @defgroup TIM_LL_EF_EVENT_Management EVENT-Management + * @{ + */ +/** + * @brief Generate an update event. + * @rmtoll EGR UG LL_TIM_GenerateEvent_UPDATE + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_UPDATE(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_UG); +} + +/** + * @brief Generate Capture/Compare 1 event. + * @rmtoll EGR CC1G LL_TIM_GenerateEvent_CC1 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC1(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC1G); +} + +/** + * @brief Generate Capture/Compare 2 event. + * @rmtoll EGR CC2G LL_TIM_GenerateEvent_CC2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC2G); +} + +/** + * @brief Generate Capture/Compare 3 event. + * @rmtoll EGR CC3G LL_TIM_GenerateEvent_CC3 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC3(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC3G); +} + +/** + * @brief Generate Capture/Compare 4 event. + * @rmtoll EGR CC4G LL_TIM_GenerateEvent_CC4 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_CC4(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_CC4G); +} + +/** + * @brief Generate commutation event. + * @rmtoll EGR COMG LL_TIM_GenerateEvent_COM + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_COM(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_COMG); +} + +/** + * @brief Generate trigger event. + * @rmtoll EGR TG LL_TIM_GenerateEvent_TRIG + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_TRIG(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_TG); +} + +/** + * @brief Generate break event. + * @rmtoll EGR BG LL_TIM_GenerateEvent_BRK + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_BRK(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_BG); +} + +/** + * @brief Generate break 2 event. + * @rmtoll EGR B2G LL_TIM_GenerateEvent_BRK2 + * @param TIMx Timer instance + * @retval None + */ +__STATIC_INLINE void LL_TIM_GenerateEvent_BRK2(TIM_TypeDef *TIMx) +{ + SET_BIT(TIMx->EGR, TIM_EGR_B2G); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup TIM_LL_EF_Init Initialisation and deinitialisation functions + * @{ + */ + +ErrorStatus LL_TIM_DeInit(const TIM_TypeDef *TIMx); +void LL_TIM_StructInit(LL_TIM_InitTypeDef *TIM_InitStruct); +ErrorStatus LL_TIM_Init(TIM_TypeDef *TIMx, const LL_TIM_InitTypeDef *TIM_InitStruct); +void LL_TIM_OC_StructInit(LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct); +ErrorStatus LL_TIM_OC_Init(TIM_TypeDef *TIMx, uint32_t Channel, const LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct); +void LL_TIM_IC_StructInit(LL_TIM_IC_InitTypeDef *TIM_ICInitStruct); +ErrorStatus LL_TIM_IC_Init(TIM_TypeDef *TIMx, uint32_t Channel, const LL_TIM_IC_InitTypeDef *TIM_IC_InitStruct); +void LL_TIM_ENCODER_StructInit(LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct); +ErrorStatus LL_TIM_ENCODER_Init(TIM_TypeDef *TIMx, const LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct); +void LL_TIM_HALLSENSOR_StructInit(LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct); +ErrorStatus LL_TIM_HALLSENSOR_Init(TIM_TypeDef *TIMx, const LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct); +void LL_TIM_BDTR_StructInit(LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct); +ErrorStatus LL_TIM_BDTR_Init(TIM_TypeDef *TIMx, const LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct); +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* TIM1 || TIM8 || TIM2 || TIM3 || TIM4 || TIM5 || TIM15 || TIM16 || TIM17 || TIM6 || TIM7 */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L4xx_LL_TIM_H */ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..83f35d1 --- /dev/null +++ b/Makefile @@ -0,0 +1,39 @@ +.ONESHELL: + +.PHONY: help +.DEFAULT_GOAL := help +help: + @grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: clean +clean: ## Cleans generated core files +ifneq (,$(wildcard ./Debug)) + @rm -r ./Debug + + @echo "Debug directory has been successfully deleted" +else + @echo "Debug directory does not exist" +endif + +ifneq (,$(wildcard ./Core/Src/main.c)) + @find ./Core/Src -name "*.cpp" | xargs -I {} rm {} + @cd ./Core/Src && \ + for file in *; do \ + mv "$$file" "`echo $$file | sed 's/\.c$$/.cpp/'`"; \ + done + + @echo "*.c files rename operation was performed successfully" +else + @echo "*.c files intented to be renamed don't exist" +endif + +.PHONY: generate +generate: ## Generate prerequisites + @protoc -I./Resources/Proto/Container --python_out=./Scripts/graph/proto Content/data.proto Content/info.proto Content/settings.proto request.proto response.proto + @protoc --plugin=/Volumes/Files/embedded/university/techno/project/deps/EmbeddedProto -I./Resources/Proto/Container --eams_out=./Core/External/Proto/Generated Content/data.proto Content/info.proto Content/settings.proto request.proto response.proto + +.PHONY: build +build: ## Build the IOC project + +.PHONY: all +all: generate build \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..4008c81 --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# light-detector + +[![Build](https://github.com/YarikRevich/ResourceTracker/actions/workflows/build.yml/badge.svg)](https://github.com/YarikRevich/ResourceTracker/actions/workflows/build.yml) +![STM32](https://img.shields.io/badge/stm32-blue) +[![StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md) + +## General Information + +A driver-like application, which allows to communicate with TSL2591X light sensor with the help of CLI, based on STM32L476RG embedded system. + +Includes following features: +* Retrieve latest sensor data(**raw**, **full**, **infrared**, **visible**) +* Retrieve meta information from the internal board state +* Modify settings for the light sensor. + +## Setup + +All setup related operations are processed via **Makefile** placed in the root directory. + +In order to build IOC project it's required to execute the following command. It uses **CubeMX CLI** to generate **ELF** upload file: +```shell +make build +``` + +Built **ELF** file is intended to be used for manual upload via **STM Programmer**. + +If **ProtocolBuffers** files need to be regenerated it's required to execute the following command: +```shell +make generate +``` \ No newline at end of file diff --git a/Resources/Proto/Container/Content/data.proto b/Resources/Proto/Container/Content/data.proto new file mode 100644 index 0000000..6211bab --- /dev/null +++ b/Resources/Proto/Container/Content/data.proto @@ -0,0 +1,26 @@ +// Contains API declaration for board data bus. + +syntax = "proto3"; + +package light_detector; + +// Represents all the available data types, which can be transferred via data bus. +enum DataType { + Raw = 0; + Full = 1; + Infrared = 2; + Visible = 3; +} + +// Represents data bus request content send from the client to the board. +message DataBusRequestContent { + DataType dataType = 1; +} + +// Represents data bus response content send to the client from the board. +message DataBusResponseContent { + uint32 deviceId = 1; + DataType dataType = 2; + uint32 value = 3; + uint32 nonce = 4; +} \ No newline at end of file diff --git a/Resources/Proto/Container/Content/info.proto b/Resources/Proto/Container/Content/info.proto new file mode 100644 index 0000000..466591f --- /dev/null +++ b/Resources/Proto/Container/Content/info.proto @@ -0,0 +1,24 @@ +// Contains API declaration for board information bus. + +syntax = "proto3"; + +package light_detector; + +// Represents all the available info retrieval options, which can be modified via info bus. +enum InfoType { + Gain = 0; + IntegralTime = 1; +} + +// Represents info bus request content send from the client to the board. +message InfoBusRequestContent { + InfoType infoType = 1; +} + +// Represents info bus response content send to the client from the board. +message InfoBusResponseContent { + uint32 deviceId = 1; + InfoType infoType = 2; + uint32 value = 3; + uint32 nonce = 4; +} \ No newline at end of file diff --git a/Resources/Proto/Container/Content/settings.proto b/Resources/Proto/Container/Content/settings.proto new file mode 100644 index 0000000..d32a1ea --- /dev/null +++ b/Resources/Proto/Container/Content/settings.proto @@ -0,0 +1,28 @@ +// Contains API declaration for board settings bus. + +syntax = "proto3"; + +package light_detector; + +// Represents all the available settings options, which can be modified via settings bus. +enum SettingsType { + Enable = 0; + Disable = 1; + Reset = 2; + SetGain = 3; + SetIntegralTime = 4; +} + +// Represents settings bus request content send from the client to the board. +message SettingsBusRequestContent { + SettingsType settingsType = 1; + optional int32 value = 2; +} + +// Represents settings bus response content send to the client from the board. +message SettingsBusResponseContent { + uint32 deviceId = 1; + SettingsType settingsType = 2; + bool result = 3; + uint32 nonce = 4; +} \ No newline at end of file diff --git a/Resources/Proto/Container/request.proto b/Resources/Proto/Container/request.proto new file mode 100644 index 0000000..45e844d --- /dev/null +++ b/Resources/Proto/Container/request.proto @@ -0,0 +1,19 @@ +// Contains API declaration for request content container. + +syntax = "proto3"; + +package light_detector; + +import "Content/data.proto"; +import "Content/info.proto"; +import "Content/settings.proto"; + +// Represents request container sent from the client to the board. +message RequestContainer { + uint32 msgId = 1; + oneof content { + DataBusRequestContent dataBus = 2; + InfoBusRequestContent infoBus = 3; + SettingsBusRequestContent settingsBus = 4; + } +} \ No newline at end of file diff --git a/Resources/Proto/Container/response.proto b/Resources/Proto/Container/response.proto new file mode 100644 index 0000000..1e47fc8 --- /dev/null +++ b/Resources/Proto/Container/response.proto @@ -0,0 +1,19 @@ +// Contains API declaration for response content container. + +syntax = "proto3"; + +package light_detector; + +import "Content/data.proto"; +import "Content/info.proto"; +import "Content/settings.proto"; + +// Represents response container sent from the board to the client. +message ResponseContainer { + uint32 msgId = 1; + oneof content { + DataBusResponseContent dataBus = 2; + InfoBusResponseContent infoBus = 3; + SettingsBusResponseContent settingsBus = 4; + } +} \ No newline at end of file diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.cyclo b/Scripts/graph/__init__.py similarity index 100% rename from Debug/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.cyclo rename to Scripts/graph/__init__.py diff --git a/Scripts/graph/main.py b/Scripts/graph/main.py new file mode 100644 index 0000000..1773193 --- /dev/null +++ b/Scripts/graph/main.py @@ -0,0 +1,40 @@ +import tkinter +from tkinter import Tk + +from matplotlib.backends.backend_tkagg import (FigureCanvasTkAgg) +from matplotlib.figure import Figure + +from serial.tools import list_ports + +def retrieve_ports() -> list[str]: + """Retrieves standardized""" + + for entity in list_ports.comports(): + pass + +def render_figure(data: list[str]) -> None: + """Renderes figure with the given content""" + + root = Tk() + root.wm_title("Viewport") + + figure = Figure(figsize=(5, 2), dpi=80) + plot = figure.add_subplot(111) + + data = [x ** 2 for x in range(101)] + plot.plot(data) + + canvas = FigureCanvasTkAgg(figure, master=root) + + canvas.draw() + canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH, expand=1) + + root.mainloop() + +def main() -> None: + """Represents entrypoint""" + + render_figure(retrieve_ports()) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Scripts/graph/proto/Content/data_pb2.py b/Scripts/graph/proto/Content/data_pb2.py new file mode 100644 index 0000000..59968aa --- /dev/null +++ b/Scripts/graph/proto/Content/data_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: Content/data.proto +# Protobuf Python Version: 4.25.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x43ontent/data.proto\x12\x0elight_detector\"C\n\x15\x44\x61taBusRequestContent\x12*\n\x08\x64\x61taType\x18\x01 \x01(\x0e\x32\x18.light_detector.DataType\"t\n\x16\x44\x61taBusResponseContent\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\r\x12*\n\x08\x64\x61taType\x18\x02 \x01(\x0e\x32\x18.light_detector.DataType\x12\r\n\x05value\x18\x03 \x01(\r\x12\r\n\x05nonce\x18\x04 \x01(\r*8\n\x08\x44\x61taType\x12\x07\n\x03Raw\x10\x00\x12\x08\n\x04\x46ull\x10\x01\x12\x0c\n\x08Infrared\x10\x02\x12\x0b\n\x07Visible\x10\x03\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Content.data_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals['_DATATYPE']._serialized_start=225 + _globals['_DATATYPE']._serialized_end=281 + _globals['_DATABUSREQUESTCONTENT']._serialized_start=38 + _globals['_DATABUSREQUESTCONTENT']._serialized_end=105 + _globals['_DATABUSRESPONSECONTENT']._serialized_start=107 + _globals['_DATABUSRESPONSECONTENT']._serialized_end=223 +# @@protoc_insertion_point(module_scope) diff --git a/Scripts/graph/proto/Content/info_pb2.py b/Scripts/graph/proto/Content/info_pb2.py new file mode 100644 index 0000000..a96ef53 --- /dev/null +++ b/Scripts/graph/proto/Content/info_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: Content/info.proto +# Protobuf Python Version: 4.25.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x43ontent/info.proto\x12\x0elight_detector\"C\n\x15InfoBusRequestContent\x12*\n\x08infoType\x18\x01 \x01(\x0e\x32\x18.light_detector.InfoType\"t\n\x16InfoBusResponseContent\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\r\x12*\n\x08infoType\x18\x02 \x01(\x0e\x32\x18.light_detector.InfoType\x12\r\n\x05value\x18\x03 \x01(\r\x12\r\n\x05nonce\x18\x04 \x01(\r*&\n\x08InfoType\x12\x08\n\x04Gain\x10\x00\x12\x10\n\x0cIntegralTime\x10\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Content.info_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals['_INFOTYPE']._serialized_start=225 + _globals['_INFOTYPE']._serialized_end=263 + _globals['_INFOBUSREQUESTCONTENT']._serialized_start=38 + _globals['_INFOBUSREQUESTCONTENT']._serialized_end=105 + _globals['_INFOBUSRESPONSECONTENT']._serialized_start=107 + _globals['_INFOBUSRESPONSECONTENT']._serialized_end=223 +# @@protoc_insertion_point(module_scope) diff --git a/Scripts/graph/proto/Content/settings_pb2.py b/Scripts/graph/proto/Content/settings_pb2.py new file mode 100644 index 0000000..f6acd6f --- /dev/null +++ b/Scripts/graph/proto/Content/settings_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: Content/settings.proto +# Protobuf Python Version: 4.25.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x43ontent/settings.proto\x12\x0elight_detector\"m\n\x19SettingsBusRequestContent\x12\x32\n\x0csettingsType\x18\x01 \x01(\x0e\x32\x1c.light_detector.SettingsType\x12\x12\n\x05value\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\x08\n\x06_value\"\x81\x01\n\x1aSettingsBusResponseContent\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\r\x12\x32\n\x0csettingsType\x18\x02 \x01(\x0e\x32\x1c.light_detector.SettingsType\x12\x0e\n\x06result\x18\x03 \x01(\x08\x12\r\n\x05nonce\x18\x04 \x01(\r*T\n\x0cSettingsType\x12\n\n\x06\x45nable\x10\x00\x12\x0b\n\x07\x44isable\x10\x01\x12\t\n\x05Reset\x10\x02\x12\x0b\n\x07SetGain\x10\x03\x12\x13\n\x0fSetIntegralTime\x10\x04\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Content.settings_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals['_SETTINGSTYPE']._serialized_start=285 + _globals['_SETTINGSTYPE']._serialized_end=369 + _globals['_SETTINGSBUSREQUESTCONTENT']._serialized_start=42 + _globals['_SETTINGSBUSREQUESTCONTENT']._serialized_end=151 + _globals['_SETTINGSBUSRESPONSECONTENT']._serialized_start=154 + _globals['_SETTINGSBUSRESPONSECONTENT']._serialized_end=283 +# @@protoc_insertion_point(module_scope) diff --git a/Scripts/graph/proto/data_pb2.py b/Scripts/graph/proto/data_pb2.py new file mode 100644 index 0000000..197a7d1 --- /dev/null +++ b/Scripts/graph/proto/data_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: data.proto +# Protobuf Python Version: 4.25.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ndata.proto\x12\x0elight_detector\"<\n\x0e\x44\x61taBusRequest\x12*\n\x08\x64\x61taType\x18\x01 \x01(\x0e\x32\x18.light_detector.DataType\"m\n\x0f\x44\x61taBusResponse\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\r\x12*\n\x08\x64\x61taType\x18\x02 \x01(\x0e\x32\x18.light_detector.DataType\x12\r\n\x05value\x18\x03 \x01(\r\x12\r\n\x05nonce\x18\x04 \x01(\r*8\n\x08\x44\x61taType\x12\x07\n\x03Raw\x10\x00\x12\x08\n\x04\x46ull\x10\x01\x12\x0c\n\x08Infrared\x10\x02\x12\x0b\n\x07Visible\x10\x03\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'data_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals['_DATATYPE']._serialized_start=203 + _globals['_DATATYPE']._serialized_end=259 + _globals['_DATABUSREQUEST']._serialized_start=30 + _globals['_DATABUSREQUEST']._serialized_end=90 + _globals['_DATABUSRESPONSE']._serialized_start=92 + _globals['_DATABUSRESPONSE']._serialized_end=201 +# @@protoc_insertion_point(module_scope) diff --git a/Scripts/graph/proto/info_pb2.py b/Scripts/graph/proto/info_pb2.py new file mode 100644 index 0000000..f0de34f --- /dev/null +++ b/Scripts/graph/proto/info_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: info.proto +# Protobuf Python Version: 4.25.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ninfo.proto\x12\x0elight_detector\"<\n\x0eInfoBusRequest\x12*\n\x08infoType\x18\x01 \x01(\x0e\x32\x18.light_detector.InfoType\"m\n\x0fInfoBusResponse\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\r\x12*\n\x08infoType\x18\x02 \x01(\x0e\x32\x18.light_detector.InfoType\x12\r\n\x05value\x18\x03 \x01(\r\x12\r\n\x05nonce\x18\x04 \x01(\r*,\n\x08InfoType\x12\x0b\n\x07GetGain\x10\x00\x12\x13\n\x0fGetIntegralTime\x10\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'info_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals['_INFOTYPE']._serialized_start=203 + _globals['_INFOTYPE']._serialized_end=247 + _globals['_INFOBUSREQUEST']._serialized_start=30 + _globals['_INFOBUSREQUEST']._serialized_end=90 + _globals['_INFOBUSRESPONSE']._serialized_start=92 + _globals['_INFOBUSRESPONSE']._serialized_end=201 +# @@protoc_insertion_point(module_scope) diff --git a/Scripts/graph/proto/request_pb2.py b/Scripts/graph/proto/request_pb2.py new file mode 100644 index 0000000..c1f66c8 --- /dev/null +++ b/Scripts/graph/proto/request_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: request.proto +# Protobuf Python Version: 4.25.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from Content import data_pb2 as Content_dot_data__pb2 +from Content import info_pb2 as Content_dot_info__pb2 +from Content import settings_pb2 as Content_dot_settings__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rrequest.proto\x12\x0elight_detector\x1a\x12\x43ontent/data.proto\x1a\x12\x43ontent/info.proto\x1a\x16\x43ontent/settings.proto\"\xe2\x01\n\x10RequestContainer\x12\r\n\x05msgId\x18\x01 \x01(\r\x12\x38\n\x07\x64\x61taBus\x18\x02 \x01(\x0b\x32%.light_detector.DataBusRequestContentH\x00\x12\x38\n\x07infoBus\x18\x03 \x01(\x0b\x32%.light_detector.InfoBusRequestContentH\x00\x12@\n\x0bsettingsBus\x18\x04 \x01(\x0b\x32).light_detector.SettingsBusRequestContentH\x00\x42\t\n\x07\x63ontentb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'request_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals['_REQUESTCONTAINER']._serialized_start=98 + _globals['_REQUESTCONTAINER']._serialized_end=324 +# @@protoc_insertion_point(module_scope) diff --git a/Scripts/graph/proto/response_pb2.py b/Scripts/graph/proto/response_pb2.py new file mode 100644 index 0000000..42250e5 --- /dev/null +++ b/Scripts/graph/proto/response_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: response.proto +# Protobuf Python Version: 4.25.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from Content import data_pb2 as Content_dot_data__pb2 +from Content import info_pb2 as Content_dot_info__pb2 +from Content import settings_pb2 as Content_dot_settings__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eresponse.proto\x12\x0elight_detector\x1a\x12\x43ontent/data.proto\x1a\x12\x43ontent/info.proto\x1a\x16\x43ontent/settings.proto\"\xe6\x01\n\x11ResponseContainer\x12\r\n\x05msgId\x18\x01 \x01(\r\x12\x39\n\x07\x64\x61taBus\x18\x02 \x01(\x0b\x32&.light_detector.DataBusResponseContentH\x00\x12\x39\n\x07infoBus\x18\x03 \x01(\x0b\x32&.light_detector.InfoBusResponseContentH\x00\x12\x41\n\x0bsettingsBus\x18\x04 \x01(\x0b\x32*.light_detector.SettingsBusResponseContentH\x00\x42\t\n\x07\x63ontentb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'response_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals['_RESPONSECONTAINER']._serialized_start=99 + _globals['_RESPONSECONTAINER']._serialized_end=329 +# @@protoc_insertion_point(module_scope) diff --git a/Scripts/graph/proto/settings_pb2.py b/Scripts/graph/proto/settings_pb2.py new file mode 100644 index 0000000..4d78c3a --- /dev/null +++ b/Scripts/graph/proto/settings_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: settings.proto +# Protobuf Python Version: 4.25.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0esettings.proto\x12\x0elight_detector\"H\n\x12SettingsBusRequest\x12\x32\n\x0csettingsType\x18\x01 \x01(\x0e\x32\x1c.light_detector.SettingsType\"z\n\x13SettingsBusResponse\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\r\x12\x32\n\x0csettingsType\x18\x02 \x01(\x0e\x32\x1c.light_detector.SettingsType\x12\x0e\n\x06result\x18\x03 \x01(\x08\x12\r\n\x05nonce\x18\x04 \x01(\r*T\n\x0cSettingsType\x12\n\n\x06\x45nable\x10\x00\x12\x0b\n\x07\x44isable\x10\x01\x12\t\n\x05Reset\x10\x02\x12\x0b\n\x07SetGain\x10\x03\x12\x13\n\x0fSetIntegralTime\x10\x04\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'settings_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals['_SETTINGSTYPE']._serialized_start=232 + _globals['_SETTINGSTYPE']._serialized_end=316 + _globals['_SETTINGSBUSREQUEST']._serialized_start=34 + _globals['_SETTINGSBUSREQUEST']._serialized_end=106 + _globals['_SETTINGSBUSRESPONSE']._serialized_start=108 + _globals['_SETTINGSBUSRESPONSE']._serialized_end=230 +# @@protoc_insertion_point(module_scope) diff --git a/ThirdParty/Inc/Defines.h b/ThirdParty/Inc/Defines.h new file mode 100644 index 0000000..6c86ed0 --- /dev/null +++ b/ThirdParty/Inc/Defines.h @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _EMBEDDED_PROTO_DEFINES_H_ +#define _EMBEDDED_PROTO_DEFINES_H_ + +#include +#include + +#if __cplusplus >= 201703L // C++17 and up +#include +#endif + +namespace EmbeddedProto +{ + + +#if __cplusplus >= 201703L // C++17 and up + + template + inline constexpr void destroy_at(T* p) + { + std::destroy_at(p); + } + +#elif __cplusplus >= 201402L // C++14 + + template + constexpr void destroy_at(T* p) + { + p->~T(); + } + +#elif __cplusplus >= 201103L // C++11 + + template + constexpr void destroy_at(T* p) + { + p->~T(); + } + +#else // Other + + #error "Unsupported version of C++. Embedded Proto supports C++11 and up." + +#endif + + + //! An simple struct holding both a pointer to an array and the size of that array. + template + struct array_view { + T* data; //!< A pointer to the start of an array. + uint32_t size; //!< The number of elements in the array. + }; + + using string_view = array_view; + using bytes_view = array_view; + +} + +#endif //_EMBEDDED_PROTO_DEFINES_H_ \ No newline at end of file diff --git a/ThirdParty/Inc/Errors.h b/ThirdParty/Inc/Errors.h new file mode 100644 index 0000000..956f7da --- /dev/null +++ b/ThirdParty/Inc/Errors.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _ERRORS_H_ +#define _ERRORS_H_ + +namespace EmbeddedProto +{ + + //! This enumeration defines errors which can occur during serialization and deserialization. + enum class Error + { + NO_ERRORS = 0, //!< No errors have occurred. + END_OF_BUFFER = 1, //!< While trying to read from the buffer we ran out of bytes tor read. + BUFFER_FULL = 2, //!< The write buffer is full, unable to push more bytes in to it. + INVALID_WIRETYPE = 3, //!< When reading a Wiretype from the tag we got an invalid value. + ARRAY_FULL = 4, //!< The array is full, it is not possible to push more items in it. + INVALID_FIELD_ID = 5, //!< When the id obtained from the tag equeals zero. + OVERLONG_VARINT = 6, //!< The maximum number of bytes where read for this varint but we did not reach the end of the data. + INDEX_OUT_OF_BOUND = 7, //!< You are trying to access an index outside of valid data. + }; + +}; // End of namespace EmbeddedProto + +#endif // End of _ERRORS_H_ diff --git a/ThirdParty/Inc/FieldStringBytes.h b/ThirdParty/Inc/FieldStringBytes.h new file mode 100644 index 0000000..605da20 --- /dev/null +++ b/ThirdParty/Inc/FieldStringBytes.h @@ -0,0 +1,490 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _FIELD_STRING_BYTES_H_ +#define _FIELD_STRING_BYTES_H_ + +#include "Defines.h" +#include "Fields.h" +#include "Errors.h" + +#include +#include +#include +#include + + +namespace EmbeddedProto +{ + + namespace internal + { + + class BaseStringBytes : public Field {}; + + template + class FieldStringBytes : public BaseStringBytes + { + static_assert(std::is_same::value || std::is_same::value, + "This class only supports unit8_t or chars."); + + public: + + FieldStringBytes() = default; + + ~FieldStringBytes() override = default; + + //! Obtain the number of characters in the string right now. + uint32_t get_length() const { return current_length_; } + + //! Obtain the maximum number characters in the string. + uint32_t get_max_length() const { return MAX_LENGTH; } + + //! Get a constant pointer to the first element in the array. + const DATA_TYPE* get_const() const { return data_.data(); } + + //! Get a reference to the value at the given index. + /*! + This function will update the number of elements used in the array/string. + + \param[in] index The desired index to return. + \return The reference to the value at the given index. Will return the last element if the + index is out of bounds + */ + DATA_TYPE& get(uint32_t index) + { + uint32_t limited_index = std::min(index, MAX_LENGTH-1); + // Check if we need to update the number of elements in the array. + if(limited_index >= current_length_) { + current_length_ = limited_index + 1; + } + return data_[limited_index]; + } + + //! Get a constant reference to the value at the given index. + /*! + \param[in] index The desired index to return. + \return The reference to the value at the given index. Will return the last element if the + index is out of bounds + */ + const DATA_TYPE& get_const(uint32_t index) const + { + uint32_t limited_index = std::min(index, MAX_LENGTH-1); + return data_[limited_index]; + } + + //! Get a constant reference to the value at the given index. + /*! + \param[in] index The desired index to return. + \param[out] value The value of the desired index is set in this reference. + \return An error incase of an index out of bound situation. + */ + Error get_const(const uint32_t index, DATA_TYPE& value) const + { + Error result = Error::NO_ERRORS; + if(index < current_length_) + { + value = data_[index]; + } + else + { + result = Error::INDEX_OUT_OF_BOUND; + } + return result; + } + + //! Get a reference to the value at the given index. + /*! + This function will update the number of elements used in the array/string. + + \param[in] index The desired index to return. + \return The reference to the value at the given index. Will return the last element if the + index is out of bounds + */ + DATA_TYPE& operator[](uint32_t index) { return this->get(index); } + + //! Get a constant reference to the value at the given index. + /*! + \param[in] index The desired index to return. + \return The reference to the value at the given index. Will return the last element if the + index is out of bounds + */ + const DATA_TYPE& operator[](uint32_t index) const { return this->get_const(index); } + + //! Assign the values in the right hand side FieldStringBytes object to this object. + /*! + This is only compatible with the same data type and length. + \param[in] rhs The object from which to copy the data. + \return Always return NO_ERRORS, this was added to be compadible with the other set function. + */ + template + Error set(const FieldStringBytes& rhs) + { + return this->set(rhs.get_const(), rhs.get_length()); + } + + //! Assign data in the given array to this object. + /*! + \param[in] data A pointer to an array with data. + \param[in] length The number of bytes/chars in the data array. + \return Will return ARRAY_FULL when length exceeds the number of bytes/chars in this object. + */ + Error set(const DATA_TYPE* data, const uint32_t length) + { + Error return_value = Error::NO_ERRORS; + if(MAX_LENGTH >= length) + { + current_length_ = length; + memcpy(data_.data(), data, length); + } + else + { + return_value = Error::ARRAY_FULL; + } + return return_value; + } + + + Error serialize_with_id(uint32_t field_number, WriteBufferInterface& buffer, const bool optional) const override + { + Error return_value = Error::NO_ERRORS; + + if((0 < current_length_) || optional) + { + const auto n_bytes_available = buffer.get_available_size(); + if(current_length_ <= n_bytes_available) + { + uint32_t tag = WireFormatter::MakeTag(field_number, + WireFormatter::WireType::LENGTH_DELIMITED); + return_value = WireFormatter::SerializeVarint(tag, buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = WireFormatter::SerializeVarint(current_length_, buffer); + } + // Check check the number of elements again for optional fields. + if((Error::NO_ERRORS == return_value) && (0 < current_length_)) + { + return_value = serialize(buffer); + } + } + else + { + return_value = Error::BUFFER_FULL; + } + } + + return return_value; + } + + Error serialize(WriteBufferInterface& buffer) const override + { + Error return_value = Error::NO_ERRORS; + const auto* void_pointer = static_cast(&(data_[0])); + const auto* byte_pointer = static_cast(void_pointer); + if(!buffer.push(byte_pointer, current_length_)) + { + return_value = Error::BUFFER_FULL; + } + return return_value; + } + + Error deserialize(ReadBufferInterface& buffer) override + { + uint32_t availiable = 0; + Error return_value = WireFormatter::DeserializeVarint(buffer, availiable); + if(Error::NO_ERRORS == return_value) + { + if(MAX_LENGTH >= availiable) + { + clear(); + + uint8_t byte = 0; + while((current_length_ < availiable) && buffer.pop(byte)) + { + (data_[current_length_]) = static_cast(byte); + ++current_length_; + } + + if(current_length_ != availiable) + { + // If at the end we did not read the same number of characters something went wrong. + return_value = Error::END_OF_BUFFER; + } + } + else + { + return_value = Error::ARRAY_FULL; + } + } + + return return_value; + } + + Error deserialize_check_type(::EmbeddedProto::ReadBufferInterface& buffer, + const ::EmbeddedProto::WireFormatter::WireType& wire_type) final + { + Error return_value = ::EmbeddedProto::WireFormatter::WireType::LENGTH_DELIMITED == wire_type + ? Error::NO_ERRORS : Error::INVALID_WIRETYPE; + if(Error::NO_ERRORS == return_value) + { + return_value = this->deserialize(buffer); + } + return return_value; + } + + //! Reset the field to it's initial value. + void clear() override + { + data_.fill(0); + current_length_ = 0; + } + + protected: + + //! Set the current number of items in the array. Only for internal usage. + /*! + The value is limited to the maximum lenght of the array. + */ + void set_length(uint32_t length) { current_length_ = std::min(length, MAX_LENGTH); } + + //! Get a non constant pointer to the first element in the array. Only for internal usage. + DATA_TYPE* get() { return data_.data(); } + + private: + + //! Number of item in the data array. + uint32_t current_length_ = 0; + + //! The text. + std::array data_ = {{0}}; + + }; // End of class FieldStringBytes + + } // End of namespace internal + + //! The class definition used in messages for String fields. + template + class FieldString : public internal::FieldStringBytes + { + public: + + using internal::FieldStringBytes::set; + + FieldString() = default; + ~FieldString() override = default; + + //! Assign the values in the right hand side FieldStringBytes object to this object. + /*! + This is only compatible with the same data type and length. + \param[in] rhs The object from which to copy the data. + \return A reference to this object. + */ + template + FieldString& operator=(const FieldString& rhs) + { + this->set(rhs.get_const(), rhs.get_length()); + return *this; + } + + //! Assign a c style string to this object. + /*! + A short example: + char text[] = "Foo bar"; + msg.mutable_txt() = text; + + \param[in] rhs The c style string from which to take the characters and copy it to this object. + \return A reference to this object used for function chaining. + */ + FieldString& operator=(const char* const rhs) + { + this->set(rhs); + return *this; + } + + //! Assign the data from the given c style string to this object. + /*! + \param[in] str The c style string from which to take the characters and copy it to this object. + */ + void set(const char* const str) + { + if(nullptr != str) { + const uint32_t str_MAX_LENGTH = strnlen(str, MAX_LENGTH + 1); + this->set_length(str_MAX_LENGTH); + uint32_t this_length = this->get_length(); + // If it fits in this object copy the null terminator. + if(MAX_LENGTH > this_length) { + ++this_length; + } + strncpy(this->get(), str, this_length); + } + else { + this->clear(); + } + } + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + if(nullptr != name) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": \"%s\"", indent_level, " ", name, this->get_const()); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\"", indent_level, " ", this->get_const()); + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + //! Use our own implementation of limited string length function. + /*! + \param s The character array. + \param len The maximum length to search for a null terminator. + + \return The length of this character array will be returned or the value of len. + */ + uint32_t strnlen(const char* s, uint32_t len) + { + uint32_t i = 0; + for(; (i < len) && (s[i] != '\0'); ++i) + { + // Do nothing but the loop checks. + } + return i; + } + + }; + + //! The class definition used in messages for Bytes fields. + template + class FieldBytes : public internal::FieldStringBytes + { + public: + FieldBytes() = default; + ~FieldBytes() override = default; + + //! Assign the values in the right hand side FieldStringBytes object to this object. + /*! + This is only compatible with the same data type and length. + \param[in] rhs The object from which to copy the data. + \return A reference to this object. + */ + template + FieldBytes& operator=(const FieldBytes& rhs) + { + this->set(rhs.get_const(), rhs.get_length()); + return *this; + } + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + if(nullptr != name) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": [\n", indent_level, " ", name ); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s[\n", indent_level, " "); + } + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + uint32 field; + for(uint32_t i = 0; i < this->get_length(); ++i) + { + field = this->get_const(i); + left_chars = field.to_string(left_chars, n_chars_used, nullptr, (0 == i)); + } + + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n%*s]", n_chars_used - 2, " "); + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + }; + + +} // End of namespace EmbeddedProto + +#endif // End of _FIELD_STRING_BYTES_H_ diff --git a/ThirdParty/Inc/Fields.h b/ThirdParty/Inc/Fields.h new file mode 100644 index 0000000..4e391f9 --- /dev/null +++ b/ThirdParty/Inc/Fields.h @@ -0,0 +1,459 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _FIELDS_H_ +#define _FIELDS_H_ + +#include "Errors.h" +#include "Defines.h" +#include "WireFormatter.h" +#include "WriteBufferInterface.h" +#include "ReadBufferInterface.h" +#include "MessageSizeCalculator.h" + +#include + +#ifdef MSG_TO_STRING +#include +#endif + +namespace EmbeddedProto +{ + + class Field + { + public: + enum class FieldTypes + { + int32, + int64, + uint32, + uint64, + sint32, + sint64, + boolean, + enumeration, + fixed64, + sfixed64, + doublefixed, + string, + bytes, + message, + repeated, + fixed32, + sfixed32, + floatfixed + }; + + + Field() = default; + virtual ~Field() = default; + + virtual Error serialize_with_id(uint32_t field_number, WriteBufferInterface& buffer, const bool optional) const = 0; + + virtual Error serialize(WriteBufferInterface& buffer) const = 0; + + //! Deserialize this field from the bytes in the given buffer. + /*! + \param buffer data from which the field should be obtained. + \return NO_ERROR if everything went ok. + */ + virtual Error deserialize(ReadBufferInterface& buffer) = 0; + + //! Deserialize this field but also check if given wire type matches the field type. + /*! + \param buffer data from which the field should be obtained. + \param wire_type The wire type obtained from the tag used to match with this field type. + \return NO_ERROR if everything went ok. + */ + virtual Error deserialize_check_type(ReadBufferInterface& buffer, + const ::EmbeddedProto::WireFormatter::WireType& wire_type) = 0; + + //! Calculate the size of this message when serialized. + /*! + \return The number of bytes this message will require once serialized. + */ + uint32_t serialized_size() const; + + //! Reset the field to it's initial value. + virtual void clear() = 0; + +#ifdef MSG_TO_STRING + //! Write all the data in this field to a human readable string. + /*! + \param str A string view object with a pointer to the current location in the character array and its maximum length. + \param indent_level How many spaces should be added before this field. + \param name A pointer to the name of this field. + \param first_field A boolean indicating if this is the first field we serialize in this message. + \return A string view struct detail how many bytes are left in the string and a pointer to the point where to continue. + */ + virtual ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const = 0; + +#endif // End of MSG_TO_STRING + }; + + template + class FieldTemplate + { + public: + using TYPE = VARIABLE_TYPE; + using CLASS_TYPE = FieldTemplate; + + FieldTemplate() = default; + FieldTemplate(const VARIABLE_TYPE& v) : value_(v) { }; + FieldTemplate(const VARIABLE_TYPE&& v) : value_(v) { }; + FieldTemplate(const CLASS_TYPE& ft) : value_(ft.value_) { }; + + ~FieldTemplate() = default; + + Error serialize_with_id(uint32_t field_number, WriteBufferInterface& buffer, [[maybe_unused]] const bool optional) const + { + Error return_value = WireFormatter::SerializeVarint(WireFormatter::MakeTag(field_number, WIRETYPE), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = serialize(buffer); + } + return return_value; + } + + Error serialize(WriteBufferInterface& buffer) const + { + return serialize_(buffer); + } + + Error deserialize(ReadBufferInterface& buffer) + { + return deserialize_(buffer); + } + + //! \see Field::deserialize() + Error deserialize_check_type(ReadBufferInterface& buffer, + const ::EmbeddedProto::WireFormatter::WireType& wire_type) + { + Error return_value = WIRETYPE == wire_type ? Error::NO_ERRORS : Error::INVALID_WIRETYPE; + if(Error::NO_ERRORS == return_value) + { + return_value = deserialize(buffer); + } + return return_value; + } + + void set(const VARIABLE_TYPE& v) { value_ = v; } + void set(const VARIABLE_TYPE&& v) { value_ = v; } + + void set(const CLASS_TYPE& ft) { value_ = ft.value_; } + void set(const CLASS_TYPE&& ft) { value_ = ft.value_; } + + CLASS_TYPE& operator=(const VARIABLE_TYPE& v) + { + value_ = v; + return *this; + } + CLASS_TYPE& operator=(const VARIABLE_TYPE&& v) + { + value_ = v; + return *this; + } + CLASS_TYPE& operator=(const CLASS_TYPE& ft) + { + value_ = ft.value_; + return *this; + } + CLASS_TYPE& operator=(const CLASS_TYPE&& ft) noexcept + { + value_ = ft.value_; + return *this; + } + + const VARIABLE_TYPE& get() const { return value_; } + VARIABLE_TYPE& get() { return value_; } + + //! This is the conversion operator. + /*! + Sonar would like this to be explicit but this is not practial in normal usage with other + integer and floating point types. + */ + operator VARIABLE_TYPE() const { return value_; } //NOSONAR + + bool operator==(const VARIABLE_TYPE& rhs) { return value_ == rhs; } + bool operator!=(const VARIABLE_TYPE& rhs) { return value_ != rhs; } + bool operator>(const VARIABLE_TYPE& rhs) { return value_ > rhs; } + bool operator<(const VARIABLE_TYPE& rhs) { return value_ < rhs; } + bool operator>=(const VARIABLE_TYPE& rhs) { return value_ >= rhs; } + bool operator<=(const VARIABLE_TYPE& rhs) { return value_ <= rhs; } + + template + bool operator==(const FieldTemplate& rhs) { return value_ == rhs.get(); } + template + bool operator!=(const FieldTemplate& rhs) { return value_ != rhs.get(); } + template + bool operator>(const FieldTemplate& rhs) { return value_ > rhs.get(); } + template + bool operator<(const FieldTemplate& rhs) { return value_ < rhs.get(); } + template + bool operator>=(const FieldTemplate& rhs) { return value_ >= rhs.get(); } + template + bool operator<=(const FieldTemplate& rhs) { return value_ <= rhs.get(); } + + void clear() { value_ = static_cast(0); } + + uint32_t serialized_size() const + { + ::EmbeddedProto::MessageSizeCalculator calcBuffer; + this->serialize(calcBuffer); + return calcBuffer.get_size(); + } + +#ifdef MSG_TO_STRING + + //! Write all the data in this field to a human readable string. + /*! + \param str A string view object with a pointer to the current location in the character array and its maximum length. + \param indent_level How many spaces should be added before this field. + \param name A pointer to the name of this field. + \param first_field A boolean indicating if this is the first field we serialize in this message. + \return A string view struct detail how many bytes are left in the string and a pointer to the point where to continue. + */ + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + n_chars_used = 0; + + if(nullptr != name) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": ", indent_level, " ", name); + } + else + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s", indent_level, " "); + } + + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + if constexpr((Field::FieldTypes::int32 == FIELDTYPE) || + (Field::FieldTypes::sint32 == FIELDTYPE) || + (Field::FieldTypes::sfixed32 == FIELDTYPE)) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%d", get()); + } + else if constexpr((Field::FieldTypes::int64 == FIELDTYPE) || + (Field::FieldTypes::sint64 == FIELDTYPE) || + (Field::FieldTypes::sfixed64 == FIELDTYPE)) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%ld", get()); + } + else if constexpr((Field::FieldTypes::uint32 == FIELDTYPE) || + (Field::FieldTypes::fixed32 == FIELDTYPE)) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%u", get()); + } + else if constexpr((Field::FieldTypes::uint64 == FIELDTYPE) || + (Field::FieldTypes::fixed64 == FIELDTYPE)) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%lu", get()); + } + else if constexpr(Field::FieldTypes::boolean == FIELDTYPE) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%s", + get() ? "true" : "false"); + } + else if constexpr(Field::FieldTypes::enumeration == FIELDTYPE) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%d", + static_cast(get())); + } + else if constexpr(Field::FieldTypes::floatfixed == FIELDTYPE) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%f", get()); + } + else if constexpr(Field::FieldTypes::doublefixed == FIELDTYPE) + { + n_chars_used = snprintf(left_chars.data, left_chars.size, "%lf", get()); + } + else + { + // Should never get here. + } + + if(0 < n_chars_used) { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + + VARIABLE_TYPE value_; + + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerializeVarint(static_cast(get()), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerializeVarint(static_cast(get()), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerializeVarint(get(), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerializeVarint(get(), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerializeVarint(WireFormatter::ZigZagEncode(get()), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerializeVarint(WireFormatter::ZigZagEncode(get()), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const + { + const uint8_t byte = get() ? 0x01 : 0x00; + return buffer.push(byte) ? Error::NO_ERRORS : Error::BUFFER_FULL; + } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerializeVarint(static_cast(get()), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerializeFixedNoTag(get(), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerializeFixedNoTag(get(), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerialzieSFixedNoTag(get(), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerialzieSFixedNoTag(get(), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerialzieFloatNoTag(get(), buffer); } + + template::type = true> + Error serialize_(WriteBufferInterface& buffer) const { return WireFormatter::SerialzieDoubleNoTag(get(), buffer); } + + + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeInt(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeInt(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeUInt(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeUInt(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeSInt(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeSInt(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeBool(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) + { + uint32_t value = 0; + const Error return_value = WireFormatter::DeserializeVarint(buffer, value); + if(::EmbeddedProto::Error::NO_ERRORS == return_value) + { + value_ = static_cast(value); + } + return return_value; + } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeFixed(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeFixed(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeSFixed(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeSFixed(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeFloat(buffer, get()); } + + template::type = true> + Error deserialize_(ReadBufferInterface& buffer) { return WireFormatter::DeserializeDouble(buffer, get()); } + + }; + + + using int32 = FieldTemplate; + using int64 = FieldTemplate; + using uint32 = FieldTemplate; + using uint64 = FieldTemplate; + using sint32 = FieldTemplate; + using sint64 = FieldTemplate; + using boolean = FieldTemplate; + using fixed32 = FieldTemplate; + using fixed64 = FieldTemplate; + using sfixed32 = FieldTemplate; + using sfixed64 = FieldTemplate; + using floatfixed = FieldTemplate; + using doublefixed = FieldTemplate; + + template + using enumeration = FieldTemplate; + +} // End of namespace EmbeddedProto. +#endif diff --git a/ThirdParty/Inc/MessageInterface.h b/ThirdParty/Inc/MessageInterface.h new file mode 100644 index 0000000..d297c4a --- /dev/null +++ b/ThirdParty/Inc/MessageInterface.h @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _MESSAGE_INTERFACE_H_ +#define _MESSAGE_INTERFACE_H_ + +#include "WireFormatter.h" +#include "Fields.h" +#include "Errors.h" + +#include + + +namespace EmbeddedProto +{ + +class MessageInterface : public ::EmbeddedProto::Field +{ + public: + + MessageInterface() = default; + + ~MessageInterface() override = default; + + //! \see Field::serialize_with_id() + Error serialize_with_id(uint32_t field_number, + ::EmbeddedProto::WriteBufferInterface& buffer, + const bool optional) const final; + + //! \see Field::deserialize() + Error deserialize(::EmbeddedProto::ReadBufferInterface& buffer) override = 0; + + //! \see Field::deserialize() + Error deserialize_check_type(::EmbeddedProto::ReadBufferInterface& buffer, + const ::EmbeddedProto::WireFormatter::WireType& wire_type) final; + + //! Clear the content of this message and set it to it's default state. + /*! + The defaults are to be set according to the Protobuf standard. + */ + void clear() override = 0; + + + protected: + //! When deserializing skip the bytes in the buffer of an unknown field. + /*! + This function is used when a field with an unknown id is encountered to move through the + buffer to the next tag. + */ + Error skip_unknown_field(::EmbeddedProto::ReadBufferInterface& buffer, + const ::EmbeddedProto::WireFormatter::WireType& wire_type) const; + + Error skip_varint(::EmbeddedProto::ReadBufferInterface& buffer) const; + Error skip_fixed32(::EmbeddedProto::ReadBufferInterface& buffer) const; + Error skip_fixed64(::EmbeddedProto::ReadBufferInterface& buffer) const; + Error skip_length_delimited(::EmbeddedProto::ReadBufferInterface& buffer) const; + +}; + +} // End of namespace EmbeddedProto + +#endif // _MESSAGE_INTERFACE_H_ diff --git a/ThirdParty/Inc/MessageSizeCalculator.h b/ThirdParty/Inc/MessageSizeCalculator.h new file mode 100644 index 0000000..2cec7d9 --- /dev/null +++ b/ThirdParty/Inc/MessageSizeCalculator.h @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _MESSAGE_SIZE_CALCULATOR_H_ +#define _MESSAGE_SIZE_CALCULATOR_H_ + +#include "WriteBufferInterface.h" + +#include +#include + + +namespace EmbeddedProto +{ + //! This class is used in a message to calculate the current serialized size. + /*! + To calculate the size of a message given the current data a dummy serialization is performed. + This class mimics the buffer in which the data is stored. Instead of storing it, only the + size is incremented for the bytes pushed. No actual data is pushed into a buffer. + + \see MessageInterface::serialized_size() + */ + class MessageSizeCalculator : public WriteBufferInterface + { + public: + MessageSizeCalculator() = default; + ~MessageSizeCalculator() override = default; + + //! Reset the size count of the buffer. + void clear() override + { + size_ = 0; + } + + //! Obtain the total number of bytes currently stored in the buffer. + uint32_t get_size() const override + { + return size_; + } + + //! To continue serialization return the maximum number that fits in a 32bit unsigned int. + uint32_t get_max_size() const override + { + return std::numeric_limits::max(); + } + + //! To continue serialization return the maximum number that fits in a 32bit unsigned int. + uint32_t get_available_size() const override + { + return std::numeric_limits::max(); + } + + //! For calculating the size we just increment the counter and always return true. + bool push(const uint8_t byte) override + { + // Ignore the unused parameter + (void)byte; + ++size_; + return true; + } + + //! Increment the size with the given length. + bool push(const uint8_t* bytes, const uint32_t length) override + { + // Ignore the unused parameter + (void)bytes; + size_ += length; + return true; + } + + + private: + + //! The calculated size of the buffer. + uint32_t size_ = 0; + + }; // End of class MessageSizeCalculator + +} // End of namespace EmbeddedProto + +#endif diff --git a/ThirdParty/Inc/ReadBufferFixedSize.h b/ThirdParty/Inc/ReadBufferFixedSize.h new file mode 100644 index 0000000..ed38e9e --- /dev/null +++ b/ThirdParty/Inc/ReadBufferFixedSize.h @@ -0,0 +1,161 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _READ_BUFFER_FIXED_H_ +#define _READ_BUFFER_FIXED_H_ + +#include "ReadBufferInterface.h" +#include + +namespace EmbeddedProto +{ + + //! This template class implements the ReadBufferInterface. + /*! + The template sets the number of bytes which fit in the buffer. + */ + template + class ReadBufferFixedSize : public ::EmbeddedProto::ReadBufferInterface + { + public: + //! The default constructor which initializes everything at zero. + ReadBufferFixedSize() = default; + + //! The default destructor. + ~ReadBufferFixedSize() override = default; + + //! \see ::EmbeddedProto::ReadBufferInterface::get_size() + uint32_t get_size() const override + { + return write_index_; + } + + //! \see ::EmbeddedProto::ReadBufferInterface::get_max_size() + uint32_t get_max_size() const override + { + return BUFFER_SIZE; + } + + //! \see ::EmbeddedProto::ReadBufferInterface::peak() + bool peek(uint8_t& byte) const override + { + const bool return_value = write_index_ > read_index_; + if(return_value) + { + byte = data_[read_index_]; + } + return return_value; + } + + //! \see ::EmbeddedProto::ReadBufferInterface::advance() + bool advance() override + { + const bool return_value = write_index_ > read_index_; + if(return_value) + { + ++read_index_; + } + return return_value; + } + + //! \see ::EmbeddedProto::ReadBufferInterface::advance(const uint32_t N) + bool advance(const uint32_t N) override + { + const uint32_t new_read_index = read_index_ + N; + const bool return_value = write_index_ >= new_read_index; + if(return_value) + { + read_index_ = new_read_index; + } + return return_value; + } + + //! \see ::EmbeddedProto::ReadBufferInterface::pop() + bool pop(uint8_t& byte) override + { + const bool return_value = write_index_ > read_index_; + if(return_value) + { + byte = data_[read_index_]; + ++read_index_; + } + return return_value; + } + + //! Return a pointer to the data array. Use set_bytes_written() when adding data to the array. + uint8_t* get_data() + { + return data_.data(); + } + + //! Set the amount of bytes copied to the buffer when using get_data_array(). + void set_bytes_written(const uint32_t n_bytes) + { + write_index_ = std::min(n_bytes, BUFFER_SIZE); + } + + //! Clear all indices, in effect allowing the data to be overwritten. + void clear() + { + read_index_ = 0; + write_index_ = 0; + } + + //! Push a signle byte of data into the buffer. + /*! + \tip If you receive a whole message at once consider using get_data_array() in combination + with set_bytes_written(). + */ + bool push(const uint8_t& byte) + { + const bool return_value = BUFFER_SIZE > write_index_; + if(return_value) + { + data_[write_index_] = byte; + ++write_index_; + } + return return_value; + } + + private: + + //! The array in which the data received over uart is stored. + std::array data_ = {0}; + + //! The number of bytes currently received and stored in the data array. + uint32_t write_index_ = 0; + + //! The number of bytes read from the data array. + uint32_t read_index_ = 0; + }; + +} // namespace EmbeddedProto + +#endif // End of _READ_BUFFER_FIXED_H_ \ No newline at end of file diff --git a/ThirdParty/Inc/ReadBufferInterface.h b/ThirdParty/Inc/ReadBufferInterface.h new file mode 100644 index 0000000..96c527d --- /dev/null +++ b/ThirdParty/Inc/ReadBufferInterface.h @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _READ_BUFFER_INTERFACE_H_ +#define _READ_BUFFER_INTERFACE_H_ + +#include + +namespace EmbeddedProto +{ + //! The pure virtual definition of a message buffer to read from. + /*! + The buffer deals with bytes (uint8_t) only. + */ + class ReadBufferInterface + { + public: + + ReadBufferInterface() = default; + virtual ~ReadBufferInterface() = default; + + //! Obtain the total number of bytes currently stored in the buffer. + virtual uint32_t get_size() const = 0; + + //! Obtain the total number of bytes which can at most be stored in the buffer. + virtual uint32_t get_max_size() const = 0; + + //! Obtain the value of the oldest byte in the buffer. + /*! + This function will not alter the buffer read index. + + The parameter byte will not be set if the buffer was empty. + + \param[out] byte When the buffer is not empty this variable will hold the oldest value. + \return True when the buffer was not empty. + */ + virtual bool peek(uint8_t& byte) const = 0; + + //! Advances the internal read index by one when the buffer is not empty. + /*! + \return True when the buffer was not empty. + */ + virtual bool advance() = 0; + + //! Advances the internal read index by the given value. + /*! + The advance is limited to the number of bytes in the buffer. + \param[in] n_bytes The number of bytes to advance the read index. + \return True when the buffer held the n_bytes or more. + */ + virtual bool advance(const uint32_t n_bytes) = 0; + + //! Obtain the value of the oldest byte in the buffer and remove it from the buffer. + /*! + This function will alter the internal read index. + + The parameter byte will not be set if the buffer was empty. + + \param[out] byte When the buffer is not empty this variable will hold the oldest value. + \return True when the buffer was not empty. + */ + virtual bool pop(uint8_t& byte) = 0; + + }; + +} // End of namespace EmbeddedProto + +#endif // End of _READ_BUFFER_INTERFACE_H_ diff --git a/ThirdParty/Inc/ReadBufferSection.h b/ThirdParty/Inc/ReadBufferSection.h new file mode 100644 index 0000000..83d13ee --- /dev/null +++ b/ThirdParty/Inc/ReadBufferSection.h @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _READ_BUFFER_SECTION_H_ +#define _READ_BUFFER_SECTION_H_ + +#include "ReadBufferInterface.h" + +#include + + +namespace EmbeddedProto +{ + //! This is a wrapper around a ReadBufferInterface only exposing a given number of bytes. + /*! + This class is used when decoding a length delimited fields. It is constructed given a message + buffer and a size. This class will return bytes from the buffer for the given number of bytes + stated in the size parameter. + + \see ReadBufferInterface + */ + class ReadBufferSection : public ReadBufferInterface + { + public: + + //! Explicitly delete the default constructor in favor of the one with parameters. + ReadBufferSection() = delete; + + //! The constructor of the class with the required parameters + /*! + \param buffer The actual data buffer from which the bytes are obtained. + \param size The maximum number of bytes to return from buffer. + */ + ReadBufferSection(ReadBufferInterface& buffer, const uint32_t size); + + ~ReadBufferSection() override = default; + + + //! Return the number of bytes remaining. + uint32_t get_size() const override; + + //! Obtain the total number of bytes which can at most be stored in the buffer. + /*! + In the case of this buffer section this will return the size of the section. + */ + uint32_t get_max_size() const override; + + //! Expose the function of the parent buffer. + /*! + This will not do anything if size zero is reached. + \return True when the buffer was not empty. + */ + bool peek(uint8_t& byte) const override; + + //! Decrement the size and call advance on the parent buffer. + /*! + This will not do anything if size zero is reached. + \return True when the buffer was not empty. + */ + bool advance() override; + + //! Decrement the size by N bytes and call advance on the parent buffer. + /*! + This will not do anything if size zero is reached. + \return True when the buffer held the n_bytes or more. + */ + bool advance(const uint32_t n_bytes) override; + + //! Decrement the size and pop the next byte from the parent buffer. + /*! + This will not do anything if size zero is reached. + \return True while the end of the buffer is not reached. + */ + bool pop(uint8_t& byte) override; + + private: + + //! A reference to the buffer containing the actual data. + ReadBufferInterface& buffer_; + + //! The number of bytes left in this section. + uint32_t size_; + + //! The total number of bytes masked of by this section. + const uint32_t max_size_; + }; + +} // End of namespace EmbeddedProto + +#endif // _READ_BUFFER_SECTION_H_ diff --git a/ThirdParty/Inc/RepeatedField.h b/ThirdParty/Inc/RepeatedField.h new file mode 100644 index 0000000..3cc4b0a --- /dev/null +++ b/ThirdParty/Inc/RepeatedField.h @@ -0,0 +1,403 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _REPEATED_FIELD_H_ +#define _REPEATED_FIELD_H_ + +#include "Defines.h" +#include "Fields.h" +#include "MessageInterface.h" +#include "MessageSizeCalculator.h" +#include "ReadBufferSection.h" +#include "FieldStringBytes.h" +#include "Errors.h" + +#include + + +namespace EmbeddedProto +{ + + //! Class template that specifies the interface of an arry with the data type. + template + class RepeatedField : public Field + { + + //! Definition of a trait to check if DATA_TYPE is NOT a specialization of the FieldTemplate. + template + struct is_specialization_of_FieldTemplate : std::false_type {}; + + //! Definition of a trait to check if DATA_TYPE is a specialization of the FieldTemplate. + template + struct is_specialization_of_FieldTemplate<::EmbeddedProto::FieldTemplate> : std::true_type {}; + + //! This class only supports Field and FieldTemplate classes as template parameter. + static_assert(std::is_base_of<::EmbeddedProto::Field, DATA_TYPE>::value || is_specialization_of_FieldTemplate::value, + "A Field can only be used as template paramter."); + + //! Check how this field shoeld be serialized, packed or not. + static constexpr bool REPEATED_FIELD_IS_PACKED = + !(std::is_base_of::value + || std::is_base_of::value); + + public: + + RepeatedField() = default; + ~RepeatedField() override = default; + + //! Obtain the total number of DATA_TYPE items in the array. + virtual uint32_t get_length() const = 0; + + //! Obtain the maximum number of DATA_TYPE items which can at most be stored in the array. + virtual uint32_t get_max_length() const = 0; + + //! Obtain the total number of bytes currently stored in the array. + virtual uint32_t get_size() const = 0; + + //! Obtain the maximum number of bytes which can at most be stored in the array. + virtual uint32_t get_max_size() const = 0; + + //! Get a reference to the value at the given index. + /*! + \param[in] index The desired index to return. + \return The reference to the value at the given index. + */ + virtual DATA_TYPE& get(uint32_t index) = 0; + + //! Get a constant reference to the value at the given index. + /*! + \param[in] index The desired index to return. + \return The constant reference to the value at the given index. + */ + virtual const DATA_TYPE& get_const(uint32_t index) const = 0; + + //! Get a constant reference to the value at the given index. + /*! + \param[in] index The desired index to return. + \param[out] value The value of the desired index is set in this reference. + \return An error incase of an index out of bound situation. + */ + virtual Error get_const(const int32_t index, DATA_TYPE& value) const = 0; + + //! Get a reference to the value at the given index. + /*! + \param[in] index The desired index to return. + \return The reference to the value at the given index. + */ + DATA_TYPE& operator[](uint32_t index) { return this->get(index); } + + //! Get a reference to the value at the given index. But constant. + /*! + \param[in] index The desired index to return. + \return The constant reference to the value at the given index. + */ + const DATA_TYPE& operator[](uint32_t index) const { return this->get_const(index); } + + //! Set the value at the given index. + /*! + \param[in] index The desired index to change. + \param[in] value The value we would like to set. + */ + virtual void set(uint32_t index, const DATA_TYPE& value) = 0; + + //! Given a different array of known length copy that data into this object. + /*! + \param[in] data A pointer the array to copy from. + \param[in] length The number of value of DATA_TYPE in the array. + \return Error::NO_ERRORS when every was successful. Error::ARRAY_FULL when there is no space left. + */ + virtual Error set_data(const DATA_TYPE* data, const uint32_t length) = 0; + + //! Append a value to the end of the array. + /*! + \param[in] value The data to add. + \return Error::NO_ERRORS when every was successful. Error::ARRAY_FULL when there is no space left. + */ + virtual Error add(const DATA_TYPE& value) = 0; + + //! Remove all data in the array and set it to the default value. + virtual void clear() override = 0; + + Error serialize(WriteBufferInterface& buffer) const final + { + // This function should not be called on a repeated field. + return Error::BUFFER_FULL; + }; + + //! \see Field::serialize_with_id() + Error serialize_with_id(uint32_t field_number, WriteBufferInterface& buffer, const bool optional) const final + { + Error return_value = Error::NO_ERRORS; + + if(REPEATED_FIELD_IS_PACKED) + { + // Use the packed way of serialization for base fields. + // See if there is data to serialize. + const uint32_t size_x = this->serialized_size_packed(); + if((0 < size_x) || optional) + { + uint32_t tag = WireFormatter::MakeTag(field_number, + WireFormatter::WireType::LENGTH_DELIMITED); + return_value = WireFormatter::SerializeVarint(tag, buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = WireFormatter::SerializeVarint(size_x, buffer); + + if(Error::NO_ERRORS == return_value) + { + if(size_x <= buffer.get_available_size()) + { + return_value = serialize_packed(buffer); + } + else + { + return_value = Error::BUFFER_FULL; + } + } + } + } + } + else + { + const uint32_t size_x = this->serialized_size_unpacked(field_number); + if(size_x <= buffer.get_available_size()) + { + return_value = serialize_unpacked(field_number, buffer); + } + else + { + return_value = Error::BUFFER_FULL; + } + } + + return return_value; + } + + //! Function to deserialize this array. + /*! + From a buffer of data fill this array with data. + \param buffer [in] The memory from which the message is obtained. + \return Error::NO_ERRORS when every was successful. + */ + Error deserialize(::EmbeddedProto::ReadBufferInterface& buffer) final + { + Error return_value = Error::NO_ERRORS; + if(REPEATED_FIELD_IS_PACKED) + { + return_value = deserialize_packed(buffer); + } + else + { + return_value = deserialize_unpacked(buffer); + } + return return_value; + } + + Error deserialize_check_type(::EmbeddedProto::ReadBufferInterface& buffer, + const ::EmbeddedProto::WireFormatter::WireType& wire_type) final + { + Error return_value = ::EmbeddedProto::WireFormatter::WireType::LENGTH_DELIMITED == wire_type + ? Error::NO_ERRORS : Error::INVALID_WIRETYPE; + if(Error::NO_ERRORS == return_value) + { + return_value = this->deserialize(buffer); + } + return return_value; + } + + + //! Calculate the size of this field when serialized. + /*! + The calculation only includes the data, not the size required by the tag and + \return The number of bytes this field will require once serialized. + */ + uint32_t serialized_size_packed() const + { + ::EmbeddedProto::MessageSizeCalculator calcBuffer; + serialize_packed(calcBuffer); + return calcBuffer.get_size(); + } + + //! Calculate the size of this field when serialized. + /*! + \return The number of bytes this field will require once serialized. + */ + uint32_t serialized_size_unpacked(int32_t field_number) const + { + ::EmbeddedProto::MessageSizeCalculator calcBuffer; + serialize_unpacked(field_number, calcBuffer); + return calcBuffer.get_size(); + } + + +#ifdef MSG_TO_STRING + + ::EmbeddedProto::string_view to_string(::EmbeddedProto::string_view& str, const uint32_t indent_level, char const* name, const bool first_field) const override + { + ::EmbeddedProto::string_view left_chars = str; + int32_t n_chars_used = 0; + + if(!first_field) + { + // Add a comma behind the previous field. + n_chars_used = snprintf(left_chars.data, left_chars.size, ",\n"); + if(0 < n_chars_used) + { + // Update the character pointer and characters left in the array. + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + } + + n_chars_used = snprintf(left_chars.data, left_chars.size, "%*s\"%s\": [\n", indent_level, " ", name ); + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + for(uint32_t i = 0; i < this->get_length(); ++i) + { + left_chars = this->get_const(i).to_string(left_chars, n_chars_used, nullptr, (0 == i)); + } + + n_chars_used = snprintf(left_chars.data, left_chars.size, "\n%*s]", n_chars_used - 2, " "); + + if(0 < n_chars_used) + { + left_chars.data += n_chars_used; + left_chars.size -= n_chars_used; + } + + return left_chars; + } + +#endif // End of MSG_TO_STRING + + private: + + Error serialize_packed(WriteBufferInterface& buffer) const + { + Error return_value = Error::NO_ERRORS; + for(uint32_t i = 0; (i < this->get_length()) && (Error::NO_ERRORS == return_value); ++i) + { + return_value = this->get_const(i).serialize(buffer); + } + return return_value; + } + + Error serialize_unpacked(uint32_t field_number, WriteBufferInterface& buffer) const + { + Error return_value = Error::NO_ERRORS; + for(uint32_t i = 0; (i < this->get_length()) && (Error::NO_ERRORS == return_value); ++i) + { + const uint32_t size_x = this->get_const(i).serialized_size(); + uint32_t tag = WireFormatter::MakeTag(field_number, + WireFormatter::WireType::LENGTH_DELIMITED); + return_value = WireFormatter::SerializeVarint(tag, buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = WireFormatter::SerializeVarint(size_x, buffer); + if((Error::NO_ERRORS == return_value) && (0 < size_x)) + { + return_value = this->get_const(i).serialize(buffer); + } + } + } + return return_value; + } + + Error deserialize_packed(ReadBufferInterface& buffer) + { + uint32_t size = 0; + Error return_value = WireFormatter::DeserializeVarint(buffer, size); + ReadBufferSection bufferSection(buffer, size); + DATA_TYPE x; + + return_value = x.deserialize(bufferSection); + while(Error::NO_ERRORS == return_value) + { + return_value = this->add(x); + if(Error::NO_ERRORS == return_value) + { + return_value = x.deserialize(bufferSection); + } + } + + // We expect the buffersection to be empty, in that case everything is fine.. + if(Error::END_OF_BUFFER == return_value) + { + return_value = Error::NO_ERRORS; + } + + return return_value; + } + + Error deserialize_unpacked(ReadBufferInterface& buffer) + { + Error return_value = Error::NO_ERRORS; + + // For repeated messages, strings or bytes + // First allocate an element in the array. + const uint32_t index = this->get_length(); + if(this->get_max_length() > index) + { + // For messages read the size here, with strings and byte arrays this is include in + // deserialize. + if(std::is_base_of::value) + { + uint32_t size; + return_value = WireFormatter::DeserializeVarint(buffer, size); + if(Error::NO_ERRORS == return_value) + { + ReadBufferSection bufferSection(buffer, size); + return_value = this->get(index).deserialize(bufferSection); + } + } + else + { + return_value = this->get(index).deserialize(buffer); + } + } + else + { + return_value = Error::ARRAY_FULL; + } + + return return_value; + } + + }; + + +} // End of namespace EmbeddedProto + +#endif // End of _REPEATED_FIELD_H_ diff --git a/ThirdParty/Inc/RepeatedFieldFixedSize.h b/ThirdParty/Inc/RepeatedFieldFixedSize.h new file mode 100644 index 0000000..79f706c --- /dev/null +++ b/ThirdParty/Inc/RepeatedFieldFixedSize.h @@ -0,0 +1,207 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _REPEATED_FIELD_SIZE_H_ +#define _REPEATED_FIELD_SIZE_H_ + +#include "RepeatedField.h" +#include "Errors.h" + +#include +#include +#include +#include + + +namespace EmbeddedProto +{ + + //! A template class that actually holds some data. + /*! + This is a separate class to make it possible to not have the size defined in every function or + class using this type of object. + */ + template + class RepeatedFieldFixedSize : public RepeatedField + { + static constexpr uint32_t BYTES_PER_ELEMENT = sizeof(DATA_TYPE); + + public: + + RepeatedFieldFixedSize() = default; + ~RepeatedFieldFixedSize() override = default; + + RepeatedFieldFixedSize(const RepeatedFieldFixedSize& rhs) : + current_length_(rhs.get_length()), + data_(rhs.get_data_const()) + { + // Use the initializer list. + } + + template::type = 0> + explicit RepeatedFieldFixedSize(const RepeatedFieldFixedSize& rhs) : + current_length_(rhs.get_length()) + { + const auto& rhs_data = rhs.get_data_const(); + std::copy(rhs_data.begin(), rhs_data.end(), data_.begin()); + } + + template::type = 0> + explicit RepeatedFieldFixedSize(const RepeatedFieldFixedSize&& rhs) : + current_length_(rhs.get_length()) + { + const auto& rhs_data = rhs.get_data_const(); + std::copy(rhs_data.begin(), rhs_data.end(), data_.begin()); + } + + //! Assign one repieted field to the other, but only when the length and type matches. + RepeatedFieldFixedSize& operator=(const + RepeatedFieldFixedSize& rhs) + { + for(uint32_t i = 0; i < rhs.get_length(); ++i) + { + data_[i] = rhs.get_const(i); + } + current_length_ = rhs.get_length(); + + return *this; + } + + //! Obtain the total number of DATA_TYPE items in the array. + uint32_t get_length() const override { return current_length_; } + + //! Obtain the maximum number of DATA_TYPE items which can at most be stored in the array. + uint32_t get_max_length() const override { return MAX_LENGTH; } + + //! Obtain the total number of bytes currently stored in the array. + uint32_t get_size() const override { return BYTES_PER_ELEMENT * current_length_; } + + //! Obtain the maximum number of bytes which can at most be stored in the array. + uint32_t get_max_size() const override { return BYTES_PER_ELEMENT * MAX_LENGTH; } + + DATA_TYPE& get(uint32_t index) override + { + uint32_t limited_index = std::min(index, MAX_LENGTH-1); + // Check if we need to update the number of elements in the array. + if(limited_index >= current_length_) { + current_length_ = limited_index + 1; + } + return data_[limited_index]; + } + + const DATA_TYPE& get_const(uint32_t index) const override + { + uint32_t limited_index = std::min(index, MAX_LENGTH-1); + return data_[limited_index]; + } + + Error get_const(const int32_t index, DATA_TYPE& value) const override + { + Error result = Error::NO_ERRORS; + if(index < current_length_) + { + value = data_[index]; + } + else + { + result = Error::INDEX_OUT_OF_BOUND; + } + return result; + } + + void set(uint32_t index, const DATA_TYPE& value) override + { + uint32_t limited_index = std::min(index, MAX_LENGTH-1); + // Check if we need to update the number of elements in the array. + if(limited_index >= current_length_) { + current_length_ = limited_index + 1; + } + data_[limited_index] = value; + } + + Error set_data(const DATA_TYPE* data, const uint32_t length) override + { + Error return_value = Error::NO_ERRORS; + if(MAX_LENGTH >= length) + { + const DATA_TYPE* d = data; + for(uint32_t i = 0; i < length; ++i) + { + (data_[i]) = (*d); + ++d; + } + current_length_ = length; + } + else + { + return_value = Error::ARRAY_FULL; + } + return return_value; + } + + Error add(const DATA_TYPE& value) override + { + Error return_value = Error::NO_ERRORS; + if(MAX_LENGTH > current_length_) + { + data_[current_length_] = value; + ++current_length_; + } + else + { + return_value = Error::ARRAY_FULL; + } + return return_value; + } + + void clear() override + { + for(auto& d : data_) + { + d.clear(); + } + current_length_ = 0; + } + + //! Return a reference to the internal data storage array. + const std::array& get_data_const() const { return data_; } + + private: + + //! Number of item in the data array. + uint32_t current_length_ = 0; + + //! The actual data + std::array data_ = {}; + }; + +} // End of namespace EmbeddedProto + +#endif // End of _REPEATED_FIELD_SIZE_H_ \ No newline at end of file diff --git a/ThirdParty/Inc/WireFormatter.h b/ThirdParty/Inc/WireFormatter.h new file mode 100644 index 0000000..6db0422 --- /dev/null +++ b/ThirdParty/Inc/WireFormatter.h @@ -0,0 +1,602 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _WIRE_FORMATTER_H_ +#define _WIRE_FORMATTER_H_ + +#include "Defines.h" +#include "WriteBufferInterface.h" +#include "ReadBufferInterface.h" +#include "Errors.h" + +#include +#include +#include +#include +#include + +namespace EmbeddedProto +{ + + //! This class combines functions to serialize and deserialize messages. + class WireFormatter + { + + //! Definition of the number of bits it takes to serialize a byte of a varint. + static constexpr uint8_t VARINT_SHIFT_N_BITS = 7; + + //! Definition of a mask indicating the most significant bit used in varint encoding. + static constexpr uint8_t VARINT_MSB_BYTE = 0x80; + + //! Convert the floating point number to the next highes integer. + /*! + The ceil function in std is not a constexpr. Some compilers doe not accept this. + + \param num The value you would like ot convert. + \return The resulting integer. + */ + static constexpr int32_t constexpr_ceil(float num) + { + return (static_cast(static_cast(num)) == num) + ? static_cast(num) + : static_cast(num) + ((num > 0) ? 1 : 0); + } + + public: + //! Definitions of the different encoding types used in protobuf. + enum class WireType + { + VARINT = 0, //!< int32, int64, uint32, uint64, sint32, sint64, bool, enum. + FIXED64 = 1, //!< fixed64, sfixed64, double + LENGTH_DELIMITED = 2, //!< string, bytes, embedded messages, packed repeated fields + START_GROUP = 3, //!< Deprecated + END_GROUP = 4, //!< Deprecated + FIXED32 = 5, //!< fixed32, sfixed32, float + }; + + //! Encode a signed integer using the zig zag method + /*! + As specified the right-shift must be arithmetic, hence the cast is after the shift. The + left shift must be unsigned because of overflow. + + This function is suitable for 32 and 64 bit. + + \param[in] n The signed value to be encoded. + \return The zig zag transformed value ready for serialization into the array. + */ + template + static constexpr typename std::make_unsigned::type ZigZagEncode(const INT_TYPE n) + { + static_assert(std::is_same::value || + std::is_same::value, "Wrong type passed to ZigZagEncode."); + + using UINT_TYPE = typename std::make_unsigned::type; + // Prior to reverting back to C++11 we had defined: + // constexpr uint8_t N_BITS_TO_ZIGZAG = std::numeric_limits::digits - 1; + return (static_cast(n) << 1) ^ static_cast(n >> (std::numeric_limits::digits - 1)); + } + + //! Decode a signed integer using the zig zag method + /*! + \param[in] n The value encoded in zig zag to be decoded. + \return The decoded signed value. + + This function is suitable for 32 and 64 bit. + */ + template + static constexpr typename std::make_signed::type ZigZagDecode(const UINT_TYPE n) + { + static_assert(std::is_same::value || + std::is_same::value, "Wrong type passed to ZigZagDecode."); + + using INT_TYPE = typename std::make_signed::type; + + return static_cast((n >> 1) ^ (~(n & 1) + 1)); + } + + //! Create the tag of a field. + /*! + This is the combination of the field number and wire type of the field. The field number is + shifted to the left by three bits. This creates space to or the wire type of the designated + field. + */ + static constexpr uint32_t MakeTag(const uint32_t field_number, const WireType type) + { + return ((field_number << 3) | static_cast(type)); + } + + /** + @brief Serialize fields, without tags the given buffer. + @{ + **/ + + //! Serialize an unsigned fixed length field without the tag. + template + static Error SerializeFixedNoTag(const UINT_TYPE value, WriteBufferInterface& buffer) + { + static_assert(std::is_same::value || + std::is_same::value, "Wrong type passed to SerializeFixedNoTag."); + + // Push the data little endian to the buffer. + // TODO Define a little endian flag to support memcpy the data to the buffer. + + bool result = true; + + // Loop over all bytes in the integer. + for(uint8_t i = 0; (i < std::numeric_limits::digits) && result; i += 8) { + // Shift the value using the current value of i. + result = buffer.push(static_cast((value >> i) & 0x00FF)); + } + return result ? Error::NO_ERRORS : Error::BUFFER_FULL; + } + + //! Serialize a signed fixed length field without the tag. + template + static Error SerialzieSFixedNoTag(const INT_TYPE value, WriteBufferInterface& buffer) + { + static_assert(std::is_same::value || + std::is_same::value, "Wrong type passed to SerialzieSFixedNoTag."); + + using UINT_TYPE = typename std::make_unsigned::type; + + return SerializeFixedNoTag(static_cast(value), buffer); + } + + //! Serialize a 32bit real value without tag. + static Error SerialzieFloatNoTag(const float value, WriteBufferInterface& buffer) + { + // Cast the type to void and to a 32 fixed number + const auto* pVoid = static_cast(&value); + const auto* fixed = static_cast(pVoid); + return SerializeFixedNoTag(*fixed, buffer); + } + + //! Serialize a 64bit real value without tag. + static Error SerialzieDoubleNoTag(const double value, WriteBufferInterface& buffer) + { + // Cast the type to void and to a 64 fixed number + const auto* pVoid = static_cast(&value); + const auto* fixed = static_cast(pVoid); + return SerializeFixedNoTag(*fixed, buffer); + } + /** @} **/ + + + /** + @brief Serialize fields, including tags to the given buffer. + @{ + **/ + template + static Error SerializeInt(const uint32_t field_number, const INT_TYPE value, + WriteBufferInterface& buffer) + { + using UINT_TYPE = typename std::make_unsigned::type; + Error return_value = SerializeVarint(MakeTag(field_number, WireType::VARINT), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = SerializeVarint(static_cast(value), buffer); + } + return return_value; + } + + template + static Error SerializeUInt(const uint32_t field_number, const UINT_TYPE value, + WriteBufferInterface& buffer) + { + Error return_value = SerializeVarint(MakeTag(field_number, WireType::VARINT), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = SerializeVarint(value, buffer); + } + return return_value; + } + + template + static Error SerializeSInt(const uint32_t field_number, const INT_TYPE value, + WriteBufferInterface& buffer) + { + Error return_value = SerializeVarint(MakeTag(field_number, WireType::VARINT), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = SerializeVarint(ZigZagEncode(value), buffer); + } + return return_value; + } + + static Error SerializeFixed(const uint32_t field_number, const uint32_t value, + WriteBufferInterface& buffer) + { + Error return_value = SerializeVarint(MakeTag(field_number, WireType::FIXED32), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = SerializeFixedNoTag(value, buffer); + } + return return_value; + } + + static Error SerializeFixed(const uint32_t field_number, const uint64_t value, + WriteBufferInterface& buffer) + { + Error return_value = SerializeVarint(MakeTag(field_number, WireType::FIXED64), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = SerializeFixedNoTag(value, buffer); + } + return return_value; + } + + static Error SerializeSFixed(const uint32_t field_number, const int32_t value, + WriteBufferInterface& buffer) + { + Error return_value = SerializeVarint(MakeTag(field_number, WireType::FIXED32), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = SerialzieSFixedNoTag(value, buffer); + } + return return_value; + } + + static Error SerializeSFixed(const uint32_t field_number, const int64_t value, + WriteBufferInterface& buffer) + { + Error return_value = SerializeVarint(MakeTag(field_number, WireType::FIXED64), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = SerialzieSFixedNoTag(value, buffer); + } + return return_value; + } + + static Error SerializeFloat(const uint32_t field_number, const float value, + WriteBufferInterface& buffer) + { + Error return_value = SerializeVarint(MakeTag(field_number, WireType::FIXED32), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = SerialzieFloatNoTag(value, buffer); + } + return return_value; + } + + static Error SerializeDouble(const uint32_t field_number, const double value, + WriteBufferInterface& buffer) + { + Error return_value = SerializeVarint(MakeTag(field_number, WireType::FIXED64), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = SerialzieDoubleNoTag(value, buffer); + } + return return_value; + } + + static Error SerializeBool(const uint32_t field_number, const bool value, + WriteBufferInterface& buffer) + { + Error return_value = SerializeVarint(MakeTag(field_number, WireType::VARINT), buffer); + if(Error::NO_ERRORS == return_value) + { + const uint8_t byte = value ? 0x01 : 0x00; + return_value = buffer.push(byte) ? Error::NO_ERRORS : Error::BUFFER_FULL; + } + return return_value; + } + + static Error SerializeEnum(const uint32_t field_number, const uint32_t value, + WriteBufferInterface& buffer) + { + Error return_value = SerializeVarint(MakeTag(field_number, WireType::VARINT), buffer); + if(Error::NO_ERRORS == return_value) + { + return_value = SerializeVarint(value, buffer); + } + return return_value; + } + + /** @} **/ + + /** + @brief Deserialize fields from the given buffer. + @{ + **/ + + //! Read from the buffer the next wiretype and field id. + /*! + \param[in] buffer The data source from which to read the type and id. + \param[out] type This parameter returns the wiretype of the next field in the data buffer. + \param[out] id This parameter returns the next field id. + \return A value from the EmbeddedProto::Error enum indicating if the process succeeded. + */ + static Error DeserializeTag(ReadBufferInterface& buffer, WireType& type, uint32_t& id) + { + uint32_t temp_value; + // Read the next varint considered to be a tag. + Error return_value = DeserializeVarint(buffer, temp_value); + + if(Error::NO_ERRORS == return_value) + { + // Next check the validity of the wire type. + if((temp_value & 0x07) <= static_cast(WireType::FIXED32)) + { + // If reading the tag succeeded and the wire type is a valid one. + type = static_cast(temp_value & 0x07); + id = (temp_value >> 3); + } + else + { + return_value = Error::INVALID_WIRETYPE; + } + } + return return_value; + } + + template + static Error DeserializeUInt(ReadBufferInterface& buffer, UINT_TYPE& value) + { + static_assert(std::is_same::value || + std::is_same::value, "Wrong type passed to DeserializeUInt."); + + return DeserializeVarint(buffer, value); + } + + template + static Error DeserializeInt(ReadBufferInterface& buffer, INT_TYPE& value) + { + static_assert(std::is_same::value || + std::is_same::value, "Wrong type passed to DeserializeInt."); + + // Use a 64 value even for 32 bit as some implementations serialize 32 bit values with 10 bytes. + uint64_t uint_value64; + + Error result = DeserializeVarint(buffer, uint_value64); + if(Error::NO_ERRORS == result) + { + value = static_cast(uint_value64); + } + return result; + } + + template + static Error DeserializeSInt(ReadBufferInterface& buffer, INT_TYPE& value) + { + static_assert(std::is_same::value || + std::is_same::value, "Wrong type passed to DeserializeSInt."); + + // Use a 64 value even for 32 bit as some implementations serialize 32 bit values with 10 bytes. + uint64_t uint_value64; + + Error result = DeserializeVarint(buffer, uint_value64); + if(Error::NO_ERRORS == result) + { + using UINT_TYPE = typename std::make_unsigned::type; + const auto uint_value = static_cast(uint_value64); + value = ZigZagDecode(uint_value); + } + return result; + } + + template + static Error DeserializeFixed(ReadBufferInterface& buffer, TYPE& value) + { + static_assert(std::is_same::value || + std::is_same::value, "Wrong type passed to DeserializeFixed."); + + // Deserialize the data little endian to the buffer. + // TODO Define a little endian flag to support memcpy the data from the buffer. + + TYPE temp_value = 0; + bool result(true); + uint8_t byte = 0; + for(uint8_t i = 0; (i < std::numeric_limits::digits) && result; + i += std::numeric_limits::digits) + { + result = buffer.pop(byte); + if(result) + { + temp_value |= (static_cast(byte) << i); + } + } + + Error return_value = Error::NO_ERRORS; + if(result) + { + value = temp_value; + } + else + { + return_value = Error::END_OF_BUFFER; + } + + return return_value; + } + + template + static Error DeserializeSFixed(ReadBufferInterface& buffer, STYPE& value) + { + static_assert(std::is_same::value || + std::is_same::value, "Wrong type passed to DeserializeSFixed."); + + using USTYPE = typename std::make_unsigned::type; + USTYPE temp_unsigned_value = 0; + Error result = DeserializeFixed(buffer, temp_unsigned_value); + if(Error::NO_ERRORS == result) + { + value = static_cast(temp_unsigned_value); + } + + return result; + } + + static Error DeserializeFloat(ReadBufferInterface& buffer, float& value) + { + uint32_t temp_value = 0; + Error result = DeserializeFixed(buffer, temp_value); + if(Error::NO_ERRORS == result) + { + // Cast from unsigned int to a float. + const auto* pVoid = static_cast(&temp_value); + const auto* pFloat = static_cast(pVoid); + value = *pFloat; + } + return result; + } + + static Error DeserializeDouble(ReadBufferInterface& buffer, double& value) + { + uint64_t temp_value = 0; + Error result = DeserializeFixed(buffer, temp_value); + if(Error::NO_ERRORS == result) + { + // Cast from unsigned int to a double. + const auto* pVoid = static_cast(&temp_value); + const auto* pDouble = static_cast(pVoid); + value = *pDouble; + } + return result; + } + + static Error DeserializeBool(ReadBufferInterface& buffer, bool& value) + { + uint8_t byte; + Error result = Error::NO_ERRORS; + if(buffer.pop(byte)) + { + value = static_cast(byte); + } + else + { + result = Error::END_OF_BUFFER; + } + return result; + } + + template + static Error DeserializeEnum(ReadBufferInterface& buffer, ENUM_TYPE& value) + { + static_assert(std::is_enum::value, "No enum given to DeserializeEnum parameter value."); + uint64_t temp_value; + Error result = DeserializeVarint(buffer, temp_value); + if(Error::NO_ERRORS == result) + { + value = static_cast(temp_value); + } + return result; + } + + + /** @} **/ + + + //! This function converts a given value unsigned integer to a varint formatted data buffer. + /*! + \param[in] value The data to be serialized, uint32_t or uint64_t. + \param[in] buffer A reference to a message buffer object in which to store the variable. + \return A value from the Error enum, NO_ERROR in case everything is fine. + */ + template + static Error SerializeVarint(UINT_TYPE value, WriteBufferInterface& buffer) + { + static_assert(std::is_same::value || + std::is_same::value, + "Wrong type passed to SerializeVarint."); + + bool memory_free = true; + while((value >= VARINT_MSB_BYTE) && memory_free) + { + memory_free = buffer.push(static_cast(value | VARINT_MSB_BYTE)); + value >>= VARINT_SHIFT_N_BITS; + } + memory_free = buffer.push(static_cast(value)); + + const Error return_value = memory_free ? Error::NO_ERRORS : Error::BUFFER_FULL; + return return_value; + } + + //! This function deserializes the following N bytes into a varint. + /*! + \param[in] buffer The data buffer from which bytes are popped. + \param[out] value The variable in which the varint is returned. + \return A value from the Error enum, NO_ERROR in case everything is fine. + */ + template + static Error DeserializeVarint(ReadBufferInterface& buffer, UINT_TYPE& value) + { + static_assert(std::is_same::value || + std::is_same::value, + "Wrong type passed to DeserializeVarint."); + + // Calculate how many bytes there are in a varint 128 base encoded number. This should + // yield 5 for a 32bit number and 10 for a 64bit number. + constexpr auto N_DIGITS = std::numeric_limits::digits; + constexpr auto N_BITS_FLOAT = static_cast(VARINT_SHIFT_N_BITS); + constexpr auto DIV_RESULT = N_DIGITS / N_BITS_FLOAT; + constexpr auto DIV_CEIL = constexpr_ceil(DIV_RESULT); + constexpr auto N_BYTES_IN_VARINT = static_cast(DIV_CEIL); + + UINT_TYPE temp_value = 0; + uint8_t byte = 0; + uint8_t i = 0; + bool result = false; + do + { + result = buffer.pop(byte); + if(result) + { + temp_value |= static_cast(byte & (~VARINT_MSB_BYTE)) << (i * VARINT_SHIFT_N_BITS); + } + ++i; + } while((byte & VARINT_MSB_BYTE) && (i < N_BYTES_IN_VARINT) && result); + + Error return_value = Error::NO_ERRORS; + if(result) + { + if(byte & VARINT_MSB_BYTE) + { + // This varint was not closed properly. + return_value = Error::OVERLONG_VARINT; + } + else + { + // All is well. + value = temp_value; + } + } + else + { + return_value = Error::END_OF_BUFFER; + } + + return return_value; + } + + + }; + +} // End of namespace EmbeddedProto. +#endif diff --git a/ThirdParty/Inc/WriteBufferFixedSize.h b/ThirdParty/Inc/WriteBufferFixedSize.h new file mode 100644 index 0000000..6e0fc83 --- /dev/null +++ b/ThirdParty/Inc/WriteBufferFixedSize.h @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal adress: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _WRITE_BUFFER_FIXED_H_ +#define _WRITE_BUFFER_FIXED_H_ + +#include "WriteBufferInterface.h" +#include + +namespace EmbeddedProto +{ + + template + class WriteBufferFixedSize : public ::EmbeddedProto::WriteBufferInterface + { + public: + WriteBufferFixedSize() = default; + ~WriteBufferFixedSize() override = default; + + //! \see ::EmbeddedProto::WriteBufferInterface::clear() + void clear() override + { + write_index_ = 0; + } + + + //! \see ::EmbeddedProto::WriteBufferInterface::get_size() + uint32_t get_size() const override + { + return write_index_; + } + + + //! \see ::EmbeddedProto::WriteBufferInterface::get_max_size() + uint32_t get_max_size() const override + { + return BUFFER_SIZE; + } + + //! \see ::EmbeddedProto::WriteBufferInterface::get_available_size() + uint32_t get_available_size() const override + { + return BUFFER_SIZE - write_index_; + } + + //! \see ::EmbeddedProto::WriteBufferInterface::push() + bool push(const uint8_t byte) override + { + bool return_value = BUFFER_SIZE > write_index_; + if(return_value) + { + data_[write_index_] = byte; + ++write_index_; + } + return return_value; + } + + //! \see ::EmbeddedProto::WriteBufferInterface::push() + bool push(const uint8_t* bytes, const uint32_t length) override + { + bool return_value = BUFFER_SIZE > (write_index_ + length); + if(return_value) + { + memcpy(data_.data() + write_index_, bytes, length); + write_index_ += length; + } + return return_value; + } + + //! Return a pointer to the data array. + uint8_t* get_data() + { + return data_.data(); + } + + private: + + //! The array in which the serialized data is stored. + std::array data_ = {0}; + + //! The number of bytes currently serialized in the array. + uint32_t write_index_ = 0 ; + + }; + +} // End of namespace EmbeddedProto + + +#endif // _WRITE_BUFFER_FIXED_H_ diff --git a/ThirdParty/Inc/WriteBufferInterface.h b/ThirdParty/Inc/WriteBufferInterface.h new file mode 100644 index 0000000..bd90b6f --- /dev/null +++ b/ThirdParty/Inc/WriteBufferInterface.h @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#ifndef _WRITE_BUFFER_INTERFACE_H_ +#define _WRITE_BUFFER_INTERFACE_H_ + +#include + + +namespace EmbeddedProto +{ + //! The pure virtual definition of a message buffer used for writing . + /*! + This interface is to be used by classes wishing to use the buffer. An actual implementation + is made specific to how you would like to store data. + + The buffer deals with bytes (uint8_t) only. + */ + class WriteBufferInterface + { + public: + + WriteBufferInterface() = default; + virtual ~WriteBufferInterface() = default; + + //! Delete all data in the buffer. + virtual void clear() = 0; + + //! Obtain the total number of bytes currently stored in the buffer. + virtual uint32_t get_size() const = 0; + + //! Obtain the total number of bytes which can at most be stored in the buffer. + virtual uint32_t get_max_size() const = 0; + + //! Obtain the total number of bytes still available in the buffer. + virtual uint32_t get_available_size() const = 0; + + //! Push a single byte into the buffer. + /*! + \param[in] byte The data to append after previously added data in the buffer. + \return True when there was space to add the byte. + */ + virtual bool push(const uint8_t byte) = 0; + + //! Push an array of bytes into the buffer. + /*! + The given array will be appended after already addded data in the buffer. + \param[in] bytes Pointer to the array of bytes. + \param[in] length The number of bytes in the array. + \return True when there was space to add the bytes. + */ + virtual bool push(const uint8_t* bytes, const uint32_t length) = 0; + + }; + +} // End of namespace EmbeddedProto + +#endif // End of _WRITE_BUFFER_INTERFACE_H_ diff --git a/ThirdParty/Src/Fields.cpp b/ThirdParty/Src/Fields.cpp new file mode 100644 index 0000000..02dc4c3 --- /dev/null +++ b/ThirdParty/Src/Fields.cpp @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#include "Fields.h" +#include "MessageSizeCalculator.h" + +namespace EmbeddedProto +{ + uint32_t Field::serialized_size() const + { + ::EmbeddedProto::MessageSizeCalculator calcBuffer; + this->serialize(calcBuffer); + return calcBuffer.get_size(); + } +} // End of namespace EmbeddedProto diff --git a/ThirdParty/Src/MessageInterface.cpp b/ThirdParty/Src/MessageInterface.cpp new file mode 100644 index 0000000..db9b4b6 --- /dev/null +++ b/ThirdParty/Src/MessageInterface.cpp @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#include "MessageInterface.h" +#include "WireFormatter.h" +#include "ReadBufferSection.h" + +namespace EmbeddedProto +{ + + Error MessageInterface::MessageInterface::serialize_with_id(uint32_t field_number, + ::EmbeddedProto::WriteBufferInterface& buffer, + const bool optional) const + { + Error return_value = Error::NO_ERRORS; + + // See if we have data which should be serialized. + const uint32_t size_x = this->serialized_size(); + if((0 < size_x) || optional) + { + uint32_t tag = WireFormatter::MakeTag(field_number, + WireFormatter::WireType::LENGTH_DELIMITED); + return_value = WireFormatter::SerializeVarint(tag, buffer); + + if(Error::NO_ERRORS == return_value) + { + return_value = WireFormatter::SerializeVarint(size_x, buffer); + if(Error::NO_ERRORS == return_value) + { + // See if there is enough space left in the buffer for the data. + if(size_x <= buffer.get_available_size()) + { + const auto* base = static_cast(this); + return_value = base->serialize(buffer); + } + else + { + return_value = Error::BUFFER_FULL; + } + } + } + } + return return_value; + } + + + Error MessageInterface::deserialize_check_type(::EmbeddedProto::ReadBufferInterface& buffer, + const ::EmbeddedProto::WireFormatter::WireType& wire_type) + { + Error return_value = ::EmbeddedProto::WireFormatter::WireType::LENGTH_DELIMITED == wire_type + ? Error::NO_ERRORS : Error::INVALID_WIRETYPE; + if(Error::NO_ERRORS == return_value) + { + uint32_t size = 0; + return_value = ::EmbeddedProto::WireFormatter::DeserializeVarint(buffer, size); + ::EmbeddedProto::ReadBufferSection bufferSection(buffer, size); + if(::EmbeddedProto::Error::NO_ERRORS == return_value) + { + return_value = deserialize(bufferSection); + } + } + return return_value; + } + + + Error MessageInterface::skip_unknown_field(::EmbeddedProto::ReadBufferInterface& buffer, + const ::EmbeddedProto::WireFormatter::WireType& wire_type) const + { + Error return_value = Error::NO_ERRORS; + + // Depending on the wire type select one of its valid variable types and deserialize the value. + switch(wire_type) { + case ::EmbeddedProto::WireFormatter::WireType::VARINT: + return_value = skip_varint(buffer); + break; + + case ::EmbeddedProto::WireFormatter::WireType::FIXED64: + return_value = skip_fixed64(buffer); + break; + + case ::EmbeddedProto::WireFormatter::WireType::LENGTH_DELIMITED: + return_value = skip_length_delimited(buffer); + break; + + case ::EmbeddedProto::WireFormatter::WireType::FIXED32: + return_value = skip_fixed32(buffer); + break; + + default: + // We should never get here. DeserializeTag catches this case. + break; + } + + return return_value; + } + + + Error MessageInterface::skip_varint(::EmbeddedProto::ReadBufferInterface& buffer) const + { + // Use a 64 bit variable to decode the maximum possible number of bytes. As we do not know + // the actual type. + uint64_t dummy; + return ::EmbeddedProto::WireFormatter::DeserializeVarint(buffer, dummy); + } + + Error MessageInterface::skip_fixed32(::EmbeddedProto::ReadBufferInterface& buffer) const + { + float dummy; + return ::EmbeddedProto::WireFormatter::DeserializeFloat(buffer, dummy); + } + + Error MessageInterface::skip_fixed64(::EmbeddedProto::ReadBufferInterface& buffer) const + { + double dummy; + return ::EmbeddedProto::WireFormatter::DeserializeDouble(buffer, dummy); + } + + Error MessageInterface::skip_length_delimited(::EmbeddedProto::ReadBufferInterface& buffer) const + { + // First read the number of bytes + uint32_t n_bytes = 0; + const Error return_value = ::EmbeddedProto::WireFormatter::DeserializeVarint(buffer, n_bytes); + if(Error::NO_ERRORS == return_value) + { + buffer.advance(n_bytes); + } + return return_value; + } + +} // End of namespace EmbeddedProto diff --git a/ThirdParty/Src/ReadBufferSection.cpp b/ThirdParty/Src/ReadBufferSection.cpp new file mode 100644 index 0000000..c0c09a9 --- /dev/null +++ b/ThirdParty/Src/ReadBufferSection.cpp @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2020-2024 Embedded AMS B.V. - All Rights Reserved + * + * This file is part of Embedded Proto. + * + * Embedded Proto is open source software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, version 3 of the license. + * + * Embedded Proto is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Embedded Proto. If not, see . + * + * For commercial and closed source application please visit: + * . + * + * Embedded AMS B.V. + * Info: + * info at EmbeddedProto dot com + * + * Postal address: + * Atoomweg 2 + * 1627 LE, Hoorn + * the Netherlands + */ + +#include "ReadBufferSection.h" + +#include + + +namespace EmbeddedProto +{ + + ReadBufferSection::ReadBufferSection(ReadBufferInterface& buffer, const uint32_t size) + : buffer_(buffer), + size_(std::min(size, buffer.get_size())), + max_size_(std::min(size, buffer.get_size())) + { + + } + + uint32_t ReadBufferSection::get_size() const + { + return size_; + } + + uint32_t ReadBufferSection::get_max_size() const + { + return max_size_; + } + + bool ReadBufferSection::peek(uint8_t& byte) const + { + bool result = 0 < size_; + if(result) + { + result = buffer_.peek(byte); + } + return result; + } + + bool ReadBufferSection::advance() + { + bool result = 0 < size_; + if(result) + { + result = buffer_.advance(); + --size_; + } + return result; + } + + bool ReadBufferSection::advance(const uint32_t n_bytes) + { + bool result = 0 < size_; + if(result) + { + uint32_t n = (n_bytes <= size_) ? n_bytes : size_; + result = buffer_.advance(n); + size_ -= n; + } + return result; + } + + bool ReadBufferSection::pop(uint8_t& byte) + { + bool result = 0 < size_; + if(result) + { + result = buffer_.pop(byte); + --size_; + } + return result; + } + +} // End of namespace EmbeddedProto diff --git a/light_detector.ioc b/light_detector.ioc index b43f6eb..3badb6a 100644 --- a/light_detector.ioc +++ b/light_detector.ioc @@ -33,17 +33,21 @@ Mcu.IP1=I2C1 Mcu.IP2=NVIC Mcu.IP3=RCC Mcu.IP4=SYS -Mcu.IP5=USART2 -Mcu.IPNb=6 +Mcu.IP5=TIM16 +Mcu.IP6=USART2 +Mcu.IPNb=7 Mcu.Name=STM32L476R(C-E-G)Tx Mcu.Package=LQFP64 Mcu.Pin0=PC13 -Mcu.Pin1=PA2 -Mcu.Pin2=PA3 -Mcu.Pin3=PB8 -Mcu.Pin4=PB9 -Mcu.Pin5=VP_SYS_VS_Systick -Mcu.PinsNb=6 +Mcu.Pin1=PH0-OSC_IN (PH0) +Mcu.Pin2=PH1-OSC_OUT (PH1) +Mcu.Pin3=PA2 +Mcu.Pin4=PA3 +Mcu.Pin5=PB8 +Mcu.Pin6=PB9 +Mcu.Pin7=VP_SYS_VS_Systick +Mcu.Pin8=VP_TIM16_VS_ClockSourceINT +Mcu.PinsNb=9 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32L476RGTx @@ -64,6 +68,8 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false +NVIC.TIM1_UP_TIM16_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false PA2.Locked=true PA2.Mode=Asynchronous @@ -79,12 +85,16 @@ PB9.Mode=I2C PB9.Signal=I2C1_SDA PC13.Locked=true PC13.Signal=GPXTI13 +PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator +PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN +PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator +PH1-OSC_OUT\ (PH1).Signal=RCC_OSC_OUT PinOutPanel.RotationAngle=0 ProjectManager.AskForMigrate=true ProjectManager.BackupPrevious=false ProjectManager.CompilerOptimize=6 ProjectManager.ComputerToolchain=false -ProjectManager.CoupleFile=false +ProjectManager.CoupleFile=true ProjectManager.CustomerFirmwarePackage= ProjectManager.DefaultFWLocation=true ProjectManager.DeletePrevious=true @@ -98,10 +108,10 @@ ProjectManager.LastFirmware=true ProjectManager.LibraryCopy=1 ProjectManager.MainLocation=Core/Src ProjectManager.NoMain=false -ProjectManager.PreviousToolchain= +ProjectManager.PreviousToolchain=STM32CubeIDE ProjectManager.ProjectBuild=false -ProjectManager.ProjectFileName=task4.ioc -ProjectManager.ProjectName=task4 +ProjectManager.ProjectFileName=light_detector.ioc +ProjectManager.ProjectName=light_detector ProjectManager.ProjectStructure= ProjectManager.RegisterCallBack= ProjectManager.StackSize=0x400 @@ -110,7 +120,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_USART2_UART_Init-USART2-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_USART2_UART_Init-USART2-false-HAL-true,6-MX_TIM16_Init-TIM16-false-HAL-true RCC.FamilyName=M RCC.HSE_VALUE=8000000 RCC.HSI_VALUE=16000000 @@ -135,9 +145,14 @@ RCC.VCOSAI1OutputFreq_Value=32000000 RCC.VCOSAI2OutputFreq_Value=32000000 SH.GPXTI13.0=GPIO_EXTI13 SH.GPXTI13.ConfNb=1 +TIM16.IPParameters=Prescaler,Period +TIM16.Period=65535 +TIM16.Prescaler=13 USART2.IPParameters=VirtualMode-Asynchronous USART2.VirtualMode-Asynchronous=VM_ASYNC VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_TIM16_VS_ClockSourceINT.Mode=Enable_Timer +VP_TIM16_VS_ClockSourceINT.Signal=TIM16_VS_ClockSourceINT board=custom isbadioc=false diff --git a/light_detector Debug.launch b/light_detector.launch similarity index 95% rename from light_detector Debug.launch rename to light_detector.launch index a2b669d..3dcebbd 100644 --- a/light_detector Debug.launch +++ b/light_detector.launch @@ -12,7 +12,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -67,13 +67,13 @@ - - + + - +