diff --git a/fw/.cproject b/fw/.cproject index e5db677..98ad7dc 100644 --- a/fw/.cproject +++ b/fw/.cproject @@ -65,7 +65,7 @@ - + diff --git a/fw/Core/Src/scd4x.c b/fw/Core/Src/scd4x.c index 1c4ad9a..470006b 100644 --- a/fw/Core/Src/scd4x.c +++ b/fw/Core/Src/scd4x.c @@ -69,11 +69,13 @@ int8_t scd4x_read_measurement(int * co2, int *temperature, int *relative_humidit buffer[0] = READ_MEASUREMENT >> 8; buffer[1] = READ_MEASUREMENT & 0x00ff; result = i2c_transmit(SCD4X_I2C_ADDRESS<<1, buffer, 2); - if (result != I2C_OK) { - return SCD4X_ERROR; - } - LL_mDelay(10); // 10 ms should be enough + // TODO: Proc to vraci NACK? Vyresit. + /*if (result != I2C_OK) { + return SCD4X_ERROR; + }*/ + + LL_mDelay(1); // 10 ms should be enough // read out result = i2c_receive(SCD4X_I2C_ADDRESS<<1, buffer, 9); if (result != I2C_OK) diff --git a/fw/Debug/Core/Src/crc8.o b/fw/Debug/Core/Src/crc8.o index 83ac802..0cf5828 100644 Binary files a/fw/Debug/Core/Src/crc8.o and b/fw/Debug/Core/Src/crc8.o differ diff --git a/fw/Debug/Core/Src/crc8.su b/fw/Debug/Core/Src/crc8.su index 9f53d23..d2e1e30 100644 --- a/fw/Debug/Core/Src/crc8.su +++ b/fw/Debug/Core/Src/crc8.su @@ -1 +1 @@ -crc8.c:11:9:crc8_calculate 20 static +crc8.c:11:9:crc8_calculate 24 static diff --git a/fw/Debug/Core/Src/i2c.o b/fw/Debug/Core/Src/i2c.o index e49e92b..4377aa9 100644 Binary files a/fw/Debug/Core/Src/i2c.o and b/fw/Debug/Core/Src/i2c.o differ diff --git a/fw/Debug/Core/Src/i2c.su b/fw/Debug/Core/Src/i2c.su index 4085855..585a248 100644 --- a/fw/Debug/Core/Src/i2c.su +++ b/fw/Debug/Core/Src/i2c.su @@ -1,3 +1,11 @@ -i2c.c:12:5:i2c_init 0 static -i2c.c:21:5:i2c_transmit 16 static -i2c.c:47:5:i2c_receive 20 static +stm32l0xx_ll_i2c.h:1511:26:LL_I2C_IsActiveFlag_TXE 16 static +stm32l0xx_ll_i2c.h:1537:26:LL_I2C_IsActiveFlag_RXNE 16 static +stm32l0xx_ll_i2c.h:1563:26:LL_I2C_IsActiveFlag_NACK 16 static +stm32l0xx_ll_i2c.h:1576:26:LL_I2C_IsActiveFlag_STOP 16 static +stm32l0xx_ll_i2c.h:1733:22:LL_I2C_ClearFlag_STOP 16 static +stm32l0xx_ll_i2c.h:2090:22:LL_I2C_HandleTransfer 24 static +stm32l0xx_ll_i2c.h:2174:25:LL_I2C_ReceiveData8 16 static +stm32l0xx_ll_i2c.h:2186:22:LL_I2C_TransmitData8 16 static +i2c.c:12:5:i2c_init 16 static +i2c.c:21:5:i2c_transmit 40 static +i2c.c:47:5:i2c_receive 48 static diff --git a/fw/Debug/Core/Src/led.o b/fw/Debug/Core/Src/led.o index 9f923f1..db38d76 100644 Binary files a/fw/Debug/Core/Src/led.o and b/fw/Debug/Core/Src/led.o differ diff --git a/fw/Debug/Core/Src/led.su b/fw/Debug/Core/Src/led.su index 6ec046d..5d90d6b 100644 --- a/fw/Debug/Core/Src/led.su +++ b/fw/Debug/Core/Src/led.su @@ -1,6 +1,9 @@ -led.c:42:6:led_set_color 16 static -led.c:49:6:led_gpio_off 0 static -led.c:57:6:led_gpio_on 0 static -led.c:69:6:led_off 0 static -led.c:81:6:led_pwm_handler 20 static -led.c:127:6:led_init 16 static +stm32l0xx_ll_gpio.h:734:26:LL_GPIO_ReadInputPort 16 static +stm32l0xx_ll_gpio.h:775:22:LL_GPIO_WriteOutputPort 16 static +stm32l0xx_ll_gpio.h:902:22:LL_GPIO_TogglePin 24 static +led.c:42:6:led_set_color 24 static +led.c:49:6:led_gpio_off 24 static +led.c:57:6:led_gpio_on 24 static +led.c:69:6:led_off 8 static +led.c:81:6:led_pwm_handler 24 static +led.c:127:6:led_init 24 static diff --git a/fw/Debug/Core/Src/main.o b/fw/Debug/Core/Src/main.o index 31ac4a9..3eebae2 100644 Binary files a/fw/Debug/Core/Src/main.o and b/fw/Debug/Core/Src/main.o differ diff --git a/fw/Debug/Core/Src/main.su b/fw/Debug/Core/Src/main.su index 84efcf2..02d3513 100644 --- a/fw/Debug/Core/Src/main.su +++ b/fw/Debug/Core/Src/main.su @@ -1,5 +1,47 @@ -stm32l0xx_ll_bus.h:440:22:LL_APB1_GRP1_EnableClock 8 static -stm32l0xx_ll_bus.h:987:22:LL_IOP_GRP1_EnableClock 8 static +core_cm0plus.h:741:22:__NVIC_EnableIRQ 16 static +core_cm0plus.h:848:22:__NVIC_SetPriority 24 static +stm32l0xx_ll_dma.h:606:22:LL_DMA_SetDataTransferDirection 24 static +stm32l0xx_ll_dma.h:655:22:LL_DMA_SetMode 24 static +stm32l0xx_ll_dma.h:700:22:LL_DMA_SetPeriphIncMode 24 static +stm32l0xx_ll_dma.h:745:22:LL_DMA_SetMemoryIncMode 24 static +stm32l0xx_ll_dma.h:791:22:LL_DMA_SetPeriphSize 24 static +stm32l0xx_ll_dma.h:838:22:LL_DMA_SetMemorySize 24 static +stm32l0xx_ll_dma.h:886:22:LL_DMA_SetChannelPriorityLevel 24 static +stm32l0xx_ll_dma.h:1207:22:LL_DMA_SetPeriphRequest 24 static +stm32l0xx_ll_i2c.h:391:22:LL_I2C_Enable 16 static +stm32l0xx_ll_i2c.h:604:22:LL_I2C_EnableClockStretching 16 static +stm32l0xx_ll_i2c.h:724:22:LL_I2C_DisableGeneralCall 16 static +stm32l0xx_ll_i2c.h:835:22:LL_I2C_SetOwnAddress2 24 static +stm32l0xx_ll_i2c.h:857:22:LL_I2C_DisableOwnAddress2 16 static +stm32l0xx_ll_i2c.h:1838:22:LL_I2C_EnableAutoEndMode 16 static +stm32l0xx_ll_lpuart.h:396:22:LL_LPUART_Enable 16 static +stm32l0xx_ll_lpuart.h:1210:22:LL_LPUART_SetDEDeassertionTime 16 static +stm32l0xx_ll_lpuart.h:1233:22:LL_LPUART_SetDEAssertionTime 16 static +stm32l0xx_ll_lpuart.h:1255:22:LL_LPUART_EnableDEMode 16 static +stm32l0xx_ll_lpuart.h:1291:22:LL_LPUART_SetDESignalPolarity 16 static +stm32l0xx_ll_rcc.h:1163:22:LL_RCC_MSI_Enable 8 static +stm32l0xx_ll_rcc.h:1183:26:LL_RCC_MSI_IsReady 8 static +stm32l0xx_ll_rcc.h:1201:22:LL_RCC_MSI_SetRange 16 static +stm32l0xx_ll_rcc.h:1242:22:LL_RCC_MSI_SetCalibTrimming 16 static +stm32l0xx_ll_rcc.h:1275:22:LL_RCC_SetSysClkSource 16 static +stm32l0xx_ll_rcc.h:1289:26:LL_RCC_GetSysClkSource 8 static +stm32l0xx_ll_rcc.h:1309:22:LL_RCC_SetAHBPrescaler 16 static +stm32l0xx_ll_rcc.h:1325:22:LL_RCC_SetAPB1Prescaler 16 static +stm32l0xx_ll_rcc.h:1341:22:LL_RCC_SetAPB2Prescaler 16 static +stm32l0xx_ll_rcc.h:1496:22:LL_RCC_SetLPUARTClockSource 16 static +stm32l0xx_ll_rcc.h:1515:22:LL_RCC_SetI2CClockSource 16 static +stm32l0xx_ll_bus.h:224:22:LL_AHB1_GRP1_EnableClock 24 static +stm32l0xx_ll_bus.h:440:22:LL_APB1_GRP1_EnableClock 24 static +stm32l0xx_ll_bus.h:786:22:LL_APB2_GRP1_EnableClock 24 static +stm32l0xx_ll_bus.h:987:22:LL_IOP_GRP1_EnableClock 24 static +stm32l0xx_ll_system.h:912:22:LL_FLASH_SetLatency 16 static +stm32l0xx_ll_system.h:924:26:LL_FLASH_GetLatency 8 static +stm32l0xx_ll_pwr.h:272:22:LL_PWR_SetRegulVoltageScaling 16 static +stm32l0xx_ll_gpio.h:844:22:LL_GPIO_SetOutputPin 16 static +main.c:67:5:main 48 static main.c:142:6:SystemClock_Config 8 static -main.c:67:5:main 96 static -main.c:401:6:Error_Handler 0 static,ignoring_inline_asm +main.c:181:13:MX_I2C1_Init 72 static +main.c:244:13:MX_LPUART1_UART_Init 64 static +main.c:331:13:MX_DMA_Init 8 static +main.c:350:13:MX_GPIO_Init 32 static +main.c:401:6:Error_Handler 8 static,ignoring_inline_asm diff --git a/fw/Debug/Core/Src/scd4x.o b/fw/Debug/Core/Src/scd4x.o index ec36201..63a0e2c 100644 Binary files a/fw/Debug/Core/Src/scd4x.o and b/fw/Debug/Core/Src/scd4x.o differ diff --git a/fw/Debug/Core/Src/scd4x.su b/fw/Debug/Core/Src/scd4x.su index da3f3a4..5aa5725 100644 --- a/fw/Debug/Core/Src/scd4x.su +++ b/fw/Debug/Core/Src/scd4x.su @@ -1,6 +1,6 @@ -scd4x.c:10:8:scd4x_send_cmd 40 static -scd4x.c:26:8:scd4x_read_data 0 static +scd4x.c:10:8:scd4x_send_cmd 56 static +scd4x.c:26:8:scd4x_read_data 16 static scd4x.c:31:8:scd4x_start_periodic_measurement 8 static scd4x.c:36:8:scd4x_stop_periodic_measurement 8 static scd4x.c:41:8:scd4x_perform_factory_reset 8 static -scd4x.c:46:8:scd4x_read_measurement 64 static +scd4x.c:46:8:scd4x_read_measurement 88 static diff --git a/fw/Debug/Core/Src/stm32l0xx_it.o b/fw/Debug/Core/Src/stm32l0xx_it.o index 41ed534..c832631 100644 Binary files a/fw/Debug/Core/Src/stm32l0xx_it.o and b/fw/Debug/Core/Src/stm32l0xx_it.o differ diff --git a/fw/Debug/Core/Src/stm32l0xx_it.su b/fw/Debug/Core/Src/stm32l0xx_it.su index 18c00ec..865feb0 100644 --- a/fw/Debug/Core/Src/stm32l0xx_it.su +++ b/fw/Debug/Core/Src/stm32l0xx_it.su @@ -1,6 +1,6 @@ -stm32l0xx_it.c:71:6:NMI_Handler 0 static -stm32l0xx_it.c:86:6:HardFault_Handler 0 static -stm32l0xx_it.c:101:6:SVC_Handler 0 static -stm32l0xx_it.c:114:6:PendSV_Handler 0 static +stm32l0xx_it.c:71:6:NMI_Handler 8 static +stm32l0xx_it.c:86:6:HardFault_Handler 8 static +stm32l0xx_it.c:101:6:SVC_Handler 8 static +stm32l0xx_it.c:114:6:PendSV_Handler 8 static stm32l0xx_it.c:127:6:SysTick_Handler 8 static -stm32l0xx_it.c:148:6:DMA1_Channel2_3_IRQHandler 0 static +stm32l0xx_it.c:148:6:DMA1_Channel2_3_IRQHandler 8 static diff --git a/fw/Debug/Core/Src/subdir.mk b/fw/Debug/Core/Src/subdir.mk index 8c179da..d27f9e0 100644 --- a/fw/Debug/Core/Src/subdir.mk +++ b/fw/Debug/Core/Src/subdir.mk @@ -40,21 +40,21 @@ C_DEPS += \ # Each subdirectory must supply rules for building sources it contributes Core/Src/crc8.o: ../Core/Src/crc8.c Core/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/crc8.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/crc8.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Core/Src/i2c.o: ../Core/Src/i2c.c Core/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/i2c.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/i2c.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Core/Src/led.o: ../Core/Src/led.c Core/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/led.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/led.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Core/Src/main.o: ../Core/Src/main.c Core/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/main.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/main.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Core/Src/scd4x.o: ../Core/Src/scd4x.c Core/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/scd4x.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/scd4x.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Core/Src/stm32l0xx_it.o: ../Core/Src/stm32l0xx_it.c Core/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/stm32l0xx_it.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/stm32l0xx_it.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Core/Src/syscalls.o: ../Core/Src/syscalls.c Core/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/syscalls.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/syscalls.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Core/Src/sysmem.o: ../Core/Src/sysmem.c Core/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/sysmem.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/sysmem.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Core/Src/system_stm32l0xx.o: ../Core/Src/system_stm32l0xx.c Core/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/system_stm32l0xx.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/system_stm32l0xx.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" diff --git a/fw/Debug/Core/Src/syscalls.o b/fw/Debug/Core/Src/syscalls.o index b0ef4b4..0737ed6 100644 Binary files a/fw/Debug/Core/Src/syscalls.o and b/fw/Debug/Core/Src/syscalls.o differ diff --git a/fw/Debug/Core/Src/syscalls.su b/fw/Debug/Core/Src/syscalls.su index c872039..2a6e0d7 100644 --- a/fw/Debug/Core/Src/syscalls.su +++ b/fw/Debug/Core/Src/syscalls.su @@ -1,18 +1,18 @@ -syscalls.c:48:6:initialise_monitor_handles 0 static -syscalls.c:52:5:_getpid 0 static -syscalls.c:57:5:_kill 8 static -syscalls.c:63:6:_exit 8 static -syscalls.c:69:27:_read 16 static -syscalls.c:81:27:_write 16 static -syscalls.c:92:5:_close 0 static -syscalls.c:98:5:_fstat 0 static -syscalls.c:104:5:_isatty 0 static -syscalls.c:109:5:_lseek 0 static -syscalls.c:114:5:_open 0 static -syscalls.c:120:5:_wait 8 static -syscalls.c:126:5:_unlink 8 static -syscalls.c:132:5:_times 0 static -syscalls.c:137:5:_stat 0 static -syscalls.c:143:5:_link 8 static +syscalls.c:48:6:initialise_monitor_handles 8 static +syscalls.c:52:5:_getpid 8 static +syscalls.c:57:5:_kill 16 static +syscalls.c:63:6:_exit 16 static +syscalls.c:69:27:_read 32 static +syscalls.c:81:27:_write 32 static +syscalls.c:92:5:_close 16 static +syscalls.c:98:5:_fstat 16 static +syscalls.c:104:5:_isatty 16 static +syscalls.c:109:5:_lseek 24 static +syscalls.c:114:5:_open 20 static +syscalls.c:120:5:_wait 16 static +syscalls.c:126:5:_unlink 16 static +syscalls.c:132:5:_times 16 static +syscalls.c:137:5:_stat 16 static +syscalls.c:143:5:_link 16 static syscalls.c:149:5:_fork 8 static -syscalls.c:155:5:_execve 8 static +syscalls.c:155:5:_execve 24 static diff --git a/fw/Debug/Core/Src/sysmem.o b/fw/Debug/Core/Src/sysmem.o index acba301..32fccac 100644 Binary files a/fw/Debug/Core/Src/sysmem.o and b/fw/Debug/Core/Src/sysmem.o differ diff --git a/fw/Debug/Core/Src/sysmem.su b/fw/Debug/Core/Src/sysmem.su index c9ac5ce..4474c68 100644 --- a/fw/Debug/Core/Src/sysmem.su +++ b/fw/Debug/Core/Src/sysmem.su @@ -1 +1 @@ -sysmem.c:54:7:_sbrk 8 static +sysmem.c:54:7:_sbrk 32 static diff --git a/fw/Debug/Core/Src/system_stm32l0xx.o b/fw/Debug/Core/Src/system_stm32l0xx.o index 99fa31a..01f2439 100644 Binary files a/fw/Debug/Core/Src/system_stm32l0xx.o and b/fw/Debug/Core/Src/system_stm32l0xx.o differ diff --git a/fw/Debug/Core/Src/system_stm32l0xx.su b/fw/Debug/Core/Src/system_stm32l0xx.su index f548a45..abf8ac4 100644 --- a/fw/Debug/Core/Src/system_stm32l0xx.su +++ b/fw/Debug/Core/Src/system_stm32l0xx.su @@ -1,2 +1,2 @@ -system_stm32l0xx.c:154:6:SystemInit 0 static -system_stm32l0xx.c:200:6:SystemCoreClockUpdate 16 static +system_stm32l0xx.c:154:6:SystemInit 8 static +system_stm32l0xx.c:200:6:SystemCoreClockUpdate 32 static diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.o index 28b4bd9..e0e6190 100644 Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.o differ diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.su b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.su index 7e34b01..da292ac 100644 --- a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.su +++ b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.su @@ -1,3 +1,15 @@ -stm32l0xx_ll_dma.c:150:13:LL_DMA_DeInit 16 static -stm32l0xx_ll_dma.c:275:13:LL_DMA_Init 16 static -stm32l0xx_ll_dma.c:343:6:LL_DMA_StructInit 0 static +stm32l0xx_ll_dma.h:580:22:LL_DMA_ConfigTransfer 24 static +stm32l0xx_ll_dma.h:933:22:LL_DMA_SetDataLength 24 static +stm32l0xx_ll_dma.h:1018:22:LL_DMA_SetMemoryAddress 24 static +stm32l0xx_ll_dma.h:1040:22:LL_DMA_SetPeriphAddress 24 static +stm32l0xx_ll_dma.h:1207:22:LL_DMA_SetPeriphRequest 24 static +stm32l0xx_ll_dma.h:1593:22:LL_DMA_ClearFlag_GI1 16 static +stm32l0xx_ll_dma.h:1604:22:LL_DMA_ClearFlag_GI2 16 static +stm32l0xx_ll_dma.h:1615:22:LL_DMA_ClearFlag_GI3 16 static +stm32l0xx_ll_dma.h:1626:22:LL_DMA_ClearFlag_GI4 16 static +stm32l0xx_ll_dma.h:1637:22:LL_DMA_ClearFlag_GI5 16 static +stm32l0xx_ll_bus.h:301:22:LL_AHB1_GRP1_ForceReset 16 static +stm32l0xx_ll_bus.h:326:22:LL_AHB1_GRP1_ReleaseReset 16 static +stm32l0xx_ll_dma.c:150:13:LL_DMA_DeInit 24 static +stm32l0xx_ll_dma.c:275:13:LL_DMA_Init 24 static +stm32l0xx_ll_dma.c:343:6:LL_DMA_StructInit 16 static diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.o index bf76e61..17e037f 100644 Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.o differ diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.su b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.su index ca187b5..bad8ae9 100644 --- a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.su +++ b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.su @@ -1,3 +1,11 @@ -stm32l0xx_ll_exti.c:80:10:LL_EXTI_DeInit 0 static -stm32l0xx_ll_exti.c:105:10:LL_EXTI_Init 8 static -stm32l0xx_ll_exti.c:186:6:LL_EXTI_StructInit 0 static +stm32l0xx_ll_exti.h:274:22:LL_EXTI_EnableIT_0_31 16 static +stm32l0xx_ll_exti.h:322:22:LL_EXTI_DisableIT_0_31 16 static +stm32l0xx_ll_exti.h:425:22:LL_EXTI_EnableEvent_0_31 16 static +stm32l0xx_ll_exti.h:472:22:LL_EXTI_DisableEvent_0_31 16 static +stm32l0xx_ll_exti.h:572:22:LL_EXTI_EnableRisingTrig_0_31 16 static +stm32l0xx_ll_exti.h:618:22:LL_EXTI_DisableRisingTrig_0_31 16 static +stm32l0xx_ll_exti.h:710:22:LL_EXTI_EnableFallingTrig_0_31 16 static +stm32l0xx_ll_exti.h:754:22:LL_EXTI_DisableFallingTrig_0_31 16 static +stm32l0xx_ll_exti.c:80:10:LL_EXTI_DeInit 8 static +stm32l0xx_ll_exti.c:105:10:LL_EXTI_Init 24 static +stm32l0xx_ll_exti.c:186:6:LL_EXTI_StructInit 16 static diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.o index 23f8214..24a5245 100644 Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.o differ diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.su b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.su index bc587a1..85319e8 100644 --- a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.su +++ b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.su @@ -1,3 +1,11 @@ -stm32l0xx_ll_gpio.c:96:13:LL_GPIO_DeInit 0 static -stm32l0xx_ll_gpio.c:157:13:LL_GPIO_Init 32 static -stm32l0xx_ll_gpio.c:231:6:LL_GPIO_StructInit 0 static +stm32l0xx_ll_gpio.h:270:22:LL_GPIO_SetPinMode 24 static +stm32l0xx_ll_gpio.h:338:22:LL_GPIO_SetPinOutputType 24 static +stm32l0xx_ll_gpio.h:409:22:LL_GPIO_SetPinSpeed 24 static +stm32l0xx_ll_gpio.h:478:22:LL_GPIO_SetPinPull 24 static +stm32l0xx_ll_gpio.h:541:22:LL_GPIO_SetAFPin_0_7 24 static +stm32l0xx_ll_gpio.h:602:22:LL_GPIO_SetAFPin_8_15 24 static +stm32l0xx_ll_bus.h:1064:22:LL_IOP_GRP1_ForceReset 16 static +stm32l0xx_ll_bus.h:1089:22:LL_IOP_GRP1_ReleaseReset 16 static +stm32l0xx_ll_gpio.c:96:13:LL_GPIO_DeInit 24 static +stm32l0xx_ll_gpio.c:157:13:LL_GPIO_Init 24 static +stm32l0xx_ll_gpio.c:231:6:LL_GPIO_StructInit 16 static diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.o index b6f0046..bb5a300 100644 Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.o differ diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.su b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.su index bfa06c8..9e7d505 100644 --- a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.su +++ b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.su @@ -1,3 +1,14 @@ -stm32l0xx_ll_i2c.c:87:13:LL_I2C_DeInit 0 static -stm32l0xx_ll_i2c.c:139:13:LL_I2C_Init 12 static -stm32l0xx_ll_i2c.c:207:6:LL_I2C_StructInit 0 static +stm32l0xx_ll_i2c.h:391:22:LL_I2C_Enable 16 static +stm32l0xx_ll_i2c.h:405:22:LL_I2C_Disable 16 static +stm32l0xx_ll_i2c.h:436:22:LL_I2C_ConfigFilters 24 static +stm32l0xx_ll_i2c.h:779:22:LL_I2C_SetOwnAddress1 24 static +stm32l0xx_ll_i2c.h:790:22:LL_I2C_EnableOwnAddress1 16 static +stm32l0xx_ll_i2c.h:801:22:LL_I2C_DisableOwnAddress1 16 static +stm32l0xx_ll_i2c.h:882:22:LL_I2C_SetTiming 16 static +stm32l0xx_ll_i2c.h:956:22:LL_I2C_SetMode 16 static +stm32l0xx_ll_i2c.h:1935:22:LL_I2C_AcknowledgeNextData 16 static +stm32l0xx_ll_bus.h:595:22:LL_APB1_GRP1_ForceReset 16 static +stm32l0xx_ll_bus.h:646:22:LL_APB1_GRP1_ReleaseReset 16 static +stm32l0xx_ll_i2c.c:87:13:LL_I2C_DeInit 24 static +stm32l0xx_ll_i2c.c:139:13:LL_I2C_Init 16 static +stm32l0xx_ll_i2c.c:207:6:LL_I2C_StructInit 16 static diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.o index fabf774..d153996 100644 Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.o differ diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.su b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.su index 2af37eb..c33c786 100644 --- a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.su +++ b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.su @@ -1,3 +1,9 @@ -stm32l0xx_ll_lpuart.c:117:13:LL_LPUART_DeInit 0 static -stm32l0xx_ll_lpuart.c:155:13:LL_LPUART_Init 24 static -stm32l0xx_ll_lpuart.c:232:6:LL_LPUART_StructInit 0 static +stm32l0xx_ll_lpuart.h:426:26:LL_LPUART_IsEnabled 16 static +stm32l0xx_ll_lpuart.h:715:22:LL_LPUART_SetStopBitsLength 16 static +stm32l0xx_ll_lpuart.h:1019:22:LL_LPUART_SetHWFlowCtrl 16 static +stm32l0xx_ll_lpuart.h:1118:22:LL_LPUART_SetBaudRate 56 static +stm32l0xx_ll_bus.h:595:22:LL_APB1_GRP1_ForceReset 16 static +stm32l0xx_ll_bus.h:646:22:LL_APB1_GRP1_ReleaseReset 16 static +stm32l0xx_ll_lpuart.c:117:13:LL_LPUART_DeInit 24 static +stm32l0xx_ll_lpuart.c:155:13:LL_LPUART_Init 32 static +stm32l0xx_ll_lpuart.c:232:6:LL_LPUART_StructInit 16 static diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.o index e423123..0b7b853 100644 Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.o differ diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.su b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.su index 68038bc..c2f6d7c 100644 --- a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.su +++ b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.su @@ -1 +1,3 @@ -stm32l0xx_ll_pwr.c:56:13:LL_PWR_DeInit 0 static +stm32l0xx_ll_bus.h:595:22:LL_APB1_GRP1_ForceReset 16 static +stm32l0xx_ll_bus.h:646:22:LL_APB1_GRP1_ReleaseReset 16 static +stm32l0xx_ll_pwr.c:56:13:LL_PWR_DeInit 8 static diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.o index 1cd68e3..974fd2d 100644 Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.o differ diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.su b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.su index 0819a7b..8b7b4b2 100644 --- a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.su +++ b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.su @@ -1,13 +1,35 @@ -stm32l0xx_ll_rcc.h:802:26:LL_RCC_HSI_IsReady 0 static -stm32l0xx_ll_rcc.h:2097:26:LL_RCC_IsActiveFlag_HSIDIV 0 static +stm32l0xx_ll_rcc.h:705:22:LL_RCC_HSE_DisableBypass 8 static +stm32l0xx_ll_rcc.h:802:26:LL_RCC_HSI_IsReady 8 static +stm32l0xx_ll_rcc.h:893:22:LL_RCC_HSI_SetCalibTrimming 16 static +stm32l0xx_ll_rcc.h:1097:26:LL_RCC_LSE_IsReady 8 static +stm32l0xx_ll_rcc.h:1145:26:LL_RCC_LSI_IsReady 8 static +stm32l0xx_ll_rcc.h:1163:22:LL_RCC_MSI_Enable 8 static +stm32l0xx_ll_rcc.h:1183:26:LL_RCC_MSI_IsReady 8 static +stm32l0xx_ll_rcc.h:1201:22:LL_RCC_MSI_SetRange 16 static +stm32l0xx_ll_rcc.h:1218:26:LL_RCC_MSI_GetRange 8 static +stm32l0xx_ll_rcc.h:1242:22:LL_RCC_MSI_SetCalibTrimming 16 static +stm32l0xx_ll_rcc.h:1289:26:LL_RCC_GetSysClkSource 8 static +stm32l0xx_ll_rcc.h:1360:26:LL_RCC_GetAHBPrescaler 8 static +stm32l0xx_ll_rcc.h:1375:26:LL_RCC_GetAPB1Prescaler 8 static +stm32l0xx_ll_rcc.h:1390:26:LL_RCC_GetAPB2Prescaler 8 static +stm32l0xx_ll_rcc.h:1586:26:LL_RCC_GetUSARTClockSource 16 static +stm32l0xx_ll_rcc.h:1604:26:LL_RCC_GetLPUARTClockSource 16 static +stm32l0xx_ll_rcc.h:1625:26:LL_RCC_GetI2CClockSource 16 static +stm32l0xx_ll_rcc.h:1641:26:LL_RCC_GetLPTIMClockSource 16 static +stm32l0xx_ll_rcc.h:1805:26:LL_RCC_PLL_IsReady 8 static +stm32l0xx_ll_rcc.h:1859:26:LL_RCC_PLL_GetMainSource 8 static +stm32l0xx_ll_rcc.h:1878:26:LL_RCC_PLL_GetMultiplicator 8 static +stm32l0xx_ll_rcc.h:1891:26:LL_RCC_PLL_GetDivider 8 static +stm32l0xx_ll_rcc.h:2097:26:LL_RCC_IsActiveFlag_HSIDIV 8 static +stm32l0xx_ll_rcc.h:2189:22:LL_RCC_ClearResetFlags 8 static stm32l0xx_ll_rcc.c:112:13:LL_RCC_DeInit 16 static,ignoring_inline_asm -stm32l0xx_ll_rcc.c:622:10:RCC_GetHCLKClockFreq 0 static -stm32l0xx_ll_rcc.c:633:10:RCC_GetPCLK1ClockFreq 0 static -stm32l0xx_ll_rcc.c:644:10:RCC_GetPCLK2ClockFreq 0 static -stm32l0xx_ll_rcc.c:654:10:RCC_PLL_GetFreqDomain_SYS 8 static -stm32l0xx_ll_rcc.c:579:10:RCC_GetSystemClockFreq 8 static -stm32l0xx_ll_rcc.c:222:6:LL_RCC_GetSystemClocksFreq 8 static -stm32l0xx_ll_rcc.c:247:10:LL_RCC_GetUSARTClockFreq 8 static -stm32l0xx_ll_rcc.c:344:10:LL_RCC_GetI2CClockFreq 8 static -stm32l0xx_ll_rcc.c:423:10:LL_RCC_GetLPUARTClockFreq 8 static -stm32l0xx_ll_rcc.c:474:10:LL_RCC_GetLPTIMClockFreq 8 static +stm32l0xx_ll_rcc.c:222:6:LL_RCC_GetSystemClocksFreq 16 static +stm32l0xx_ll_rcc.c:247:10:LL_RCC_GetUSARTClockFreq 24 static +stm32l0xx_ll_rcc.c:344:10:LL_RCC_GetI2CClockFreq 24 static +stm32l0xx_ll_rcc.c:423:10:LL_RCC_GetLPUARTClockFreq 24 static +stm32l0xx_ll_rcc.c:474:10:LL_RCC_GetLPTIMClockFreq 24 static +stm32l0xx_ll_rcc.c:579:10:RCC_GetSystemClockFreq 16 static +stm32l0xx_ll_rcc.c:622:10:RCC_GetHCLKClockFreq 16 static +stm32l0xx_ll_rcc.c:633:10:RCC_GetPCLK1ClockFreq 16 static +stm32l0xx_ll_rcc.c:644:10:RCC_GetPCLK2ClockFreq 16 static +stm32l0xx_ll_rcc.c:654:10:RCC_PLL_GetFreqDomain_SYS 24 static diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.o index 19bf0e5..3e5f0f9 100644 Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.o differ diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.su b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.su index ab2a69f..77b5e99 100644 --- a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.su +++ b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.su @@ -1,7 +1,27 @@ -stm32l0xx_ll_utils.c:147:6:LL_Init1msTick 8 static -stm32l0xx_ll_utils.c:163:6:LL_mDelay 8 static -stm32l0xx_ll_utils.c:225:6:LL_SetSystemCoreClock 0 static -stm32l0xx_ll_utils.c:239:13:LL_SetFlashLatency 8 static -stm32l0xx_ll_utils.c:521:20:UTILS_EnablePLLAndSwitchSystem 16 static -stm32l0xx_ll_utils.c:338:13:LL_PLL_ConfigSystemClock_HSI 24 static -stm32l0xx_ll_utils.c:397:13:LL_PLL_ConfigSystemClock_HSE 24 static +stm32l0xx_ll_rcc.h:695:22:LL_RCC_HSE_EnableBypass 8 static +stm32l0xx_ll_rcc.h:705:22:LL_RCC_HSE_DisableBypass 8 static +stm32l0xx_ll_rcc.h:715:22:LL_RCC_HSE_Enable 8 static +stm32l0xx_ll_rcc.h:735:26:LL_RCC_HSE_IsReady 8 static +stm32l0xx_ll_rcc.h:782:22:LL_RCC_HSI_Enable 8 static +stm32l0xx_ll_rcc.h:802:26:LL_RCC_HSI_IsReady 8 static +stm32l0xx_ll_rcc.h:1275:22:LL_RCC_SetSysClkSource 16 static +stm32l0xx_ll_rcc.h:1289:26:LL_RCC_GetSysClkSource 8 static +stm32l0xx_ll_rcc.h:1309:22:LL_RCC_SetAHBPrescaler 16 static +stm32l0xx_ll_rcc.h:1325:22:LL_RCC_SetAPB1Prescaler 16 static +stm32l0xx_ll_rcc.h:1341:22:LL_RCC_SetAPB2Prescaler 16 static +stm32l0xx_ll_rcc.h:1784:22:LL_RCC_PLL_Enable 8 static +stm32l0xx_ll_rcc.h:1805:26:LL_RCC_PLL_IsReady 8 static +stm32l0xx_ll_rcc.h:1834:22:LL_RCC_PLL_ConfigDomain_SYS 24 static +stm32l0xx_ll_utils.h:220:22:LL_InitTick 16 static +stm32l0xx_ll_system.h:912:22:LL_FLASH_SetLatency 16 static +stm32l0xx_ll_system.h:924:26:LL_FLASH_GetLatency 8 static +stm32l0xx_ll_pwr.h:285:26:LL_PWR_GetRegulVoltageScaling 8 static +stm32l0xx_ll_utils.c:147:6:LL_Init1msTick 16 static +stm32l0xx_ll_utils.c:163:6:LL_mDelay 24 static +stm32l0xx_ll_utils.c:225:6:LL_SetSystemCoreClock 16 static +stm32l0xx_ll_utils.c:239:13:LL_SetFlashLatency 32 static +stm32l0xx_ll_utils.c:338:13:LL_PLL_ConfigSystemClock_HSI 32 static +stm32l0xx_ll_utils.c:397:13:LL_PLL_ConfigSystemClock_HSE 40 static +stm32l0xx_ll_utils.c:467:17:UTILS_GetPLLOutputFrequency 24 static +stm32l0xx_ll_utils.c:497:20:UTILS_PLL_IsBusy 16 static +stm32l0xx_ll_utils.c:521:20:UTILS_EnablePLLAndSwitchSystem 32 static diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk index 40b8c42..594a220 100644 --- a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk +++ b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk @@ -37,19 +37,19 @@ C_DEPS += \ # Each subdirectory must supply rules for building sources it contributes Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.o: ../Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.c Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.o: ../Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.c Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.o: ../Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.c Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.o: ../Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.c Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.o: ../Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.c Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.o: ../Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.c Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.o: ../Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.c Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.o: ../Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.c Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk - arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DSTM32L011xx -DDEBUG -DUSE_FULL_LL_DRIVER '-DHSE_VALUE=8000000' '-DHSE_STARTUP_TIMEOUT=100' '-DLSE_STARTUP_TIMEOUT=5000' '-DLSE_VALUE=32768' '-DMSI_VALUE=2097000' '-DHSI_VALUE=16000000' '-DLSI_VALUE=37000' '-DVDD_VALUE=3300' '-DPREFETCH_ENABLE=0' '-DINSTRUCTION_CACHE_ENABLE=1' '-DDATA_CACHE_ENABLE=1' -c -I../Core/Inc -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.d" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" diff --git a/fw/Debug/iaq_wired_sensor.bin b/fw/Debug/iaq_wired_sensor.bin index 08965d5..d504be1 100755 Binary files a/fw/Debug/iaq_wired_sensor.bin and b/fw/Debug/iaq_wired_sensor.bin differ diff --git a/fw/Debug/iaq_wired_sensor.elf b/fw/Debug/iaq_wired_sensor.elf index 1a8b7e0..bbad228 100755 Binary files a/fw/Debug/iaq_wired_sensor.elf and b/fw/Debug/iaq_wired_sensor.elf differ diff --git a/fw/Debug/iaq_wired_sensor.list b/fw/Debug/iaq_wired_sensor.list index 7e0adf7..6fa4b97 100644 --- a/fw/Debug/iaq_wired_sensor.list +++ b/fw/Debug/iaq_wired_sensor.list @@ -5,47 +5,45 @@ Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 000000c0 08000000 08000000 00010000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 000010c4 080000c0 080000c0 000100c0 2**2 + 1 .text 00002300 080000c0 080000c0 000100c0 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 00000024 08001184 08001184 00011184 2**0 + 2 .rodata 0000002c 080023c0 080023c0 000123c0 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000000 080011a8 080011a8 00020004 2**0 + 3 .ARM.extab 00000000 080023ec 080023ec 00020004 2**0 CONTENTS - 4 .ARM 00000008 080011a8 080011a8 000111a8 2**2 + 4 .ARM 00000008 080023ec 080023ec 000123ec 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 5 .preinit_array 00000000 080011b0 080011b0 00020004 2**0 + 5 .preinit_array 00000000 080023f4 080023f4 00020004 2**0 CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000004 080011b0 080011b0 000111b0 2**2 + 6 .init_array 00000004 080023f4 080023f4 000123f4 2**2 CONTENTS, ALLOC, LOAD, DATA - 7 .fini_array 00000004 080011b4 080011b4 000111b4 2**2 + 7 .fini_array 00000004 080023f8 080023f8 000123f8 2**2 CONTENTS, ALLOC, LOAD, DATA - 8 .data 00000004 20000000 080011b8 00020000 2**2 + 8 .data 00000004 20000000 080023fc 00020000 2**2 CONTENTS, ALLOC, LOAD, DATA - 9 .bss 00000044 20000004 080011bc 00020004 2**2 + 9 .bss 00000044 20000004 08002400 00020004 2**2 ALLOC - 10 ._user_heap_stack 00000600 20000048 080011bc 00020048 2**0 + 10 ._user_heap_stack 00000600 20000048 08002400 00020048 2**0 ALLOC 11 .ARM.attributes 00000028 00000000 00000000 00020004 2**0 CONTENTS, READONLY - 12 .debug_info 000061e6 00000000 00000000 0002002c 2**0 + 12 .debug_info 000047c3 00000000 00000000 0002002c 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 13 .debug_abbrev 0000189b 00000000 00000000 00026212 2**0 + 13 .debug_abbrev 0000128a 00000000 00000000 000247ef 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 14 .debug_loc 00002616 00000000 00000000 00027aad 2**0 + 14 .debug_aranges 000006b8 00000000 00000000 00025a80 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS - 15 .debug_aranges 000002e8 00000000 00000000 0002a0c8 2**3 + 15 .debug_ranges 00000600 00000000 00000000 00026138 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS - 16 .debug_ranges 00000bd8 00000000 00000000 0002a3b0 2**3 + 16 .debug_macro 0000a637 00000000 00000000 00026738 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 17 .debug_macro 0000a637 00000000 00000000 0002af88 2**0 + 17 .debug_line 00004f6d 00000000 00000000 00030d6f 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 18 .debug_line 0000583d 00000000 00000000 000355bf 2**0 + 18 .debug_str 00039797 00000000 00000000 00035cdc 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 19 .debug_str 000397bb 00000000 00000000 0003adfc 2**0 - CONTENTS, READONLY, DEBUGGING, OCTETS - 20 .comment 00000053 00000000 00000000 000745b7 2**0 + 19 .comment 00000053 00000000 00000000 0006f473 2**0 CONTENTS, READONLY - 21 .debug_frame 00000664 00000000 00000000 0007460c 2**2 + 20 .debug_frame 000016e4 00000000 00000000 0006f4c8 2**2 CONTENTS, READONLY, DEBUGGING, OCTETS Disassembly of section .text: @@ -67,7 +65,7 @@ Disassembly of section .text: 80000da: bd10 pop {r4, pc} 80000dc: 20000004 .word 0x20000004 80000e0: 00000000 .word 0x00000000 - 80000e4: 0800116c .word 0x0800116c + 80000e4: 080023a8 .word 0x080023a8 080000e8 : 80000e8: 4b04 ldr r3, [pc, #16] ; (80000fc ) @@ -82,7 +80,7 @@ Disassembly of section .text: 80000fa: 46c0 nop ; (mov r8, r8) 80000fc: 00000000 .word 0x00000000 8000100: 20000008 .word 0x20000008 - 8000104: 0800116c .word 0x0800116c + 8000104: 080023a8 .word 0x080023a8 08000108 <__udivsi3>: 8000108: 2200 movs r2, #0 @@ -741,2343 +739,5360 @@ Disassembly of section .text: 8000614: 01010101 .word 0x01010101 ... -08000620 : - -i2c_context_t *i2c_context; - -int i2c_init(i2c_context_t *context) +08000620 : + * @rmtoll ISR TXE LL_I2C_IsActiveFlag_TXE + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_TXE(I2C_TypeDef *I2Cx) { - if (context == NULL) { - 8000620: 2800 cmp r0, #0 - 8000622: d003 beq.n 800062c - return I2C_ERROR; - } - i2c_context = context; - 8000624: 4b03 ldr r3, [pc, #12] ; (8000634 ) - 8000626: 6018 str r0, [r3, #0] - return I2C_OK; - 8000628: 2000 movs r0, #0 + 8000620: b580 push {r7, lr} + 8000622: b082 sub sp, #8 + 8000624: af00 add r7, sp, #0 + 8000626: 6078 str r0, [r7, #4] + return ((READ_BIT(I2Cx->ISR, I2C_ISR_TXE) == (I2C_ISR_TXE)) ? 1UL : 0UL); + 8000628: 687b ldr r3, [r7, #4] + 800062a: 699b ldr r3, [r3, #24] + 800062c: 2201 movs r2, #1 + 800062e: 4013 ands r3, r2 + 8000630: 2b01 cmp r3, #1 + 8000632: d101 bne.n 8000638 + 8000634: 2301 movs r3, #1 + 8000636: e000 b.n 800063a + 8000638: 2300 movs r3, #0 } - 800062a: 4770 bx lr - return I2C_ERROR; - 800062c: 2001 movs r0, #1 - 800062e: 4240 negs r0, r0 - 8000630: e7fb b.n 800062a - 8000632: 46c0 nop ; (mov r8, r8) - 8000634: 20000024 .word 0x20000024 + 800063a: 0018 movs r0, r3 + 800063c: 46bd mov sp, r7 + 800063e: b002 add sp, #8 + 8000640: bd80 pop {r7, pc} -08000638 : +08000642 : + * @rmtoll ISR RXNE LL_I2C_IsActiveFlag_RXNE + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_RXNE(I2C_TypeDef *I2Cx) +{ + 8000642: b580 push {r7, lr} + 8000644: b082 sub sp, #8 + 8000646: af00 add r7, sp, #0 + 8000648: 6078 str r0, [r7, #4] + return ((READ_BIT(I2Cx->ISR, I2C_ISR_RXNE) == (I2C_ISR_RXNE)) ? 1UL : 0UL); + 800064a: 687b ldr r3, [r7, #4] + 800064c: 699b ldr r3, [r3, #24] + 800064e: 2204 movs r2, #4 + 8000650: 4013 ands r3, r2 + 8000652: 2b04 cmp r3, #4 + 8000654: d101 bne.n 800065a + 8000656: 2301 movs r3, #1 + 8000658: e000 b.n 800065c + 800065a: 2300 movs r3, #0 +} + 800065c: 0018 movs r0, r3 + 800065e: 46bd mov sp, r7 + 8000660: b002 add sp, #8 + 8000662: bd80 pop {r7, pc} -int i2c_transmit(uint8_t address, uint8_t *buffer, int len) +08000664 : + * @rmtoll ISR NACKF LL_I2C_IsActiveFlag_NACK + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_NACK(I2C_TypeDef *I2Cx) { - LL_I2C_HandleTransfer(i2c_context->i2c, address, LL_I2C_ADDRSLAVE_7BIT, len, - 8000638: 4b15 ldr r3, [pc, #84] ; (8000690 ) + 8000664: b580 push {r7, lr} + 8000666: b082 sub sp, #8 + 8000668: af00 add r7, sp, #0 + 800066a: 6078 str r0, [r7, #4] + return ((READ_BIT(I2Cx->ISR, I2C_ISR_NACKF) == (I2C_ISR_NACKF)) ? 1UL : 0UL); + 800066c: 687b ldr r3, [r7, #4] + 800066e: 699b ldr r3, [r3, #24] + 8000670: 2210 movs r2, #16 + 8000672: 4013 ands r3, r2 + 8000674: 2b10 cmp r3, #16 + 8000676: d101 bne.n 800067c + 8000678: 2301 movs r3, #1 + 800067a: e000 b.n 800067e + 800067c: 2300 movs r3, #0 +} + 800067e: 0018 movs r0, r3 + 8000680: 46bd mov sp, r7 + 8000682: b002 add sp, #8 + 8000684: bd80 pop {r7, pc} + +08000686 : + * @rmtoll ISR STOPF LL_I2C_IsActiveFlag_STOP + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_STOP(I2C_TypeDef *I2Cx) { - 800063a: b570 push {r4, r5, r6, lr} - LL_I2C_HandleTransfer(i2c_context->i2c, address, LL_I2C_ADDRSLAVE_7BIT, len, - 800063c: 681b ldr r3, [r3, #0] + 8000686: b580 push {r7, lr} + 8000688: b082 sub sp, #8 + 800068a: af00 add r7, sp, #0 + 800068c: 6078 str r0, [r7, #4] + return ((READ_BIT(I2Cx->ISR, I2C_ISR_STOPF) == (I2C_ISR_STOPF)) ? 1UL : 0UL); + 800068e: 687b ldr r3, [r7, #4] + 8000690: 699b ldr r3, [r3, #24] + 8000692: 2220 movs r2, #32 + 8000694: 4013 ands r3, r2 + 8000696: 2b20 cmp r3, #32 + 8000698: d101 bne.n 800069e + 800069a: 2301 movs r3, #1 + 800069c: e000 b.n 80006a0 + 800069e: 2300 movs r3, #0 +} + 80006a0: 0018 movs r0, r3 + 80006a2: 46bd mov sp, r7 + 80006a4: b002 add sp, #8 + 80006a6: bd80 pop {r7, pc} + +080006a8 : + * @rmtoll ICR STOPCF LL_I2C_ClearFlag_STOP + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ClearFlag_STOP(I2C_TypeDef *I2Cx) +{ + 80006a8: b580 push {r7, lr} + 80006aa: b082 sub sp, #8 + 80006ac: af00 add r7, sp, #0 + 80006ae: 6078 str r0, [r7, #4] + SET_BIT(I2Cx->ICR, I2C_ICR_STOPCF); + 80006b0: 687b ldr r3, [r7, #4] + 80006b2: 69db ldr r3, [r3, #28] + 80006b4: 2220 movs r2, #32 + 80006b6: 431a orrs r2, r3 + 80006b8: 687b ldr r3, [r7, #4] + 80006ba: 61da str r2, [r3, #28] +} + 80006bc: 46c0 nop ; (mov r8, r8) + 80006be: 46bd mov sp, r7 + 80006c0: b002 add sp, #8 + 80006c2: bd80 pop {r7, pc} + +080006c4 : + * @arg @ref LL_I2C_GENERATE_RESTART_10BIT_WRITE * @retval None */ __STATIC_INLINE void LL_I2C_HandleTransfer(I2C_TypeDef *I2Cx, uint32_t SlaveAddr, uint32_t SlaveAddrSize, uint32_t TransferSize, uint32_t EndMode, uint32_t Request) { + 80006c4: b580 push {r7, lr} + 80006c6: b084 sub sp, #16 + 80006c8: af00 add r7, sp, #0 + 80006ca: 60f8 str r0, [r7, #12] + 80006cc: 60b9 str r1, [r7, #8] + 80006ce: 607a str r2, [r7, #4] + 80006d0: 603b str r3, [r7, #0] MODIFY_REG(I2Cx->CR2, I2C_CR2_SADD | I2C_CR2_ADD10 | - 800063e: 0414 lsls r4, r2, #16 - 8000640: 681b ldr r3, [r3, #0] - 8000642: 4304 orrs r4, r0 - 8000644: 685d ldr r5, [r3, #4] - 8000646: 4813 ldr r0, [pc, #76] ; (8000694 ) - 8000648: 4005 ands r5, r0 - 800064a: 4813 ldr r0, [pc, #76] ; (8000698 ) - 800064c: 432c orrs r4, r5 - 800064e: 4304 orrs r4, r0 - 8000650: 605c str r4, [r3, #4] - return ((READ_BIT(I2Cx->ISR, I2C_ISR_STOPF) == (I2C_ISR_STOPF)) ? 1UL : 0UL); - 8000652: 2020 movs r0, #32 + 80006d2: 68fb ldr r3, [r7, #12] + 80006d4: 685b ldr r3, [r3, #4] + 80006d6: 69fa ldr r2, [r7, #28] + 80006d8: 0d51 lsrs r1, r2, #21 + 80006da: 2280 movs r2, #128 ; 0x80 + 80006dc: 00d2 lsls r2, r2, #3 + 80006de: 400a ands r2, r1 + 80006e0: 490a ldr r1, [pc, #40] ; (800070c ) + 80006e2: 430a orrs r2, r1 + 80006e4: 43d2 mvns r2, r2 + 80006e6: 401a ands r2, r3 + 80006e8: 68b9 ldr r1, [r7, #8] + 80006ea: 687b ldr r3, [r7, #4] + 80006ec: 4319 orrs r1, r3 + 80006ee: 683b ldr r3, [r7, #0] + 80006f0: 041b lsls r3, r3, #16 + 80006f2: 4319 orrs r1, r3 + 80006f4: 69bb ldr r3, [r7, #24] + 80006f6: 4319 orrs r1, r3 + 80006f8: 69fb ldr r3, [r7, #28] + 80006fa: 430b orrs r3, r1 + 80006fc: 431a orrs r2, r3 + 80006fe: 68fb ldr r3, [r7, #12] + 8000700: 605a str r2, [r3, #4] (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | I2C_CR2_START | I2C_CR2_STOP | I2C_CR2_RELOAD | I2C_CR2_NBYTES | I2C_CR2_AUTOEND | I2C_CR2_HEAD10R, SlaveAddr | SlaveAddrSize | (TransferSize << I2C_CR2_NBYTES_Pos) | EndMode | Request); } - 8000654: 2400 movs r4, #0 - return ((READ_BIT(I2Cx->ISR, I2C_ISR_TXE) == (I2C_ISR_TXE)) ? 1UL : 0UL); - 8000656: 2501 movs r5, #1 - return ((READ_BIT(I2Cx->ISR, I2C_ISR_STOPF) == (I2C_ISR_STOPF)) ? 1UL : 0UL); - 8000658: 699e ldr r6, [r3, #24] - 800065a: 4206 tst r6, r0 - 800065c: d00d beq.n 800067a - SET_BIT(I2Cx->ICR, I2C_ICR_STOPCF); - 800065e: 69d9 ldr r1, [r3, #28] - 8000660: 4301 orrs r1, r0 - 8000662: 61d9 str r1, [r3, #28] - return ((READ_BIT(I2Cx->ISR, I2C_ISR_NACKF) == (I2C_ISR_NACKF)) ? 1UL : 0UL); - 8000664: 6999 ldr r1, [r3, #24] - 8000666: 2310 movs r3, #16 - 8000668: 0008 movs r0, r1 - 800066a: 4018 ands r0, r3 - 800066c: 4219 tst r1, r3 - 800066e: d10d bne.n 800068c - } - LL_I2C_ClearFlag_STOP(i2c_context->i2c); - if (LL_I2C_IsActiveFlag_NACK(i2c_context->i2c)) { - return I2C_ERROR_NACK; - } - if (len != i) { - 8000670: 42a2 cmp r2, r4 - 8000672: d001 beq.n 8000678 - // this will probably never happen, as NACK flag - // is raised everytime len != number of TXed bytes - return I2C_ERROR_TX_INCOMPLETE; - 8000674: 2003 movs r0, #3 - return I2C_ERROR_NACK; - 8000676: 4240 negs r0, r0 - } - return I2C_OK; + 8000702: 46c0 nop ; (mov r8, r8) + 8000704: 46bd mov sp, r7 + 8000706: b004 add sp, #16 + 8000708: bd80 pop {r7, pc} + 800070a: 46c0 nop ; (mov r8, r8) + 800070c: 03ff7bff .word 0x03ff7bff + +08000710 : + * @rmtoll RXDR RXDATA LL_I2C_ReceiveData8 + * @param I2Cx I2C Instance. + * @retval Value between Min_Data=0x00 and Max_Data=0xFF + */ +__STATIC_INLINE uint8_t LL_I2C_ReceiveData8(I2C_TypeDef *I2Cx) +{ + 8000710: b580 push {r7, lr} + 8000712: b082 sub sp, #8 + 8000714: af00 add r7, sp, #0 + 8000716: 6078 str r0, [r7, #4] + return (uint8_t)(READ_BIT(I2Cx->RXDR, I2C_RXDR_RXDATA)); + 8000718: 687b ldr r3, [r7, #4] + 800071a: 6a5b ldr r3, [r3, #36] ; 0x24 + 800071c: b2db uxtb r3, r3 } - 8000678: bd70 pop {r4, r5, r6, pc} - return ((READ_BIT(I2Cx->ISR, I2C_ISR_TXE) == (I2C_ISR_TXE)) ? 1UL : 0UL); - 800067a: 699e ldr r6, [r3, #24] - if (LL_I2C_IsActiveFlag_TXE(i2c_context->i2c)) { - 800067c: 422e tst r6, r5 - 800067e: d0eb beq.n 8000658 - if (i < len) { - 8000680: 42a2 cmp r2, r4 - 8000682: dde9 ble.n 8000658 + 800071e: 0018 movs r0, r3 + 8000720: 46bd mov sp, r7 + 8000722: b002 add sp, #8 + 8000724: bd80 pop {r7, pc} + +08000726 : + * @param I2Cx I2C Instance. * @param Data Value between Min_Data=0x00 and Max_Data=0xFF * @retval None */ __STATIC_INLINE void LL_I2C_TransmitData8(I2C_TypeDef *I2Cx, uint8_t Data) { + 8000726: b580 push {r7, lr} + 8000728: b082 sub sp, #8 + 800072a: af00 add r7, sp, #0 + 800072c: 6078 str r0, [r7, #4] + 800072e: 000a movs r2, r1 + 8000730: 1cfb adds r3, r7, #3 + 8000732: 701a strb r2, [r3, #0] WRITE_REG(I2Cx->TXDR, Data); - 8000684: 5d0e ldrb r6, [r1, r4] - 8000686: 3401 adds r4, #1 - 8000688: 629e str r6, [r3, #40] ; 0x28 + 8000734: 1cfb adds r3, r7, #3 + 8000736: 781a ldrb r2, [r3, #0] + 8000738: 687b ldr r3, [r7, #4] + 800073a: 629a str r2, [r3, #40] ; 0x28 } - 800068a: e7e5 b.n 8000658 - return I2C_ERROR_NACK; - 800068c: 2002 movs r0, #2 - 800068e: e7f2 b.n 8000676 - 8000690: 20000024 .word 0x20000024 - 8000694: fc008000 .word 0xfc008000 - 8000698: 80002000 .word 0x80002000 + 800073c: 46c0 nop ; (mov r8, r8) + 800073e: 46bd mov sp, r7 + 8000740: b002 add sp, #8 + 8000742: bd80 pop {r7, pc} -0800069c : +08000744 : +#include "i2c.h" + +i2c_context_t *i2c_context; + +int i2c_init(i2c_context_t *context) +{ + 8000744: b580 push {r7, lr} + 8000746: b082 sub sp, #8 + 8000748: af00 add r7, sp, #0 + 800074a: 6078 str r0, [r7, #4] + if (context == NULL) { + 800074c: 687b ldr r3, [r7, #4] + 800074e: 2b00 cmp r3, #0 + 8000750: d102 bne.n 8000758 + return I2C_ERROR; + 8000752: 2301 movs r3, #1 + 8000754: 425b negs r3, r3 + 8000756: e003 b.n 8000760 + } + i2c_context = context; + 8000758: 4b03 ldr r3, [pc, #12] ; (8000768 ) + 800075a: 687a ldr r2, [r7, #4] + 800075c: 601a str r2, [r3, #0] + return I2C_OK; + 800075e: 2300 movs r3, #0 +} + 8000760: 0018 movs r0, r3 + 8000762: 46bd mov sp, r7 + 8000764: b002 add sp, #8 + 8000766: bd80 pop {r7, pc} + 8000768: 20000024 .word 0x20000024 + +0800076c : + +int i2c_transmit(uint8_t address, uint8_t *buffer, int len) +{ + 800076c: b580 push {r7, lr} + 800076e: b088 sub sp, #32 + 8000770: af02 add r7, sp, #8 + 8000772: 60b9 str r1, [r7, #8] + 8000774: 607a str r2, [r7, #4] + 8000776: 210f movs r1, #15 + 8000778: 187b adds r3, r7, r1 + 800077a: 1c02 adds r2, r0, #0 + 800077c: 701a strb r2, [r3, #0] + LL_I2C_HandleTransfer(i2c_context->i2c, address, LL_I2C_ADDRSLAVE_7BIT, len, + 800077e: 4b28 ldr r3, [pc, #160] ; (8000820 ) + 8000780: 681b ldr r3, [r3, #0] + 8000782: 6818 ldr r0, [r3, #0] + 8000784: 187b adds r3, r7, r1 + 8000786: 7819 ldrb r1, [r3, #0] + 8000788: 687a ldr r2, [r7, #4] + 800078a: 4b26 ldr r3, [pc, #152] ; (8000824 ) + 800078c: 9301 str r3, [sp, #4] + 800078e: 2380 movs r3, #128 ; 0x80 + 8000790: 049b lsls r3, r3, #18 + 8000792: 9300 str r3, [sp, #0] + 8000794: 0013 movs r3, r2 + 8000796: 2200 movs r2, #0 + 8000798: f7ff ff94 bl 80006c4 + LL_I2C_MODE_AUTOEND, LL_I2C_GENERATE_START_WRITE); + int i = 0; + 800079c: 2300 movs r3, #0 + 800079e: 617b str r3, [r7, #20] + // Autoend mode will raise STOP flag if NACK is detected + // (or if desired number of bytes is transmitted) + while (!LL_I2C_IsActiveFlag_STOP(i2c_context->i2c)) { + 80007a0: e018 b.n 80007d4 + if (LL_I2C_IsActiveFlag_TXE(i2c_context->i2c)) { + 80007a2: 4b1f ldr r3, [pc, #124] ; (8000820 ) + 80007a4: 681b ldr r3, [r3, #0] + 80007a6: 681b ldr r3, [r3, #0] + 80007a8: 0018 movs r0, r3 + 80007aa: f7ff ff39 bl 8000620 + 80007ae: 1e03 subs r3, r0, #0 + 80007b0: d010 beq.n 80007d4 + if (i < len) { + 80007b2: 697a ldr r2, [r7, #20] + 80007b4: 687b ldr r3, [r7, #4] + 80007b6: 429a cmp r2, r3 + 80007b8: da0c bge.n 80007d4 + LL_I2C_TransmitData8(i2c_context->i2c, buffer[i++]); + 80007ba: 4b19 ldr r3, [pc, #100] ; (8000820 ) + 80007bc: 681b ldr r3, [r3, #0] + 80007be: 6818 ldr r0, [r3, #0] + 80007c0: 697b ldr r3, [r7, #20] + 80007c2: 1c5a adds r2, r3, #1 + 80007c4: 617a str r2, [r7, #20] + 80007c6: 001a movs r2, r3 + 80007c8: 68bb ldr r3, [r7, #8] + 80007ca: 189b adds r3, r3, r2 + 80007cc: 781b ldrb r3, [r3, #0] + 80007ce: 0019 movs r1, r3 + 80007d0: f7ff ffa9 bl 8000726 + while (!LL_I2C_IsActiveFlag_STOP(i2c_context->i2c)) { + 80007d4: 4b12 ldr r3, [pc, #72] ; (8000820 ) + 80007d6: 681b ldr r3, [r3, #0] + 80007d8: 681b ldr r3, [r3, #0] + 80007da: 0018 movs r0, r3 + 80007dc: f7ff ff53 bl 8000686 + 80007e0: 1e03 subs r3, r0, #0 + 80007e2: d0de beq.n 80007a2 + } + } + } + LL_I2C_ClearFlag_STOP(i2c_context->i2c); + 80007e4: 4b0e ldr r3, [pc, #56] ; (8000820 ) + 80007e6: 681b ldr r3, [r3, #0] + 80007e8: 681b ldr r3, [r3, #0] + 80007ea: 0018 movs r0, r3 + 80007ec: f7ff ff5c bl 80006a8 + if (LL_I2C_IsActiveFlag_NACK(i2c_context->i2c)) { + 80007f0: 4b0b ldr r3, [pc, #44] ; (8000820 ) + 80007f2: 681b ldr r3, [r3, #0] + 80007f4: 681b ldr r3, [r3, #0] + 80007f6: 0018 movs r0, r3 + 80007f8: f7ff ff34 bl 8000664 + 80007fc: 1e03 subs r3, r0, #0 + 80007fe: d002 beq.n 8000806 + return I2C_ERROR_NACK; + 8000800: 2302 movs r3, #2 + 8000802: 425b negs r3, r3 + 8000804: e007 b.n 8000816 + } + if (len != i) { + 8000806: 687a ldr r2, [r7, #4] + 8000808: 697b ldr r3, [r7, #20] + 800080a: 429a cmp r2, r3 + 800080c: d002 beq.n 8000814 + // this will probably never happen, as NACK flag + // is raised everytime len != number of TXed bytes + return I2C_ERROR_TX_INCOMPLETE; + 800080e: 2303 movs r3, #3 + 8000810: 425b negs r3, r3 + 8000812: e000 b.n 8000816 + } + return I2C_OK; + 8000814: 2300 movs r3, #0 +} + 8000816: 0018 movs r0, r3 + 8000818: 46bd mov sp, r7 + 800081a: b006 add sp, #24 + 800081c: bd80 pop {r7, pc} + 800081e: 46c0 nop ; (mov r8, r8) + 8000820: 20000024 .word 0x20000024 + 8000824: 80002000 .word 0x80002000 + +08000828 : int i2c_receive(uint8_t address, uint8_t *buffer, int len) { - 800069c: b5f0 push {r4, r5, r6, r7, lr} + 8000828: b590 push {r4, r7, lr} + 800082a: b089 sub sp, #36 ; 0x24 + 800082c: af02 add r7, sp, #8 + 800082e: 60b9 str r1, [r7, #8] + 8000830: 607a str r2, [r7, #4] + 8000832: 210f movs r1, #15 + 8000834: 187b adds r3, r7, r1 + 8000836: 1c02 adds r2, r0, #0 + 8000838: 701a strb r2, [r3, #0] LL_I2C_HandleTransfer(i2c_context->i2c, address, LL_I2C_ADDRSLAVE_7BIT, len, - 800069e: 4d12 ldr r5, [pc, #72] ; (80006e8 ) - 80006a0: 682b ldr r3, [r5, #0] - 80006a2: 681c ldr r4, [r3, #0] - MODIFY_REG(I2Cx->CR2, I2C_CR2_SADD | I2C_CR2_ADD10 | - 80006a4: 0413 lsls r3, r2, #16 - 80006a6: 6866 ldr r6, [r4, #4] - 80006a8: 4303 orrs r3, r0 - 80006aa: 4810 ldr r0, [pc, #64] ; (80006ec ) - 80006ac: 4006 ands r6, r0 - 80006ae: 4810 ldr r0, [pc, #64] ; (80006f0 ) - 80006b0: 4333 orrs r3, r6 - 80006b2: 4303 orrs r3, r0 - 80006b4: 6063 str r3, [r4, #4] - return ((READ_BIT(I2Cx->ISR, I2C_ISR_RXNE) == (I2C_ISR_RXNE)) ? 1UL : 0UL); - 80006b6: 2604 movs r6, #4 -} - 80006b8: 2300 movs r3, #0 - return ((READ_BIT(I2Cx->ISR, I2C_ISR_STOPF) == (I2C_ISR_STOPF)) ? 1UL : 0UL); - 80006ba: 2420 movs r4, #32 + 800083a: 4b23 ldr r3, [pc, #140] ; (80008c8 ) + 800083c: 681b ldr r3, [r3, #0] + 800083e: 6818 ldr r0, [r3, #0] + 8000840: 187b adds r3, r7, r1 + 8000842: 7819 ldrb r1, [r3, #0] + 8000844: 687a ldr r2, [r7, #4] + 8000846: 4b21 ldr r3, [pc, #132] ; (80008cc ) + 8000848: 9301 str r3, [sp, #4] + 800084a: 2380 movs r3, #128 ; 0x80 + 800084c: 049b lsls r3, r3, #18 + 800084e: 9300 str r3, [sp, #0] + 8000850: 0013 movs r3, r2 + 8000852: 2200 movs r2, #0 + 8000854: f7ff ff36 bl 80006c4 LL_I2C_MODE_AUTOEND, LL_I2C_GENERATE_START_READ); int i = 0; + 8000858: 2300 movs r3, #0 + 800085a: 617b str r3, [r7, #20] while (!LL_I2C_IsActiveFlag_STOP(i2c_context->i2c)) { - 80006bc: 6828 ldr r0, [r5, #0] - 80006be: 6800 ldr r0, [r0, #0] - 80006c0: 6987 ldr r7, [r0, #24] - 80006c2: 4227 tst r7, r4 - 80006c4: d108 bne.n 80006d8 - return ((READ_BIT(I2Cx->ISR, I2C_ISR_RXNE) == (I2C_ISR_RXNE)) ? 1UL : 0UL); - 80006c6: 6987 ldr r7, [r0, #24] - 80006c8: 4237 tst r7, r6 - 80006ca: d0f9 beq.n 80006c0 + 800085c: e019 b.n 8000892 if (LL_I2C_IsActiveFlag_RXNE(i2c_context->i2c)) { + 800085e: 4b1a ldr r3, [pc, #104] ; (80008c8 ) + 8000860: 681b ldr r3, [r3, #0] + 8000862: 681b ldr r3, [r3, #0] + 8000864: 0018 movs r0, r3 + 8000866: f7ff feec bl 8000642 + 800086a: 1e03 subs r3, r0, #0 + 800086c: d011 beq.n 8000892 if (i < len) { - 80006cc: 429a cmp r2, r3 - 80006ce: ddf7 ble.n 80006c0 - return (uint8_t)(READ_BIT(I2Cx->RXDR, I2C_RXDR_RXDATA)); - 80006d0: 6a40 ldr r0, [r0, #36] ; 0x24 - 80006d2: 54c8 strb r0, [r1, r3] - 80006d4: 3301 adds r3, #1 - 80006d6: e7f1 b.n 80006bc - SET_BIT(I2Cx->ICR, I2C_ICR_STOPCF); - 80006d8: 69c1 ldr r1, [r0, #28] - 80006da: 430c orrs r4, r1 - 80006dc: 61c4 str r4, [r0, #28] + 800086e: 697a ldr r2, [r7, #20] + 8000870: 687b ldr r3, [r7, #4] + 8000872: 429a cmp r2, r3 + 8000874: da0d bge.n 8000892 + buffer[i++] = LL_I2C_ReceiveData8(i2c_context->i2c); + 8000876: 4b14 ldr r3, [pc, #80] ; (80008c8 ) + 8000878: 681b ldr r3, [r3, #0] + 800087a: 6819 ldr r1, [r3, #0] + 800087c: 697b ldr r3, [r7, #20] + 800087e: 1c5a adds r2, r3, #1 + 8000880: 617a str r2, [r7, #20] + 8000882: 001a movs r2, r3 + 8000884: 68bb ldr r3, [r7, #8] + 8000886: 189c adds r4, r3, r2 + 8000888: 0008 movs r0, r1 + 800088a: f7ff ff41 bl 8000710 + 800088e: 0003 movs r3, r0 + 8000890: 7023 strb r3, [r4, #0] + while (!LL_I2C_IsActiveFlag_STOP(i2c_context->i2c)) { + 8000892: 4b0d ldr r3, [pc, #52] ; (80008c8 ) + 8000894: 681b ldr r3, [r3, #0] + 8000896: 681b ldr r3, [r3, #0] + 8000898: 0018 movs r0, r3 + 800089a: f7ff fef4 bl 8000686 + 800089e: 1e03 subs r3, r0, #0 + 80008a0: d0dd beq.n 800085e + } + } } LL_I2C_ClearFlag_STOP(i2c_context->i2c); + 80008a2: 4b09 ldr r3, [pc, #36] ; (80008c8 ) + 80008a4: 681b ldr r3, [r3, #0] + 80008a6: 681b ldr r3, [r3, #0] + 80008a8: 0018 movs r0, r3 + 80008aa: f7ff fefd bl 80006a8 if (len != i) { + 80008ae: 687a ldr r2, [r7, #4] + 80008b0: 697b ldr r3, [r7, #20] + 80008b2: 429a cmp r2, r3 + 80008b4: d002 beq.n 80008bc return I2C_ERROR_RX_INCOMPLETE; + 80008b6: 2304 movs r3, #4 + 80008b8: 425b negs r3, r3 + 80008ba: e000 b.n 80008be } return I2C_OK; // TODO error detection - 80006de: 2000 movs r0, #0 - if (len != i) { - 80006e0: 429a cmp r2, r3 - 80006e2: d000 beq.n 80006e6 - return I2C_ERROR_RX_INCOMPLETE; - 80006e4: 3804 subs r0, #4 + 80008bc: 2300 movs r3, #0 } - 80006e6: bdf0 pop {r4, r5, r6, r7, pc} - 80006e8: 20000024 .word 0x20000024 - 80006ec: fc008000 .word 0xfc008000 - 80006f0: 82002400 .word 0x82002400 + 80008be: 0018 movs r0, r3 + 80008c0: 46bd mov sp, r7 + 80008c2: b007 add sp, #28 + 80008c4: bd90 pop {r4, r7, pc} + 80008c6: 46c0 nop ; (mov r8, r8) + 80008c8: 20000024 .word 0x20000024 + 80008cc: 80002400 .word 0x80002400 -080006f4 : +080008d0 : + * @rmtoll IDR IDy LL_GPIO_ReadInputPort + * @param GPIOx GPIO Port + * @retval Input data register value of port + */ +__STATIC_INLINE uint32_t LL_GPIO_ReadInputPort(GPIO_TypeDef *GPIOx) +{ + 80008d0: b580 push {r7, lr} + 80008d2: b082 sub sp, #8 + 80008d4: af00 add r7, sp, #0 + 80008d6: 6078 str r0, [r7, #4] + return (uint32_t)(READ_REG(GPIOx->IDR)); + 80008d8: 687b ldr r3, [r7, #4] + 80008da: 691b ldr r3, [r3, #16] +} + 80008dc: 0018 movs r0, r3 + 80008de: 46bd mov sp, r7 + 80008e0: b002 add sp, #8 + 80008e2: bd80 pop {r7, pc} + +080008e4 : + * @param GPIOx GPIO Port + * @param PortValue Level value for each pin of the port + * @retval None + */ +__STATIC_INLINE void LL_GPIO_WriteOutputPort(GPIO_TypeDef *GPIOx, uint32_t PortValue) +{ + 80008e4: b580 push {r7, lr} + 80008e6: b082 sub sp, #8 + 80008e8: af00 add r7, sp, #0 + 80008ea: 6078 str r0, [r7, #4] + 80008ec: 6039 str r1, [r7, #0] + WRITE_REG(GPIOx->ODR, PortValue); + 80008ee: 687b ldr r3, [r7, #4] + 80008f0: 683a ldr r2, [r7, #0] + 80008f2: 615a str r2, [r3, #20] +} + 80008f4: 46c0 nop ; (mov r8, r8) + 80008f6: 46bd mov sp, r7 + 80008f8: b002 add sp, #8 + 80008fa: bd80 pop {r7, pc} + +080008fc : + * @arg @ref LL_GPIO_PIN_15 + * @arg @ref LL_GPIO_PIN_ALL + * @retval None + */ +__STATIC_INLINE void LL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint32_t PinMask) +{ + 80008fc: b580 push {r7, lr} + 80008fe: b084 sub sp, #16 + 8000900: af00 add r7, sp, #0 + 8000902: 6078 str r0, [r7, #4] + 8000904: 6039 str r1, [r7, #0] + uint32_t odr = READ_REG(GPIOx->ODR); + 8000906: 687b ldr r3, [r7, #4] + 8000908: 695b ldr r3, [r3, #20] + 800090a: 60fb str r3, [r7, #12] + WRITE_REG(GPIOx->BSRR, ((odr & PinMask) << 16u) | (~odr & PinMask)); + 800090c: 68fb ldr r3, [r7, #12] + 800090e: 683a ldr r2, [r7, #0] + 8000910: 4013 ands r3, r2 + 8000912: 041a lsls r2, r3, #16 + 8000914: 68fb ldr r3, [r7, #12] + 8000916: 43db mvns r3, r3 + 8000918: 6839 ldr r1, [r7, #0] + 800091a: 400b ands r3, r1 + 800091c: 431a orrs r2, r3 + 800091e: 687b ldr r3, [r7, #4] + 8000920: 619a str r2, [r3, #24] +} + 8000922: 46c0 nop ; (mov r8, r8) + 8000924: 46bd mov sp, r7 + 8000926: b004 add sp, #16 + 8000928: bd80 pop {r7, pc} + ... + +0800092c : + * uint8_t green: green color intensity, possible values 0 ... 255 * uint8_t blue: blue color intensity, possible values 0 ... 255 * NOTE: if (color * led_pwm_max) < 255, LED will be off */ void led_set_color(uint8_t red, uint8_t green, uint8_t blue) { + 800092c: b590 push {r4, r7, lr} + 800092e: b083 sub sp, #12 + 8000930: af00 add r7, sp, #0 + 8000932: 0004 movs r4, r0 + 8000934: 0008 movs r0, r1 + 8000936: 0011 movs r1, r2 + 8000938: 1dfb adds r3, r7, #7 + 800093a: 1c22 adds r2, r4, #0 + 800093c: 701a strb r2, [r3, #0] + 800093e: 1dbb adds r3, r7, #6 + 8000940: 1c02 adds r2, r0, #0 + 8000942: 701a strb r2, [r3, #0] + 8000944: 1d7b adds r3, r7, #5 + 8000946: 1c0a adds r2, r1, #0 + 8000948: 701a strb r2, [r3, #0] led_red_intensity = (int)red * led_pwm_max / 255; - 80006f4: 4b0c ldr r3, [pc, #48] ; (8000728 ) -{ - 80006f6: b570 push {r4, r5, r6, lr} - led_red_intensity = (int)red * led_pwm_max / 255; - 80006f8: 681c ldr r4, [r3, #0] -{ - 80006fa: 000d movs r5, r1 - led_red_intensity = (int)red * led_pwm_max / 255; - 80006fc: 4360 muls r0, r4 - 80006fe: 21ff movs r1, #255 ; 0xff -{ - 8000700: 0016 movs r6, r2 - led_red_intensity = (int)red * led_pwm_max / 255; - 8000702: f7ff fd8b bl 800021c <__divsi3> - 8000706: 4b09 ldr r3, [pc, #36] ; (800072c ) + 800094a: 1dfb adds r3, r7, #7 + 800094c: 781a ldrb r2, [r3, #0] + 800094e: 4b14 ldr r3, [pc, #80] ; (80009a0 ) + 8000950: 681b ldr r3, [r3, #0] + 8000952: 4353 muls r3, r2 + 8000954: 21ff movs r1, #255 ; 0xff + 8000956: 0018 movs r0, r3 + 8000958: f7ff fc60 bl 800021c <__divsi3> + 800095c: 0003 movs r3, r0 + 800095e: 001a movs r2, r3 + 8000960: 4b10 ldr r3, [pc, #64] ; (80009a4 ) + 8000962: 601a str r2, [r3, #0] led_green_intensity = (int)green * led_pwm_max / 255; - 8000708: 21ff movs r1, #255 ; 0xff - led_red_intensity = (int)red * led_pwm_max / 255; - 800070a: 6018 str r0, [r3, #0] - led_green_intensity = (int)green * led_pwm_max / 255; - 800070c: 0028 movs r0, r5 - 800070e: 4360 muls r0, r4 - 8000710: f7ff fd84 bl 800021c <__divsi3> - 8000714: 4b06 ldr r3, [pc, #24] ; (8000730 ) + 8000964: 1dbb adds r3, r7, #6 + 8000966: 781a ldrb r2, [r3, #0] + 8000968: 4b0d ldr r3, [pc, #52] ; (80009a0 ) + 800096a: 681b ldr r3, [r3, #0] + 800096c: 4353 muls r3, r2 + 800096e: 21ff movs r1, #255 ; 0xff + 8000970: 0018 movs r0, r3 + 8000972: f7ff fc53 bl 800021c <__divsi3> + 8000976: 0003 movs r3, r0 + 8000978: 001a movs r2, r3 + 800097a: 4b0b ldr r3, [pc, #44] ; (80009a8 ) + 800097c: 601a str r2, [r3, #0] led_blue_intensity = (int)blue * led_pwm_max / 255; - 8000716: 21ff movs r1, #255 ; 0xff - led_green_intensity = (int)green * led_pwm_max / 255; - 8000718: 6018 str r0, [r3, #0] - led_blue_intensity = (int)blue * led_pwm_max / 255; - 800071a: 0020 movs r0, r4 - 800071c: 4370 muls r0, r6 - 800071e: f7ff fd7d bl 800021c <__divsi3> - 8000722: 4b04 ldr r3, [pc, #16] ; (8000734 ) - 8000724: 6018 str r0, [r3, #0] + 800097e: 1d7b adds r3, r7, #5 + 8000980: 781a ldrb r2, [r3, #0] + 8000982: 4b07 ldr r3, [pc, #28] ; (80009a0 ) + 8000984: 681b ldr r3, [r3, #0] + 8000986: 4353 muls r3, r2 + 8000988: 21ff movs r1, #255 ; 0xff + 800098a: 0018 movs r0, r3 + 800098c: f7ff fc46 bl 800021c <__divsi3> + 8000990: 0003 movs r3, r0 + 8000992: 001a movs r2, r3 + 8000994: 4b05 ldr r3, [pc, #20] ; (80009ac ) + 8000996: 601a str r2, [r3, #0] } - 8000726: bd70 pop {r4, r5, r6, pc} - 8000728: 2000002c .word 0x2000002c - 800072c: 20000030 .word 0x20000030 - 8000730: 20000028 .word 0x20000028 - 8000734: 20000038 .word 0x20000038 + 8000998: 46c0 nop ; (mov r8, r8) + 800099a: 46bd mov sp, r7 + 800099c: b003 add sp, #12 + 800099e: bd90 pop {r4, r7, pc} + 80009a0: 2000002c .word 0x2000002c + 80009a4: 20000030 .word 0x20000030 + 80009a8: 20000028 .word 0x20000028 + 80009ac: 20000038 .word 0x20000038 -08000738 : +080009b0 : + port_value &= ~pin_mask; + LL_GPIO_WriteOutputPort(port, port_value); +} + +void led_gpio_on(GPIO_TypeDef *port, uint32_t pin_mask) +{ + 80009b0: b580 push {r7, lr} + 80009b2: b084 sub sp, #16 + 80009b4: af00 add r7, sp, #0 + 80009b6: 6078 str r0, [r7, #4] + 80009b8: 6039 str r1, [r7, #0] + uint32_t port_value; + port_value = LL_GPIO_ReadInputPort(port); + 80009ba: 687b ldr r3, [r7, #4] + 80009bc: 0018 movs r0, r3 + 80009be: f7ff ff87 bl 80008d0 + 80009c2: 0003 movs r3, r0 + 80009c4: 60fb str r3, [r7, #12] + port_value |= pin_mask; + 80009c6: 68fa ldr r2, [r7, #12] + 80009c8: 683b ldr r3, [r7, #0] + 80009ca: 4313 orrs r3, r2 + 80009cc: 60fb str r3, [r7, #12] + LL_GPIO_WriteOutputPort(port, port_value); + 80009ce: 68fa ldr r2, [r7, #12] + 80009d0: 687b ldr r3, [r7, #4] + 80009d2: 0011 movs r1, r2 + 80009d4: 0018 movs r0, r3 + 80009d6: f7ff ff85 bl 80008e4 +} + 80009da: 46c0 nop ; (mov r8, r8) + 80009dc: 46bd mov sp, r7 + 80009de: b004 add sp, #16 + 80009e0: bd80 pop {r7, pc} + ... + +080009e4 : + * led_pwm_handler(): + * handles switching LEDs on/off according to desired intensity; + * should be regularly called in timer routine, preferably in SysTick_Handler() */ void led_pwm_handler() { + 80009e4: b580 push {r7, lr} + 80009e6: b084 sub sp, #16 + 80009e8: af00 add r7, sp, #0 int new_red_state, new_green_state, new_blue_state; if (led_context == NULL) { - 8000738: 4b27 ldr r3, [pc, #156] ; (80007d8 ) -{ - 800073a: b5f0 push {r4, r5, r6, r7, lr} - if (led_context == NULL) { - 800073c: 681a ldr r2, [r3, #0] - 800073e: 2a00 cmp r2, #0 - 8000740: d049 beq.n 80007d6 + 80009ea: 4b37 ldr r3, [pc, #220] ; (8000ac8 ) + 80009ec: 681b ldr r3, [r3, #0] + 80009ee: 2b00 cmp r3, #0 + 80009f0: d065 beq.n 8000abe // led_pwm_handler() may be called before led_init() was called; // this would result in a crash return; } new_red_state = led_pwm_counter >= led_red_intensity ? 1 : 0; - 8000742: 4926 ldr r1, [pc, #152] ; (80007dc ) - 8000744: 4b26 ldr r3, [pc, #152] ; (80007e0 ) - 8000746: 6808 ldr r0, [r1, #0] - 8000748: 681b ldr r3, [r3, #0] - 800074a: 0fc5 lsrs r5, r0, #31 - 800074c: 17d9 asrs r1, r3, #31 - 800074e: 4283 cmp r3, r0 - 8000750: 414d adcs r5, r1 + 80009f2: 4b36 ldr r3, [pc, #216] ; (8000acc ) + 80009f4: 681a ldr r2, [r3, #0] + 80009f6: 4b36 ldr r3, [pc, #216] ; (8000ad0 ) + 80009f8: 681b ldr r3, [r3, #0] + 80009fa: 17d0 asrs r0, r2, #31 + 80009fc: 0fd9 lsrs r1, r3, #31 + 80009fe: 429a cmp r2, r3 + 8000a00: 4148 adcs r0, r1 + 8000a02: 0003 movs r3, r0 + 8000a04: b2db uxtb r3, r3 + 8000a06: 60fb str r3, [r7, #12] new_green_state = led_pwm_counter >= led_green_intensity ? 1 : 0; - 8000752: 4824 ldr r0, [pc, #144] ; (80007e4 ) + 8000a08: 4b30 ldr r3, [pc, #192] ; (8000acc ) + 8000a0a: 681a ldr r2, [r3, #0] + 8000a0c: 4b31 ldr r3, [pc, #196] ; (8000ad4 ) + 8000a0e: 681b ldr r3, [r3, #0] + 8000a10: 17d0 asrs r0, r2, #31 + 8000a12: 0fd9 lsrs r1, r3, #31 + 8000a14: 429a cmp r2, r3 + 8000a16: 4148 adcs r0, r1 + 8000a18: 0003 movs r3, r0 + 8000a1a: b2db uxtb r3, r3 + 8000a1c: 60bb str r3, [r7, #8] new_blue_state = led_pwm_counter >= led_blue_intensity ? 1 : 0; + 8000a1e: 4b2b ldr r3, [pc, #172] ; (8000acc ) + 8000a20: 681a ldr r2, [r3, #0] + 8000a22: 4b2d ldr r3, [pc, #180] ; (8000ad8 ) + 8000a24: 681b ldr r3, [r3, #0] + 8000a26: 17d0 asrs r0, r2, #31 + 8000a28: 0fd9 lsrs r1, r3, #31 + 8000a2a: 429a cmp r2, r3 + 8000a2c: 4148 adcs r0, r1 + 8000a2e: 0003 movs r3, r0 + 8000a30: b2db uxtb r3, r3 + 8000a32: 607b str r3, [r7, #4] // SysTick() is called at 1 kHz frequency, we don't want to call HAL_GPIO_WritePin() every time if (led_red_state != new_red_state) { - 8000754: 4f24 ldr r7, [pc, #144] ; (80007e8 ) - new_green_state = led_pwm_counter >= led_green_intensity ? 1 : 0; - 8000756: 6800 ldr r0, [r0, #0] - 8000758: 0fc4 lsrs r4, r0, #31 - 800075a: 4283 cmp r3, r0 - 800075c: 414c adcs r4, r1 - new_blue_state = led_pwm_counter >= led_blue_intensity ? 1 : 0; - 800075e: 4823 ldr r0, [pc, #140] ; (80007ec ) - 8000760: 6800 ldr r0, [r0, #0] - 8000762: 0fc6 lsrs r6, r0, #31 - 8000764: 4283 cmp r3, r0 - 8000766: 4171 adcs r1, r6 - 8000768: 468c mov ip, r1 - if (led_red_state != new_red_state) { - 800076a: 6839 ldr r1, [r7, #0] - 800076c: 42a9 cmp r1, r5 - 800076e: d00b beq.n 8000788 - * @arg @ref LL_GPIO_PIN_ALL - * @retval None - */ -__STATIC_INLINE void LL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint32_t PinMask) -{ - uint32_t odr = READ_REG(GPIOx->ODR); - 8000770: 6811 ldr r1, [r2, #0] - WRITE_REG(GPIOx->BSRR, ((odr & PinMask) << 16u) | (~odr & PinMask)); - 8000772: 6850 ldr r0, [r2, #4] - uint32_t odr = READ_REG(GPIOx->ODR); - 8000774: 694e ldr r6, [r1, #20] - WRITE_REG(GPIOx->BSRR, ((odr & PinMask) << 16u) | (~odr & PinMask)); - 8000776: 6851 ldr r1, [r2, #4] - 8000778: 4030 ands r0, r6 - 800077a: 43b1 bics r1, r6 - 800077c: 000e movs r6, r1 - 800077e: 0400 lsls r0, r0, #16 - 8000780: 6811 ldr r1, [r2, #0] - 8000782: 4306 orrs r6, r0 - 8000784: 618e str r6, [r1, #24] + 8000a34: 4b29 ldr r3, [pc, #164] ; (8000adc ) + 8000a36: 681b ldr r3, [r3, #0] + 8000a38: 68fa ldr r2, [r7, #12] + 8000a3a: 429a cmp r2, r3 + 8000a3c: d00c beq.n 8000a58 LL_GPIO_TogglePin(led_context->red_led_port, led_context->red_led_pin); + 8000a3e: 4b22 ldr r3, [pc, #136] ; (8000ac8 ) + 8000a40: 681b ldr r3, [r3, #0] + 8000a42: 681a ldr r2, [r3, #0] + 8000a44: 4b20 ldr r3, [pc, #128] ; (8000ac8 ) + 8000a46: 681b ldr r3, [r3, #0] + 8000a48: 685b ldr r3, [r3, #4] + 8000a4a: 0019 movs r1, r3 + 8000a4c: 0010 movs r0, r2 + 8000a4e: f7ff ff55 bl 80008fc led_red_state = new_red_state; - 8000786: 603d str r5, [r7, #0] + 8000a52: 4b22 ldr r3, [pc, #136] ; (8000adc ) + 8000a54: 68fa ldr r2, [r7, #12] + 8000a56: 601a str r2, [r3, #0] } if (led_green_state != new_green_state) { - 8000788: 4e19 ldr r6, [pc, #100] ; (80007f0 ) - 800078a: 6831 ldr r1, [r6, #0] - 800078c: 42a1 cmp r1, r4 - 800078e: d00a beq.n 80007a6 + 8000a58: 4b21 ldr r3, [pc, #132] ; (8000ae0 ) + 8000a5a: 681b ldr r3, [r3, #0] + 8000a5c: 68ba ldr r2, [r7, #8] + 8000a5e: 429a cmp r2, r3 + 8000a60: d00c beq.n 8000a7c LL_GPIO_TogglePin(led_context->green_led_port, led_context->green_led_pin); - 8000790: 6897 ldr r7, [r2, #8] - 8000792: 68d1 ldr r1, [r2, #12] - uint32_t odr = READ_REG(GPIOx->ODR); - 8000794: 6978 ldr r0, [r7, #20] - WRITE_REG(GPIOx->BSRR, ((odr & PinMask) << 16u) | (~odr & PinMask)); - 8000796: 68d5 ldr r5, [r2, #12] - 8000798: 4381 bics r1, r0 - 800079a: 4005 ands r5, r0 - 800079c: 0008 movs r0, r1 - 800079e: 042d lsls r5, r5, #16 - 80007a0: 4328 orrs r0, r5 - 80007a2: 61b8 str r0, [r7, #24] + 8000a62: 4b19 ldr r3, [pc, #100] ; (8000ac8 ) + 8000a64: 681b ldr r3, [r3, #0] + 8000a66: 689a ldr r2, [r3, #8] + 8000a68: 4b17 ldr r3, [pc, #92] ; (8000ac8 ) + 8000a6a: 681b ldr r3, [r3, #0] + 8000a6c: 68db ldr r3, [r3, #12] + 8000a6e: 0019 movs r1, r3 + 8000a70: 0010 movs r0, r2 + 8000a72: f7ff ff43 bl 80008fc led_green_state = new_green_state; - 80007a4: 6034 str r4, [r6, #0] + 8000a76: 4b1a ldr r3, [pc, #104] ; (8000ae0 ) + 8000a78: 68ba ldr r2, [r7, #8] + 8000a7a: 601a str r2, [r3, #0] } if (led_blue_state != new_blue_state) { - 80007a6: 4c13 ldr r4, [pc, #76] ; (80007f4 ) - 80007a8: 6821 ldr r1, [r4, #0] - 80007aa: 4561 cmp r1, ip - 80007ac: d00a beq.n 80007c4 + 8000a7c: 4b19 ldr r3, [pc, #100] ; (8000ae4 ) + 8000a7e: 681b ldr r3, [r3, #0] + 8000a80: 687a ldr r2, [r7, #4] + 8000a82: 429a cmp r2, r3 + 8000a84: d00c beq.n 8000aa0 LL_GPIO_TogglePin(led_context->blue_led_port, led_context->blue_led_pin); - 80007ae: 6915 ldr r5, [r2, #16] - 80007b0: 6950 ldr r0, [r2, #20] - uint32_t odr = READ_REG(GPIOx->ODR); - 80007b2: 696e ldr r6, [r5, #20] - WRITE_REG(GPIOx->BSRR, ((odr & PinMask) << 16u) | (~odr & PinMask)); - 80007b4: 0032 movs r2, r6 - 80007b6: 4002 ands r2, r0 - 80007b8: 0412 lsls r2, r2, #16 - 80007ba: 43b0 bics r0, r6 - 80007bc: 4302 orrs r2, r0 - 80007be: 61aa str r2, [r5, #24] + 8000a86: 4b10 ldr r3, [pc, #64] ; (8000ac8 ) + 8000a88: 681b ldr r3, [r3, #0] + 8000a8a: 691a ldr r2, [r3, #16] + 8000a8c: 4b0e ldr r3, [pc, #56] ; (8000ac8 ) + 8000a8e: 681b ldr r3, [r3, #0] + 8000a90: 695b ldr r3, [r3, #20] + 8000a92: 0019 movs r1, r3 + 8000a94: 0010 movs r0, r2 + 8000a96: f7ff ff31 bl 80008fc led_blue_state = new_blue_state; - 80007c0: 4662 mov r2, ip - 80007c2: 6022 str r2, [r4, #0] + 8000a9a: 4b12 ldr r3, [pc, #72] ; (8000ae4 ) + 8000a9c: 687a ldr r2, [r7, #4] + 8000a9e: 601a str r2, [r3, #0] } if (++led_pwm_counter >= led_pwm_max) { - 80007c4: 490c ldr r1, [pc, #48] ; (80007f8 ) - 80007c6: 4a06 ldr r2, [pc, #24] ; (80007e0 ) - 80007c8: 6809 ldr r1, [r1, #0] - 80007ca: 3301 adds r3, #1 - 80007cc: 6013 str r3, [r2, #0] - 80007ce: 428b cmp r3, r1 - 80007d0: db01 blt.n 80007d6 + 8000aa0: 4b0a ldr r3, [pc, #40] ; (8000acc ) + 8000aa2: 681b ldr r3, [r3, #0] + 8000aa4: 1c5a adds r2, r3, #1 + 8000aa6: 4b09 ldr r3, [pc, #36] ; (8000acc ) + 8000aa8: 601a str r2, [r3, #0] + 8000aaa: 4b08 ldr r3, [pc, #32] ; (8000acc ) + 8000aac: 681a ldr r2, [r3, #0] + 8000aae: 4b0e ldr r3, [pc, #56] ; (8000ae8 ) + 8000ab0: 681b ldr r3, [r3, #0] + 8000ab2: 429a cmp r2, r3 + 8000ab4: db04 blt.n 8000ac0 led_pwm_counter = 0; - 80007d2: 2300 movs r3, #0 - 80007d4: 6013 str r3, [r2, #0] + 8000ab6: 4b05 ldr r3, [pc, #20] ; (8000acc ) + 8000ab8: 2200 movs r2, #0 + 8000aba: 601a str r2, [r3, #0] + 8000abc: e000 b.n 8000ac0 + return; + 8000abe: 46c0 nop ; (mov r8, r8) } } - 80007d6: bdf0 pop {r4, r5, r6, r7, pc} - 80007d8: 20000020 .word 0x20000020 - 80007dc: 20000030 .word 0x20000030 - 80007e0: 20000034 .word 0x20000034 - 80007e4: 20000028 .word 0x20000028 - 80007e8: 20000044 .word 0x20000044 - 80007ec: 20000038 .word 0x20000038 - 80007f0: 20000040 .word 0x20000040 - 80007f4: 2000003c .word 0x2000003c - 80007f8: 2000002c .word 0x2000002c + 8000ac0: 46bd mov sp, r7 + 8000ac2: b004 add sp, #16 + 8000ac4: bd80 pop {r7, pc} + 8000ac6: 46c0 nop ; (mov r8, r8) + 8000ac8: 20000020 .word 0x20000020 + 8000acc: 20000034 .word 0x20000034 + 8000ad0: 20000030 .word 0x20000030 + 8000ad4: 20000028 .word 0x20000028 + 8000ad8: 20000038 .word 0x20000038 + 8000adc: 20000044 .word 0x20000044 + 8000ae0: 20000040 .word 0x20000040 + 8000ae4: 2000003c .word 0x2000003c + 8000ae8: 2000002c .word 0x2000002c -080007fc : +08000aec : * Frequency of led_pwm_handler() calls. Eequal to timer frequency if timer callback is used, * e.g. if led_pwm_handler() is called within SysTick_Handler(), then frequency is * HAL_TICK_FREQ_1KHZ */ void led_init(led_context_t *context, int pwm_freq, int pwm_handler_freq) { - 80007fc: b570 push {r4, r5, r6, lr} - 80007fe: 0004 movs r4, r0 - 8000800: 0010 movs r0, r2 + 8000aec: b580 push {r7, lr} + 8000aee: b084 sub sp, #16 + 8000af0: af00 add r7, sp, #0 + 8000af2: 60f8 str r0, [r7, #12] + 8000af4: 60b9 str r1, [r7, #8] + 8000af6: 607a str r2, [r7, #4] // save context led_context = context; + 8000af8: 4b1f ldr r3, [pc, #124] ; (8000b78 ) + 8000afa: 68fa ldr r2, [r7, #12] + 8000afc: 601a str r2, [r3, #0] // Initial values led_red_intensity = 0; - 8000802: 2200 movs r2, #0 - led_context = context; - 8000804: 4b11 ldr r3, [pc, #68] ; (800084c ) + 8000afe: 4b1f ldr r3, [pc, #124] ; (8000b7c ) + 8000b00: 2200 movs r2, #0 + 8000b02: 601a str r2, [r3, #0] led_red_state = 1; // state is inverted (LEDs are sinking current into MCU) - 8000806: 4d12 ldr r5, [pc, #72] ; (8000850 ) - led_context = context; - 8000808: 601c str r4, [r3, #0] - led_red_intensity = 0; - 800080a: 4b12 ldr r3, [pc, #72] ; (8000854 ) - 800080c: 601a str r2, [r3, #0] - led_red_state = 1; // state is inverted (LEDs are sinking current into MCU) - 800080e: 2301 movs r3, #1 - 8000810: 602b str r3, [r5, #0] + 8000b04: 4b1e ldr r3, [pc, #120] ; (8000b80 ) + 8000b06: 2201 movs r2, #1 + 8000b08: 601a str r2, [r3, #0] led_green_intensity = 0; - 8000812: 4d11 ldr r5, [pc, #68] ; (8000858 ) - 8000814: 602a str r2, [r5, #0] + 8000b0a: 4b1e ldr r3, [pc, #120] ; (8000b84 ) + 8000b0c: 2200 movs r2, #0 + 8000b0e: 601a str r2, [r3, #0] led_green_state = 1; - 8000816: 4d11 ldr r5, [pc, #68] ; (800085c ) - 8000818: 602b str r3, [r5, #0] + 8000b10: 4b1d ldr r3, [pc, #116] ; (8000b88 ) + 8000b12: 2201 movs r2, #1 + 8000b14: 601a str r2, [r3, #0] led_blue_intensity = 0; - 800081a: 4d11 ldr r5, [pc, #68] ; (8000860 ) - 800081c: 602a str r2, [r5, #0] + 8000b16: 4b1d ldr r3, [pc, #116] ; (8000b8c ) + 8000b18: 2200 movs r2, #0 + 8000b1a: 601a str r2, [r3, #0] led_blue_state = 1; - 800081e: 4a11 ldr r2, [pc, #68] ; (8000864 ) - 8000820: 6013 str r3, [r2, #0] + 8000b1c: 4b1c ldr r3, [pc, #112] ; (8000b90 ) + 8000b1e: 2201 movs r2, #1 + 8000b20: 601a str r2, [r3, #0] // calculate PWM counter overflow value (max value) // e.g. for 1 kHz handler freq and 25 Hz PWM freq, we only have // resolution of 40 steps for pwm led_pwm_max = pwm_handler_freq / pwm_freq; - 8000822: f7ff fcfb bl 800021c <__divsi3> + 8000b22: 68b9 ldr r1, [r7, #8] + 8000b24: 6878 ldr r0, [r7, #4] + 8000b26: f7ff fb79 bl 800021c <__divsi3> + 8000b2a: 0003 movs r3, r0 + 8000b2c: 001a movs r2, r3 + 8000b2e: 4b19 ldr r3, [pc, #100] ; (8000b94 ) + 8000b30: 601a str r2, [r3, #0] // turn off all LEDs (inverted) led_gpio_on(led_context->red_led_port, led_context->red_led_pin); - 8000826: 6822 ldr r2, [r4, #0] - led_pwm_max = pwm_handler_freq / pwm_freq; - 8000828: 4b0f ldr r3, [pc, #60] ; (8000868 ) - port_value |= pin_mask; - 800082a: 6861 ldr r1, [r4, #4] - led_pwm_max = pwm_handler_freq / pwm_freq; - 800082c: 6018 str r0, [r3, #0] - return (uint32_t)(READ_REG(GPIOx->IDR)); - 800082e: 6913 ldr r3, [r2, #16] - port_value |= pin_mask; - 8000830: 430b orrs r3, r1 - WRITE_REG(GPIOx->ODR, PortValue); - 8000832: 6153 str r3, [r2, #20] + 8000b32: 4b11 ldr r3, [pc, #68] ; (8000b78 ) + 8000b34: 681b ldr r3, [r3, #0] + 8000b36: 681a ldr r2, [r3, #0] + 8000b38: 4b0f ldr r3, [pc, #60] ; (8000b78 ) + 8000b3a: 681b ldr r3, [r3, #0] + 8000b3c: 685b ldr r3, [r3, #4] + 8000b3e: 0019 movs r1, r3 + 8000b40: 0010 movs r0, r2 + 8000b42: f7ff ff35 bl 80009b0 led_gpio_on(led_context->green_led_port, led_context->green_led_pin); - 8000834: 68a2 ldr r2, [r4, #8] - port_value |= pin_mask; - 8000836: 68e1 ldr r1, [r4, #12] - return (uint32_t)(READ_REG(GPIOx->IDR)); - 8000838: 6913 ldr r3, [r2, #16] - 800083a: 430b orrs r3, r1 - WRITE_REG(GPIOx->ODR, PortValue); - 800083c: 6153 str r3, [r2, #20] + 8000b46: 4b0c ldr r3, [pc, #48] ; (8000b78 ) + 8000b48: 681b ldr r3, [r3, #0] + 8000b4a: 689a ldr r2, [r3, #8] + 8000b4c: 4b0a ldr r3, [pc, #40] ; (8000b78 ) + 8000b4e: 681b ldr r3, [r3, #0] + 8000b50: 68db ldr r3, [r3, #12] + 8000b52: 0019 movs r1, r3 + 8000b54: 0010 movs r0, r2 + 8000b56: f7ff ff2b bl 80009b0 led_gpio_on(led_context->blue_led_port, led_context->blue_led_pin); - 800083e: 6922 ldr r2, [r4, #16] - port_value |= pin_mask; - 8000840: 6961 ldr r1, [r4, #20] - return (uint32_t)(READ_REG(GPIOx->IDR)); - 8000842: 6913 ldr r3, [r2, #16] - 8000844: 430b orrs r3, r1 - WRITE_REG(GPIOx->ODR, PortValue); - 8000846: 6153 str r3, [r2, #20] + 8000b5a: 4b07 ldr r3, [pc, #28] ; (8000b78 ) + 8000b5c: 681b ldr r3, [r3, #0] + 8000b5e: 691a ldr r2, [r3, #16] + 8000b60: 4b05 ldr r3, [pc, #20] ; (8000b78 ) + 8000b62: 681b ldr r3, [r3, #0] + 8000b64: 695b ldr r3, [r3, #20] + 8000b66: 0019 movs r1, r3 + 8000b68: 0010 movs r0, r2 + 8000b6a: f7ff ff21 bl 80009b0 } - 8000848: bd70 pop {r4, r5, r6, pc} - 800084a: 46c0 nop ; (mov r8, r8) - 800084c: 20000020 .word 0x20000020 - 8000850: 20000044 .word 0x20000044 - 8000854: 20000030 .word 0x20000030 - 8000858: 20000028 .word 0x20000028 - 800085c: 20000040 .word 0x20000040 - 8000860: 20000038 .word 0x20000038 - 8000864: 2000003c .word 0x2000003c - 8000868: 2000002c .word 0x2000002c + 8000b6e: 46c0 nop ; (mov r8, r8) + 8000b70: 46bd mov sp, r7 + 8000b72: b004 add sp, #16 + 8000b74: bd80 pop {r7, pc} + 8000b76: 46c0 nop ; (mov r8, r8) + 8000b78: 20000020 .word 0x20000020 + 8000b7c: 20000030 .word 0x20000030 + 8000b80: 20000044 .word 0x20000044 + 8000b84: 20000028 .word 0x20000028 + 8000b88: 20000040 .word 0x20000040 + 8000b8c: 20000038 .word 0x20000038 + 8000b90: 2000003c .word 0x2000003c + 8000b94: 2000002c .word 0x2000002c -0800086c : +08000b98 <__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) +{ + 8000b98: b580 push {r7, lr} + 8000b9a: b082 sub sp, #8 + 8000b9c: af00 add r7, sp, #0 + 8000b9e: 0002 movs r2, r0 + 8000ba0: 1dfb adds r3, r7, #7 + 8000ba2: 701a strb r2, [r3, #0] + if ((int32_t)(IRQn) >= 0) + 8000ba4: 1dfb adds r3, r7, #7 + 8000ba6: 781b ldrb r3, [r3, #0] + 8000ba8: 2b7f cmp r3, #127 ; 0x7f + 8000baa: d809 bhi.n 8000bc0 <__NVIC_EnableIRQ+0x28> + { + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + 8000bac: 1dfb adds r3, r7, #7 + 8000bae: 781b ldrb r3, [r3, #0] + 8000bb0: 001a movs r2, r3 + 8000bb2: 231f movs r3, #31 + 8000bb4: 401a ands r2, r3 + 8000bb6: 4b04 ldr r3, [pc, #16] ; (8000bc8 <__NVIC_EnableIRQ+0x30>) + 8000bb8: 2101 movs r1, #1 + 8000bba: 4091 lsls r1, r2 + 8000bbc: 000a movs r2, r1 + 8000bbe: 601a str r2, [r3, #0] + } +} + 8000bc0: 46c0 nop ; (mov r8, r8) + 8000bc2: 46bd mov sp, r7 + 8000bc4: b002 add sp, #8 + 8000bc6: bd80 pop {r7, pc} + 8000bc8: e000e100 .word 0xe000e100 + +08000bcc <__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) +{ + 8000bcc: b590 push {r4, r7, lr} + 8000bce: b083 sub sp, #12 + 8000bd0: af00 add r7, sp, #0 + 8000bd2: 0002 movs r2, r0 + 8000bd4: 6039 str r1, [r7, #0] + 8000bd6: 1dfb adds r3, r7, #7 + 8000bd8: 701a strb r2, [r3, #0] + if ((int32_t)(IRQn) >= 0) + 8000bda: 1dfb adds r3, r7, #7 + 8000bdc: 781b ldrb r3, [r3, #0] + 8000bde: 2b7f cmp r3, #127 ; 0x7f + 8000be0: d828 bhi.n 8000c34 <__NVIC_SetPriority+0x68> + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + 8000be2: 4a2f ldr r2, [pc, #188] ; (8000ca0 <__NVIC_SetPriority+0xd4>) + 8000be4: 1dfb adds r3, r7, #7 + 8000be6: 781b ldrb r3, [r3, #0] + 8000be8: b25b sxtb r3, r3 + 8000bea: 089b lsrs r3, r3, #2 + 8000bec: 33c0 adds r3, #192 ; 0xc0 + 8000bee: 009b lsls r3, r3, #2 + 8000bf0: 589b ldr r3, [r3, r2] + 8000bf2: 1dfa adds r2, r7, #7 + 8000bf4: 7812 ldrb r2, [r2, #0] + 8000bf6: 0011 movs r1, r2 + 8000bf8: 2203 movs r2, #3 + 8000bfa: 400a ands r2, r1 + 8000bfc: 00d2 lsls r2, r2, #3 + 8000bfe: 21ff movs r1, #255 ; 0xff + 8000c00: 4091 lsls r1, r2 + 8000c02: 000a movs r2, r1 + 8000c04: 43d2 mvns r2, r2 + 8000c06: 401a ands r2, r3 + 8000c08: 0011 movs r1, r2 + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + 8000c0a: 683b ldr r3, [r7, #0] + 8000c0c: 019b lsls r3, r3, #6 + 8000c0e: 22ff movs r2, #255 ; 0xff + 8000c10: 401a ands r2, r3 + 8000c12: 1dfb adds r3, r7, #7 + 8000c14: 781b ldrb r3, [r3, #0] + 8000c16: 0018 movs r0, r3 + 8000c18: 2303 movs r3, #3 + 8000c1a: 4003 ands r3, r0 + 8000c1c: 00db lsls r3, r3, #3 + 8000c1e: 409a lsls r2, r3 + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + 8000c20: 481f ldr r0, [pc, #124] ; (8000ca0 <__NVIC_SetPriority+0xd4>) + 8000c22: 1dfb adds r3, r7, #7 + 8000c24: 781b ldrb r3, [r3, #0] + 8000c26: b25b sxtb r3, r3 + 8000c28: 089b lsrs r3, r3, #2 + 8000c2a: 430a orrs r2, r1 + 8000c2c: 33c0 adds r3, #192 ; 0xc0 + 8000c2e: 009b lsls r3, r3, #2 + 8000c30: 501a str r2, [r3, r0] + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + 8000c32: e031 b.n 8000c98 <__NVIC_SetPriority+0xcc> + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + 8000c34: 4a1b ldr r2, [pc, #108] ; (8000ca4 <__NVIC_SetPriority+0xd8>) + 8000c36: 1dfb adds r3, r7, #7 + 8000c38: 781b ldrb r3, [r3, #0] + 8000c3a: 0019 movs r1, r3 + 8000c3c: 230f movs r3, #15 + 8000c3e: 400b ands r3, r1 + 8000c40: 3b08 subs r3, #8 + 8000c42: 089b lsrs r3, r3, #2 + 8000c44: 3306 adds r3, #6 + 8000c46: 009b lsls r3, r3, #2 + 8000c48: 18d3 adds r3, r2, r3 + 8000c4a: 3304 adds r3, #4 + 8000c4c: 681b ldr r3, [r3, #0] + 8000c4e: 1dfa adds r2, r7, #7 + 8000c50: 7812 ldrb r2, [r2, #0] + 8000c52: 0011 movs r1, r2 + 8000c54: 2203 movs r2, #3 + 8000c56: 400a ands r2, r1 + 8000c58: 00d2 lsls r2, r2, #3 + 8000c5a: 21ff movs r1, #255 ; 0xff + 8000c5c: 4091 lsls r1, r2 + 8000c5e: 000a movs r2, r1 + 8000c60: 43d2 mvns r2, r2 + 8000c62: 401a ands r2, r3 + 8000c64: 0011 movs r1, r2 + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + 8000c66: 683b ldr r3, [r7, #0] + 8000c68: 019b lsls r3, r3, #6 + 8000c6a: 22ff movs r2, #255 ; 0xff + 8000c6c: 401a ands r2, r3 + 8000c6e: 1dfb adds r3, r7, #7 + 8000c70: 781b ldrb r3, [r3, #0] + 8000c72: 0018 movs r0, r3 + 8000c74: 2303 movs r3, #3 + 8000c76: 4003 ands r3, r0 + 8000c78: 00db lsls r3, r3, #3 + 8000c7a: 409a lsls r2, r3 + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + 8000c7c: 4809 ldr r0, [pc, #36] ; (8000ca4 <__NVIC_SetPriority+0xd8>) + 8000c7e: 1dfb adds r3, r7, #7 + 8000c80: 781b ldrb r3, [r3, #0] + 8000c82: 001c movs r4, r3 + 8000c84: 230f movs r3, #15 + 8000c86: 4023 ands r3, r4 + 8000c88: 3b08 subs r3, #8 + 8000c8a: 089b lsrs r3, r3, #2 + 8000c8c: 430a orrs r2, r1 + 8000c8e: 3306 adds r3, #6 + 8000c90: 009b lsls r3, r3, #2 + 8000c92: 18c3 adds r3, r0, r3 + 8000c94: 3304 adds r3, #4 + 8000c96: 601a str r2, [r3, #0] +} + 8000c98: 46c0 nop ; (mov r8, r8) + 8000c9a: 46bd mov sp, r7 + 8000c9c: b003 add sp, #12 + 8000c9e: bd90 pop {r4, r7, pc} + 8000ca0: e000e100 .word 0xe000e100 + 8000ca4: e000ed00 .word 0xe000ed00 + +08000ca8 : + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH + * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetDataTransferDirection(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Direction) +{ + 8000ca8: b580 push {r7, lr} + 8000caa: b084 sub sp, #16 + 8000cac: af00 add r7, sp, #0 + 8000cae: 60f8 str r0, [r7, #12] + 8000cb0: 60b9 str r1, [r7, #8] + 8000cb2: 607a str r2, [r7, #4] + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, + 8000cb4: 68bb ldr r3, [r7, #8] + 8000cb6: 3b01 subs r3, #1 + 8000cb8: 4a0b ldr r2, [pc, #44] ; (8000ce8 ) + 8000cba: 5cd3 ldrb r3, [r2, r3] + 8000cbc: 001a movs r2, r3 + 8000cbe: 68fb ldr r3, [r7, #12] + 8000cc0: 18d3 adds r3, r2, r3 + 8000cc2: 681b ldr r3, [r3, #0] + 8000cc4: 4a09 ldr r2, [pc, #36] ; (8000cec ) + 8000cc6: 4013 ands r3, r2 + 8000cc8: 0019 movs r1, r3 + 8000cca: 68bb ldr r3, [r7, #8] + 8000ccc: 3b01 subs r3, #1 + 8000cce: 4a06 ldr r2, [pc, #24] ; (8000ce8 ) + 8000cd0: 5cd3 ldrb r3, [r2, r3] + 8000cd2: 001a movs r2, r3 + 8000cd4: 68fb ldr r3, [r7, #12] + 8000cd6: 18d3 adds r3, r2, r3 + 8000cd8: 687a ldr r2, [r7, #4] + 8000cda: 430a orrs r2, r1 + 8000cdc: 601a str r2, [r3, #0] + DMA_CCR_DIR | DMA_CCR_MEM2MEM, Direction); +} + 8000cde: 46c0 nop ; (mov r8, r8) + 8000ce0: 46bd mov sp, r7 + 8000ce2: b004 add sp, #16 + 8000ce4: bd80 pop {r7, pc} + 8000ce6: 46c0 nop ; (mov r8, r8) + 8000ce8: 080023c0 .word 0x080023c0 + 8000cec: ffffbfef .word 0xffffbfef + +08000cf0 : + * @arg @ref LL_DMA_MODE_NORMAL + * @arg @ref LL_DMA_MODE_CIRCULAR + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Mode) +{ + 8000cf0: b580 push {r7, lr} + 8000cf2: b084 sub sp, #16 + 8000cf4: af00 add r7, sp, #0 + 8000cf6: 60f8 str r0, [r7, #12] + 8000cf8: 60b9 str r1, [r7, #8] + 8000cfa: 607a str r2, [r7, #4] + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_CIRC, + 8000cfc: 68bb ldr r3, [r7, #8] + 8000cfe: 3b01 subs r3, #1 + 8000d00: 4a0b ldr r2, [pc, #44] ; (8000d30 ) + 8000d02: 5cd3 ldrb r3, [r2, r3] + 8000d04: 001a movs r2, r3 + 8000d06: 68fb ldr r3, [r7, #12] + 8000d08: 18d3 adds r3, r2, r3 + 8000d0a: 681b ldr r3, [r3, #0] + 8000d0c: 2220 movs r2, #32 + 8000d0e: 4393 bics r3, r2 + 8000d10: 0019 movs r1, r3 + 8000d12: 68bb ldr r3, [r7, #8] + 8000d14: 3b01 subs r3, #1 + 8000d16: 4a06 ldr r2, [pc, #24] ; (8000d30 ) + 8000d18: 5cd3 ldrb r3, [r2, r3] + 8000d1a: 001a movs r2, r3 + 8000d1c: 68fb ldr r3, [r7, #12] + 8000d1e: 18d3 adds r3, r2, r3 + 8000d20: 687a ldr r2, [r7, #4] + 8000d22: 430a orrs r2, r1 + 8000d24: 601a str r2, [r3, #0] + Mode); +} + 8000d26: 46c0 nop ; (mov r8, r8) + 8000d28: 46bd mov sp, r7 + 8000d2a: b004 add sp, #16 + 8000d2c: bd80 pop {r7, pc} + 8000d2e: 46c0 nop ; (mov r8, r8) + 8000d30: 080023c0 .word 0x080023c0 + +08000d34 : + * @arg @ref LL_DMA_PERIPH_INCREMENT + * @arg @ref LL_DMA_PERIPH_NOINCREMENT + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetPeriphIncMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphOrM2MSrcIncMode) +{ + 8000d34: b580 push {r7, lr} + 8000d36: b084 sub sp, #16 + 8000d38: af00 add r7, sp, #0 + 8000d3a: 60f8 str r0, [r7, #12] + 8000d3c: 60b9 str r1, [r7, #8] + 8000d3e: 607a str r2, [r7, #4] + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_PINC, + 8000d40: 68bb ldr r3, [r7, #8] + 8000d42: 3b01 subs r3, #1 + 8000d44: 4a0b ldr r2, [pc, #44] ; (8000d74 ) + 8000d46: 5cd3 ldrb r3, [r2, r3] + 8000d48: 001a movs r2, r3 + 8000d4a: 68fb ldr r3, [r7, #12] + 8000d4c: 18d3 adds r3, r2, r3 + 8000d4e: 681b ldr r3, [r3, #0] + 8000d50: 2240 movs r2, #64 ; 0x40 + 8000d52: 4393 bics r3, r2 + 8000d54: 0019 movs r1, r3 + 8000d56: 68bb ldr r3, [r7, #8] + 8000d58: 3b01 subs r3, #1 + 8000d5a: 4a06 ldr r2, [pc, #24] ; (8000d74 ) + 8000d5c: 5cd3 ldrb r3, [r2, r3] + 8000d5e: 001a movs r2, r3 + 8000d60: 68fb ldr r3, [r7, #12] + 8000d62: 18d3 adds r3, r2, r3 + 8000d64: 687a ldr r2, [r7, #4] + 8000d66: 430a orrs r2, r1 + 8000d68: 601a str r2, [r3, #0] + PeriphOrM2MSrcIncMode); +} + 8000d6a: 46c0 nop ; (mov r8, r8) + 8000d6c: 46bd mov sp, r7 + 8000d6e: b004 add sp, #16 + 8000d70: bd80 pop {r7, pc} + 8000d72: 46c0 nop ; (mov r8, r8) + 8000d74: 080023c0 .word 0x080023c0 + +08000d78 : + * @arg @ref LL_DMA_MEMORY_INCREMENT + * @arg @ref LL_DMA_MEMORY_NOINCREMENT + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetMemoryIncMode(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryOrM2MDstIncMode) +{ + 8000d78: b580 push {r7, lr} + 8000d7a: b084 sub sp, #16 + 8000d7c: af00 add r7, sp, #0 + 8000d7e: 60f8 str r0, [r7, #12] + 8000d80: 60b9 str r1, [r7, #8] + 8000d82: 607a str r2, [r7, #4] + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_MINC, + 8000d84: 68bb ldr r3, [r7, #8] + 8000d86: 3b01 subs r3, #1 + 8000d88: 4a0b ldr r2, [pc, #44] ; (8000db8 ) + 8000d8a: 5cd3 ldrb r3, [r2, r3] + 8000d8c: 001a movs r2, r3 + 8000d8e: 68fb ldr r3, [r7, #12] + 8000d90: 18d3 adds r3, r2, r3 + 8000d92: 681b ldr r3, [r3, #0] + 8000d94: 2280 movs r2, #128 ; 0x80 + 8000d96: 4393 bics r3, r2 + 8000d98: 0019 movs r1, r3 + 8000d9a: 68bb ldr r3, [r7, #8] + 8000d9c: 3b01 subs r3, #1 + 8000d9e: 4a06 ldr r2, [pc, #24] ; (8000db8 ) + 8000da0: 5cd3 ldrb r3, [r2, r3] + 8000da2: 001a movs r2, r3 + 8000da4: 68fb ldr r3, [r7, #12] + 8000da6: 18d3 adds r3, r2, r3 + 8000da8: 687a ldr r2, [r7, #4] + 8000daa: 430a orrs r2, r1 + 8000dac: 601a str r2, [r3, #0] + MemoryOrM2MDstIncMode); +} + 8000dae: 46c0 nop ; (mov r8, r8) + 8000db0: 46bd mov sp, r7 + 8000db2: b004 add sp, #16 + 8000db4: bd80 pop {r7, pc} + 8000db6: 46c0 nop ; (mov r8, r8) + 8000db8: 080023c0 .word 0x080023c0 + +08000dbc : + * @arg @ref LL_DMA_PDATAALIGN_HALFWORD + * @arg @ref LL_DMA_PDATAALIGN_WORD + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetPeriphSize(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t PeriphOrM2MSrcDataSize) +{ + 8000dbc: b580 push {r7, lr} + 8000dbe: b084 sub sp, #16 + 8000dc0: af00 add r7, sp, #0 + 8000dc2: 60f8 str r0, [r7, #12] + 8000dc4: 60b9 str r1, [r7, #8] + 8000dc6: 607a str r2, [r7, #4] + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_PSIZE, + 8000dc8: 68bb ldr r3, [r7, #8] + 8000dca: 3b01 subs r3, #1 + 8000dcc: 4a0b ldr r2, [pc, #44] ; (8000dfc ) + 8000dce: 5cd3 ldrb r3, [r2, r3] + 8000dd0: 001a movs r2, r3 + 8000dd2: 68fb ldr r3, [r7, #12] + 8000dd4: 18d3 adds r3, r2, r3 + 8000dd6: 681b ldr r3, [r3, #0] + 8000dd8: 4a09 ldr r2, [pc, #36] ; (8000e00 ) + 8000dda: 4013 ands r3, r2 + 8000ddc: 0019 movs r1, r3 + 8000dde: 68bb ldr r3, [r7, #8] + 8000de0: 3b01 subs r3, #1 + 8000de2: 4a06 ldr r2, [pc, #24] ; (8000dfc ) + 8000de4: 5cd3 ldrb r3, [r2, r3] + 8000de6: 001a movs r2, r3 + 8000de8: 68fb ldr r3, [r7, #12] + 8000dea: 18d3 adds r3, r2, r3 + 8000dec: 687a ldr r2, [r7, #4] + 8000dee: 430a orrs r2, r1 + 8000df0: 601a str r2, [r3, #0] + PeriphOrM2MSrcDataSize); +} + 8000df2: 46c0 nop ; (mov r8, r8) + 8000df4: 46bd mov sp, r7 + 8000df6: b004 add sp, #16 + 8000df8: bd80 pop {r7, pc} + 8000dfa: 46c0 nop ; (mov r8, r8) + 8000dfc: 080023c0 .word 0x080023c0 + 8000e00: fffffcff .word 0xfffffcff + +08000e04 : + * @arg @ref LL_DMA_MDATAALIGN_HALFWORD + * @arg @ref LL_DMA_MDATAALIGN_WORD + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetMemorySize(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t MemoryOrM2MDstDataSize) +{ + 8000e04: b580 push {r7, lr} + 8000e06: b084 sub sp, #16 + 8000e08: af00 add r7, sp, #0 + 8000e0a: 60f8 str r0, [r7, #12] + 8000e0c: 60b9 str r1, [r7, #8] + 8000e0e: 607a str r2, [r7, #4] + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_MSIZE, + 8000e10: 68bb ldr r3, [r7, #8] + 8000e12: 3b01 subs r3, #1 + 8000e14: 4a0b ldr r2, [pc, #44] ; (8000e44 ) + 8000e16: 5cd3 ldrb r3, [r2, r3] + 8000e18: 001a movs r2, r3 + 8000e1a: 68fb ldr r3, [r7, #12] + 8000e1c: 18d3 adds r3, r2, r3 + 8000e1e: 681b ldr r3, [r3, #0] + 8000e20: 4a09 ldr r2, [pc, #36] ; (8000e48 ) + 8000e22: 4013 ands r3, r2 + 8000e24: 0019 movs r1, r3 + 8000e26: 68bb ldr r3, [r7, #8] + 8000e28: 3b01 subs r3, #1 + 8000e2a: 4a06 ldr r2, [pc, #24] ; (8000e44 ) + 8000e2c: 5cd3 ldrb r3, [r2, r3] + 8000e2e: 001a movs r2, r3 + 8000e30: 68fb ldr r3, [r7, #12] + 8000e32: 18d3 adds r3, r2, r3 + 8000e34: 687a ldr r2, [r7, #4] + 8000e36: 430a orrs r2, r1 + 8000e38: 601a str r2, [r3, #0] + MemoryOrM2MDstDataSize); +} + 8000e3a: 46c0 nop ; (mov r8, r8) + 8000e3c: 46bd mov sp, r7 + 8000e3e: b004 add sp, #16 + 8000e40: bd80 pop {r7, pc} + 8000e42: 46c0 nop ; (mov r8, r8) + 8000e44: 080023c0 .word 0x080023c0 + 8000e48: fffff3ff .word 0xfffff3ff + +08000e4c : + * @arg @ref LL_DMA_PRIORITY_HIGH + * @arg @ref LL_DMA_PRIORITY_VERYHIGH + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetChannelPriorityLevel(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Priority) +{ + 8000e4c: b580 push {r7, lr} + 8000e4e: b084 sub sp, #16 + 8000e50: af00 add r7, sp, #0 + 8000e52: 60f8 str r0, [r7, #12] + 8000e54: 60b9 str r1, [r7, #8] + 8000e56: 607a str r2, [r7, #4] + MODIFY_REG(((DMA_Channel_TypeDef *)((uint32_t)((uint32_t)DMAx + CHANNEL_OFFSET_TAB[Channel - 1U])))->CCR, DMA_CCR_PL, + 8000e58: 68bb ldr r3, [r7, #8] + 8000e5a: 3b01 subs r3, #1 + 8000e5c: 4a0b ldr r2, [pc, #44] ; (8000e8c ) + 8000e5e: 5cd3 ldrb r3, [r2, r3] + 8000e60: 001a movs r2, r3 + 8000e62: 68fb ldr r3, [r7, #12] + 8000e64: 18d3 adds r3, r2, r3 + 8000e66: 681b ldr r3, [r3, #0] + 8000e68: 4a09 ldr r2, [pc, #36] ; (8000e90 ) + 8000e6a: 4013 ands r3, r2 + 8000e6c: 0019 movs r1, r3 + 8000e6e: 68bb ldr r3, [r7, #8] + 8000e70: 3b01 subs r3, #1 + 8000e72: 4a06 ldr r2, [pc, #24] ; (8000e8c ) + 8000e74: 5cd3 ldrb r3, [r2, r3] + 8000e76: 001a movs r2, r3 + 8000e78: 68fb ldr r3, [r7, #12] + 8000e7a: 18d3 adds r3, r2, r3 + 8000e7c: 687a ldr r2, [r7, #4] + 8000e7e: 430a orrs r2, r1 + 8000e80: 601a str r2, [r3, #0] + Priority); +} + 8000e82: 46c0 nop ; (mov r8, r8) + 8000e84: 46bd mov sp, r7 + 8000e86: b004 add sp, #16 + 8000e88: bd80 pop {r7, pc} + 8000e8a: 46c0 nop ; (mov r8, r8) + 8000e8c: 080023c0 .word 0x080023c0 + 8000e90: ffffcfff .word 0xffffcfff + +08000e94 : + * @arg @ref LL_DMA_REQUEST_14 + * @arg @ref LL_DMA_REQUEST_15 + * @retval None + */ +__STATIC_INLINE void LL_DMA_SetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Channel, uint32_t Request) +{ + 8000e94: b580 push {r7, lr} + 8000e96: b084 sub sp, #16 + 8000e98: af00 add r7, sp, #0 + 8000e9a: 60f8 str r0, [r7, #12] + 8000e9c: 60b9 str r1, [r7, #8] + 8000e9e: 607a str r2, [r7, #4] + MODIFY_REG(((DMA_Request_TypeDef *)((uint32_t)((uint32_t)DMAx + DMA_CSELR_OFFSET)))->CSELR, + 8000ea0: 68fb ldr r3, [r7, #12] + 8000ea2: 33a8 adds r3, #168 ; 0xa8 + 8000ea4: 681b ldr r3, [r3, #0] + 8000ea6: 68ba ldr r2, [r7, #8] + 8000ea8: 3a01 subs r2, #1 + 8000eaa: 0092 lsls r2, r2, #2 + 8000eac: 210f movs r1, #15 + 8000eae: 4091 lsls r1, r2 + 8000eb0: 000a movs r2, r1 + 8000eb2: 43d2 mvns r2, r2 + 8000eb4: 401a ands r2, r3 + 8000eb6: 0011 movs r1, r2 + 8000eb8: 68bb ldr r3, [r7, #8] + 8000eba: 3b01 subs r3, #1 + 8000ebc: 009b lsls r3, r3, #2 + 8000ebe: 687a ldr r2, [r7, #4] + 8000ec0: 409a lsls r2, r3 + 8000ec2: 68fb ldr r3, [r7, #12] + 8000ec4: 33a8 adds r3, #168 ; 0xa8 + 8000ec6: 430a orrs r2, r1 + 8000ec8: 601a str r2, [r3, #0] + DMA_CSELR_C1S << ((Channel - 1U) * 4U), Request << DMA_POSITION_CSELR_CXS); +} + 8000eca: 46c0 nop ; (mov r8, r8) + 8000ecc: 46bd mov sp, r7 + 8000ece: b004 add sp, #16 + 8000ed0: bd80 pop {r7, pc} + +08000ed2 : +{ + 8000ed2: b580 push {r7, lr} + 8000ed4: b082 sub sp, #8 + 8000ed6: af00 add r7, sp, #0 + 8000ed8: 6078 str r0, [r7, #4] + SET_BIT(I2Cx->CR1, I2C_CR1_PE); + 8000eda: 687b ldr r3, [r7, #4] + 8000edc: 681b ldr r3, [r3, #0] + 8000ede: 2201 movs r2, #1 + 8000ee0: 431a orrs r2, r3 + 8000ee2: 687b ldr r3, [r7, #4] + 8000ee4: 601a str r2, [r3, #0] +} + 8000ee6: 46c0 nop ; (mov r8, r8) + 8000ee8: 46bd mov sp, r7 + 8000eea: b002 add sp, #8 + 8000eec: bd80 pop {r7, pc} + ... + +08000ef0 : +{ + 8000ef0: b580 push {r7, lr} + 8000ef2: b082 sub sp, #8 + 8000ef4: af00 add r7, sp, #0 + 8000ef6: 6078 str r0, [r7, #4] + CLEAR_BIT(I2Cx->CR1, I2C_CR1_NOSTRETCH); + 8000ef8: 687b ldr r3, [r7, #4] + 8000efa: 681b ldr r3, [r3, #0] + 8000efc: 4a03 ldr r2, [pc, #12] ; (8000f0c ) + 8000efe: 401a ands r2, r3 + 8000f00: 687b ldr r3, [r7, #4] + 8000f02: 601a str r2, [r3, #0] +} + 8000f04: 46c0 nop ; (mov r8, r8) + 8000f06: 46bd mov sp, r7 + 8000f08: b002 add sp, #8 + 8000f0a: bd80 pop {r7, pc} + 8000f0c: fffdffff .word 0xfffdffff + +08000f10 : +{ + 8000f10: b580 push {r7, lr} + 8000f12: b082 sub sp, #8 + 8000f14: af00 add r7, sp, #0 + 8000f16: 6078 str r0, [r7, #4] + CLEAR_BIT(I2Cx->CR1, I2C_CR1_GCEN); + 8000f18: 687b ldr r3, [r7, #4] + 8000f1a: 681b ldr r3, [r3, #0] + 8000f1c: 4a03 ldr r2, [pc, #12] ; (8000f2c ) + 8000f1e: 401a ands r2, r3 + 8000f20: 687b ldr r3, [r7, #4] + 8000f22: 601a str r2, [r3, #0] +} + 8000f24: 46c0 nop ; (mov r8, r8) + 8000f26: 46bd mov sp, r7 + 8000f28: b002 add sp, #8 + 8000f2a: bd80 pop {r7, pc} + 8000f2c: fff7ffff .word 0xfff7ffff + +08000f30 : +{ + 8000f30: b580 push {r7, lr} + 8000f32: b084 sub sp, #16 + 8000f34: af00 add r7, sp, #0 + 8000f36: 60f8 str r0, [r7, #12] + 8000f38: 60b9 str r1, [r7, #8] + 8000f3a: 607a str r2, [r7, #4] + MODIFY_REG(I2Cx->OAR2, I2C_OAR2_OA2 | I2C_OAR2_OA2MSK, OwnAddress2 | OwnAddrMask); + 8000f3c: 68fb ldr r3, [r7, #12] + 8000f3e: 68db ldr r3, [r3, #12] + 8000f40: 4a05 ldr r2, [pc, #20] ; (8000f58 ) + 8000f42: 401a ands r2, r3 + 8000f44: 68b9 ldr r1, [r7, #8] + 8000f46: 687b ldr r3, [r7, #4] + 8000f48: 430b orrs r3, r1 + 8000f4a: 431a orrs r2, r3 + 8000f4c: 68fb ldr r3, [r7, #12] + 8000f4e: 60da str r2, [r3, #12] +} + 8000f50: 46c0 nop ; (mov r8, r8) + 8000f52: 46bd mov sp, r7 + 8000f54: b004 add sp, #16 + 8000f56: bd80 pop {r7, pc} + 8000f58: fffff801 .word 0xfffff801 + +08000f5c : +{ + 8000f5c: b580 push {r7, lr} + 8000f5e: b082 sub sp, #8 + 8000f60: af00 add r7, sp, #0 + 8000f62: 6078 str r0, [r7, #4] + CLEAR_BIT(I2Cx->OAR2, I2C_OAR2_OA2EN); + 8000f64: 687b ldr r3, [r7, #4] + 8000f66: 68db ldr r3, [r3, #12] + 8000f68: 4a03 ldr r2, [pc, #12] ; (8000f78 ) + 8000f6a: 401a ands r2, r3 + 8000f6c: 687b ldr r3, [r7, #4] + 8000f6e: 60da str r2, [r3, #12] +} + 8000f70: 46c0 nop ; (mov r8, r8) + 8000f72: 46bd mov sp, r7 + 8000f74: b002 add sp, #8 + 8000f76: bd80 pop {r7, pc} + 8000f78: ffff7fff .word 0xffff7fff + +08000f7c : +{ + 8000f7c: b580 push {r7, lr} + 8000f7e: b082 sub sp, #8 + 8000f80: af00 add r7, sp, #0 + 8000f82: 6078 str r0, [r7, #4] + SET_BIT(I2Cx->CR2, I2C_CR2_AUTOEND); + 8000f84: 687b ldr r3, [r7, #4] + 8000f86: 685b ldr r3, [r3, #4] + 8000f88: 2280 movs r2, #128 ; 0x80 + 8000f8a: 0492 lsls r2, r2, #18 + 8000f8c: 431a orrs r2, r3 + 8000f8e: 687b ldr r3, [r7, #4] + 8000f90: 605a str r2, [r3, #4] +} + 8000f92: 46c0 nop ; (mov r8, r8) + 8000f94: 46bd mov sp, r7 + 8000f96: b002 add sp, #8 + 8000f98: bd80 pop {r7, pc} + +08000f9a : + * @rmtoll CR1 UE LL_LPUART_Enable + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_Enable(USART_TypeDef *LPUARTx) +{ + 8000f9a: b580 push {r7, lr} + 8000f9c: b082 sub sp, #8 + 8000f9e: af00 add r7, sp, #0 + 8000fa0: 6078 str r0, [r7, #4] + SET_BIT(LPUARTx->CR1, USART_CR1_UE); + 8000fa2: 687b ldr r3, [r7, #4] + 8000fa4: 681b ldr r3, [r3, #0] + 8000fa6: 2201 movs r2, #1 + 8000fa8: 431a orrs r2, r3 + 8000faa: 687b ldr r3, [r7, #4] + 8000fac: 601a str r2, [r3, #0] +} + 8000fae: 46c0 nop ; (mov r8, r8) + 8000fb0: 46bd mov sp, r7 + 8000fb2: b002 add sp, #8 + 8000fb4: bd80 pop {r7, pc} + ... + +08000fb8 : + * @param LPUARTx LPUART Instance + * @param Time Value between Min_Data=0 and Max_Data=31 + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetDEDeassertionTime(USART_TypeDef *LPUARTx, uint32_t Time) +{ + 8000fb8: b580 push {r7, lr} + 8000fba: b082 sub sp, #8 + 8000fbc: af00 add r7, sp, #0 + 8000fbe: 6078 str r0, [r7, #4] + 8000fc0: 6039 str r1, [r7, #0] + MODIFY_REG(LPUARTx->CR1, USART_CR1_DEDT, Time << USART_CR1_DEDT_Pos); + 8000fc2: 687b ldr r3, [r7, #4] + 8000fc4: 681b ldr r3, [r3, #0] + 8000fc6: 4a05 ldr r2, [pc, #20] ; (8000fdc ) + 8000fc8: 401a ands r2, r3 + 8000fca: 683b ldr r3, [r7, #0] + 8000fcc: 041b lsls r3, r3, #16 + 8000fce: 431a orrs r2, r3 + 8000fd0: 687b ldr r3, [r7, #4] + 8000fd2: 601a str r2, [r3, #0] +} + 8000fd4: 46c0 nop ; (mov r8, r8) + 8000fd6: 46bd mov sp, r7 + 8000fd8: b002 add sp, #8 + 8000fda: bd80 pop {r7, pc} + 8000fdc: ffe0ffff .word 0xffe0ffff + +08000fe0 : + * @param LPUARTx LPUART Instance + * @param Time Value between Min_Data=0 and Max_Data=31 + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetDEAssertionTime(USART_TypeDef *LPUARTx, uint32_t Time) +{ + 8000fe0: b580 push {r7, lr} + 8000fe2: b082 sub sp, #8 + 8000fe4: af00 add r7, sp, #0 + 8000fe6: 6078 str r0, [r7, #4] + 8000fe8: 6039 str r1, [r7, #0] + MODIFY_REG(LPUARTx->CR1, USART_CR1_DEAT, Time << USART_CR1_DEAT_Pos); + 8000fea: 687b ldr r3, [r7, #4] + 8000fec: 681b ldr r3, [r3, #0] + 8000fee: 4a05 ldr r2, [pc, #20] ; (8001004 ) + 8000ff0: 401a ands r2, r3 + 8000ff2: 683b ldr r3, [r7, #0] + 8000ff4: 055b lsls r3, r3, #21 + 8000ff6: 431a orrs r2, r3 + 8000ff8: 687b ldr r3, [r7, #4] + 8000ffa: 601a str r2, [r3, #0] +} + 8000ffc: 46c0 nop ; (mov r8, r8) + 8000ffe: 46bd mov sp, r7 + 8001000: b002 add sp, #8 + 8001002: bd80 pop {r7, pc} + 8001004: fc1fffff .word 0xfc1fffff + +08001008 : + * @rmtoll CR3 DEM LL_LPUART_EnableDEMode + * @param LPUARTx LPUART Instance + * @retval None + */ +__STATIC_INLINE void LL_LPUART_EnableDEMode(USART_TypeDef *LPUARTx) +{ + 8001008: b580 push {r7, lr} + 800100a: b082 sub sp, #8 + 800100c: af00 add r7, sp, #0 + 800100e: 6078 str r0, [r7, #4] + SET_BIT(LPUARTx->CR3, USART_CR3_DEM); + 8001010: 687b ldr r3, [r7, #4] + 8001012: 689b ldr r3, [r3, #8] + 8001014: 2280 movs r2, #128 ; 0x80 + 8001016: 01d2 lsls r2, r2, #7 + 8001018: 431a orrs r2, r3 + 800101a: 687b ldr r3, [r7, #4] + 800101c: 609a str r2, [r3, #8] +} + 800101e: 46c0 nop ; (mov r8, r8) + 8001020: 46bd mov sp, r7 + 8001022: b002 add sp, #8 + 8001024: bd80 pop {r7, pc} + ... + +08001028 : + * @arg @ref LL_LPUART_DE_POLARITY_HIGH + * @arg @ref LL_LPUART_DE_POLARITY_LOW + * @retval None + */ +__STATIC_INLINE void LL_LPUART_SetDESignalPolarity(USART_TypeDef *LPUARTx, uint32_t Polarity) +{ + 8001028: b580 push {r7, lr} + 800102a: b082 sub sp, #8 + 800102c: af00 add r7, sp, #0 + 800102e: 6078 str r0, [r7, #4] + 8001030: 6039 str r1, [r7, #0] + MODIFY_REG(LPUARTx->CR3, USART_CR3_DEP, Polarity); + 8001032: 687b ldr r3, [r7, #4] + 8001034: 689b ldr r3, [r3, #8] + 8001036: 4a05 ldr r2, [pc, #20] ; (800104c ) + 8001038: 401a ands r2, r3 + 800103a: 683b ldr r3, [r7, #0] + 800103c: 431a orrs r2, r3 + 800103e: 687b ldr r3, [r7, #4] + 8001040: 609a str r2, [r3, #8] +} + 8001042: 46c0 nop ; (mov r8, r8) + 8001044: 46bd mov sp, r7 + 8001046: b002 add sp, #8 + 8001048: bd80 pop {r7, pc} + 800104a: 46c0 nop ; (mov r8, r8) + 800104c: ffff7fff .word 0xffff7fff + +08001050 : + * @brief Enable MSI oscillator + * @rmtoll CR MSION LL_RCC_MSI_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_MSI_Enable(void) +{ + 8001050: b580 push {r7, lr} + 8001052: af00 add r7, sp, #0 + SET_BIT(RCC->CR, RCC_CR_MSION); + 8001054: 4b04 ldr r3, [pc, #16] ; (8001068 ) + 8001056: 681a ldr r2, [r3, #0] + 8001058: 4b03 ldr r3, [pc, #12] ; (8001068 ) + 800105a: 2180 movs r1, #128 ; 0x80 + 800105c: 0049 lsls r1, r1, #1 + 800105e: 430a orrs r2, r1 + 8001060: 601a str r2, [r3, #0] +} + 8001062: 46c0 nop ; (mov r8, r8) + 8001064: 46bd mov sp, r7 + 8001066: bd80 pop {r7, pc} + 8001068: 40021000 .word 0x40021000 + +0800106c : + * @brief Check if MSI oscillator Ready + * @rmtoll CR MSIRDY LL_RCC_MSI_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_MSI_IsReady(void) +{ + 800106c: b580 push {r7, lr} + 800106e: af00 add r7, sp, #0 + return ((READ_BIT(RCC->CR, RCC_CR_MSIRDY) == RCC_CR_MSIRDY) ? 1UL : 0UL); + 8001070: 4b07 ldr r3, [pc, #28] ; (8001090 ) + 8001072: 681a ldr r2, [r3, #0] + 8001074: 2380 movs r3, #128 ; 0x80 + 8001076: 009b lsls r3, r3, #2 + 8001078: 401a ands r2, r3 + 800107a: 2380 movs r3, #128 ; 0x80 + 800107c: 009b lsls r3, r3, #2 + 800107e: 429a cmp r2, r3 + 8001080: d101 bne.n 8001086 + 8001082: 2301 movs r3, #1 + 8001084: e000 b.n 8001088 + 8001086: 2300 movs r3, #0 +} + 8001088: 0018 movs r0, r3 + 800108a: 46bd mov sp, r7 + 800108c: bd80 pop {r7, pc} + 800108e: 46c0 nop ; (mov r8, r8) + 8001090: 40021000 .word 0x40021000 + +08001094 : + * @arg @ref LL_RCC_MSIRANGE_5 + * @arg @ref LL_RCC_MSIRANGE_6 + * @retval None + */ +__STATIC_INLINE void LL_RCC_MSI_SetRange(uint32_t Range) +{ + 8001094: b580 push {r7, lr} + 8001096: b082 sub sp, #8 + 8001098: af00 add r7, sp, #0 + 800109a: 6078 str r0, [r7, #4] + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_MSIRANGE, Range); + 800109c: 4b06 ldr r3, [pc, #24] ; (80010b8 ) + 800109e: 685b ldr r3, [r3, #4] + 80010a0: 4a06 ldr r2, [pc, #24] ; (80010bc ) + 80010a2: 4013 ands r3, r2 + 80010a4: 0019 movs r1, r3 + 80010a6: 4b04 ldr r3, [pc, #16] ; (80010b8 ) + 80010a8: 687a ldr r2, [r7, #4] + 80010aa: 430a orrs r2, r1 + 80010ac: 605a str r2, [r3, #4] +} + 80010ae: 46c0 nop ; (mov r8, r8) + 80010b0: 46bd mov sp, r7 + 80010b2: b002 add sp, #8 + 80010b4: bd80 pop {r7, pc} + 80010b6: 46c0 nop ; (mov r8, r8) + 80010b8: 40021000 .word 0x40021000 + 80010bc: ffff1fff .word 0xffff1fff + +080010c0 : + * @rmtoll ICSCR MSITRIM LL_RCC_MSI_SetCalibTrimming + * @param Value between Min_Data = 0x00 and Max_Data = 0xFF + * @retval None + */ +__STATIC_INLINE void LL_RCC_MSI_SetCalibTrimming(uint32_t Value) +{ + 80010c0: b580 push {r7, lr} + 80010c2: b082 sub sp, #8 + 80010c4: af00 add r7, sp, #0 + 80010c6: 6078 str r0, [r7, #4] + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_MSITRIM, Value << RCC_ICSCR_MSITRIM_Pos); + 80010c8: 4b06 ldr r3, [pc, #24] ; (80010e4 ) + 80010ca: 685b ldr r3, [r3, #4] + 80010cc: 021b lsls r3, r3, #8 + 80010ce: 0a19 lsrs r1, r3, #8 + 80010d0: 687b ldr r3, [r7, #4] + 80010d2: 061a lsls r2, r3, #24 + 80010d4: 4b03 ldr r3, [pc, #12] ; (80010e4 ) + 80010d6: 430a orrs r2, r1 + 80010d8: 605a str r2, [r3, #4] +} + 80010da: 46c0 nop ; (mov r8, r8) + 80010dc: 46bd mov sp, r7 + 80010de: b002 add sp, #8 + 80010e0: bd80 pop {r7, pc} + 80010e2: 46c0 nop ; (mov r8, r8) + 80010e4: 40021000 .word 0x40021000 + +080010e8 : + * @arg @ref LL_RCC_SYS_CLKSOURCE_HSE + * @arg @ref LL_RCC_SYS_CLKSOURCE_PLL + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetSysClkSource(uint32_t Source) +{ + 80010e8: b580 push {r7, lr} + 80010ea: b082 sub sp, #8 + 80010ec: af00 add r7, sp, #0 + 80010ee: 6078 str r0, [r7, #4] + MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, Source); + 80010f0: 4b06 ldr r3, [pc, #24] ; (800110c ) + 80010f2: 68db ldr r3, [r3, #12] + 80010f4: 2203 movs r2, #3 + 80010f6: 4393 bics r3, r2 + 80010f8: 0019 movs r1, r3 + 80010fa: 4b04 ldr r3, [pc, #16] ; (800110c ) + 80010fc: 687a ldr r2, [r7, #4] + 80010fe: 430a orrs r2, r1 + 8001100: 60da str r2, [r3, #12] +} + 8001102: 46c0 nop ; (mov r8, r8) + 8001104: 46bd mov sp, r7 + 8001106: b002 add sp, #8 + 8001108: bd80 pop {r7, pc} + 800110a: 46c0 nop ; (mov r8, r8) + 800110c: 40021000 .word 0x40021000 + +08001110 : + * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_HSI + * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_HSE + * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_PLL + */ +__STATIC_INLINE uint32_t LL_RCC_GetSysClkSource(void) +{ + 8001110: b580 push {r7, lr} + 8001112: af00 add r7, sp, #0 + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_SWS)); + 8001114: 4b03 ldr r3, [pc, #12] ; (8001124 ) + 8001116: 68db ldr r3, [r3, #12] + 8001118: 220c movs r2, #12 + 800111a: 4013 ands r3, r2 +} + 800111c: 0018 movs r0, r3 + 800111e: 46bd mov sp, r7 + 8001120: bd80 pop {r7, pc} + 8001122: 46c0 nop ; (mov r8, r8) + 8001124: 40021000 .word 0x40021000 + +08001128 : + * @arg @ref LL_RCC_SYSCLK_DIV_256 + * @arg @ref LL_RCC_SYSCLK_DIV_512 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetAHBPrescaler(uint32_t Prescaler) +{ + 8001128: b580 push {r7, lr} + 800112a: b082 sub sp, #8 + 800112c: af00 add r7, sp, #0 + 800112e: 6078 str r0, [r7, #4] + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, Prescaler); + 8001130: 4b06 ldr r3, [pc, #24] ; (800114c ) + 8001132: 68db ldr r3, [r3, #12] + 8001134: 22f0 movs r2, #240 ; 0xf0 + 8001136: 4393 bics r3, r2 + 8001138: 0019 movs r1, r3 + 800113a: 4b04 ldr r3, [pc, #16] ; (800114c ) + 800113c: 687a ldr r2, [r7, #4] + 800113e: 430a orrs r2, r1 + 8001140: 60da str r2, [r3, #12] +} + 8001142: 46c0 nop ; (mov r8, r8) + 8001144: 46bd mov sp, r7 + 8001146: b002 add sp, #8 + 8001148: bd80 pop {r7, pc} + 800114a: 46c0 nop ; (mov r8, r8) + 800114c: 40021000 .word 0x40021000 + +08001150 : + * @arg @ref LL_RCC_APB1_DIV_8 + * @arg @ref LL_RCC_APB1_DIV_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetAPB1Prescaler(uint32_t Prescaler) +{ + 8001150: b580 push {r7, lr} + 8001152: b082 sub sp, #8 + 8001154: af00 add r7, sp, #0 + 8001156: 6078 str r0, [r7, #4] + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, Prescaler); + 8001158: 4b06 ldr r3, [pc, #24] ; (8001174 ) + 800115a: 68db ldr r3, [r3, #12] + 800115c: 4a06 ldr r2, [pc, #24] ; (8001178 ) + 800115e: 4013 ands r3, r2 + 8001160: 0019 movs r1, r3 + 8001162: 4b04 ldr r3, [pc, #16] ; (8001174 ) + 8001164: 687a ldr r2, [r7, #4] + 8001166: 430a orrs r2, r1 + 8001168: 60da str r2, [r3, #12] +} + 800116a: 46c0 nop ; (mov r8, r8) + 800116c: 46bd mov sp, r7 + 800116e: b002 add sp, #8 + 8001170: bd80 pop {r7, pc} + 8001172: 46c0 nop ; (mov r8, r8) + 8001174: 40021000 .word 0x40021000 + 8001178: fffff8ff .word 0xfffff8ff + +0800117c